如何判断一个软件运行完毕!我想的是写一个扫描器,端口扫描器,S扫描器,当S扫描器运行完毕以后,自动执行下一个程序!该怎样判断啊!意思就是先运行一个软件,运行完毕后,在自动运行下一个软件!希望高手可以帮我下!

解决方案 »

  1.   

    可以采取执行并等待的策略:
    function WinExecAndWait32(APath: PChar; ACmdShow: Integer;
      ATimeout: Longword): Integer;
    var
      vStartupInfo: TStartupInfo;
      vProcessInfo: TProcessInformation;
    begin
      FillChar(vStartupInfo, SizeOf(TStartupInfo), 0);
      with vStartupInfo do
      begin
        cb := SizeOf(TStartupInfo);
        dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
        wShowWindow := ACmdShow;
      end;
      if CreateProcess(nil, APath, nil, nil, False,
        NORMAL_PRIORITY_CLASS, nil, nil,
        vStartupInfo, vProcessInfo) then
        Result := WaitForSingleObject(vProcessInfo.hProcess, ATimeout)
      else Result := GetLastError;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      WinExecAndWait32('notepad.exe', SW_SHOW, INFINITE);
    end;
      

  2.   

    zswang 总是抢生意,哎,晚来一步
      

  3.   

    -_-!!! 一个接一个执行WinExecAndWait32('c:\temp\a.exe', SW_SHOW, INFINITE);
    WinExecAndWait32('c:\temp\c.exe', SW_SHOW, INFINITE);
    WinExecAndWait32('c:\temp\d.exe', SW_SHOW, INFINITE);
    .....