Есть такая штука Atom (см. Help).
|
|
program
SelfCheck;
uses
Windows,
Forms,
Unit1 in 'Unit1.pas' {Form1}; const
AtStr='MyProgram'; function CheckThis :
boolean; var
Atom: THandle; begin
Atom:= GlobalFindAtom(AtStr);
Result:= Atom <> 0;
if not result
then
GlobalAddAtom(AtStr); end;
begin
if not CheckThis
then begin // Запуск
программмы
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
GlobalDeleteAtom(GlobalFindAtom(AtStr)); //
!!!
end
else begin
MessageBox(0,'Нельзя
запустить две копии','Моя программа',0);
end; end. |
Элегантно и работает однозначно. Спасибо Славе Шубину. |