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

Вниз

Как сделать SysTray Bar в своем приложении   Найти похожие ветки 

 
Acidlex   (2004-01-22 18:39) [0]

Помогите пожалуйста решить пороблему
Хочу заменить стандартный SHELL в Windows на свой.
и мне надо реализовать SysTray. Как это сделать.
Помогите хоть как получить Handle приложений которые висят в нем.
Раскладка клавиатуры, Микшер и так далее.


 
Acidlex   (2004-01-22 18:44) [1]

Можем поговорить в ICQ 293493613


 
DVM ©   (2004-01-22 19:13) [2]

Вообще то не так все просто.
Есть два возможных варианта: при запущенном эксплорере и без него.
В первом случае нужно ставить хук на WM_COPYDATA и отслеживать сообщения окна Shell_TrayWnd, выделяя из них те, что связаны с добавлением/удалением/и т.д. иконок.

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

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

Индикатор раскладки клавиатуры и микшер - это так называемые ComShellServiceObjects, которые надо подгружать из своей программы (при запущенном эксплорере корректно это сделать проблематично). Это в Win2k. В XP индикатор раскладки - это тоже Com объект, но реализованный как плагин для стандартного таскбара, поэтому его подгрузить не удасться, т.к. неясно как с ним работать далее.

В Win9x все указанное выше загружается по-другому: из ключа в реестре, ответственном за автозагрузку.

Вобщем проблем масса. Но все они решаемые вполне.


 
Acidlex   (2004-01-22 19:50) [3]

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


 
DVM ©   (2004-01-22 21:23) [4]

Лучше всего взять исходные тексты других оболочек: LiteStep, BlackBox, GeoShell и посмотреть в них реализацию трея. У всех них он неидеален, но принцип понять можно. Правда на С/С++. Самый лучший трей из виденных мною у Aston Shell (у меня есть свой и он не хуже:), но там (в Aston) без исходников. Там можно и про ShellServiceObjects прочитать и про многое другое. Адреса сайтов этих оболочек и их исходники без труда можно найти в инете. И конечно же MSDN.

Успехов в шеллостроении!


 
Acidlex   (2004-01-24 12:26) [5]

Скачал исходники SysTray для LightStep. Они на С++, буду разбиратся.
И все же хочу Вас попросить DVM, если это возможно, то пришлите пожалуйста части кода, где реализован Ваш System Tray.
acidlex83@mail.ru

Буду Вам очень благодарен.


 
DVM ©   (2004-01-24 13:23) [6]


> если это возможно, то пришлите пожалуйста части кода, где
> реализован Ваш System Tray

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

Спишитесь с авторами оболочек, многое могут посоветовать дельного.


 
Acidlex   (2004-01-24 14:38) [7]

Спасибо. Вопросы у меня есть. Так что буду к Вам иногда обращатся, если Вы не против.



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

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

Наверх




Память: 0.48 MB
Время: 0.052 c
1-1079341340
TUser
2004-03-15 12:02
2004.04.04
Оптимизатор


4-1074522196
Илья
2004-01-19 17:23
2004.04.04
Помогите поместить приложение в TaskBar...


6-1074981248
Stern_
2004-01-25 00:54
2004.04.04
Шары


3-1078209489
Mdaaa
2004-03-02 09:38
2004.04.04
Paradox без BDE :))))


4-1075098320
EcoloRa
2004-01-26 09:25
2004.04.04
Вопрос по установке ловушек