各位高手,情况是这样的:
本人写了一个程序,使用Win API对第三方程序进行各种窗口操作。
例如往第三方程序的某个文本框发送文本,然后点击其某个确认键。
但是,当本人点击某个确认键以后第三方程序会弹出一个确认框(确认/取消)。
于是本人将本人的程序添加代码:根据确认框关键字寻找句柄,然后SendMessage确认/取消/关闭改确认框。
但问题是:当本人的程序运行到第三方程序弹出确认框的时候,本人的程序就被暂停了,后面的代码(添加的代码)不运行,直到本人人工操作确认/取消/关闭第三方程序确认框后,后面的代码才继续执行,但显然已经没有意义了,原因是本人的后面的代码就是用于操作确认框的。
问一下高手怎么样解决这个问题?谢谢!
本人写了一个程序,使用Win API对第三方程序进行各种窗口操作。
例如往第三方程序的某个文本框发送文本,然后点击其某个确认键。
但是,当本人点击某个确认键以后第三方程序会弹出一个确认框(确认/取消)。
于是本人将本人的程序添加代码:根据确认框关键字寻找句柄,然后SendMessage确认/取消/关闭改确认框。
但问题是:当本人的程序运行到第三方程序弹出确认框的时候,本人的程序就被暂停了,后面的代码(添加的代码)不运行,直到本人人工操作确认/取消/关闭第三方程序确认框后,后面的代码才继续执行,但显然已经没有意义了,原因是本人的后面的代码就是用于操作确认框的。
问一下高手怎么样解决这个问题?谢谢!
解决方案
4
本人猜应该是第三方窗口弹出的对话框阻塞了你的程序。本人的建议是你想办法挂接系统的MessageBox函数,当捕获到调用消息框的时候再做其他操作。
35
PostMessage只负责将消息放到消息队列中,不确定何时及能否处理
SendMessage要等到受到消息处理的返回码(DWord类型)后才继续
PostMessage执行后马上返回
SendMessage必须等到消息被处理后才会返回。
—
请注意,SendMessage要等待被调用方返回消息,它弹出了对话框,当然无法给你返回消息。
你用PostMessage试试
SendMessage要等到受到消息处理的返回码(DWord类型)后才继续
PostMessage执行后马上返回
SendMessage必须等到消息被处理后才会返回。
—
请注意,SendMessage要等待被调用方返回消息,它弹出了对话框,当然无法给你返回消息。
你用PostMessage试试
1
所以说 这个时候 你需要的是 PostMessage 而不是 SendMessage
注意两者的区别
注意两者的区别