SendMessage模拟点击按钮的问题 10
SendMessage(Btn_Handle,WM_LBUTTONDOWN,1,0);Sleep(10);SendMessage(Btn_Handle,WM_LBUTTO...
SendMessage(Btn_Handle,WM_LBUTTONDOWN,1,0);
Sleep(10);
SendMessage(Btn_Handle,WM_LBUTTONUP,0,0);
上面的代码是可以正常执行的,但是有一个问题,当系统比较繁忙时,可能会出现点击,而按钮没有反应的情况。
怎么判断按钮有没有响应,通过sendmessage的返回值行不行 展开
Sleep(10);
SendMessage(Btn_Handle,WM_LBUTTONUP,0,0);
上面的代码是可以正常执行的,但是有一个问题,当系统比较繁忙时,可能会出现点击,而按钮没有反应的情况。
怎么判断按钮有没有响应,通过sendmessage的返回值行不行 展开
4个回答
展开全部
全球::查找窗口GET HWND CWnd类的cwnd,通过GetSafeHwnd()的HWND。
我觉得你的问题是由于PostMessage的消息后,仍队列,标题为“提示”对话框中的另一条消息,你说的应该是鼠标点击的消息,点击鼠标消息的处理将被处理后一个按钮,点击该消息。所以,在这里你需要模拟鼠标点击的消息就可以了。
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);
没有SetCursorPos,移动鼠标会显示,你不应该需要移动的按钮。
我觉得你的问题是由于PostMessage的消息后,仍队列,标题为“提示”对话框中的另一条消息,你说的应该是鼠标点击的消息,点击鼠标消息的处理将被处理后一个按钮,点击该消息。所以,在这里你需要模拟鼠标点击的消息就可以了。
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);
没有SetCursorPos,移动鼠标会显示,你不应该需要移动的按钮。
展开全部
可以判断返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用BM_CLICK
这个是直接模拟按键的。另外如果没有获得焦点,建议发送两次这个消息。
参数两个0
这个是直接模拟按键的。另外如果没有获得焦点,建议发送两次这个消息。
参数两个0
追问
那能否解决系统繁忙时,可能按钮没有响应的问题?
SendMessage(Btn_Handle,BM_CLICK,0,0);
这样就能达到按下松开的效果了吗?
追答
你是模拟按下再放开。需要两个消息,其实BM_CLICK就相当于模拟你那个东西,只不过这个消息是连贯的。不是和你那样间断的发送的。所以不用担心系统忙。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会,提高回答,拿分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询