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

Вниз

Не совсем трэй...   Найти похожие ветки 

 
IrBisoff ©   (2004-03-24 18:48) [0]

Насчёт того, как поместить что-либо в трэй я спрашивать не стану. =)
Вместо этого меня сейчас интересует, как бы наоборот сделать - поместить окно трэя в моё приложение. =\
А то ни одной идеи в голову не лезет, даже не знаю с чего начать..
Да, а ещё и таскбар туда неплохо бы.. Но пока что я обхожусь тем, что кидаю на свой все видимые окна. Не совсем то, но главное что работает. =)
Буду чрезвычайно благодарен за любую помощь..


 
Burmistroff   (2004-03-24 20:04) [1]

Элементарно - узнаешь названия классов нужных окон (TrayNotifyWnd, Shell_TrayWnd), получешь их хендлы (FindWindow, если не ошибаюсь), затем SetParentWindow


 
DVM ©   (2004-03-25 09:24) [2]

Создать свое окно с классом Shell_TrayWnd и если эксплорер в данный момент не запущен, то этому вашему окну будут приходить сообщения WM_COPYDATA из которых надо выделить те, что связаны с добавлением/удалением/изменением/и т.д. иконок в область уведомлений.

Если надо сделать так, чтобы это все работало при запущенном эксплорере, то надо повесить хук на сообщения эксплорера и вылавливать те, что относятся к иконкам.

Вобщем вопрос не очень простой.


> Да, а ещё и таскбар туда неплохо бы..

Таскбар же придется создать полностью самому. Как создать кнопку в рунтайм наверное объяснять не надо, а вот создание/удаление/изменение окон надо отслеживать поставив хук WH_SHELL.


 
IrBisoff ©   (2004-03-26 13:08) [3]

Спасибо, DVM. Только есть ещё маленький момент. =)


> надо повесить хук на сообщения эксплорера и вылавливать
> те, что относятся к иконкам


А можно пример, как это делается ? Я ещё никогда не прехватывал  сообщения, адресованные не мне. =(


 
DVM ©   (2004-03-26 16:18) [4]


> А можно пример, как это делается ? Я ещё никогда не прехватывал
>  сообщения, адресованные не мне. =(

На этом сайте есть статья про ловушки. Тип ловушки которую надо ставить на окно панели задач: WH_GETMESSAGE.
Еще небольшая подсказка. Если просто поставить ловушку, то отловить можно будет лишь вновь созданные иконки, а вот те которые там уже есть остануться за бортом. Чтобы и их (или хотя бы большинство из них) заполучить надо после установки хука разослать широковещательно сообщение "TaskbarCreated", тогда окна обновят свои иконки (но не все).
И еще. Даже выполнив все что написано выше не удасться заполучить все иконки просто. Дело в том, что вид структуры, которая передается с пом. WM_COPYDATA трею различается в разных системах. Есть три или четыре версии таких структур. Надо это учитывать.
И опять это не все. В вин2000/хп есть так называемые ShellServiceObjects (например регулятор громкости), иконки которых невозможно будет заполучить не подгрузив их еще раз (это COM объекты). Но если их подгрузить еще раз их придется "отнять" у эксплорера (в эксплореровском трее они пропадут). Вот такие вот дела.

Не передумали трей делать? :)



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

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

Наверх




Память: 0.48 MB
Время: 0.155 c
1-1082615490
Narayan
2004-04-22 10:31
2004.04.11
показ формы


1-1082622321
Liona
2004-04-22 12:25
2004.04.11
создание модуля


7-1074409728
Alexey Churkin
2004-01-18 10:08
2004.04.11
Печать на принтере


6-1075525235
@ac
2004-01-31 08:00
2004.04.11
Можно как-нибудь узнать названия всех удаленных соединений? Прост


6-1079634018
Awod
2004-03-18 21:20
2004.04.11
Delphi и Indy