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