电脑连了一个ID卡读卡器,即插即用那种。
测试时,做了个窗体,一个textbox获取焦点,然后刷卡后textbox会显示度过来的ID数据(一个10位的10进制整数)。然后去库里找这个ID对应的其他数据。现在想修改下,不用这个窗体和textbox。在主窗体开一个线程,实时监控USB端口,有数据读入时直接获取。C#如何实现这个功能?有现成代码参考吗?谢谢了。
测试时,做了个窗体,一个textbox获取焦点,然后刷卡后textbox会显示度过来的ID数据(一个10位的10进制整数)。然后去库里找这个ID对应的其他数据。现在想修改下,不用这个窗体和textbox。在主窗体开一个线程,实时监控USB端口,有数据读入时直接获取。C#如何实现这个功能?有现成代码参考吗?谢谢了。
解决方案 »
- 如何在一个线程结束时,调用另外一个函数?
- Winform的DataGridView排序
- 如何将DataSet中的数据插入到数据库
- splitContainer 的主来吧,阿门
- Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
- 小弟只会C,不会C++。请问可以不用学VC,直接学C#吗?
- 打开文件操作。
- 关于连接access数据库的绝对路经问题
- 春节过了,开始找工作了,有成都的公司吗?
- c#中怎么使用压缩控件?哪里有c#使用的免费压缩控件?(一定给分!!!!!)
- 多窗体共用控件的问题
- C# 1、如何隐藏一列,但是不要隐藏列标题? 2、如何一个单元格,这一列是combox下拉列表,隐藏一个单元格?
那在那个窗体都监视都是回事的,
最简单的就是,你在主窗体里,整个 timer,不停里去监控,
最简单的就是,
你在主窗体里,整个 timer 控件,不停去监控它,就是了
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盘的接入和拔出的
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盘的接入和拔出的
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);
}