如何获取显示设备的驱动程序版本?
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_List
和GUID_DEVINTERFACE_DISPLAY_ADAPTER
查询接口,而不是通过CM_Get_Device_Interface_Property
和DEVPKEY_Device_InstanceId
+ CM_Locate_DevNode
从接口获取设备ID。然后通过CM_Get_DevNode_Property
对 devnode 进行几次查询。说DEVPKEY_Device_DriverVersion
,DEVPKEY_Device_DriverDesc
,DEVPKEY_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 10 或更高版本中获取设备 ID 或 imei 号码