用C#读取USB端口的信息

程序猿GG 2009-09-18 03:21:12

例如, 我有一台电脑上有四个USB端口, 我在上面接上四个"条码扫描器"(分别表示为A,B,C,D), 当我用使用扫描器时,能不能让程序读出我是使用的哪个扫描器?

...全文
1369 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
堕之羽翼 2011-10-10
  • 打赏
  • 举报
回复
学些下下有什么办法!!
qmialo88 2009-09-23
  • 打赏
  • 举报
回复
获取扫描仪信息不就好了
mxc1225 2009-09-23
  • 打赏
  • 举报
回复
学习!
mjp1234airen4385 2009-09-22
  • 打赏
  • 举报
回复
不知道,帮你顶顶。
每个设备都有GUID,楼主也能渠道GUID,但这和是谁传来的数据怎么联系。
程序猿GG 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 xiaowei_001 的回复:]
可以,每个设备都有guid
[/Quote]
有示例没??
xiaowei_001 2009-09-22
  • 打赏
  • 举报
回复
可以,每个设备都有guid
程序猿GG 2009-09-22
  • 打赏
  • 举报
回复
再顶一下, 别让它沉了...
不够再加分....
l13873666736 2009-09-22
  • 打赏
  • 举报
回复
我在這裡等高人出來。
beifang86 2009-09-22
  • 打赏
  • 举报
回复
顶!!!应该和串口不多吧,,,usb没做过
程序猿GG 2009-09-22
  • 打赏
  • 举报
回复
各位大虾们,能再详细点吗? 我是要在电脑的4个USB上接上扫描器(商场收银员用的那种), 然后在扫条码时, 不仅让程序读到条码号(这个一定是可以的,哈), 而且要知道是用哪一个扫描器扫读的数据(就是这个搞不定).
马老虎 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 kaizi_sun 的回复:]
引用 17 楼 luchuanbo 的回复:
引用 16 楼 xiaowei_001 的回复:
可以,每个设备都有guid

有示例没??


这个只是说帮你分析出usb设备,具体好象跟你的没关系的。我给你搞这个的例子。
C# codestring s;string[] logDrives=newstring[10];
logDrives= System.IO.Directory.GetLogicalDrives();//取所有盘符。for (int i=0; i< logDrives.Length; i++)
{if (api.GetDriveType(logDrives[i])==2)//判断是不是usb类型 {
s+= logDrives[i].ToString();

}
}
api函数调用:publicclass api
{
[DllImport("winmm.dll", EntryPoint="mciSendStringA")]publicstaticexternint mciSendString(string lpstrCommand,string lpstrReturnString,int uReturnLength,int hwndCallback);
[DllImport("kernel32.dll", EntryPoint="GetVolumeInformationA")]publicstaticexternint GetVolumeInformation(string lpRootPathName, StringBuilder lpVolumeNameBuffer,int nVolumeNameSize,int lpVolumeSerialNumber,int lpMaximumComponentLength,int lpFileSystemFlags,string lpFileSystemNameBuffer,int nFileSystemNameSize);
[DllImport("kernel32.dll", EntryPoint="GetDriveTypeA")]publicstaticexternint GetDriveType(string nDrive);
}
[/Quote]
shizhen_zhang 2009-09-22
  • 打赏
  • 举报
回复
能获得条码号 也应该获得设备的标示。
tfpeixun 2009-09-22
  • 打赏
  • 举报
回复
这个。。。你知道了要干嘛?
一个一个检测,看他是不是处于忙碌状态!
i466834553 2009-09-22
  • 打赏
  • 举报
回复
不知道没做过。不过应该是可以的
s32702 2009-09-22
  • 打赏
  • 举报
回复
USB 口不能直接截获数据。
你问一下条码枪的厂商,能不能提供一个虚拟化串口,然后你通过这个串口,在程序中截获数据
kaizi_sun 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 luchuanbo 的回复:]
引用 16 楼 xiaowei_001 的回复:
可以,每个设备都有guid

有示例没??
[/Quote]

这个只是说帮你分析出usb设备,具体好象跟你的没关系的。我给你搞这个的例子。
string s;
string[] logDrives=new string[10];
logDrives = System.IO.Directory.GetLogicalDrives();//取所有盘符。
for (int i = 0; i < logDrives.Length; i++)
{
if (api.GetDriveType(logDrives[i]) == 2)//判断是不是usb类型
{
s += logDrives[i].ToString();

}
}
api函数调用:
public class api
{
[DllImport("winmm.dll", EntryPoint = "mciSendStringA")]
public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
[DllImport("kernel32.dll", EntryPoint = "GetVolumeInformationA")]
public static extern int GetVolumeInformation(string lpRootPathName, StringBuilder lpVolumeNameBuffer, int nVolumeNameSize, int lpVolumeSerialNumber, int lpMaximumComponentLength, int lpFileSystemFlags, string lpFileSystemNameBuffer, int nFileSystemNameSize);
[DllImport("kernel32.dll", EntryPoint = "GetDriveTypeA")]
public static extern int GetDriveType(string nDrive);
}
kaizi_sun 2009-09-22
  • 打赏
  • 举报
回复
进程检测,但没做过。可以去查查这方面的!
happyboyxq 2009-09-21
  • 打赏
  • 举报
回复
up
程序猿GG 2009-09-21
  • 打赏
  • 举报
回复
给贴子加分了, 大家能说具体点吗? 最好给个示例。
我是MSN: luchuanbo@hotmail.com
a421124394 2009-09-21
  • 打赏
  • 举报
回复
不懂!来学校一下
加载更多回复(8)

110,538

社区成员

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

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

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