Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以在Windows中有选择地阻止键盘输入?怎么用?_C#_Windows - Fatal编程技术网

C# 是否可以在Windows中有选择地阻止键盘输入?怎么用?

C# 是否可以在Windows中有选择地阻止键盘输入?怎么用?,c#,windows,C#,Windows,我的应用程序(C#)需要与USB条形码扫描仪接口,它基本上就像键盘一样工作。它输入条形码,最后输入一个回车键 应用程序需要在后台运行,所以我使用低级键盘钩子来获取和过滤全局键事件中的条形码。这部分已经开始工作了 我的问题是:如果是条形码,我不希望其他应用程序获得键盘(扫描仪)输入。不应干扰正常的关键事件。总之,有选择地阻止关键事件。这可能吗 我的应用程序是C语言,但是我不需要C++或者更多的本地解决方案,只要在C语言中集成就可以了。p> 谢谢 其他信息: 整个想法都是在后台进行的,即使它不是活动

我的应用程序(C#)需要与USB条形码扫描仪接口,它基本上就像键盘一样工作。它输入条形码,最后输入一个回车键

应用程序需要在后台运行,所以我使用低级键盘钩子来获取和过滤全局键事件中的条形码。这部分已经开始工作了

我的问题是:如果是条形码,我不希望其他应用程序获得键盘(扫描仪)输入。不应干扰正常的关键事件。总之,有选择地阻止关键事件。这可能吗

我的应用程序是C语言,但是我不需要C++或者更多的本地解决方案,只要在C语言中集成就可以了。p> 谢谢

其他信息:

  • 整个想法都是在后台进行的,即使它不是活动的。它监视全局键事件流并发现条形码序列(已经用Hook实现)。最重要的是,它不会干扰正常的键盘事件或其他应用程序的操作。这就是为什么我不能阻止所有关键事件或使其成为最重要的事件

  • 我已经可以拿到条形码了。我需要防止其他应用程序获取条形码


  • 在键盘钩子的末尾,您将调用以执行链中的下一个钩子

    我建议将一些独特的签名作为条形码的前导,以便您的键盘挂钩程序可以将其检测为从扫描仪输入的有效条形码。现在,当您获得此数据时,只需跳过对“CallNextHookEx”的调用,这样链将中断,其他程序将无法获取您的条形码。否则-调用“CallNextHookEx”,以便链可以继续


    注:这是我的理论,我自己从未尝试过完全相同的事情。但是,我在C++和C语言中编写了钩子。

    在你的键盘钩子的结尾,你会调用来执行链中的下一个钩子。< /P> 我建议将一些独特的签名作为条形码的前导,以便您的键盘挂钩程序可以将其检测为从扫描仪输入的有效条形码。现在,当您获得此数据时,只需跳过对“CallNextHookEx”的调用,这样链将中断,其他程序将无法获取您的条形码。否则-调用“CallNextHookEx”,以便链可以继续

    注:这是我的理论,我自己从未尝试过完全相同的事情。但是,我在C++和C语言中写了钩子。

    检查这个项目。

    它也是用C语言编写的,因此会使您的编码更容易。听起来您只需要连接全局按键事件,并通过设置已处理的值或类似的内容来抑制它

    查看此项目


    它也是用C语言编写的,因此会使您的编码更容易。听起来您只需要连接全局按键事件,并通过设置已处理的值或类似的内容来抑制它

    所以,基本上你想让你的应用程序在按键处理方面成为“最顶尖的”?@Justin,这不是问题所在。我已经可以过滤掉条形码了。@AKFish我的错-我会正确地阅读问题…@Reniuz否。该应用程序不能是最顶级的。它需要在不活动时工作。最重要的是,不要同时把其他应用程序搞乱。@Justin一点也不。谢谢你对我的问题的关注。所以基本上你想让你的应用程序在按键处理方面成为“最顶尖的”?@Justin这不是问题所在。我已经可以过滤掉条形码了。@AKFish我的错-我会正确地阅读问题…@Reniuz否。该应用程序不能是最顶级的。它需要在不活动时工作。最重要的是,不要同时把其他应用程序搞乱。@Justin一点也不。谢谢你关心我的问题。