Запретить запуск второго экземпляра программы

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Когда у Господа Бога в течение получаса 15-ый раз завис компьютер, он решил выдать Б. Гейтсу последнее предупреждение. Результат вы знаете: пострадал Сиэтл.

В Windows 95, по-моему, это самый простой работающий вариант. Этот текст должен находиться в модуле проекта (добраться до него можно через меню View/Project Source).

program Project1;

uses

Forms,

Windows, // не забудьте эту строчку

Unit1 in ‘Unit1.pas’ {Form1};

{$R *.RES}

var

HM: THandle;

function Check: boolean;

begin

HM := OpenMutex(MUTEX_ALL_ACCESS, false, ‘MyOwnMutex’);

Result := (HM 0);

if HM = 0 then

HM := CreateMutex(nil, false, ‘MyOwnMutex’);

end;

begin

if Check then

Exit;

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

{/codecitation}

Добавить комментарий