将keypressed发送到应用程序

时间:2014-03-04 20:08:57

标签: c# sendkeys

我正在尝试向应用发送虚拟按钮按钮。我尝试使用SendKeys.Send("{6}");,但应用程序接收它就像字符串或类似的东西,因为它不起作用。我想发送密钥的应用程序是VisualBoy Advance。我的代码只允许我使用GUI远程播放,所以当我在GUI上按左键时,VBA应该接收击键。

代码的一部分:

case "derecha":
    SendKeys.SendWait("{4}");
    break;

1 个答案:

答案 0 :(得分:0)

{}字符是特殊转义字符。我认为6不是转义值。查看已知逃脱的http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send(v=vs.110).aspx。例如,SendKeys.SendWait("{Right}");会发送右箭头键。

然而,

许多游戏和模拟器将使用低级键盘挂钩来读取键盘状态。很难找到使用Windows事件模型进行键盘阅读的游戏。 SendKeys仅发送到Windows邮件系统。您可能需要更低级别的发送事件的方式。

如果目标应用使用DirectInput,您可以使用SendInput中的user32.dll功能:

还有拦截库,但我自己从未使用过它: