如何获取显示设备的驱动程序版本?

Posted

技术标签:

【中文标题】如何获取显示设备的驱动程序版本?【英文标题】:How to get the driver version of a display device? 【发布时间】:2019-03-14 09:14:53 【问题描述】:

我们如何通过编程获得显示设备的驱动程序版本? 我们可以通过运行命令“DxDiag”获取显示设备的信息,包括(1)卡名称:NVIDIA GeForce GTX745;(2)制造商:(3)NVIDIA,驱动程序名称;(4)驱动程序文件版本:23.21.13.9077(23.21.13.9077这个数字正是我们想要的)。

程序需要告诉显示设备的最低驱动程序版本号,以防程序崩溃。此驱动程序版本导致程序崩溃。在这里我想提示用户升级驱动程序版本以防程序崩溃。

编辑: 实际上显示设备的驱动版本与OpenGL版本不同(可以通过glGetString(GL_VERSION)获取)。

如果您有进一步的兴趣,请在此处the link 详细描述问题。

任何帮助都非常感谢!

【问题讨论】:

你可能想看看这个:Microsoft.DirectX.Diagnostics 您也可以尝试生成 OpenGL 上下文并询问驱动程序版本,或者直接使用 NVAPI 询问驱动程序 您可以通过CM_Get_Device_Interface_ListGUID_DEVINTERFACE_DISPLAY_ADAPTER 查询接口,而不是通过CM_Get_Device_Interface_PropertyDEVPKEY_Device_InstanceId + CM_Locate_DevNode 从接口获取设备ID。然后通过CM_Get_DevNode_Property 对 devnode 进行几次查询。说DEVPKEY_Device_DriverVersionDEVPKEY_Device_DriverDescDEVPKEY_Device_Manufacturer,... 【参考方案1】:

如何获取显示设备的驱动版本?

我相信,这可以使用 setupapi.h 来完成

https://docs.microsoft.com/da-dk/windows/desktop/api/setupapi/

另请参阅此子页面:

https://docs.microsoft.com/en-us/windows/desktop/api/setupapi/nf-setupapi-setupdibuilddriverinfolist

另请参阅此答案,这与您“导航” API 的方式有些相关:

How to get device properties in windows in c++?

【讨论】:

以上是关于如何获取显示设备的驱动程序版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式在 Android 设备中获取设备 (AOSP) 内部版本号?

如何获取 Android 应用程序的构建/版本号?

如何在 android 10 或更高版本中获取设备 ID 或 imei 号码

如何从二进制文件中获取应用程序的版本号?

如何在 iOS PhoneGap 应用程序中获取应用程序版本号?

如何在 .NET 应用程序中获取当前发布的版本?