文章关键字 ‘WMI’

用VBS检测U盘插入和弹出事件

2010年06月20日,星期日

貌似网上很多人问怎么用VBS检测U盘插入和弹出,其实这很容易实现,WMI赋予了VBS十分强大的功能。可以说,对WMI的掌握程度的多少直接决定了你的VBS水平高低。看过网上普遍流传VBS版U盘小偷程序,基本上都是靠无限循环实现的,一点技术含量也没有,文章的末尾给出了我写的VBS版U盘小偷程序的下载地址。虽然用WMI也得无限循环,但是效率是不一样的。

使用WMI的Win32_VolumeChangeEvent类就可以实现,下面是示例代码,更详细的信息请参考MSND文档

Const Configuration_Changed = 1
Const Device_Arrival = 2
Const Device_Removal = 3
Const Docking = 4
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService. _
    ExecNotificationQuery( _
        "Select * from Win32_VolumeChangeEvent")
Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    Select Case objLatestEvent.EventType
    	Case Device_Arrival
    		WScript.Echo "U盘插入,盘符为" & _
    		objLatestEvent.DriveName
    	Case Device_Removal
    		WScript.Echo "U盘弹出,盘符为" & _
    		objLatestEvent.DriveName
	End Select
Loop

我也写了一个U盘小偷程序,自以为比网上抄来抄去的代码要好,感兴趣的可以下载来看看。

[download id=14]