Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 连接USB设备时,我如何接收通知?_C#_Usb_Device - Fatal编程技术网

C# 连接USB设备时,我如何接收通知?

C# 连接USB设备时,我如何接收通知?,c#,usb,device,C#,Usb,Device,我正在写一个程序来监视一个特定的设备。该设备可以连接也可以不连接,连接时可以连接到多个不同端口中的任何一个;我希望我的程序能够优雅地处理这个问题 是否有方法在连接特定USB设备时接收通知,并从中确定其连接到哪个端口?要获取任何硬件设备已更改的信息,可以将以下代码添加到主窗体: /// <summary> /// Windows Messages /// Defined in winuser.h from Windows SDK v6.1 /// Documentation pulle

我正在写一个程序来监视一个特定的设备。该设备可以连接也可以不连接,连接时可以连接到多个不同端口中的任何一个;我希望我的程序能够优雅地处理这个问题


是否有方法在连接特定USB设备时接收通知,并从中确定其连接到哪个端口?

要获取任何硬件设备已更改的信息,可以将以下代码添加到主窗体:

/// <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);
}
//
///Windows消息
///在Windows SDK v6.1的winuser.h中定义
///从MSDN中提取的文档。
///有关详细信息,请参阅:http://www.pinvoke.net/default.aspx/Enums/WindowsMessages.html
/// 
公共枚举WM:uint
{
/// 
///通知应用程序设备或计算机硬件配置的更改。
/// 
DEVICECHANGE=0x0219,
}
受保护的覆盖无效WndProc(参考消息m)
{
开关((WM)m.Msg)
{
案例WM.DEVICECHANGE:
//ToDo:把代码放在这里。
打破
}
基准WndProc(参考m);
}

哪个操作系统?如果它的windows中有大量用于设备删除通知的API。