Доброго времени суток дорогие друзья. В данной статье речь у нас пойдет о том, как можно узнать: запущено ли у нас приложение на Delphi. То есть, если наше приложение уже запущено, то второй раз его не запускать, а выдавать сообщение об этом пользователю.
Часто бывают такие случаи, когда Вам необходимо, чтобы на одном компьютере была запущена только одна копия приложения, вот в данной статье мы и рассмотрим этот момент.
То есть, когда пользователю необходимо будет запустить еще одну копию приложения, которое мы разработали на Delphi, то ему будет показываться сообщение о том, что уже якобы одна копия запущена и больше нельзя.
Ну что, давайте тогда приступать. Начнем мы с того, что нам необходимо создать проект на Delphi, достаточно одной простой формы и все. Далее нам необходимо открыть модуль для написания кода. Модуль открываем главной формы, то есть Project.dpr, в него мы будем писать код. Для этого нажмите на кнопку View Unit (Ctrl+F12) и выберите модуль главной формы (это мы делали, когда рассматривали статью о том, как можно в Delphi создать форму по условию). Все, после того как модуль у нас открыт, нам необходимо будет написать следующий код:
program Project1;
uses
IniFiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Dialogs, StdCtrls, Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};
{$R *.res}
varH: THandle;
begin
H:=CreateMutex(nil, True, 'кодовое слово');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Application.MessageBox('Программа уже запущена!','Внимание',MB_OK+MB_ICONINFORMATION);
Exit;
end;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
FreeAndNil(Ini);
Application.Run;
end.
Данный код необходимо писать перед Application.Initialize, а в самой первой строке, когда мы создаем мьютекс, я указал «кодовое слов» — это то слово, которое будет использоваться в Вашей программы и только она его будет знать. Так что придумайте его и впишите туда.
Вот примерно и все, главное чтобы последовательность кода была такая же, как я показал. Теперь Вы можете попробовать запустить наше приложение, а затем запустить вторую копию, вместо ее запуска, перед Вами появится сообщение, которое мы указали тут.
Теперь Вы знаете, как легко сделать на Delphi, чтобы запретить запуск второй копии программы. Все очень просто, удачи Вам и до новых встреч!
Также советуем почитать на PressDev.RU
Короткая ссылка: http://pressdev.ru/?p=4482
uses IniFiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls
зачем столько лишних модулей подключено?
Переменная
varH: THandle;
(видимо не скопировался пробел при копипасте?)
не нужна и не используется.