在 Windows 上,我的用户模式程序如何获取已安装显卡的驱动程序版本号?
像 ATI 的“催化剂控制中心”这样的程序可以向用户显示此信息或将其自动包含在错误报告中。他们如何得到它?
我一直在查看 PSDK 文档,但找不到任何相关内容。
用户程序可以遍历设备管理器显示的数据库吗?
是否有像获取磁盘驱动器几何形状这样的 IOCTL 调用?
它是否在(可靠的)注册表项中?
在 Windows 上,我的用户模式程序如何获取已安装显卡的驱动程序版本号?
像 ATI 的“催化剂控制中心”这样的程序可以向用户显示此信息或将其自动包含在错误报告中。他们如何得到它?
我一直在查看 PSDK 文档,但找不到任何相关内容。
用户程序可以遍历设备管理器显示的数据库吗?
是否有像获取磁盘驱动器几何形状这样的 IOCTL 调用?
它是否在(可靠的)注册表项中?
在 PowerShell 中:
Get-WmiObject Win32_VideoController | format-table Name, Description,VideoProcessor,DriverVersion
WMI 对象也可以从任何讲 COM 或 .Net 的语言中获得。
ETA:您可能希望排除没有 VideoProcessor 值的记录,例如 Live Mesh 驱动程序。我通过|where {$_.VideoProcessor -ne $null }
在格式命令之前包含在管道中来做到这一点。
我使用“dxdiag /x output.xml”,然后通过解析“output.xml”获取视频驱动程序版本。dxdiag 很慢,但它告诉一个正确的驱动程序版本..
我使用 python 来完成这项工作。受 Jason 的回答启发,我得到以下代码:
>>> import wmi
>>> c = wmi.WMI()
>>> for device in c.Win32_VideoController():
if device.VideoProcessor:
print device.DriverVersion
我以前必须解决这个问题。我相信您实际上必须获取相关驱动程序文件的文件版本信息。