Delphi. Запрещаем второй запуск.

Опубиковано: 08.06.2008 г., автор: , просмотров: 41311

Уроки програмирования на языке Delphi.

В этом уроке я хочу показать вам как недопустить запуск второй копии вашей программы:

Procedure TForm1.FormCreate(SEnder: TObject);
Var ExtEndedStyle:dword;
Wnd : hWnd;
buff : Array[0.. 127] of Char;
Begin
Wnd := GetWindow(Handle, gw_HWndFirst);
While Wnd < > 0
DO
Begin
If (Wnd < > Application.Handle)
and (GetWindow(Wnd, gw_Owner) = 0) Then
Begin
GetWindowText (Wnd, buff, sizeof (buff ));
If StrPas (buff) = Application.Title Then
Begin Halt;
End;
End;
Wnd := GetWindow (Wnd, gw_hWndNext);
End;
End;

Пользуйтесь наздоровье !



Похожие материалы

Последние из рубрики

Руслан 18 Feb 2012 в 00:00 #
Подскажите как эту ошибку исправить:
[Error] Unit1.pas(31): Expression expected but ′>′ found
Ruslan 18 Feb 2012 в 00:00 #
Помогите пожалуйста с этой ошибкой при компиляции возникает:
[Error] Unit1.pas(31): Expression expected but ′>′ found
Chysti 08 Dec 2011 в 00:00 #
С HALT выдавало ошибку.... поменял на Halt; --> Application.Terminate; и все заработало.
OlegN 21 Nov 2011 в 00:00 #
Хммм. CG2009 код работает .Антивирусами не проверял,может и будут вякать,с них станется :( . Но по-моему лучше в Create обзывать окно , а потом FindWindow. (а вообще - СПС)
Максим 24 Oct 2011 в 00:00 #
У меня оба антивируса заругались на эту программу, но код работает. Я одноэкземплярное приложение другим способом создавал: с помощью функции FindWindow.

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