Как я могу получать уведомления при подключении USB-устройства? - PullRequest
4 голосов
/ 21 апреля 2009

Я пишу программу для мониторинга определенного устройства. Это устройство может или не всегда может быть подключенным, а при подключении может быть подключено к любому из нескольких разных портов; Я бы хотел, чтобы моя программа справилась с этим изящно.

Есть ли способ получать уведомления при подключении определенного USB-устройства и оттуда определять, к какому порту он подключен?

Ответы [ 2 ]

1 голос
/ 22 апреля 2009

Чтобы получить информацию об изменении какого-либо аппаратного устройства, вы можете добавить следующий код в основную форму:

/// <summary>
/// Windows Messages
/// Defined in winuser.h from Windows SDK v6.1
/// Documentation pulled from MSDN.
/// For more look at: http://www.pinvoke.net/default.aspx/Enums/WindowsMessages.html
/// </summary>
public enum WM : uint
{
    /// <summary>
    /// Notifies an application of a change to the hardware configuration of a device or the computer.
    /// </summary>
    DEVICECHANGE = 0x0219,
}

protected override void WndProc(ref Message m)
{
    switch ((WM)m.Msg)
    {
        case WM.DEVICECHANGE:
            //ToDo: put your code here.
            break;
    }
    base.WndProc(ref m);
}
1 голос
/ 21 апреля 2009

Проверить эту тему на SO. Конкретно принятый ответ, который использует SharpUSBLib .

...