用我的程序打开一个外部程序,如何等到它的窗口弹出后才执行后面的代码? ( 积分: 50 )

  • 主题发起人 主题发起人 023zcl
  • 开始时间 开始时间
0

023zcl

Unregistered / Unconfirmed
GUEST, unregistred user!
用我的程序打开一个外部程序,如何等到它的窗口弹出后才执行后面的代码?用WaitforSingleObject能实现吗?怎样实现?或者还有其他方法?
 
用我的程序打开一个外部程序,如何等到它的窗口弹出后才执行后面的代码?用WaitforSingleObject能实现吗?怎样实现?或者还有其他方法?
 
你可以通过一个Repeat循环,在其中等待,不停的检测那个窗口的句柄(用API FindWindow( LPCTSTR lpClassName, // pointer to class name<br> &nbsp; &nbsp;LPCTSTR lpWindowName // pointer to window name)<br>如果找到了,那么就继续,再循环中记得用 Processmessage 来释放消息.<br>你可以先用Delphi 自带的 WinSight找出 ClassName和WindowName
 
同意 shenxinaz 的观点!不加processmessage,你什么都干不了!
 
to Shenxinaz,uplink,我是个初入门者,Processmessage怎么用?望举例。我在MSDN里面看了半天也没看明白。
 
大概就这样吧<br>repeat <br>begin<br> if findwindow('TForm','MainProgram')&gt;0 then A:=1<br> Application.processmessage;<br> Application.processmessage;<br> Application.processmessage;<br> Application.processmessage;<br>end<br>until A=1;
 
谢谢Shenxinaz!我的目标已实现。在你的例子中“A:=1”后面加个分号就没有语法错误了。
 
后退
顶部