Jak zrobić aby zabezpieczyć żeby program się drugi raz nie włączył? Chodzi oczywiście o Delphi :)
0
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;
0
Prostszy sposób jest podany na: http://www.delphifaq.com/faq/delphi_windows_API/f362.shtml