现在的电子枪一般都是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已被拔出");   
}   
}   
}   
}  

解决方案 »

  1.   

    电子枪是USB接口的,串口号我也可以读出来.
    但是,比如往textbox中输入时,程序该如何知道这是键盘输入?还是哪个电子枪输入?
      

  2.   

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

  3.   


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

  4.   

    因为现在业务需要,A电子枪扫描的要显示在A屏幕上,B电子枪扫描的要显示在B屏幕上.所以我要知道是谁扫描进来的
      

  5.   


    朋友,不是吧,计算机不分配端口你设备能用?钩子?句柄都没有钩啥啊?netbor说的很清楚,必须得到设备号(得这个你才能找句柄),得出地址范围了才可以对设备进行区分,然而这方面的API我接触不多,不方便多说楼主可以在“我的电脑”-》“硬件设备”下看到端口号,可以直接拿来用,但是下次插就不是这个了再看
      

  6.   

    你找把枪接usb口,看看设备管理器里有没有分配到你所谓的串口号,至少我是试过,我记得是直接模拟键盘输入的,当初我是用hotkey来捕获值的,但最好的方法还是用键盘钩子来捕获。
    至于端口这类的我没尝试过,行的话你可以去试试