C# 检测正在处理键盘输入的应用程序

C# 检测正在处理键盘输入的应用程序,c#,winapi,message-queue,C#,Winapi,Message Queue,我目前正在用C#编写一个程序,类似于一个特殊的游戏,我需要发送快速按键。我利用WinAPI函数模拟用户在按下热键时按下W。 我遇到的问题是,游戏无法处理如此快速的输入并将windows消息排队,这导致即使在释放热键后仍会出现延迟和持续的密钥垃圾邮件。我正在寻找一种方法,通过一些“请求-响应”消息来确定应用程序是否正在忙于处理消息,就像windows在应用程序挂起时所做的那样(“应用程序没有响应”)。 你能帮忙吗?我会尝试在模拟击键之间添加,以将它们降低到游戏可以处理的水平 我会尝试在模拟击键

我目前正在用C#编写一个程序,类似于一个特殊的游戏,我需要发送快速按键。我利用WinAPI函数模拟用户在按下热键时按下
W
。 我遇到的问题是,游戏无法处理如此快速的输入并将windows消息排队,这导致即使在释放热键后仍会出现延迟和持续的密钥垃圾邮件。我正在寻找一种方法,通过一些“请求-响应”消息来确定应用程序是否正在忙于处理消息,就像windows在应用程序挂起时所做的那样(“应用程序没有响应”)。
你能帮忙吗?

我会尝试在模拟击键之间添加,以将它们降低到游戏可以处理的水平

我会尝试在模拟击键之间添加,以将它们降低到游戏可以处理的水平

我将构建配置从x64切换到x86,延迟变小了,现在工作正常,延迟为50毫秒。我接受IInspectable的评论作为答案。

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

感谢您的回复-我已经有按键/释放延迟,并且正在播放一些调整值的节目,但这并没有解决问题。我回家后会仔细调查并总结结果。感谢您的回复-我已经有按键/释放延迟,正在播放一些调整值的游戏,但没有解决问题。我回家后会仔细调查并总结结果。用于检测繁忙窗口过程的Windows API调用是不可检测的。@I感谢您指出这一点!用于检测繁忙窗口过程的Windows API调用不可检测。@I感谢您指出这一点!