我做了一个模拟键盘输入的后台程序,目的是在启动我的另一应用程序后,它开始模拟键盘向应用程序输入,但应用程序在某些Edit输入完成按下回车键后,要访问网络数据库,根据不同结果可能要弹出对话框,这样就使模拟程序运行不正常,怎样才能等到输入回车后得到结果后在模拟下一键输入,我用Sleep试过,但由于网络原因,返回结果的时间无法确定。如何才能在返回结果后再继续运行模拟程序进行模拟键输入?谢谢。
"根据不同结果可能要弹出对话框"
试试根据对话框是否存在来等待。
while (1)
{
if (FindWindow(...))//对话框还在
break;
Sleep(1000);//1秒后重试
}
等到输入回车后?在PreTranslateMessage中判断是否是按下ENTER?
老 拉
这种情况最好不用模拟键盘输入,建议对Edit用SetWindowText,对按钮用PostMessage模拟按下动作。
GetWindowThreadProcessId
的第二个参数返回进程ID,返回值是创建窗口的线程ID