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
[14786] Re:Re:Re: 혹시나 답변에 도움이 될까 해서 에러화면 올립니다.
박지훈.임프 [cbuilder] 2262 읽음    2013-09-28 00:07
그렇다면, 윈도우 OS 종료 동작중에는 새로운 프로세스의 시작을 막는 모양이군요.
생각해보니 당연한 일입니다. 윈도우를 종료시키느라 프로세스들을 하나씩 차례로 닫고 있는데 새로운 프로세스가 실행되어버리면 종료는 물건너갈테니까요. 저라도 그렇게 설계했을 것 같습니다.

그렇다면 방법은 아무래도.. 이런 시나리오로 가야 할 것 같습니다.
1. 윈도우 종료를 일단 거절한다. (WM_QUERYENDSESSION 메시지의 결과값으로 윈도우 종료를 막을 수 있었던 것으로 기억합니다)
2. 실행할 프로세스를 실행해준다.
3. 다시 윈도우 종료를 시킨다.

간단하지요. ㅎㅎ
기대하신 것보단 넘 단순무식한 답이겠습니다만, 이 방법밖에 없지 않을까 싶습니다.


한상훈 님이 쓰신 글 :
: 임프님 말씀대로 CreateProcess로 해도 마찬가지고 WinExec로 해도 에러 메세지는 똑같네요.
:
: 에러 화면 캡쳐해서 올리니 도와주시면 감사하겠습니다.
:
:
:
: 박지훈.임프 님이 쓰신 글 :
: : 확실한 건 아니고.. 그냥 언뜻 든 생각인데요.
: : ShellExecute 대신 WinExec나 CreateProcess 등의 다른 함수를 쓰면 되지 않을까 싶습니다.
: : ShellExecute는 explorer.exe(탐색기)를 먼저 실행시키고 그 안에서 다시 cmd를 실행시키는 것이라, 시스템 종료시 탐색기가 종료된 상태에서 이상 동작할 가능성이 많아보입니다.
: :
: :
: : 한상훈 님이 쓰신 글 :
: : : private
: : :     procedure WMQueryEndSession(var Msg : TWMQueryEndSession); message WM_QueryEndSession;
: : :     Procedure WMEndSession(var Msg : TWMEndSession); message WM_ENDSESSION;
: : :
: : : 이렇게 선언했구요.
: : :
: : :
: : : procedure TForm1.WMQueryEndSession(var Msg : TWMQueryEndSession) ;
: : : begin
: : :   Msg.Result := 0;
: : :  ShellExecute(.....);
: : :   Msg.Result := 1;
: : : end;
: : :
: : : procedure TForm1.WMEndSession(var Msg : TWMEndSession) ;
: : : begin
: : :   inherited;
: : : end;
: : :
: : :
: : : 이렇게 처리했습니다.
: : :
: : : ShellExecute 부분에서는 "CMD.exe /C run.bat" 를 실행하려고 하구요.
: : :
: : : 그런데 문제가 생겼습니다.
: : :
: : : Windows가 종료될때 CMD.exe가 실행이 되지 않고 "응용프로그램을 초기화하지 못했습니다.."라는 에러 메세지를 띄우고
: : : 명령을 실행하지 못하고 그냥 강제종료되어 버립니다.
: : :
: : : 에러메세지 없이 ShellExecute명령을 실행할 방법이 없을까요?

+ -

관련 글 리스트
14782 시스템종료이벤트에서 도스명령 실행시 에러메세지 한상훈 2045 2013/09/26
14783     Re:시스템종료이벤트에서 도스명령 실행시 에러메세지 박지훈.임프 2389 2013/09/26
14785         Re:Re: 혹시나 답변에 도움이 될까 해서 에러화면 올립니다. 한상훈 2064 2013/09/27
14786             Re:Re:Re: 혹시나 답변에 도움이 될까 해서 에러화면 올립니다. 박지훈.임프 2262 2013/09/28
14787                 Re:Re:Re:Re: 혹시나 답변에 도움이 될까 해서 에러화면 올립니다. 한상훈 2259 2013/09/28
14784         Re:Re:시스템종료이벤트에서 도스명령 실행시 에러메세지 한상훈 2272 2013/09/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.