如何获取Windows视频驱动程序的版本?

4
在Windows系统中,如何让用户模式程序获取已安装的显卡驱动版本号?像ATI公司的“Catalyst Control Center”这样的程序可以向用户显示此信息或自动将其包含在错误报告中。它们是如何获取这些信息的呢?
我已经查阅了PSDK文档,但没有找到相关内容。
用户程序能否遍历设备管理器显示的数据库?是否有类似于获取磁盘驱动器几何信息的IOCTL调用?它是否存在于(可靠的)注册表键中?
3个回答

9

在PowerShell中:

Get-WmiObject Win32_VideoController | format-table Name, Description,VideoProcessor,DriverVersion

WMI对象也可以从任何支持COM或.Net的语言中使用。

注:您可能希望排除没有VideoProcessor值的记录,例如Live Mesh驱动程序。在格式命令之前,在管道中包含|where {$_.VideoProcessor -ne $null }即可实现此功能。


谢谢,JasonTrue。有了这个起点,我已经想出如何在C++中实现这个功能。 - Die in Sente

1

我使用了“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

0

我以前也遇到过这个问题。我相信你实际上需要获取相关驱动程序文件的文件版本信息。


1
但是你如何识别驱动程序文件? - Die in Sente

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接