![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мутексы, черт их подери... [D7, WinXP]
smok_er © (2002-12-08 00:10:00)Уважаемые!
Мутекс есть, но как по нему узнать хэндл окна? Это требуется для того, чтобы при повторном запуске приложения первая копия стала активной.
smok_er (2002-12-08 01:11:00) [1]Спасибо. Не совсем конечно то, что нужно, но буду пытаться что-нибудь сотворить...
Юрий Зотов (2002-12-08 00:52:00) [2]А какое отношение имеет мьютекс к окнам? Никакого. А раз они никак не связаны, то никак и не узнаешь.
А решение посмотрите здесь:
http://www.delphikingdom.com/helloworld/samples_win.htm
smok_er (2002-12-08 00:22:00) [3]Огромное спасибо, но...
В том то и дело, что нужно получить хэндл по мутексу, или как-то еще, но без использования Application.Title.
Sha (2002-12-08 00:16:00) [4]procedure ActivateOldInstance;
var
FoundWindow, FoundPopup : THandle;
begin;
try;
FoundWindow:=FindWindow(nil,PChar(AppTitle));
if FoundWindow<>0 then begin;
FoundPopup:=GetLastActivePopup(FoundWindow);
if IsIconic(FoundWindow) then ShowWindow(FoundWindow,SW_RESTORE);
BringWindowToTop(FoundWindow);
if FoundPopup<>0 then begin;
if IsIconic(FoundPopup) then ShowWindow(FoundPopup,SW_RESTORE);
BringWindowToTop(FoundPopup);
SetForegroundWindow(FoundPopup);
end;
end;
except end;
end;