jiushizhu 发表于 2014-1-20 22:02:30

如何监控usb设备插入和拔出

如何监控usb设备插入和拔出 usb设备不一定是u盘类的

haijie1223 发表于 2014-1-21 10:25:18

截获系统消息:WM_DEVICECHANGE

zch11230 发表于 2014-1-21 10:56:54

哎。。。HOOK实在是不会啊凑合吧Local $colItems, $Ndevid, $Odevid
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")

While 1
        $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_USBControllerDevice", "WQL", 48)
        If IsObj($colItems) Then
                For $objItem In $colItems
                        $tmp = StringRegExpReplace($objItem.Dependent, ".*?DeviceID=", "")
                        If @extended Then $Ndevid &= $tmp & @LF
                Next
;~                 ToolTip($Odevid)
                If $Odevid <> "" Then
                        If StringLen($Ndevid) > StringLen($Odevid) Then
                                ToolTip("in")
                        ElseIf StringLen($Ndevid) < StringLen($Odevid) Then
                                ToolTip("out")
                        EndIf
                EndIf
                $Odevid = $Ndevid
                $Ndevid = ""
        Else
                MsgBox(0, "", "err")
        EndIf
        Sleep (100)
WEnd

jiushizhu 发表于 2014-1-22 08:38:46

回复 3# zch11230
十分感谢啊如何能显示插入设备的名称啊

alpin 发表于 2014-1-22 09:12:51

{:face (332):}

fcurrk 发表于 2014-1-23 09:58:37

学习了,WMI真强大

sdlyfjx 发表于 2014-1-31 14:17:56

hook hook 钩一下吗哈哈

netegg 发表于 2014-2-9 14:08:01

枚举下然后监控就行了

haopp1 发表于 2014-2-11 15:07:07

建议搞一个SQL server 数据库

vagrom 发表于 2014-2-21 21:42:09

强大啊,没想到autoit功能这么强。

水木子 发表于 2014-2-26 19:17:15

Global Const $WM_DEVICECHANGE = 537 ;设备发生改变
Global Const $DBT_DEVICEARRIVAL = 0x8000 ;设备插入
Global Const $DBT_DEVICEREMOVECOMPLETE = 0x8004 ;设备移除

GUIRegisterMsg($WM_DEVICECHANGE, 'My_Message_Test')

GUICreate('')

Do
Until GUIGetMsg() = -3

Func My_Message_Test($hWnd, $Msg, $wParam, $lParam)
        Switch $wParam
                Case $DBT_DEVICEARRIVAL
                        MsgBox(0, '提示!', '检测到设备插入 - ' & $lParam)
                Case $DBT_DEVICEREMOVECOMPLETE
                        MsgBox(0, '提示!', '检测到设备被移除 - ' & $lParam)
        EndSwitch
EndFunc   ;==>My_Message_Test
页: [1]
查看完整版本: 如何监控usb设备插入和拔出