我的程序里用WinExec函数调用了一个外部程序,我想问一下,当我关闭我的程序时怎么同时关闭这个外部程序

解决方案 »

  1.   

    打开
    procedure TForm1.Button1Click(Sender: TObject);
    var
      StartUpInfo: TStartUpInfo;   // holds startup information
    begin
      {initialize the startup information}
      FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
      with StartupInfo do  begin
        cb := SizeOf(TStartupInfo);
        dwFlags := STARTF_USESHOWWINDOW;
        wShowWindow := SW_SHOWNORMAL;
      end;  {launch a process}
      CreateProcess('c:\Windows\calc.exe', nil, nil, nil, False,
          NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
    end;关闭
    procedure TForm1.Button2Click(Sender: TObject);
    var
      ExitCode: DWORD;             // holds the process exit codebegin
      {terminate the process and retrieve the exit code}
      TerminateProcess(ProcessInfo.HProcess, 10);
      GetExitCodeProcess(ProcessInfo.HProcess, ExitCode);  {display the exit code}
      Label1.Caption := 'The exit code is '+Inttostr(ExitCode);
    end;
      

  2.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
       HWndCalc: HWnd;  // 窗口句柄
    begin
         // 查找“计算器”窗口
         HWndCalc:= FindWindow(nil, '计算器');
         if HWndCalc <> 0 then
            SendMessage(HWndCalc, WM_CLOSE, 0, 0);
    end;