Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мутексы, черт их подери... [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо