有没有办法拦截USB条码扫描仪输入,利用它,然后将它传递给具有焦点的应用程序?
我们目前使用的条码扫描仪的加载顺序发货信息到Endicia和联邦快递。 当这些应用程序启动时,查询字段提供焦点。 当您扫描条形码,文本被传递到现场,然后将这些应用程序查找客户信息的其余部分。 这个过程的伟大工程。
现在,我们正试图通过实际的排序权与它应该是什么样的比较来限制挑错误。 为了做到这一点实时的,我需要拦截扫描仪输入,并用它检查所计算的重量与实际重量规模的数据库。 如果是关闭的一个显著保证金我要显示一个警告消息。
我还需要能够再经过条形码回到正确的字段在具有焦点,因此它可以查找出库货物数据的原始应用程序。
有没有人做过这样的事情? 你可以点我的一些资源上截获输入,然后鼓泡备份到具有重点领域?
注:这是在Windows环境中。 我最熟悉C#,但VB.net也将工作。
为了一台电脑,条形码扫描仪就像一个键盘,无需按键。 当您扫描条形码,扫描仪转换成条码键盘输入。 为了捕捉在第二程序的输入,你需要使用键盘钩子。
看看这个项目和该项目 。 您可以使用这些键盘钩子之一,你用你的条码扫描仪扫描任何数据都将被路由到您的程序太多的程序。
您可以使用SendInput
函数发送键击到目前集中的窗口,只要该窗口中有一个低于或等于完整性级别。 在网络上大量的信息调用从C#该功能。
许多条形码阅读器可以被配置为把一个任意键码在扫描的开始。 有它的输出,你有你的PC上定义为热键代码,以便启动程序或将其带到前台。 一旦你输入条形码,销毁或隐藏窗口恢复焦点转移到以前的应用程序,并调用SendInput。
您将要创建一个Windows窗体,并在窗体的Load事件,给予重点条形码应输入到文本框中。 然后在文本框的TextChanged事件,你需要的任何处理。
http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.aspx
误解了这个问题,尝试使用Google一点点:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/5213874a-603e-4378-835d-f6488f382d47