【问题标题】:Detect application being busy handling keyboard input检测应用程序正忙于处理键盘输入
【发布时间】:2015-11-29 04:40:17
【问题描述】:

我目前正在为需要发送快速击键的特定游戏编写类似于speed-autoclicker 的C# 程序。我利用 WinAPI 函数 SendInput 来模拟用户在按住热键时按下 W

我遇到的问题是游戏无法快速处理输入并将 Windows 消息排队,这导致即使在热键被释放后也会出现延迟和持续的密钥垃圾邮件。我正在寻找一种方法来找出应用程序是否正忙于通过一些“请求响应”消息处理消息,就像当应用程序挂起时 Windows 似乎在做的那样(“应用程序没有响应”)。

你能帮忙吗?

【问题讨论】:

  • 用于检测繁忙窗口过程的 Windows API 调用是 SendMessageTimeout
  • @IInspectable 感谢您指出这一点!

标签: c# winapi message-queue


【解决方案1】:

我会尝试在模拟击键之间添加Thread.Sleep(),以将它们减慢到游戏可以处理的水平。

【讨论】:

  • 感谢您的回复 - 我已经存在按键/释放延迟,并且正在调整值,但它没有解决问题。回家后我会仔细调查并总结结果。
【解决方案2】:

我将构建配置从 x64 切换到 x86,延迟减少了,现在可以正常工作,延迟 50 毫秒。不过,我会接受 IInspectable 的评论作为答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2012-09-10
    相关资源
    最近更新 更多