Привет, Гость! Регистрация RSS
Суббота, 04.05.2024
Главная » Статьи » Основные статьи сайта

Как запретить запуск второго экземпляра программы
А вы замечали, что созданная вами программа может запускаться несколько раз одновременно? Если нет, запустите свою программу, затем, не завершая ее,  попробуйте еще раз запустить. И вы убедитесь. Хотя мне кажется, что многие из вас уже с этим сталкивались, и, возможно, до сих пор не нашли выхода из этой ситуации. 
Так вот, exe файл программы можно запустить неограниченное количество раз, тем самым на вашем ПК образуется много одновременно работающих копий. А чтобы избежать этого, можно запретить запуск второго экземпляра программы. Это можно сделать, добавив следующие несколько строчек кодов в ваш проект:
uses
Windows

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;
Этот текст должен находиться в модуле project. Добраться до него можно через меню View/Project Source. Либо нажать Ctrl + F12 и выбрать Project1.

В итоге ваш код будет выглядеть примерно таким образом:
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.

P.s. О том, как сделать кондиционер своими руками - читайте на страницах сайта ecoenergy.org.ua.

Нравится
Категория: Основные статьи сайта | Добавил: Dark_Green (05.02.2013)
Просмотров: 7346 | Теги: запуск программы, запретить, копия | Рейтинг: 3.0/13

Другие статьи
»
Процедуры и функции в Delphi (0)
»
TreeView: отображение иерархических данных (0)
»
Бегущая строка в Delphi (0)
»
Использование приложений MDI и SDI (0)
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]