quarta-feira, 25 de novembro de 2009

Usando mutex pra não deixar seu aplicativo ser executado mais de uma vez.

{1o. Coloque o código abaixo no seu projeto, clicando no menu Project/View Source.

2o. Adicione a Unit Windows no uses de seu projeto.



Esta dica serve para não deixar que seu aplicativo seja executado mais de uma vez, inclusive no Windows XP }


{$R *.res}
Var
MutexHandle: THandle;
hwind:HWND;
begin
MutexHandle := CreateMutex(nil, TRUE, 'MysampleAppMutex');
if MutexHandle <> 0 then
begin
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0, 'Este programa já está em execução!','', mb_IconHand);
CloseHandle(MutexHandle);
hwind:=0;
repeat
hwind:=Windows.FindWindowEx(0,hwind,'TApplication','My sampleapp');
until (hwind<>Application.Handle);
if (hwind<>0) then
begin
Windows.ShowWindow(hwind,SW_SHOWNORMAL);
Windows.SetForegroundWindow(hwind);
end;
Halt;
end
end;
Application.Initialize;
Application.CreateForm(Tf_principal, f_principal);
Application.Run;
end.

Nenhum comentário:

Postar um comentário