![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запретить запускать повторно уже запущенную программу? [D6, 2000]
ttt_111 © (2006-06-15 15:06:00)Как запретить запускать повторно уже запущенную программу?
ttt_111 (2006-06-15 15:37:00) [1]Спасибо за помощь.
dolmat (2006-06-15 15:20:00) [2]procedure TForm1.FormCreate(Sender: TObject);
VAR 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 Halt;
END;
Wnd := GetWindow (Wnd, gw_hWndNext);
END;
end;
DrPass (2006-06-15 15:10:00) [3]Создавать какой-либо глобальный объект (мютекс, memory-mapped файл, окно с уникальным именем класса или еще что фантазия родит), и при старте программы искать этот объект. Если есть - уже копия запущена, тогда сразу завершать работу. В любом ФАКе по программированию есть куча примеров на эту тему