有没有办法让下一行代码等待上一行执行完成再执行呢???内详(50分)

  • 主题发起人 主题发起人 jxgxy
  • 开始时间 开始时间
J

jxgxy

Unregistered / Unconfirmed
GUEST, unregistred user!
比如:

winexec('cmd.exe /c netsh -f temp.txt',sw_hide);
ShowMessage('OK');

第一行可能要执行10秒钟以上,我调试的时候是OK马上显示出来的可上一行还在后台执行,有没有办法等第一行执行完毕,再显示OK呢,为盼!
 
如果你知道大概的运行时间,你可以延迟。加一个延时的过程,可以设定延时时间
 
这时间不能确定的,老点的机器可能要半分钟到几分钟不等,一般都是10秒左右.
 
通过查找handle 不知道可以不 .

这个问题好像有人提过了.
 
能具体点吗,有代码更好,急盼.
 
可以的.
var
Retuwindowshand:dword;
SysFilestr: string;
Syspath:pchar;
begin
Result := True;
Getmem(Syspath,MAX_PATH);
getwindowsdirectory(syspath,MAX_PATH);
SysFilestr := Syspath+'/system32/cmd.exe';
FreeMem(syspath);
Sleep(100);
retuwindowshand :=findwindow(nil,Pchar(SysFilestr));
while retuwindowshand <> 0 do
begin
Application.ProcessMessages;
Sleep(500);
Retuwindowshand := Findwindow(nil,Pchar(SysFilestr));
end;
ShowMessage('OK');
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
552
import
I
后退
顶部