我用shellexecute(handle,'open','scan.exe',nil,nil,SW_HIDE);调用了一个外部程序,他要执行一段时间,我还要等他执行完才能做下一步,请问怎么跟踪他到执行完毕。(注意SW_HIDE)

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/620/620694.xml?temp=.705105
      

  2.   

    找出它的窗体
    然后Assigned(ScanForm)来判断
      

  3.   

    function  winexecandwait3(filename:string;visibility:integer):dword;
     var
      zappname:array[0..255] of char;
      zcurdir:array[0..255] of char;
      workdir:string;
      startupinfo:tstartupinfo;
       processinfo:tprocessinformation;
    begin
      strpcopy(zappname,filename);
      getdir(0,workdir);
      strpcopy(zcurdir,workdir);
      fillchar(startupinfo,sizeof(startupinfo),#0);
      startupinfo.cb:=sizeof(startupinfo);
      startupinfo.dwFlags:=startf_useshowwindow;
      startupinfo.wShowWindow:=visibility;
    if not createproces(nil,zappname,nil,nil,false,create_new_console   or normal_priority_class,
                         nil,nil,startupinfo,processinfo) then result:=0
     else
      begin
       waitforsingleobject(processinfo.hProcess,infinite);
       getexitcodeprocess(processinfo.hProcess,result);
      end;
     end;用该函数调用外部程序,(将参数visibility设为1)
      

  4.   

    to  strongq(火血狼)
    哪个不行啊 我要等哪个调用的程序执行后读他创建的txt到我的memo中
    你的程序执行是会“can't open file xx”