你如何获得Windowsvideo驱动程序的版本?

Windows上,我的用户模式程序如何获取安装的video卡的驱动程序版本号?

像ATI的“催化剂控制中心”这样的程序可以将这些信息显示给用户,或者将其自动包含到错误报告中。 他们如何得到它?

我一直在寻找通过PSDK文件,我找不到任何相关的。

用户程序是否可以通过设备pipe理器显示的数据库?
有没有像获取磁盘驱动器几何IOCTL调用?
它是否在一个(可靠的)registry项中?

在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 

我以前必须解决这个问题。 我相信你实际上必须得到关联的驱动程序文件的文件版本信息。