Я пробовал следующее:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Const WM_DEVICECHANGE As Integer = &H219
Const DBT_DEVICEARRIVAL As Integer = &H8000
If m.Msg = WM_DEVICECHANGE Then
If m.LParam.ToInt32=DBT_DEVICEARRIVAL
MessageBox.Show("Device arrival")
End IF
End If
MyBase.WndProc(m)
End Sub
Но m.LParam
постоянно возвращает значение 7
, поэтому я не могу определить, когда устройство добавлено. Я хочу, чтобы моя программа могла определять, когда аппаратное обеспечение было добавлено, и если это конкретное устройство, то выполнять какое-либо действие (меня не интересуют запоминающие устройства USB, поэтому, пожалуйста, не присылайте мне какие-либо примеры по этому поводу).
7
– этоDBT_DEVNODES_CHANGED
, который задокументирован как: Нет дополнительной информации о том, какое устройство было добавлено или удалено из системы. Приложения, которым требуется дополнительная информация, должны зарегистрироваться для получения уведомлений с помощьюRegisterDeviceNotification
< /a> функция. - person GSerg   schedule 23.10.2013