当前位置:编程学习 > C#/ASP.NET >>

高手进!关于电子枪输入问题!

我的电脑上共用2把电子枪,当扫描条码后,程序该如何知道是哪把电子枪扫描的?
有什么方法可以实现吗? --------------------编程问答-------------------- 这个问题有点难,不地不是不可以实现。
先要看是什么接口的枪,读取接口编号来区分。 --------------------编程问答-------------------- 关注! --------------------编程问答-------------------- 现在的电子枪一般都是usb接口,不是的话,也可以加个专接口,转为usb接口

这样通过对usb接口的控制,你可以控制具体的电子枪

例如对存储设备的控制:

C#实现USB接口的程序代码
C#代码 
namespace ConsoleApplication1   
{   
class Program   
{   
static void Main(string[] args)   
{   
USB usb;   
usb = new UDisk();//插入U盘   
usb.OutputFile();//从U盘读出文件   
usb.InputFile();//往U盘写入文件   
usb.Dispose();//拔出U盘    
Console.WriteLine("");   
usb = new MDisk();//插入移动硬盘   
usb.OutputFile();//从移动硬盘读出文件   
usb.InputFile();//往移动硬盘写入文件   
usb.Dispose();//拔出移动硬盘   
Console.WriteLine("");   
usb = new MP4();//插入MP4   
usb.OutputFile();//从MP4读出文件   
usb.InputFile();//往MP4写入文件   
usb.Dispose();//拔出MP4    
Console.ReadKey();   
}   
  
//USB接口   
public interface USB : IDisposable   
{   
void OutputFile();//读出文件   
void InputFile();//写入文件   
}   
  
//U盘   
public class UDisk : USB   
{   
public UDisk()   
{   
Console.WriteLine("U盘准备就绪...");   
}   
public void OutputFile()   
{   
Console.WriteLine("从U盘读出文件");   
}   
public void InputFile()    
{   
Console.WriteLine("往U盘写入文件");   
}   
public void Dispose()   
{   
Console.WriteLine("U盘已被拔出");   
}   
}   
  
//移动硬盘   
public class MDisk : USB   
{   
public MDisk()   
{   
Console.WriteLine("移动硬盘准备就绪...");   
}   
public void OutputFile()   
{   
Console.WriteLine("从移动硬盘读出文件");   
}   
public void InputFile()    
{   
Console.WriteLine("往移动硬盘写入文件");   
}   
public void Dispose()   
{   
Console.WriteLine("移动硬盘已被拔出");   
}   
}   
  
//MP4   
public class MP4 : USB   
{   
public MP4()   
{   
Console.WriteLine("MP4准备就绪...");   
}   
public void OutputFile()   
{   
Console.WriteLine("从MP4读出文件");   
}   
public void InputFile()    
{   
Console.WriteLine("往MP4写入文件");   
}   
public void Dispose()   
{   
Console.WriteLine("MP4已被拔出");   
}   
}   
}   
}  
--------------------编程问答-------------------- 不是高手,来帮顶的! --------------------编程问答-------------------- 又遇端口问题。。。。帮顶 --------------------编程问答-------------------- 电子枪是USB接口的,串口号我也可以读出来.
但是,比如往textbox中输入时,程序该如何知道这是键盘输入?还是哪个电子枪输入? --------------------编程问答-------------------- 从串口缓冲读,哪个串口一目了然 --------------------编程问答-------------------- 楼上,能详细点吗 --------------------编程问答--------------------
引用 6 楼 xu_xiao_jing_1 的回复:
电子枪是USB接口的,串口号我也可以读出来.
但是,比如往textbox中输入时,程序该如何知道这是键盘输入?还是哪个电子枪输入?


你要求还真高,要么你判断键盘输入,要么判断输入时间,打字再快没有扫得快的。 --------------------编程问答-------------------- ms枪是通过键盘钩子实现的,和端口没什么大的关系............. --------------------编程问答--------------------
引用 10 楼 alldj 的回复:
ms枪是通过键盘钩子实现的,和端口没什么大的关系.............

他是usb接口的,这个可以通过接口判断。 --------------------编程问答--------------------
引用 11 楼 netbor 的回复:
引用 10 楼 alldj 的回复:
ms枪是通过键盘钩子实现的,和端口没什么大的关系.............

他是usb接口的,这个可以通过接口判断。


usb说到底就是rs232口,也就是虚拟出来的串口,单单从端口去截流应该是截不到的,只有在键盘钩子上面下功夫 --------------------编程问答--------------------
引用 12 楼 alldj 的回复:
引用 11 楼 netbor 的回复:
引用 10 楼 alldj 的回复:
ms枪是通过键盘钩子实现的,和端口没什么大的关系.............

他是usb接口的,这个可以通过接口判断。


usb说到底就是rs232口,也就是虚拟出来的串口,单单从端口去截流应该是截不到的,只有在键盘钩子上面下功夫


不是从端口去截流,而是判断是几号口子。 --------------------编程问答-------------------- 因为现在业务需要,A电子枪扫描的要显示在A屏幕上,B电子枪扫描的要显示在B屏幕上.所以我要知道是谁扫描进来的 --------------------编程问答--------------------
引用 10 楼 alldj 的回复:
ms枪是通过键盘钩子实现的,和端口没什么大的关系.............


朋友,不是吧,计算机不分配端口你设备能用?钩子?句柄都没有钩啥啊?

netbor说的很清楚,必须得到设备号(得这个你才能找句柄),得出地址范围了才可以对设备进行区分,然而这方面的API我接触不多,不方便多说。。。楼主可以在“我的电脑”-》“硬件设备”下看到端口号,可以直接拿来用,但是下次插就不是这个了。。。再看。。。 --------------------编程问答--------------------
引用 15 楼 icdbow 的回复:
引用 10 楼 alldj 的回复:
ms枪是通过键盘钩子实现的,和端口没什么大的关系.............


朋友,不是吧,计算机不分配端口你设备能用?钩子?句柄都没有钩啥啊?

netbor说的很清楚,必须得到设备号(得这个你才能找句柄),得出地址范围了才可以对设备进行区分,然而这方面的API我接触不多,不方便多说。。。楼主可以在“我的电脑”-》“硬件设备”下看到端口号,可以……

你找把枪接usb口,看看设备管理器里有没有分配到你所谓的串口号,至少我是试过,我记得是直接模拟键盘输入的,当初我是用hotkey来捕获值的,但最好的方法还是用键盘钩子来捕获。
至于端口这类的我没尝试过,行的话你可以去试试 --------------------编程问答-------------------- 顶起!高手们帮帮忙啊!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,