Форум: "Система";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
ВнизСлежение за открывающимися и закрывающимися окнами Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c