向窗口发送按键消息,似乎被不明原因阻塞,求分析!

josxhn 2012-10-31 04:58:16

private static void TestSendMessage (int hwnd)
{
while (true) {
PostMessage (hwnd, WM_KEYDOWN, VK_A, 0);
Thread.Sleep(1000);
PostMessage (hwnd, WM_KEYDOWN, VK_D, 0);
Thread.Sleep(1000);
}
}


主要测试代码如上,
当我向Notepad发送消息时,一切正常,不论Notepad窗口是在前台或后台,都会轮流输入A和D;

当我向魔兽世界窗口中发送消息时,就出现问题了。因为A和D是向左和向右移动按钮,所以本来应该是人物往左移动一下,往右移动一下,然而不论魔兽世界窗口是在前台还是后台,人物都完全不会动。只有当我切换窗口时才会动(比如在魔兽世界和另一个窗口之间切换),切换一下,往左,再切换一下,往右。似乎按键消息被什么东西阻塞住了,只有在切换窗口时才会激活。

另外当我打开魔兽世界聊天输入栏时(就像Notepad编辑栏一样有光标闪动),又一切正常,聊天栏内会正常的轮流输入ADAD....

有人帮我分析下么?
...全文
129 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojunfei3 2012-11-01
  • 打赏
  • 举报
回复
现在很多游戏屏弊了什么sendmessage这类的东西了
crystal_lz 2012-10-31
  • 打赏
  • 举报
回复
貌似你的问题 很神奇 不过 我有一个问题 为嘛 你只按下 不 抬起?WM_KEYDOWN WM_KEYUP
josxhn 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

全局的 钩子吗
[/Quote]

可否说详细点?我没用钩子,,直接获取窗口句柄后发送的消息
XBodhi. 2012-10-31
  • 打赏
  • 举报
回复
全局的 钩子吗

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧