Ale*_*lex 2 c# keyboard keypress
我正在用 C# 编写一个程序,它必须模拟键盘的按键命令。
问题是 - 我需要模拟“真实”的键盘按钮点击,而不是假的。例如,据我所知:
当用户按下键盘上的任何按钮时 - 信号通过 USB 发送,然后通过键盘的驱动程序进行。
当使用 API 时(SendInput、SendKeys、KeyBoardEvent 或其他) - 我们绕过 USB 和驱动程序,因此基本上可以通过全局钩子方法跟踪这些类型的按下。
你如何模拟真实的按键?
我没有 C++ 知识,所以编写自定义驱动程序不是一种选择。
我不介意使用微控制器或任何额外的硬件“解决方案”,只要它便宜..
也许可以通过 USB 电缆连接两台 PC,以便将真实的键盘按钮按下信号从 PC2 发送到 PC1?
那么方法是什么?
您可以使用全局键盘钩子(WH_KEYBOARD_LL)识别使用 SendInput() 发送的键盘事件。它的回调方法LowLevelKeyboardProc接收KBDLLHOOKSTRUCT作为参数。
如果在 KBDLLHOOKSTRUCT.flags 中设置了 LLKHF_INJECTED 标志,则键盘事件是通过 SendInput() 注入的。