![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Второй экземпляр приложения [D7, WinXP]
ККВ © (2003-04-08 09:03:00)Товарищи, подскажите пожалуйста. Использую сл. процедурку
для предотвращения запуска второго экземпляра приложения.
Все работает. Но как показать этот первый экземпляр
приложения (сделать окно активным) не знаю. Помогите пожалуйста.
Спасибо.
procedure TSpisReeFrm.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
begin
Application.MessageBox("
y-soft (2003-04-10 13:13:00) [1]Вопрос из серии частозадаваемых
Может это поможет http://www.delphimaster.ru/articles/limit.html
_ALEXey_ (2003-04-09 17:13:00) [2]Где-то здесь есть статья и про мьютексы, и про атомы, и про FindWindow. Поищи, почитай. Полезная вещь!
panov (2003-04-08 17:10:00) [3]Ищи в FAQ.
Diamond Cat (2003-04-08 14:52:00) [4]модно и CreateMutex а можно просто Findwindow, до создания формы
Erik (2003-04-08 13:02:00) [5]Используй Handle := CreateMutex(nil, true, ObjName);
И незабудь поставить проверку в самом файле проекта, а не в форме.
Soft (2003-04-08 12:17:00) [6]Пришли мне свой mail, с вопросом, вышлю модуль для одиночного запуска приложения. Модуль не мой, но работает отлично.
Cobalt (2003-04-08 11:12:00) [7]Знаешь, в справке (Win32 Developer"s Reference), рядом с именем функции "GetWindow" есть такая кнопка, с надписью "Group". Очень помогает.