Форум: "WinAPI";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизКак сделать 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c