我如何将输入延迟(键盘和鼠标)引入系统



(我在QA工作,这确实是合法使用。)

我正试图想出一种方法来引入键盘和鼠标的强制输入延迟(在Windows中)。比如,当我按下键盘上的'A'时,我想在操作系统处理A之前引入一个非常轻微的延迟,或者如果我移动鼠标,我想要相同的鼠标速度,但是在它启动之前有相同的轻微延迟。这种延迟需要出现在任何线程中,而不仅仅是启动进程的线程。但是,延迟不必每次都精确到毫秒。

我甚至不确定如何着手设置这个。我有能力在我们需要的任何语言/环境中编写它,我只是不确定从哪里开始。我认为像AutoHotkey这样的东西可能能够做我想做的事情,本质上是让一个任意的键调用一个宏在发送那个键之前稍微延迟一下,但我不确定我可能需要什么函数调用来实现它。或者,也许在C中有一种方法可以在操作系统进入之前获得输入。我只是不确定。

谁能给我指出一些资源或语言/函数(s),可以完成这个?(甚至是已经存在的程序或服务)

如果您想要纯软件解决方案,恐怕您需要为您的键盘和鼠标开发一个过滤器驱动程序。非常昂贵的开发。

相反,您可以将鼠标和键盘插入其他地方,让输入消息通过网络传递,然后引入网络延迟。您可以使用第二台PC + VNC软件,或者第二台PC +软件USB/IP,或者像这样的硬件USB/IP设备。

有一个简单但不太可靠的方法。

你可以开发一个系统范围的WH_KEYBOARD_LL和WH_MOUSE_LL钩子,丢弃原始消息,过一段时间用SendInput API发送延迟的消息。这在大多数情况下应该是有效的,但是在某些情况下它不会,例如,我不希望在大多数电子游戏中发生任何事情,因为原始输入。

最新更新