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
[14087] Re:Re:Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요?
대박왕 [] 2110 읽음    2012-02-03 13:49
하두고 님이 쓰신 글 :
: 빌더님 이번에도 도움을 주시네요.
: 델파이로 수정하는건 어떻게든 해보면 될것 같습니다.
: 감사합니다.
:
: 아참 그리고 앞에 WorkerW를 찾는거요.
: 지금도 못하고 있어요.
: 쉽게 될 줄 알고 달려들었는데 제 공부가 미천하다보니....^^
:
: 빌더 님이 쓰신 글 :
: : C++로 짠다면, 다음과 같은 식으로 구현하면 되겠죠.
: :
: :
: : HANDLE gMutexHandle = NULL;
: : 
: : WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
: : {
: : 	try
: : 	{
: : 		try
: : 		{
: : 			gMutexHandle = CreateMutexW(NULL, true, L"Global/Application/Mutex");
: : 			if( gMutexHandle && !GetLastError() ) {
: : 				Application->Initialize();
: : 				Application->MainFormOnTaskBar = true;
: : 				Application->CreateForm(__classid(TForm1), &Form1);
: : 				Application->Run();
: : 			}
: : 			else {
: : 				PROCESS_INFORMATION pi;
: : 				CreateProcessW(NULL, Application->ExeName.w_str(), NULL, NULL, true, 0, NULL, NULL, NULL, &pi);
: : 				Application->Terminate();
: : 
: : 			}
: : 		}
: : 		catch (Exception &exception)
: : 		{
: : 			Application->ShowException(&exception);
: : 		}
: : 		catch (...)
: : 		{
: : 			try
: : 			{
: : 				throw Exception("");
: : 			}
: : 			catch (Exception &exception)
: : 			{
: : 				Application->ShowException(&exception);
: : 			}
: : 		}
: : 	}
: : 	__finally {
: : 		if( gMutexHandle ) {
: : 			CloseHandle( gMutexHandle );
: : 			OutputDebugStringW(L"Application Terminated...");
: : 		}
: : 	}
: : 	return 0;
: : }
: : 
: : 

: :
: : 위와 같은 식으로 구현하면 기존의 프로세스는 종료되고, 새로운 프로세스가 생성되게 됩니다.
: : 델파이로 구현하는 코드는 생략 합니다.


오오~ 신기하네여
저는 OutputDebugStringW(L"Application Terminated..."); <==== 이걸 Beep();으로 바꿔 놓고
C++ 빌더로 컴파일해서 탐색기에서 실행해봤는데 빕~~ 소리 나는걸 보면 프로그램이 종료되는게
확실한데~ 신기한건 마치 아무 일도 없었던것 처럼 ~ 그 모양 그위치 그대로 생성되네여~
오~ 신기하다 ㅋㅋ

+ -

관련 글 리스트
14083 중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 하두고 2110 2012/02/02
14088     Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 빌더 2331 2012/02/04
14089         Re:Re:빌더님 감사합니다. 하두고 1826 2012/02/06
14084     Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 빌더 1861 2012/02/03
14085         Re:Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 하두고 1827 2012/02/03
14087             Re:Re:Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 대박왕 2110 2012/02/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.