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

C++빌더 Q&A
C++Builder Programming Q&A
[37498] Re:WinExec로 실행한것이 종료되었는지 알고 싶습니다.
강요찬(난나) [kyc3003] 2357 읽음    2004-10-06 16:49
김유미 님이 쓰신 글 :
: WinExec를 이용해서 콘솔 프로그램을 실행했습니다.
: 옵션은 SW_HIDE 를 주었습니다.
: WinExec의 실행이 종료되기 전에 다음으로 진행하는 문제가 있네요
: 종료된것만 확인하고 다음으로 갈수 있으면 좋겠습니다.

============================================

아래 함수를 사용해 보시죠.
프로세스에 실행파일이 있다면 지금도 실행중, 없다면 종료되었겠지요...
아래 함수에서는 전달해 줄 파일명으로 소문자를 사용해야만 합니다...
도움이 되셨기를...
그럼.

(사용 예)  bool bb=IsAlreadyEXE("aaa.exe");

bool __fastcall IsAlreadyEXE(AnsiString exename)
{
  HANDLE  snapshot;
  PROCESSENTRY32 processinfo;

  processinfo.dwSize = sizeof(processinfo);
  snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if (snapshot == NULL)   return false;

  bool isin=false,status = Process32First(snapshot, &processinfo);
  while (status) {
    String buffer;
    int length;
    buffer.SetLength(512);
    length = sprintf(buffer.c_str(), "%08x", processinfo.th32ProcessID);

    buffer.SetLength(length);
    AnsiString one=AnsiString(processinfo.szExeFile);
    if (one.LowerCase().Pos(exename)) {
      isin=true;
      break;
    }

    status = Process32Next(snapshot, &processinfo);
  }
  return isin;
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
37495 WinExec로 실행한것이 종료되었는지 알고 싶습니다. 김유미 1248 2004/10/06
37498     Re:WinExec로 실행한것이 종료되었는지 알고 싶습니다. 강요찬(난나) 2357 2004/10/06
37499         Undefined symbol 에러가 나네요 김유미 1072 2004/10/06
37503             Re:Undefined symbol 에러가 나네요 강요찬(난나) 1408 2004/10/06
37508                 감사합니다. 김유미 1032 2004/10/07
37517                     Re:감사합니다. 유영인 Cuperido 995 2004/10/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.