Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[12899] 프로그램 실행하고 종료될때까지 기다리는 함수인데 재대로 안됩니다.
하두고 [hadugo] 1605 읽음    2009-09-07 13:15
델파이 7을 사용하는데요.
어플리케이션을 실행하고  종료될때까지 기다리는 함수입니다.

박지훈.임프님께서 올려주신걸 그대로 복사해서 함수로 사용할 수 있게 인수만 고친건데요.

WaitClose('aaa.exe') 이렇게 실행해보면 aaa.exe는 실행되는데
aaa.exe가 종료될때까지 기다리지 않고 바로 끝나버립니다.

제가 뭘 잘못한걸까요?

아래는 함수입니다.

Function WaitClose(vApp:String) : String;
var
  start: TStartupInfo;
  sec: TSecurityAttributes;
  pinfo: TProcessInformation;
  waitresult: Dword;
begin
  FillChar(start, sizeof(STARTUPINFO), 0);
  start.cb := sizeof(start);
  start.wShowWindow := SW_SHOWDEFAULT;
  sec.nLength := sizeof(sec);
  sec.lpSecurityDescriptor := nil;
  sec.bInheritHandle := true;

  if CreateProcess(PAnsiChar(vApp), nil, @sec, @sec, true, 0, nil, nil,  start, pinfo) <> true then
  begin
    Result := AnsiString('CreateProcess() failed: ') + IntToStr(GetLastError);
    exit;
  end;
  repeat
    Application.ProcessMessages;
    if NowClose then exit;
    waitresult := WaitForSingleObject(pinfo.hProcess, 100);
  until waitresult <> WAIT_TIMEOUT;

  if waitresult = WAIT_FAILED then
  begin
    Result := 'WaitForSingleObject() failed';
    exit;
  end;
  CloseHandle(pinfo.hProcess);
  Result := '';
end;

+ -

관련 글 리스트
12899 프로그램 실행하고 종료될때까지 기다리는 함수인데 재대로 안됩니다. 하두고 1605 2009/09/07
12900     Re:프로그램 실행하고 종료될때까지 기다리는 함수인데 재대로 안됩니다. 장성호 1520 2009/09/07
12901         Re:Re:프로그램 실행하고 종료될때까지 기다리는 함수인데 재대로 안됩니다. 하두고 1508 2009/09/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.