SendMessage没有效果,PostMessage去有效果,我哪里用错了?
时间:2011-12-23
来源:互联网
代码如下。
C/C++ code
目的是在个窗口按下F1键。
另附问:
为什么VK_F1等键能用,而VK_0之类的键,发送不过去呢?还是别的原因?
C/C++ code
CWnd *pCWnd; pCWnd=FindWindow(NULL,"无标题 - 记事本"); //公式 if(hWnd) { pCWnd->SetWindowPos(NULL, 0, 0, 100, 100, SWP_NOSIZE); Sleep(1000); pCWnd->SendMessage(WM_KEYDOWN, VK_F1, 0); pCWnd->SendMessage(WM_KEYUP, VK_F1, 0); } else { AfxMessageBox("没有找到这个窗口"); }
目的是在个窗口按下F1键。
另附问:
为什么VK_F1等键能用,而VK_0之类的键,发送不过去呢?还是别的原因?
作者: zjq9931 发布时间: 2011-12-23
你要先明白PostMessage和SendMessage的区别 ,一个是阻塞的一个是非阻塞的
而你说的 VK_F1 VK_0两个,一个可能是已经实现的,另一个需要自己实现消息映射
而你说的 VK_F1 VK_0两个,一个可能是已经实现的,另一个需要自己实现消息映射
作者: hezhe1008 发布时间: 2011-12-23
VK_F1和VK_0的有区别是因为VK_0必须在记事本的EDIT子窗口下才有输入焦点,也就是说发送VK_0按键消息的窗口句柄是错误的。
发送VK_0则要先获得记事本EDIT子窗口的句柄,然后把VK_0的按键消息发送给它就可以了
发送VK_0则要先获得记事本EDIT子窗口的句柄,然后把VK_0的按键消息发送给它就可以了
作者: a7320760 发布时间: 2011-12-23
C/C++ code
我写的一段代码,但是不知道为什么每次都是两个a(0x41的代码是a)
#include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]) { HWND hWnd = FindWindow(NULL, "无标题 - 记事本"); HWND hEdit = FindWindowEx(hWnd, NULL, "Edit", NULL); PostMessage(hEdit, WM_KEYDOWN, 0x41, 0); PostMessage(hEdit, WM_KEYUP, 0x41, 0); system("PAUSE"); return EXIT_SUCCESS; }
我写的一段代码,但是不知道为什么每次都是两个a(0x41的代码是a)
作者: a7320760 发布时间: 2011-12-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28