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
[56136] Re:ShellExcute 질문이요
장성호 [nasilso] 1688 읽음    2009-02-12 14:46
먼저 님께서 하고자 하는게 정확히 무엇인지 궁금하네요

dzb.exe , dzx.exe , dzc.exe  이 세개의 실행파일을 실행 시키고
해당 프로그램이 종료하면 그 실행파일을 삭제하려고 한다구요?



프로그램에서 직접 실행했으니..
굳이 실행파일명으로 process를 찾을 필요가 없을거 같은데요


프로그램을 실행할때 ShellExecute  대신

ShellExecuteEx 나 CreateProcess로 실행하세요

그러면 방금실행한 process의 handle을  바로 얻을 수 있습니다.

그런다음 WaitForSingleObject 로 그 프로세서가 종료될때까지 기다리면 되구요
//  WaitForSingleObject(hProcess,INFINITE);

여러개를 한번에 실행하고 여러개의 종료를 기다려야 한다면
WaitForMultipleObjects 로 기다려도 되구....


뭐 그런식으로 하면 됩니다.

그럼..



시온스 님이 쓰신 글 :
: 지금 임시적으로 프로그램을 실행하는 것을 만들고있는데요.
:
: 대충 3개정도 되는 다른 프로그램들이 먼저 시작되고나서 그 프로그램들이 종료되면 그 파일들을 삭제해주려고해요.
:
:
:
:
: HWND hwnd;
: HINSTANCE instance;
: if((instance = ShellExecute( hwnd, "OPEN", "dzb.exe", NULL, NULL, 0)) == false)
: {
: 	ShowMessage("DZB.exe를 실행할 수 없습니다.");
: 	return;
: }
: 
: // dzb가 종료될때까지 기다림
: 
: if((instance = ShellExecute( hwnd, "OPEN", "dzx.exe", NULL, NULL, 0)) == false)
: {
: 	ShowMessage("DZX.exe를 실행할 수 없습니다.");
: 	return;
: }
: 
: // dzx가 종료될때까지 기다림
: 
: if((instance = ShellExecute( hwnd, "OPEN", "dzc.exe", NULL, NULL, 0)) == false)
: {
: 	ShowMessage("DZC.exe를 실행할 수 없습니다.");
: 	return;
: }
: 

:
:
: 이런식으로 돼 있는데요.
:
: 여기서 프로세스가 종료될때까지 기다리는걸 어떻게 처리해야할지 모르겠어요;
:
: findwindow로 dzc.exe를 찾는방법도 모르거니와 이렇게해서는 안되구요.;
:
: hinstance나 hwnd받아온걸로 종료될때까지 기다리고싶은데요. 방법이 없나요?

+ -

관련 글 리스트
56132 ShellExcute 질문이요 시온스 1302 2009/02/12
56136     Re:ShellExcute 질문이요 장성호 1688 2009/02/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.