반응형
기본적으로 뮤텍스를 사용하여 중복실행 여부를 체크한다.
사용자 이벤트 정의를 해준 다음에,
이벤트를 받는 부분도 처리하자.
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 |