Unikanie powtórnego startu

0

Jak zrobić aby zabezpieczyć żeby program się drugi raz nie włączył? Chodzi oczywiście o Delphi :)

0

Przy uruchomieniu sprawdzaj procesy. Jeśli na liście jest twój program > 1x, to kończysz.

uses TlHelp32;

function ProcessExists(Nazwa: string): Boolean;
var
 H1: THandle;
 Proces1: TProcessEntry32;
begin
 H1 := CreateToolHelp32SnapShot(TH32CS_SNAPALL,0);
 Proces1.dwSize := SizeOf(Proces1);
 if Integer(Process32First(H1, Proces1)) <> 0 then
   repeat
    if AnsiLowerCase(Proces1.szExeFile) = AnsiLowerCase(Nazwa) then Result := True;
   until Integer(Process32Next(H1, Proces1)) = 0;
 CloseHandle(H1);
end;

//Wywołanie:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if ProcessExists('gg.exe') = True then ShowMessage('Jest uruchomiony')
 else ShowMessage('Nie jest uruchomiony');
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1