Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-36706
Dysan
2003-12-02 14:43
2003.12.12
Tchart


1-36609
Bel
2003-11-29 11:47
2003.12.12
QReport - композитно-композитный отчет.


7-36856
cezar
2003-10-07 20:02
2003.12.12
Часовые пояса


1-36624
Навичек
2003-12-01 12:11
2003.12.12
Консольное приложение вылетает на end.


1-36627
pashaz
2003-11-29 08:49
2003.12.12
SMExport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский