我用控件SysInfo,可以实现。Private Sub SysInfo1_DeviceArrival(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
MsgBox "usb插入"
End SubPrivate Sub SysInfo1_DeviceRemoveComplete(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
MsgBox "usb拔出"
End Sub但我发现有时这种响应不灵,也就是当一种USB不能识别时就不能响应了。所以我想实现USB口插入设备即响应(弹出窗体通知有USB设备插入),拔出即弹出窗口通知有USB设备拔出。不管该设备是否能用。希望能用VB实现,另外我不懂API,望给出详细API代码。谢谢。

解决方案 »

  1.   

    没有这种软件解决的办法。你去看看 USB 设备的接口协议就明白了。
      

  2.   

    不仅仅是 USB 设备,所有 PNP 设备都需要应答。
      

  3.   

    但是电脑右下脚会有USB插入图标,那我可以根据这个图标的出现来判断么?怎么判断?
      

  4.   

    可以试试用全局消息钩子拦截。不过我不知道USB插入消息的代码。网上查查看。
      

  5.   

    我有一些信息,但是我不会API。   当usb设备插入时,主机发送Get_Port_Status,返回信息告诉主机设备是何时连接的。
       当有一新设备时,主机发送Set_Port_Feature,返回集线器分配usb地址,并使usb重启,至少10ms。
       主机发送Get_Port_Status请求来验证设备是否重启,重启完毕就可通讯。
       测速、测通讯包大小、分配地址、载入驱动...
       当设备移除时,设备产生一个事件,主机发送Get_Port_Status,返回值即可查明。