개념 : 프로그램 전역으로 뮤텍스를 생성해서 이후에 다시 뮤텍스를 생성하면 에러가 발생하는 것을 이용해서 프로그램을 한번만 실행되게 제어한다.

소스 :

어플리케이션의 메인 유닛에서 다음과 같이 작업한다.
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;
Posted by Gu Youn
,