Я работаю над проектом по управлению некоторыми устройствами через порт lpt.
Я использую inpout32.dll для получения необработанного доступа к портам и сейчас пытаюсь перечислить все доступные LPT-порты и получить их диапазон ввода / вывода.
Теперь я могу проверить диспетчер устройств, но есть ли более автоматизированный способ?
Теперь я пытаюсь использовать WMI некоторый пример кода, который должен работать, но он не
Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Set parallelports = wmiService.ExecQuery("SELECT * FROM Win32_ParallelPort")
For Each port In parallelports
q = "SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID = '" & port.PNPDeviceID & "'"
Set pnpentities = wmiService.ExecQuery(q)
For Each pnpentity In pnpentities
wscript.echo pnpentity.PNPDeviceID
Next
Next
в строке «Для каждого из вложений» я получаю сообщение об ошибке.
Также я не уверен, если поиск соответствующей сущности поможет мне.
PS.
Наконец, я понял, как перечислить диапазоны портов ввода / вывода lpt.
Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Set parallelports = wmiService.ExecQuery("SELECT * FROM Win32_ParallelPort")
For Each port In parallelports
Set port_resources = wmiService.ExecQuery("ASSOCIATORS OF {Win32_ParallelPort.DeviceID='" & port.DeviceID & "'} WHERE ResultClass = Win32_PortResource")
For Each port_resource In port_resources
wscript.echo port_resource.Caption
Next
Next