Monday, September 24, 2007

Spuštění aplikace pouze jednou v rámci dané instance Windows

Poněkud krkolomný nadpis, uznávám. Ale hned si vysvětlíme, oč se jedná. Vzpomínáte si, jak jsme si kdysi ukazovali, jak zamezit několikanásobnému spuštění aplikace? Tento příklad zase zajistí, že vaše aplikace bude spustitelná pouze jednou během aktuálního běhu Windows. Pokud bude někdo chtít vaši aplikaci spustit podruhé, bude muset nejprve Windows restartovat. K tomu nám poslouží funkce GlobalAddAtom a GlobalFindAtom. Využití tohoto příkladu ponechám na vás, jistě sami na něco přijdete.
procedure TForm1.FormShow(Sender : TObject);
var
Atom : integer;
begin
if GlobalFindAtom('TEXT_IDENTIFIKUJICI_NASI_APLIKACI') = 0 then Atom := GlobalAddAtom('TEXT_IDENTIFIKUJICI_NASI_APLIKACI')
else
begin
ShowMessage('Tato aplikace může být spuštěna pouze jednou za běhu Windows. Pro opětovné spuštění je třeba Windows restartovat');
Close;
end;
end;

Labels: