개념 : 프로그램 전역으로 뮤텍스를 생성해서 이후에 다시 뮤텍스를 생성하면 에러가 발생하는 것을 이용해서 프로그램을 한번만 실행되게 제어한다.
소스 :
어플리케이션의 메인 유닛에서 다음과 같이 작업한다.
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;
'Computer > Delphi' 카테고리의 다른 글
HTML에 문자 추가하기 (0) | 2003.05.09 |
---|---|
그래픽 카드가 RGB or BGR 지원 하는지 체크하기 (0) | 2003.04.28 |
C의 Union과 비슷하게 Record로 가변 타입 만들기 (0) | 2003.04.24 |
메모리 복사하기 (0) | 2003.04.23 |
델파이에서 WM_COPYDATA 이용한 데이타 전달 (0) | 2003.04.15 |
델파이에서 사용자 정의 메시지 및 프로시져 추가 (0) | 2003.04.15 |
델파이로 프로세스 종료하기 (0) | 2003.04.14 |
델파이에서 일반 폼 출력후에 메인폼 출력하기 (0) | 2003.04.14 |
Activex 사용자 Event 추가 (1) | 2003.04.08 |
try,finally,except 처리 (0) | 2003.02.21 |