C# 阻止或吞下键笔划到达其他线程

C# 阻止或吞下键笔划到达其他线程,c#,barcode-scanner,C#,Barcode Scanner,我正在编写一个系统托盘应用程序,它可以监听usb条形码扫描仪,并在读取匹配的条形码后启动一个internet站点。条形码扫描仪像键盘一样提供按键序列输入。 基于本文 我成功地编写了以下功能: 该程序侦听所有WM_输入消息,并捕获扫描的条形码,即使它在后台运行且不在焦点位置 该程序知道是用户键入键盘还是条形码扫描仪扫描,并仅选择来自扫描仪的输入,但由于扫描仪的作用类似于键盘,因此条形码将作为常规按键顺序发送到聚焦的前景窗口 我唯一需要做的是: 3.如果输入来自条形码扫描仪->阻止其发送到任何其他应

我正在编写一个系统托盘应用程序,它可以监听usb条形码扫描仪,并在读取匹配的条形码后启动一个internet站点。条形码扫描仪像键盘一样提供按键序列输入。 基于本文

我成功地编写了以下功能:

该程序侦听所有WM_输入消息,并捕获扫描的条形码,即使它在后台运行且不在焦点位置

该程序知道是用户键入键盘还是条形码扫描仪扫描,并仅选择来自扫描仪的输入,但由于扫描仪的作用类似于键盘,因此条形码将作为常规按键顺序发送到聚焦的前景窗口

我唯一需要做的是: 3.如果输入来自条形码扫描仪->阻止其发送到任何其他应用程序或线程。假设你在写一封电子邮件,然后扫描——我不想在你的电子邮件中输入条形码

请帮助:是否可以阻止所有其他线程的按键?怎么做

谢谢, 哈扎尔

看看链接
此方法应阻止所有输入,但我希望您的扫描仪仍能通过。

本文介绍了如何执行此操作,并说明了所涉及的问题。那篇链接文章完全错了。使用低级键盘挂钩过滤击键要容易得多,只需从回调返回非零值即可。有很多C代码实现了一个WH_键盘LL钩子。@hanspassant,很有趣。您如何知道按键是否来自带有低级挂钩的条形码扫描仪?