高手进!关于电子枪输入问题!
我的电脑上共用2把电子枪,当扫描条码后,程序该如何知道是哪把电子枪扫描的?有什么方法可以实现吗? --------------------编程问答-------------------- 这个问题有点难,不地不是不可以实现。
先要看是什么接口的枪,读取接口编号来区分。 --------------------编程问答-------------------- 关注! --------------------编程问答-------------------- 现在的电子枪一般都是usb接口,不是的话,也可以加个专接口,转为usb接口
这样通过对usb接口的控制,你可以控制具体的电子枪
例如对存储设备的控制:
C#实现USB接口的程序代码--------------------编程问答-------------------- 不是高手,来帮顶的! --------------------编程问答-------------------- 又遇端口问题。。。。帮顶 --------------------编程问答-------------------- 电子枪是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已被拔出");
}
}
}
}
但是,比如往textbox中输入时,程序该如何知道这是键盘输入?还是哪个电子枪输入? --------------------编程问答-------------------- 从串口缓冲读,哪个串口一目了然 --------------------编程问答-------------------- 楼上,能详细点吗 --------------------编程问答--------------------
你要求还真高,要么你判断键盘输入,要么判断输入时间,打字再快没有扫得快的。 --------------------编程问答-------------------- ms枪是通过键盘钩子实现的,和端口没什么大的关系............. --------------------编程问答--------------------
他是usb接口的,这个可以通过接口判断。 --------------------编程问答--------------------
usb说到底就是rs232口,也就是虚拟出来的串口,单单从端口去截流应该是截不到的,只有在键盘钩子上面下功夫 --------------------编程问答--------------------
不是从端口去截流,而是判断是几号口子。 --------------------编程问答-------------------- 因为现在业务需要,A电子枪扫描的要显示在A屏幕上,B电子枪扫描的要显示在B屏幕上.所以我要知道是谁扫描进来的 --------------------编程问答--------------------
朋友,不是吧,计算机不分配端口你设备能用?钩子?句柄都没有钩啥啊?
netbor说的很清楚,必须得到设备号(得这个你才能找句柄),得出地址范围了才可以对设备进行区分,然而这方面的API我接触不多,不方便多说。。。楼主可以在“我的电脑”-》“硬件设备”下看到端口号,可以直接拿来用,但是下次插就不是这个了。。。再看。。。 --------------------编程问答--------------------
你找把枪接usb口,看看设备管理器里有没有分配到你所谓的串口号,至少我是试过,我记得是直接模拟键盘输入的,当初我是用hotkey来捕获值的,但最好的方法还是用键盘钩子来捕获。
至于端口这类的我没尝试过,行的话你可以去试试 --------------------编程问答-------------------- 顶起!高手们帮帮忙啊!
补充:.NET技术 , C#