VB USB接口监控功能实现
VB 的 USB 监控功能其实挺实用的,尤其做设备管理或搞点自动化工具的时候。通过监听WM_DEVICECHANGE
消息,基本就能搞定 U 盘的插拔提示。代码也不复杂,重写个WndProc
就能拦住系统消息,弹个框提示一下插入还是拔出——调试起来也蛮直观的。
USB 插入的时候系统会发DBT_DEVICEARRIVAL
,拔出时是DBT_DEVICEREMOVECOMPLETE
,你只要判断下WParam
就行了。下面这段代码就是个简单示例:
Public Class Form1
Private Const WM_DEVICECHANGE As Integer = &H219
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_DEVICECHANGE Then
If m.WParam.ToInt32() And &H8000 Then
MsgBox("USB 设备已被拔出")
ElseIf m.WParam.ToInt32() And &H2 Then
MsgBox("USB 设备已插入")
End If
End If
MyBase.WndProc(m)
End Sub
End Class
啦,这只是最基础的实现。想进一步识别设备类型,或者自动拷文件什么的,就得用到像SetupDiGetClassDevs
、WMI
这些更底层的东西。
至于自动弹出 U 盘?虽然技术上你可以用DeviceIoControl
加IOCTL_STORAGE_EJECT_MEDIA
搞定,但不建议悄悄搞,没保存文件可就麻烦了。
整体来说,VBWindows 消息还是挺方便的,做些系统工具、设备监控工具是完全够用的。如果你手上有 VB 老项目,又正好有这方面需求,可以顺手集成一下,还蛮方便的。
15.65KB
文件大小:
评论区