Николай З.
19 повідомлень
#16 років тому
Здравствуйте, подскажите пожалуйста как можно вывести иконку в трее сразу за часами. Тоесть сам вывод иконки в трей у меня идет, но она появляется последней в списке иконок. А неоходимо поместить ее следующей за часами. Могу дать исходник самого вывода иконки.
Заранее спасибо.
Александр Ж.
575 повідомлень
#16 років тому
Тут вам форум программистов делфи?
Николай З.
19 повідомлень
#16 років тому
Я просто спросил ели кому не тяжело ответить. Если не знаешь, зачем писать вооще что-то )
Александр Ж.
575 повідомлень
#16 років тому
Тут одним кодом не напишешь...
Николай З.
19 повідомлень
#16 років тому
Плохо. Я просто голову сломал как это сделать.
Александр Ж.
575 повідомлень
#16 років тому
Могу прислать
Николай М.
1895 повідомлень
#16 років тому
Как точно сделать не скажу, но здесь итак понятно что нужно использовать чистое API, поскольку трей и иконки там это не фишка оси а фишка программы explorer, значит для начала Вам надо объяснить почему же за часами, обычно иконки делают перед часами, за часами не выдел) узнайте хендл часов, дальше надо внедрить свой объект в программу, если MSDN не предоставляет данной API функции, то понятно что здесь нужно шаманство)

копать в сторону:
SysTrayX -
+ apispy
- внедрение объектов
Ярослав С.
778 повідомлень
#16 років тому
Я даже помню что это за проект был...
Женя С.
6 повідомлень
#16 років тому
Глянь может поможет
Николай З.
19 повідомлень
#16 років тому
Цитата ("4VIY"):
Я даже помню что это за проект был...

Проект был на фрилансе )
Причем там новые детали появились которые реализовать нужно. А вот раместить иконку слеа от часов сразу так и не получается (
Николай М.
1895 повідомлень
#16 років тому
Слева от часов, запросто, вот реализация на чистом API.

Николай З.
19 повідомлень
#16 років тому


Спасибо, но иконка все равно становится слева от часов в порядке очереди так сказать. Вот, картинку прилагаю. Иконка должна встать сразу на место стрелочки, тоесть сразу следом за часами, сдвинув тем самым остальные иконки левее.
Ярослав С.
778 повідомлень
#16 років тому
Оффтопик
Пошли графические подсказки...


Повторюсь за MMM_Corp: ковыряй MSDN...
Николай М.
1895 повідомлень
#16 років тому
Мда... зверская мысль)

объясните заказчику что трей - это не часть ОС-ки, а привилегия только программы explorer и никакой больше (эмуляторы не в счёт, они работают перехвативая нужние вызовы), также посмотрел документацию MSDN, она не предоставляет абсолютно больше никаких механизмов кроме Shell_Notifyicon, в своем API. Следовательно здесь все что выходит за пределы API идет в разрез с лицензией MS Win, а именно внедрение объектов недокументированными средствами (короче говоря правка кода))), что также если и сделаете всетаки не будет гарантировано верно работать на всех версиях Win.

П.С. Мой Вам совет, оставьте эту глупую затею.
Александр В.
276 повідомлень
#16 років тому
Единственный способ, не проверял, но думаю должно сработать, загружать вашу программу до загрузки остальных выводящих иконку в трей...... Но вот при выходе из программы и повторном запуске - все как всегда "в порядке очереди".

Хотя, в принципе, можно провести исследования, анализ, перепотрошить винду, подменить некую длл......... гыжжж.... аш дух захватывает.....
Ну выставте счет на БОЛЬШУЮ сумму с предоплатой за исследования (в договоре оговорите версию винды, невозврат денег на случай если вскрытие покажет невозможность) и т.д и т.п
Ну скажите, что если все срастется в результате исследований. То написание самого кода то же будет стоить денег..... Установите срок выполнения год.........

Не отказывайте клиенту, пусть сам решит, что это ему не надо/ он это не потянет.
Николай З.
19 повідомлень
#16 років тому
На сколько я понял метод всего один: Проверить все иконки и программы, которые их загружают, переписать порядок, выгрузить все, загрузить свою программу и после этого подгрузить остальные - но это не выход и несет за собой некоторые ошибки. К тому же при выгрузки некоторых программ, висящих в трее, есть шанс потерять некоторые данные. Так что это не выход и, думаю, что клиенту сегодня это объясню. Тем более, что сумма проекта просто смешная =)