C#读取USB设备传输的数据。

shuguangleo 2012-09-10 02:07:23
电脑连了一个ID卡读卡器,即插即用那种。
测试时,做了个窗体,一个textbox获取焦点,然后刷卡后textbox会显示度过来的ID数据(一个10位的10进制整数)。然后去库里找这个ID对应的其他数据。

现在想修改下,不用这个窗体和textbox。在主窗体开一个线程,实时监控USB端口,有数据读入时直接获取。

C#如何实现这个功能?有现成代码参考吗?谢谢了。
...全文
2167 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘶吼的蚂蚁 2012-09-10
  • 打赏
  • 举报
回复

protected override void WndProc(ref Message m)
{
#region U盘播放
if (m.Msg == 0x0219)//WM_DEVICECHANGE
{
switch (m.WParam.ToInt32())
{
case 0x8000://DBT_DEVICEARRIVAL
{
Console.WriteLine("设备接入");
break;
}
case 0x8004://DBT_DEVICEREMOVECOMPLETE
{
Console.WriteLine("设备拔出");
break;
}
}
}
base.WndProc(ref m);
}
嘶吼的蚂蚁 2012-09-10
  • 打赏
  • 举报
回复
[C# code]
protected override void WndProc(ref Message m)
{
#region U盘播放
if (m.Msg == 0x0219)//WM_DEVICECHANGE
{
switch (m.WParam.ToInt32())
{
case 0x8000://DBT_DEVICEARRIVAL
{
Console.WriteLine("设备接入");
break;
}
case 0x8004://DBT_DEVICEREMOVECOMPLETE
{
Console.WriteLine("设备拔出");
break;
}
}
}
base.WndProc(ref m);
}
[/code]
我都是用系统消息来检测U盘的接入和拔出的
嘶吼的蚂蚁 2012-09-10
  • 打赏
  • 举报
回复
[C# code]
protected override void WndProc(ref Message m)
{
#region U盘播放
if (m.Msg == 0x0219)//WM_DEVICECHANGE
{
switch (m.WParam.ToInt32())
{
case 0x8000://DBT_DEVICEARRIVAL
{
Console.WriteLine("设备接入");
break;
}
case 0x8004://DBT_DEVICEREMOVECOMPLETE
{
Console.WriteLine("设备拔出");
break;
}
}
}
base.WndProc(ref m);
}
[/code]
我都是用系统消息来检测U盘的接入和拔出的
datafansbj 2012-09-10
  • 打赏
  • 举报
回复
不可能有现成的代码,你的设备是什么型号的?什么类型的?什么接口?硬件厂商的SDK有么?

如果能够获取硬件消息通知(如USB设备插上时,系统会广播一条消息,如果那个组件响应了消息就去处理该消息...扯远了),就按照该消息进行设计,不需要自己去监视,否则需要自己写个线程,不断轮询该接口看看是否有数据,然后再处理...
csdn_风中雪狼 2012-09-10
  • 打赏
  • 举报
回复
既然你在其它窗体可以得到它的值,
最简单的就是,
你在主窗体里,整个 timer 控件,不停去监控它,就是了
csdn_风中雪狼 2012-09-10
  • 打赏
  • 举报
回复
既然有数据过来,
那在那个窗体都监视都是回事的,
最简单的就是,你在主窗体里,整个 timer,不停里去监控,
Anod 2012-09-10
  • 打赏
  • 举报
回复
既然原来是可以读取的 你就在线程里监测系统硬件信息如果有新USB硬件就检测是不是U盘 ,然后读里面数据 执行你的操作不就行了 或者推测应该可以找到关于新硬件的一个系统事件的 把你“新USB硬件就检测是不是U盘 ,然后读里面数据 执行你的操作”这一步的操作添加到事件的关联方法里。就OK了。

没做过USB的东西 但是过程应该是大同小异的,把USB设备当做字节码的信号就明白了。

111,089

社区成员

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

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

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