Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Слежение за открывающимися и закрывающимися окнами   Найти похожие ветки 

 
and ©   (2003-10-02 22:04) [0]

Добрый день. Идея в том, чтобы приложение следило за открывающимися окнами и, если окно не развернуто - то разворачивало бы. Следить за списком имен окон - фигово, т.к. они все время меняются (например, иексплорер). Пробовал следить за дескрипторами окон. Но с открытием нового или закрытием окна все они сбиваются.
Что посоветуете?


 
Ihor Osov'yak ©   (2003-10-03 01:38) [1]

хук? (hook) Хотя не пойму, зачем кому-то это надо?


 
Dimich1978 ©   (2003-10-03 13:17) [2]

FindWindow
Перебор всех окон, и проверять свернуто ли одно из них, если свернуто, то разворачиваем.
ShowWindow(findwindow("#32770","Диспетчер задач Windows"),sw_hide);
Так можно скрыть как вообщем и развернуть.\, заменив sw_hide.
В хелпе про showwindow ответ свой найдешь.
Но че то с поставленной задачей непонятки.


 
zLo   (2003-10-03 14:49) [3]

господа, прога уже максимизирует и т.д. проблема с постоянно изменяющимися дескрипторами окон.


 
and ©   (2003-10-03 14:51) [4]

Просто нужна прога, которая бы висела себе тихо в трее и разворачивала новооткрывшиеся окна. Ничего особенного.
Перебирать все время все окна подряд и все время отслеживать, какие из них развернуты или нет, имхо, не есть гуд. Нужно чтобы прога разворачивала только новые окна.


 
jonni ©   (2003-10-03 16:13) [5]

ochen" rposto:

stavhis hook na WH_SHELL i lovish sebe spokoyno HSHELL_WINDOWCREATED.... poluchaesh handle okna i delaesh s nim vse chto hochesh......


 
DVM ©   (2003-10-05 14:33) [6]


> Ihor Osov"yak © (03.10.03 01:38) [1]
> хук? (hook) Хотя не пойму, зачем кому-то это надо?

Это надо для программ-оболочек. Больше ничего мне на ум не приходит.


> Но с открытием нового или закрытием окна все они сбиваются.

Ничего не сбивается. Если все правильно построено, то способ тоже работоспособный.


 
DVM ©   (2003-10-05 14:33) [7]


> Ihor Osov"yak © (03.10.03 01:38) [1]
> хук? (hook) Хотя не пойму, зачем кому-то это надо?

Это надо для программ-оболочек. Больше ничего мне на ум не приходит.

> Но с открытием нового или закрытием окна все они сбиваются.

Ничего не сбивается. Если все правильно построено, то способ тоже работоспособный.

> Что посоветуете?

Хук WH_SHELL.


 
and ©   (2003-10-06 02:49) [8]

jonni, DVM: спасибо.
WH_SHELL с HSHELL_WINDOWCREATED работают как часы. Только пришлось повозиться, чтобы саму себя не разворачивала.


 
Lony ©   (2003-10-07 15:41) [9]

And, ты поставил хук через Shell32.dll? Если да, то можешь написать, как ты это сделать через VCL. А то в WinAPI получается, а через VCL не могу.


 
jonni ©   (2003-10-08 02:08) [10]

to Lony:

interesno a kak ti sebe predstavlyaesh postavit" hook cherez VCl??

est"toka odna edinstavennaya funkciya dlya hook eto
SetWindowsHookEx i kak ne kruti k VCL on malo otnosit"sya.....


 
DVM ©   (2003-10-08 15:39) [11]

Lony © (07.10.03 15:41) [9]
Твоя поблема в том, что VCL окном поймать зарегистрированное тобой сообщение, которое не является константой.
Есть (мне известны) 3 способа это сделать.
Писать мне лень, но могу сказать, что SetWindowLong тебе поможет. Переопредели оконную процедуру VCL окна. В своей поцедуре лови и обрабатывай то сообщение, а остальные сообщения отправляй старой процедуре окна. Это первый способ.



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
14-36825
Думкин
2003-11-19 04:29
2003.12.12
С днем рождения! 19 ноября.


3-36550
rosl
2003-11-13 08:27
2003.12.12
запрос sql


1-36718
konstantinov
2003-12-02 00:44
2003.12.12
Оптимизация кода


1-36666
Great DAN
2003-11-30 00:40
2003.12.12
Как разделить форму?


1-36680
Gimick
2003-12-03 01:01
2003.12.12
Как сделать приложение (не сервис) не видимым в таскменеджере?