Главная страница
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.044 c
1-1079965512
ivanenko
2004-03-22 17:25
2004.04.11
работа с указателями в TList


14-1079798543
Тимур
2004-03-20 19:02
2004.04.11
Half life боты


1-1080227206
Димон
2004-03-25 18:06
2004.04.11
Байты аргумента


14-1079517949
blackman
2004-03-17 13:05
2004.04.11
Что дал переезд форума ?


3-1079095883
Девушка
2004-03-12 15:51
2004.04.11
SQL Server 2000 - удаление таблиц, идентификатор записей