Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: WinAPI и системное программирование > Любое окно свернуть в трей (аля TrayIt) |
Автор: ЧеловекБорща 14.12.2010, 19:31 |
Всем доброго времени суток! Интересует вопрос: Как программно свернуть любую программу(GUI или консоль) в системный трей? какие действия нужно выполнить? Что нужно послать программе и что нужно перехватывать в программе(какое событие)? Есть ведь программа TrayIt, думаю реализовать нечто подобное в своей программе. Есть желание такое реализовать у себя, но я не знаю всех подробностей=) Может кто полность описать как это делает TrayIt? Помогите пожалуйста.... |
Автор: Rrader 14.12.2010, 20:10 |
Подробности такие же, как и для своей программы. Трей - это панель инструментов, для работы с которой предусмотрена одна функция Shell_NotifyIcon. Программы в трей не сворачиваются, они прячутся оконными функциями, а в трее можно лишь управлять значком. Это вопросы "как убрать кнопку программы с панели задач?" и "как сделать окно программы невидимым?". Оба вопросы рассмотрены в любом FAQ и на форумах. Через функцию Shell_NotifyIcon можно добавить значок, который можно взять и загрузить из EXE-файла нужной программы. Как это сделать, информация общедоступная и не секретная. Когда чужая программа "в трее", вернуть ее назад можно, выполнив обратную последовательность операций по скрытию. |
Автор: ЧеловекБорща 14.12.2010, 22:19 |
Хм=) Т.е. мне нужно иметь только Handle окна чужого приложения. А дальше работать по аналогии как со своим окном. Так? |
Автор: Snowy 15.12.2010, 12:14 |
Так и есть. На самом деле, в трее делаешь свой значёк. И уже через него скрываешь или показываешь выбранное окно. Не забывай следить, что окно ещё существует - при смерти окна нужно убирать значёк из трея. |