Как узнать версию видеодрайверов Windows?
-
03-07-2019 - |
Вопрос
В 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
Мне уже приходилось решать эту проблему раньше.Я считаю, что вам действительно нужно получить информацию о версии соответствующего файла драйвера.