Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » API

Как не допустить запуск второй копии программы XI

Есть такая штука 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.

Элегантно и работает однозначно. Спасибо Славе Шубину. 

Категория: API | Добавил: DelphiAiX (28.04.2012)
Просмотров: 416 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]