반응형
기본적으로 뮤텍스를 사용하여 중복실행 여부를 체크한다.
사용자 이벤트 정의를 해준 다음에,
이벤트를 받는 부분도 처리하자.
program Project; uses Forms, Windows, Dialogs, unt_Main in 'unt_Main.pas' {frm_Main}; var Mutex : THandle; {$R *.res} begin Mutex := CreateMutex(nil, True, 'BDGG');//'YourMutex'); if (Mutex <> 0 ) and (GetLastError = 0) then begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(Tfrm_Main, frm_Main); Application.Run; end else begin SendMessage(FindWindow('Tfrm_Main', '백두거간'), WM_SHOW_BDGG, 0, 0); Application.Terminate; end; end.
사용자 이벤트 정의를 해준 다음에,
const WM_SHOW_BDGG = WM_USER + $0001;
이벤트를 받는 부분도 처리하자.
// 프로토타입 선언 procedure WMUSER_SHOW_BDGG(var Message: TMessage); message WM_SHOW_BDGG; procedure Tfrm_Main.WMUSER_SHOW_BDGG(var Message: TMessage); begin // 여기서 다음 행동을 결정한다. // 프로그램을 보여줘도 되고, 종료해도 되고 end;
반응형
'Programming > Delphi' 카테고리의 다른 글
사운드 플레이 (0) | 2010.12.16 |
---|---|
임시폴더 경로 구하기 (0) | 2010.12.16 |
마우스 영역 지정하기 (마우스 가두기) (0) | 2010.12.16 |
델파이에서 아웃룩 사용하기 (준비단계) (0) | 2010.12.14 |
폼이 생성되고 해제될 때 이벤트 순서 (0) | 2010.10.12 |