postmessage问题出在哪里?

zhanghen888 2003-10-09 03:37:26
向窗口发送模拟“向下”的按键,为何没有反映
if (CreateProcess("E:\\ct\\Cargador.exe",NULL,NULL,
NULL,FALSE,0,NULL,"E:\\ct",&si,&pi)) {
dwProcessId = pi.dwProcessId;
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
hwnd=FindWindow(0,"推箱子");

Sleep(10000);
PostMessage(hwnd,WM_KEYDOWN,0x00000028,0x01500001);

PostMessage(hwnd,WM_KEYUP,0x00000028,0x01500001);
Sleep(1000);
PostMessage(hwnd,WM_KEYDOWN,0x00000028,0x01500001);

PostMessage(hwnd,WM_KEYUP,0x00000028,0x01500001);
Sleep(1000);
PostMessage(hwnd,WM_KEYDOWN,0x00000028,0x01500001);

PostMessage(hwnd,WM_KEYUP,0x00000028,0x01500001);
...全文
71 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zihan 2003-10-09
  • 打赏
  • 举报
回复
先检查窗口是否找到,然后用sendmessage检查是否成功.
jbz 2003-10-09
  • 打赏
  • 举报
回复
检查一下:
hwnd=FindWindow(0,"推箱子");
看看hwnd是否为空。
我不懂电脑 2003-10-09
  • 打赏
  • 举报
回复
最好用SendMessage
PostMessage不判断是否成功就会返回。
duduwolf 2003-10-09
  • 打赏
  • 举报
回复
我曾经也用PostMessage尝试也失败了,可能是我自己对PostMessage和SendMessage没用弄明白的缘故,不过我用keybd_event,例子如下:
模拟一次回车Press
keybd_event( 13, 0, 0, 0);// press Enter
keybd_event( 13, 0, KEYEVENTF_KEYUP, 0);
佣工7001 2003-10-09
  • 打赏
  • 举报
回复
那个程序可能不是处理这个事件
我看用keybd_event来的保险些

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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