Что нового

Отслеживание устройства в диспетчере

saraconor

Новичок
Сообщения
400
Репутация
3
Как имея ID устройства, допустим "USB\VID_046D&PID_C21C&REV_0103" определить включено оно, или выключено в диспетчере?
 

joiner

Модератор
Локальный модератор
Сообщения
3,458
Репутация
608
возможно это
 
Автор
S

saraconor

Новичок
Сообщения
400
Репутация
3
Может через devcon можно?
Код:
$GO = RunWait(@ScriptDir & '\devcon.exe hwids ' & "USB\VID_046D&PID_C21C&REV_0103" & '*', '', @SW_HIDE)
MsgBox(0, '', $GO)

Не работает
 

vovsla

Осваивающий
Сообщения
598
Репутация
35
Можно попробовать отследить что меняется в системе при включении / отключении устройства, скорее всего изменения будут в реестре, а потом уже можно попробовать найти более культурный метод получения этих значений. Искать изменения можно с помощью тотал анинсталла
 
Автор
S

saraconor

Новичок
Сообщения
400
Репутация
3
Код:
#include <Constants.au3>
#include <WinAPISys.au3>

Opt ("MustDeclareVars", 1)

   Local $data
   Local $dvcn = Run(@ScriptDir & '\devcon.exe hwids * | findstr "PID_C21C&REV_0103"', @ScriptDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
    While True
        $data &= StdoutRead($dvcn)
        If @error Then ExitLoop
        Sleep(25)
    WEnd


 Msgbox (0,"",$data)

Вот так выводит какую-то информацию, но не вполне то что нужно.
 

vovsla

Осваивающий
Сообщения
598
Репутация
35
Код:
#include <Constants.au3>
#include <WinAPISys.au3>

Opt ("MustDeclareVars", 1)

   Local $data
   Local $dvcn = Run(@ScriptDir & '\devcon.exe hwids * | findstr "PID_C21C&REV_0103"', @ScriptDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
    While True
        $data &= StdoutRead($dvcn)
        If @error Then ExitLoop
        Sleep(25)
    WEnd


 Msgbox (0,"",$data)

Вот так выводит какую-то информацию, но не вполне то что нужно.
мне кажется, что информацию проще получить через wmi
 
Верх