프로그램 중복실행을 방지하려고 GlobalAddAtom과 GlobalFindAtom함수를 아래와 같이 썼습니다.
var
atom:Word; //전역변수
procedure TForm1.FormCreate(Sender: TObject);
begin
if GlobalFindAtom('ISRUNNING') = 0 then
atom := GlobalAddAtom('ISRUNNING')
else begin
MessageDlg('프로그램이 이미 실행중입니다.', mtWarning,[mbOK], 0);
Halt;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
GlobalDeleteAtom(atom);
end;
그런데 프로그램을 한번만 실행해도 메세지가 뜨는군요. 뭐가 잘못되었나요?
> 프로그램 중복실행을 방지하려고 GlobalAddAtom과 GlobalFindAtom함수를 아래와 같이 썼습니다.
>
> var
> atom:Word; //전역변수
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> if GlobalFindAtom('ISRUNNING') = 0 then
> atom := GlobalAddAtom('ISRUNNING')
> else begin
> MessageDlg('프로그램이 이미 실행중입니다.', mtWarning,[mbOK], 0);
> Halt;
> end;
> end;
>
> procedure TForm1.FormDestroy(Sender: TObject);
> begin
> GlobalDeleteAtom(atom);
> end;
>
> 그런데 프로그램을 한번만 실행해도 메세지가 뜨는군요. 뭐가 잘못되었나요?
>
위에서와 마찬가지로 똑같이 코딩하면 한번만 실행되고 다음번 실행시
실행이 않돼던데요..
즉, 코딩에는 잘못이 없는것 같은데....
코딩말고 다른 부분이 이상인가봐요...