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
[62377] 질문 있습니다.
초보 [] 776 읽음    2010-09-09 07:04
일단 코드를.....

bool __fastcall TForm1::WaitCommand(AnsiString Command){
	STARTUPINFO sInfo;
	memset(&sInfo, 0, sizeof(STARTUPINFO));
	sInfo.cb = sizeof(sInfo);
	sInfo.wShowWindow = SW_HIDE;
	SECURITY_ATTRIBUTES sAttr;
	sAttr.nLength = sizeof(sAttr);
	sAttr.lpSecurityDescriptor = NULL;
	sAttr.bInheritHandle = TRUE;
	PROCESS_INFORMATION pInfo;
	if(CreateProcess(NULL, Command.c_str(), &sAttr, &sAttr, TRUE,0, NULL, NULL ,
		&sInfo, &pInfo) != TRUE)return false;

	DWORD result;

	do{
		Application->ProcessMessages();
		result = WaitForSingleObject(pInfo.hProcess, 5);
	}while(result == WAIT_TIMEOUT);

	if (result == WAIT_FAILED)return false;
	CloseHandle(pInfo.hProcess);
	return true;
}

void __fastcall TForm1::Button1Click(TObject *Sender){
	WaitCommand("notepad.exe");
	ShowMessage("실행끝");
}



소스를 간단하게 설명하면 Button1 을 눌르면 노트패드를 실행 하고
기다리다가 종료 되면 "실행끝" 이라구 출력 합니다.

그런데 제 프로그램을 a.exe 라구 치구요, 노트 패트를 b.exe 이라구 치고
a.exe 에서 b.exe 실행한 상태에서 a.exe 작업관리자에서 강제 종료 시켜 버리면
b.exe 도 같이 종료 되게 하고 싶은데요
정상적인 종료라면  OnClose 같은 이벤트를 써서 TerminateProcess 로 종료시켜 버리면되지만
작업관리자로 강제로 종료 시켜 버리면 아무 이벤트도 오지 않습니다.

a.exe 를 작업관리자에서 강제 종료 되면 b.exe 도 같이 종료 되게 하고 싶은데
방법이 없을까요?

+ -

관련 글 리스트
62377 질문 있습니다. 초보 776 2010/09/09
62378     Re:질문 있습니다. 장성호 1012 2010/09/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.