哪位大哥知道怎样用VB实现一个程序:程序一直在运行,当插入U盘时自动响应某个事件,比如自动复制文件等操作。谢谢了:)

解决方案 »

  1.   

    用wmi监视Win32_LogicalDisk类。有反应就检测它的access,能读(写???)就可以复制了
      

  2.   

    Private Sub Timer1_Timer()
    i = GetDriveType(Left(Drive1.Drive, 2))
    '可移动的盘符
    If i = 2 Then
        '做该做的事情
    End If
    End Sub
      

  3.   

    检测磁盘驱动器类型的API函数定义:
    Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long返回值 :
    Long,如驱动器不能识别,则返回零。如指定的目录不存在,则返回1。如执行成功,则用下述任何一个常数指定驱动器类型:DRIVE_REMOVABLE(可移动磁盘), DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM 或 DRIVE_RAMDISK 参数:nDrive,包含了驱动器根目录路径的一个字串 
      

  4.   

    参考blog.slnsoft.com上的那个VC下对U盘的检测吧,VB中具体怎么做,真还不清楚。
      

  5.   

    引用“Micorsoft SysInfo Control6.0”
    '↓有即插即用設備發生時(產生在系統加入新硬體時)
    Private Sub SysInfo1_DeviceArrival(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
     If DeviceType = 2 Then '
      msgbox "有U盤插入" 
     End If
    End Sub
      

  6.   

    DeviceID=2的n次方
    n即為盤符(對應字母順序A盤為0、B盤為1...)
    如:DeviceID為16
    即2的4次方=16 也就是插入的U盤盤符是D
      

  7.   

    錯了
    即2的4次方=16 也就是插入的U盤盤符是D,應該為E盤
      

  8.   

    寫個HOOK嘛,做過的。DengXingJie(杰西)的方法沒用過,有機會試試。
      

  9.   

    添加一个Drive1
      如果你有光驱的话,你的移动盘就是编号为Me.Drive1.ListCount -2倒数第2个
      没有光驱就是Me.Drive1.ListCount -1倒数第一个
      名字就是Debug.Print Drive1.Drive