是否存在快速且可预测的“SendKeys”替代方案?

时间:2015-03-25 01:29:20

标签: c# .net performance keypress sendkeys

我试图为在线游戏编程AI,通过抓住游戏区域的屏幕区域,分析像素,然后用一系列按键进行响应。基本上,它是这样的:

  • 程序抓取当前帧的图片
  • 程序分析像素数据和计划
  • 程序发送firefox适当的按键进行响应。

我目前在第3步遇到问题 - 发送按键。由于我正在为游戏构建AI,因此必须实时发送按键。但是,我注意到SendKeys.Send()......

  • 在我发出请求和firefox执行请求之间有明显的延迟
  • 它不可预测且速度慢,按键几乎不会按时执行
  • 由于每个处理过的按键之间存在较大的间隙,因此移动缓慢而且不稳定

有没有办法可预测地将keypress事件实时发送到程序(例如firefox)?就像我考虑用程序模拟按键一样,我想到的命令可以完成完全同样的事情,就像我按下键盘上的键,而不是一个不可靠和延迟的方法将按键发送到当前关注的任何内容。如果有人能够轻松解决这个问题,或者对我能做些什么不同的任何意见,那会很棒吗?谢谢!

1 个答案:

答案 0 :(得分:1)

Windows Input Simulator包装器库使用SendInput而不是SendKeys。

  

SendInput通常是发送击键的首选方法   鼠标点击是因为它具有出色的速度和可靠性。最多的   条件,即使发送很长时间,SendInput几乎是瞬时的   字符串。由于SendInput速度非常快,因此它也更可靠。

AutoHotKey Send