![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
ЧеловекБорща |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 5.6.2010 Репутация: нет Всего: нет |
Всем доброго времени суток!
Интересует вопрос: Как программно свернуть любую программу(GUI или консоль) в системный трей? какие действия нужно выполнить? Что нужно послать программе и что нужно перехватывать в программе(какое событие)? Есть ведь программа TrayIt, думаю реализовать нечто подобное в своей программе. Есть желание такое реализовать у себя, но я не знаю всех подробностей=) Может кто полность описать как это делает TrayIt? Помогите пожалуйста.... Это сообщение отредактировал(а) ЧеловекБорща - 14.12.2010, 19:37 |
|||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
Подробности такие же, как и для своей программы. Трей - это панель инструментов, для работы с которой предусмотрена одна функция Shell_NotifyIcon. Программы в трей не сворачиваются, они прячутся оконными функциями, а в трее можно лишь управлять значком. Это вопросы "как убрать кнопку программы с панели задач?" и "как сделать окно программы невидимым?". Оба вопросы рассмотрены в любом FAQ и на форумах. Через функцию Shell_NotifyIcon можно добавить значок, который можно взять и загрузить из EXE-файла нужной программы. Как это сделать, информация общедоступная и не секретная. Когда чужая программа "в трее", вернуть ее назад можно, выполнив обратную последовательность операций по скрытию.
|
|||
|
||||
ЧеловекБорща |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 5.6.2010 Репутация: нет Всего: нет |
Хм=) Т.е. мне нужно иметь только Handle окна чужого приложения. А дальше работать по аналогии как со своим окном. Так?
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Так и есть.
На самом деле, в трее делаешь свой значёк. И уже через него скрываешь или показываешь выбранное окно. Не забывай следить, что окно ещё существует - при смерти окна нужно убирать значёк из трея. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |