Computer/Delphi
프로그램 중복 실행 방지(한번만 실행되게.)
Gu Youn
2003. 4. 15. 00:12
개념 : 프로그램 전역으로 뮤텍스를 생성해서 이후에 다시 뮤텍스를 생성하면 에러가 발생하는 것을 이용해서 프로그램을 한번만 실행되게 제어한다.
소스 :
어플리케이션의 메인 유닛에서 다음과 같이 작업한다.
windows유닛 추가
var
Mutex : THandle;
begin
Mutex := CreateMutex(nil, True, 'NoDuplicate');
//GetLastError : 이미 이 프로그램의 뮤텍스가 존재하면 183 리턴
if (Mutex <> 0 ) and (GetLastError = 0) then
begin
//프로그램 처음 시작되는 경우 코드
Application.CreateForm(TSendMemoForm, SendMemoForm);
Application.Run;
if Mutex <> 0 then CloseHandle(Mutex);
end
else
begin
//이미 프로그램이 실행되있는데 다시 실행하는 경우.
Application.MessageBox('프로그램이 이미 실행 중입니다.','경고',MB_OK);
end;
소스 :
어플리케이션의 메인 유닛에서 다음과 같이 작업한다.
windows유닛 추가
var
Mutex : THandle;
begin
Mutex := CreateMutex(nil, True, 'NoDuplicate');
//GetLastError : 이미 이 프로그램의 뮤텍스가 존재하면 183 리턴
if (Mutex <> 0 ) and (GetLastError = 0) then
begin
//프로그램 처음 시작되는 경우 코드
Application.CreateForm(TSendMemoForm, SendMemoForm);
Application.Run;
if Mutex <> 0 then CloseHandle(Mutex);
end
else
begin
//이미 프로그램이 실행되있는데 다시 실행하는 경우.
Application.MessageBox('프로그램이 이미 실행 중입니다.','경고',MB_OK);
end;