Чужую прогу в трей
Сабж, как свернуть чужую прогу в трей, если тока на WinAPI то плз поподрлбнее т.к. в апи я почти профан =(
Статьи по поводу работы с чужими окнами:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=442&mode=print
Просто так в трей не свернешь...В нем можно создать иконку и обрабатывать события мыши над ней... А чтоб свернуть чужую - это разве шо.. свернуть и скрыть чужое окно, создать в трее иконку, повесить Hook на нее для отлавливания собитий мыши, чтоб при клике окно восстанавливалось... Я вижу только такой вариант.
Статьи по поводу работы с чужими окнами:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=442&mode=print
Просто так в трей не свернешь...В нем можно создать иконку и обрабатывать события мыши над ней... А чтоб свернуть чужую - это разве шо.. свернуть и скрыть чужое окно, создать в трее иконку, повесить Hook на нее для отлавливания собитий мыши, чтоб при клике окно восстанавливалось... Я вижу только такой вариант.
Однако, одному перцу это сделать удалось:
http://freeware.rus21.ru/freeware.ru/program_prog_id_2112.html
Однако, одному перцу это сделать удалось:
http://freeware.rus21.ru/freeware.ru/program_prog_id_2112.html
А можно тоже самое но в исходниках?
Что значит повесить хук? Процедура?
Ага (Hook - ловушка), процедура, перехватывающая виндовые сообщения и обрабатывающая их (глобальная - может вылавливать сообщения, касающиеся разных окон, приложений; локальная - сообщения, касающиеся данного приложения). Создается API-шными функциями CreateGlobalHook или CreateHook (точно не помню, но шо-то вроде этого).
Ну в общем-то в нижеприведенном коде это и не понадобилось, там просто продецура, обрабатывающая наше пользовательское сообщение, она ниче не перехватывает. Алгоритм такой же:
1. Создаем в трее иконку как у окна, которое надо свернуть.
2. Окно это скрываем, посылая ему SW_HIDE
3. Обрабатваем события над иконкой, если нажали левую кнопку, то показываем окно, а иконку из трея удаляем.
Вот набросал программку, которая строит список видимых окон, и позволяет свернуть любое из них в трей.
Ага (Hook - ловушка), процедура, перехватывающая виндовые сообщения и обрабатывающая их (глобальная - может вылавливать сообщения, касающиеся разных окон, приложений; локальная - сообщения, касающиеся данного приложения). Создается API-шными функциями CreateGlobalHook или CreateHook (точно не помню, но шо-то вроде этого).
Ну в общем-то в нижеприведенном коде это и не понадобилось, там просто продецура, обрабатывающая наше пользовательское сообщение, она ниче не перехватывает. Алгоритм такой же:
1. Создаем в трее иконку как у окна, которое надо свернуть.
2. Окно это скрываем, посылая ему SW_HIDE
3. Обрабатваем события над иконкой, если нажали левую кнопку, то показываем окно, а иконку из трея удаляем.
Вот набросал программку, которая строит список видимых окон, и позволяет свернуть любое из них в трей.
Спс за помошь =) Но вопрос решил так:
скачал где-то компонент TrayIcon(влом разираться было позже разбирусь), работает на ура, т.к. пока не знаю как править нестандартные компоненты, а он расчитан на сворачивание только той формы в кот помещен(а мне надо другую прогу причем директХ), я просто повесил sw_hide sw_show с поиском по заголовку онка на кнопки =)
ЗЫ У компонента прикольный баг если поместить его на форму и прописать все свойстав, то не откомпелировав прогу, в трей сворачиваеться делфи =)
ЗЫ У компонента прикольный баг если поместить его на форму и прописать все свойстав, то не откомпелировав прогу, в трей сворачиваеться делфи =)
Там видать не прописано if ComponentState = csDesign. Можно дописать самому.