2

我正在用 C# 编写一个程序,它必须模拟键盘的按键命令。

问题是 - 我需要模拟“真实”的键盘按钮点击,而不是假的。例如,据我了解:

  • 当用户按下键盘上的任何按钮时 - 信号通过 USB 发送,然后通过键盘驱动程序继续。

  • 当使用 API(SendInput、SendKeys、KeyBoardEvent 或其他)时 - 我们绕过 USB 和驱动程序,因此基本上可以通过全局挂钩方法跟踪这些类型的按下。

你如何模拟逼真的按键?

  • 我没有 C++ 知识,所以编写自定义驱动程序不是一种选择。

  • 我不介意使用微控制器或任何其他硬件“解决方案”,只要它便宜..

  • 也许可以通过 USB 电缆连接两台 PC,以便将真实的键盘按钮按下信号从 PC2 发送到 PC1?

那么方法是什么?

4

1 回答 1

5

您可以使用全局键盘挂钩 (WH_KEYBOARD_LL) 识别使用 SendInput() 发送的键盘事件。它的回调方法LowLevelKeyboardProc接收 KBDLLHOOKSTRUCT作为参数。

如果在 KBDLLHOOKSTRUCT.flags 中设置了 LLKHF_INJECTED 标志,则键盘事件被 SendInput() 注入。

于 2012-09-09T12:34:43.037 回答