Delphi FAQ - Как избежать повторного запуска моего приложения?

ОГЛАВЛЕНИЕ


Как избежать повторного запуска моего приложения?

constructor TYourMainForm.Create(AOwner: TComponent); // override;
var
  wndclass : String;
  PrevInstance : HWnd;
begin
  wndclass := ClassName;
  PrevInstance := FindWindow(PChar(wndclass), nil);
  if PrevInstance <> 0 then
  begin
    ShowMessage(Format('Main form %s is already exist', [wndclass]));
    Application.Terminate;
  end
  else
    inherited Create(AOwner);
end;

Такое окно существует и в IDE (запускать придется из Explorer).

Leonid Troyanovsky <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.>