Работа с треем
Требуется достать из трея (ХР) иконки и работать с ними..
(эмулировать работу трея или как это называется) Google не помог.. У кого есть какие соображения по данному вопросу? Есть спецы? __________________ Upd: Что никто не поможет разобраться? |
Ответ: Работа с треем
Пока нашел только это:
Цитата:
Upd: также имеются сорцы LiteStep, только они написаны на си:user::mad: |
Ответ: Работа с треем
Вложений: 1
Не дождавшись помощи от булки я забил на это дело,
но чуть позже все-таки решил заняться этим вплотную.. (написанием аналога XP'шного таскбара и это скорее из-за спортивного интереса).. Вот что мне удалось сделать на данный момент: - одноразовое считывание иконок * - реагирование на нажатие левой/правой клавиши мыши - подмена таскбара - эмулирование нажатия кнопки "Пуск" ** Пример приложения в архиве.. (делалось на основе "3 варианта") Поделюсь исходниками с человеком, который поможет довести все это до ума! ** во время выполнения программы не обновляются! (+функция почему-то не корректно работает; отображаются не все значки) ** частичное |
Ответ: Работа с треем
хм. Двойное нажатие не работает. Сразу появилось 3 иконки нода и каждую секунду добавлялась ещё одна. Эмуляция пуска не работает. И самое важное:
Какого хрена после запуска твой трей убирает нативный, а перед закрытием не возвращает обратно? |
Ответ: Работа с треем
Проверил на нескольких компах и обнаружил, что программа не всегда правильно себя ведет... ((
Хотя на моем работает нормально .. 2 baton4ik: у тебя ХР? (какой sp?..) > Двойное нажатие не работает. Странно, ведь функция DblClick имеется и должна работать.. Особого внимания этому не придавал.. Посмотрим.... > Сразу появилось 3 иконки нода и каждую секунду добавлялась ещё одна. Такое поведение я заметил у программ, которые регулярно обновляют свои иконки.. Пока еще думаю как исправить.. > Эмуляция пуска не работает. Было два варианта как открыть "Пуск"; не лепить же мне 2 кнопки.. Значит попробуем второй!. > Какого хрена после запуска твой трей убирает нативный, а перед закрытием не возвращает обратно? Хм.. по идее такого быть не должно.... Каким образом ты закрываешь программу? PHP код:
|
Ответ: Работа с треем
Windows 7. Закрыл по ПКМ->Выход
|
Ответ: Работа с треем
Пост #3:
Цитата:
|
Ответ: Работа с треем
Я видел. Это не значит, что он не должен работать на 7ке
|
Ответ: Работа с треем
Помимо своего компьютера (XP-sp3) проверял еще на 2х (XP-sp2, XP-sp3)//
..и на всех из них после закрытия приложения корректно восстанавливался таскбар.. хз почему на семерке не работает.. Не могу о ней ничего сказать, т.к раньше не вникал в тонкости этой оси .. |
Ответ: Работа с треем
Вложений: 2
Повозился еще немного с кодом:
- пофиксена эмуляция нажатия на кнопку "Пуск"; - по двойному клику на часики открывается апплет настроек даты/времени; - подправлен код, восстанавливающий "нативную" пенель задач после выхода.. (на других системах еще не тестировал) - добавлено немного оформления; - исправлено несколько мелких багов.. Со значками трея пока не разбирался, осталось как раньше. Что на сей раз скажете? |
Ответ: Работа с треем
Теперь всё ок. Вот только если открыть контекстное меню элемента с лотке, а потом открыть контекстное меню другого элемента, первое не пропадёт. И они вообще не пропадут, пока ты не выберешь какой-либо пункт в меню.
И дефолтный таскбар, я смотрю, ты вообще не скрываешь. Твой таскбар был легко свёрнут нажатием по "Свернуть все окна", так как фокус поместился на дефолтный таскбар |
Ответ: Работа с треем
Цитата:
Плюс ко всему этому отображаются не все значки и некоторые выводят значок программы поместившей иконку вмето самой иконки. С эмуляцией трея толком еще не разборался. Нет такого человека кто бы помог с этим, а то одному уж слишком напряжно. Цитата:
(окно просто скрывается по sw_hide, но остается активным) |
Ответ: Работа с треем
А не дурно ведь, очень даже! 2Fake, а кодом поделитесь?
По поводу меню есть идея. У меня была похожая проблемма. Его нужно выводить с с помощью примерно такого кода: PHP код:
|
Ответ: Работа с треем
>>действительно помогли)) Огромное спасибо!
Пожалуйсто. Впервые я стал полезен кому-то на форуме :) Много чего интерестного для этой программы можно почерпнуть из исходников blackbox (bb4win.com). Это панель задач, которая полностью заменяет стандартную. Исходный код открыт, но он собирается на CygWin (С++) а не на Delphi... Подкину идейку. Вашей программе не хватает обрезки WorkArea, ну, чтобы при разворачивании окна других программ не залетали под zTrayBar. Копайте в сторону SPI_SETWORKAREA |
Часовой пояс GMT +4, время: 09:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot