Вопрос

В Windows, как моя программа пользователя может получить номер версии драйвера для установленных видеокартов?

Такие программы, как Catalyst Control Center от ATI, могут отображать эту информацию пользователю или автоматически включать ее в отчеты об ошибках.Как они это получают?

Я просматривал документацию PSDK и не нашел ничего подходящего.

Может ли пользовательская программа просматривать базу данных, отображаемую диспетчером устройств?
Есть ли вызов IOCTL, например получение геометрии диска?
Это в (надежном) ключе реестра?

Это было полезно?

Решение

В PowerShell:

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

Объекты WMI также доступны на любом языке, поддерживающем COM или .Net.

Расчетное время прибытия:Возможно, вы захотите исключить записи без значения VideoProcessor, например драйверы Live Mesh.Я сделал это, включив |where {$_.VideoProcessor -ne $null } в конвейере перед командой форматирования.

Другие советы

Я использовал «dxdiag /x output.xml», затем получил версию видеодрайвера, проанализировав «output.xml».dxdiag работает медленно, но указывает единственную правильную версию драйвера.

Для этой работы я использовал Python.Вдохновленный ответом Джейсона, я получаю следующий код:

>>> import wmi
>>> c = wmi.WMI()
>>> for device in c.Win32_VideoController():
    if device.VideoProcessor:
        print device.DriverVersion

Мне уже приходилось решать эту проблему раньше.Я считаю, что вам действительно нужно получить информацию о версии соответствующего файла драйвера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top