我有一个办法:引用system.management Class Win32 Public Const WM_DEVICECHANGE = &H219& Public Const DBT_DEVICEARRIVAL = &H8000&, DBT_DEVICEREMOVECOMPLETE = &H8004& End Class Protected Overrides Sub WndProc(ByRef m As Message) Select Case m.Msg Case Win32.WM_DEVICECHANGE OnDeviceChange(m) Exit Sub End Select MyBase.WndProc(m) End Sub Private Sub OnDeviceChange(ByRef msg As Message) Dim wParam As Integer = msg.WParam.ToInt32 If wParam = Win32.DBT_DEVICEARRIVAL Then ............... ElseIf wParam = Win32.DBT_DEVICEREMOVECOMPLETE Then ..................... End If End Sub
Class Win32
Public Const WM_DEVICECHANGE = &H219&
Public Const DBT_DEVICEARRIVAL = &H8000&, DBT_DEVICEREMOVECOMPLETE = &H8004&
End Class
Protected Overrides Sub WndProc(ByRef m As Message)
Select Case m.Msg
Case Win32.WM_DEVICECHANGE
OnDeviceChange(m)
Exit Sub
End Select
MyBase.WndProc(m)
End Sub
Private Sub OnDeviceChange(ByRef msg As Message)
Dim wParam As Integer = msg.WParam.ToInt32
If wParam = Win32.DBT_DEVICEARRIVAL Then
...............
ElseIf wParam = Win32.DBT_DEVICEREMOVECOMPLETE Then
.....................
End If
End Sub