如题,我在DEPHI7.0中用SHELLEXECUTE函数调用了一个外部EXE文件,但是当这个EXE文件还没有执行完毕,紧接着的下面的其他代码就开始执行了,我如何能等外部EXE文件执行完毕后才执行后面的代码呢?还有,有什么办法可以在外部EXE和当前的PROJECT传递参数?我目前的做法是通过文件来传递参数,还有更好的方法吗?
各位高手帮帮忙啊!

解决方案 »

  1.   

    1 CreateProcess
      WaitForSingleObject2 ParamStr 
      ParamCount
      

  2.   

    var
    si:TStartUpInfo;
    pi:TProcessInformation;
    ph:Thandle;
    r:Cardinal;
    begin
    FillChar(si,sizeof(si),#0);with si do
    begin
      cb:=sizeof(si);
      dwFlags:=StartF_UsesTDHandles or STARTF_USESHOWWINDOW;
      lptitle:=nil;
      wShowWindow:=SW_Show;
    end;
    CreateProcess(nil,'c:\windows\system32\calc.exe',nil,nil,true,DETACHED_PROCESS,nil,nil,si,pi);
    r:=GetLastError();
    if r<>0 then
       begin
         ShowMessage('启用应用程序失败!');
         exit;
       end;WaitForSingleObject(pi.hProcess,INFINITE);
    ShowMessage('应用程序结束!');
    测试过,可以放心使用的
      

  3.   

    Baidu就OK的问题
    发帖,俺都嫌麻烦的