如何捕获USB接口的拔插事件并获得对应的串口号 C#

mengyq_82 2011-01-10 04:17:22
如题
...全文
337 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjancn 2011-01-10
  • 打赏
  • 举报
回复
拔插靠 WM_DEVICECHANGE 事件。
楼上已说清楚。

至于串口号,一般靠驱动、驱动按装时有可以已经指定了。
可是设备的ID去注册表中找。
vivai2010 2011-01-10
  • 打赏
  • 举报
回复

public const int WM_DEVICECHANGE = 0x219;
public const int DBT_DEVICEARRIAL = 0x8000;
public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_DEVICECHANGE)
{
switch (m.WParam.ToInt32())
{
case DBT_DEVICEARRIAL:
{
DriveInfo[] dis = DriveInfo.GetDrives();
foreach (DriveInfo di in dis)
{
if (di.DriveType == DriveType.Removable)
{
listBox1.Items.Add("U盘已经插入,盘符为:" + di.Name);
break;

}
}
break;

}
case DBT_DEVICEREMOVECOMPLETE:
{
listBox1.Items.Add("U盘已经移除");
break;
}
}
}
base.WndProc(ref m);
}

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧