Q&A

  • createProcess로 실행시킨 프로그램 종료시점 알아내기~
제가 만든 프로그램 실행중에 버튼을 눌러서
createprocess를 이용하여 다른 프로그램의 인스톨셋업을 실행하였습니다.
종료가 문제인데....
그 프로그램의 인스톨이 끝나면 자동적으로 프로그램도 같이 종료시키고 싶습니다.
(인스톨중에 제가 만든 프로그램은 사용하지 않습니다. 하지만 꼭 인스톨이 다
끝난후에 제 프로그램이 죽어야 합니다.)
어떻게 해야 하나요?
불쌍한 늙은 초보프래그래머에게 광명을....
1  COMMENTS
  • Profile
    최석기 2002.07.12 06:34
    WaitForSingleObject 함수를 사용하시면 되요.

    function ExecAndWait(const Filename, Params: string;
                               WindowState: word): boolean;
    var
      SUInfo: TStartupInfo;
      ProcInfo: TProcessInformation;
      CmdLine: string;
    begin
      //Dateinamen in Anfuhrungszeichen wg. langer Dateinamen mit Blanks
      CmdLine := '"' + Filename + '"' + Params;

      FillChar(SUInfo, SizeOf(SUInfo), #0);
      with SUInfo do
      begin
        cb := SizeOf(SUInfo);
        dwFlags := STARTF_USESHOWWINDOW;
        wShowWindow := WindowState;
      end;

      Result := CreateProcess(nil, PChar(CmdLine), nil, nil, FALSE,
                              CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
                              PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo);

      //Warten bis beendet
      if Result then
        WaitForSingleObject(ProcInfo.hProcess, INFINITE);
    end;