6

程序是否可以阻止来自其他程序的键输入,但不能直接从用户的手敲击键盘上的键进行键输入?

例如:

ProgramA 包含一个文本字段。

ProgramB 是 Windows 屏幕键盘。

在 ProgramA 中选择文本字段后,我尝试按屏幕键盘程序上的字母“c”,但它没有出现在文本字段中。

但是,当我直接从键盘上按字母“c”时,它会出现在 ProgramA 的文本字段中。

我知道关键事件是如何工作的,它们是如何排队的,并且我已经看到了 C++ 中的 BlockInput 函数

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646290%28v=vs.85%29.aspx

但该功能只是阻止所有输入。

我遇到过以这种方式过滤输入的程序,但似乎无法弄清楚如何。我错过了一些完全明显的东西吗?

这个问题主要与Windows 7操作系统上的c++有关。

4

1 回答 1

1

您永远无法确定输入是否来自硬件。最简单的示例是自定义驱动程序,它将模拟由软件输入驱动的真实键盘。

一些奇特的想法可以将麦克风连接到设备,以收听声音/振动以进行输入过滤,但您的意思是完整的硬件解决方案或应用程序,将提供给个人用户吗?

于 2013-03-28T12:24:26.740 回答