Что нового

Получение списка Harware ID устройств без драйверов

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Нужно получить список всех устройств (их Harware ID), для которых не установлен драйвер в системе.
Есть библиотека DeviceAPI.au3, но так и не понял как там определить что устройство не имеет драйвера? :scratch:
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Вроде получилось через WMI:

Код:
#include <Array.au3>

Dim $aList[1][2] = [[0]]

$oWMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\CIMV2')

If Not IsObj($oWMIService) Then
	MsgBox(48, 'Error', 'Could not initialize WMIService object (WMI error).')
	Exit
EndIf

$oItems = $oWMIService.ExecQuery('Select * from Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0') 

If Not IsObj($oItems) Then
	MsgBox(48, 'Error', 'Unable to select from Win32_PnPEntity object (WMI error).')
	Exit
EndIf

For $oItem In $oItems
	$aList[0][0] += 1
	ReDim $aList[$aList[0][0] + 1][2]
	
	$aList[$aList[0][0]][0] = $oItem.Description
	$aList[$aList[0][0]][1] = $oItem.DeviceID
Next

If $aList[0][0] = 0 Then
	MsgBox(48, 'Attention', 'Missing/Disabled drivers not found on this system.')
	Exit
EndIf

_ArrayDisplay($aList)
 

StepanSkvortsov

Новичок
Сообщения
9
Репутация
0
Предлагаю такой вариант - через функцию GetDeviceRegistryProperty смотрим:
вариант 1 - параметр $SPDRP_DRIVER=0x00000009;// Driver R/W (предположительно там или пустая строка при отсутствии драйвера или что то типа "driver is not installed");
вариант 2 - параметр $SPDRP_INSTALL_STATE=0x00000022;// Device Install State R (предположительно там будет что то типа installed/unpluged/some errors with drivers)
ЗЫ: не смог потестить оригинальную DeviceAPI.au3 - Alpha v6, но чудесно заработала урезанная версия от llewxam (LSDbeta5.zip). Если я правильно вкурил буржуйский форум, проблема связана с обновлением автоита с версии 3.3.10.2 на 3.3.12.0


Добавлено:
Сообщение автоматически объединено:

Ну да, через WMI изящно, красиво и быстро;) Я так понимаю, можно и через devcon, но цитируя буржуев "прикольно когда на чистом АВТОИТе железки исследовать" :IL_AutoIt_1:
 
Верх