Что нового

Свернуть дочернее приложение в трей

RUVATA

лучше один раз увидеть, чем десять раз услышать...
Сообщения
132
Репутация
37
Всем доброго времени суток...
Задача, свернуть запущенное дочернее приложение в трей... притом само это дочернее приложение, таким функционалом свертки в трей не обладает,
Возможно ли это реализовать ?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
RUVATA [?]
Возможно ли это реализовать ?
да, вполне. только не понял, приложение дочернее по отношению к чему... но в любом случае, если окно приложения однозначно идентифицируемое, то достаточно давать окну статус SW_HIDE при клике, а при следующем клике SW_SHOW соответственно
 
АТ
R

RUVATA

лучше один раз увидеть, чем десять раз услышать...
Сообщения
132
Репутация
37
Kaster [url_ex=javascript:qq.OpenLink('http://autoit-script.ru/index.php/topic,6622.msg45951.html#msg45951')][?][/url_ex]
татус SW_HIDE при клике, а при следующем клике SW_SHOW
Это свернет приложение на панель, а не в трей :smile:

Приложение - консольная программа написанная на C++(Qt)... очень не хочется лезть в исходники, хотя видимо придется.
Я хочу посадить это приложение в автозапуск... вернее не его само, а скрипт, который будет запускать его и прятать в трей если это возможно сделать средствами AutoIt.
Как - вот в чем вопрос.

PS: Изначально мысль шла в сторону "запускать как сервис" но после нескольких часов баталий, опытным путем выяснилось, что в Win7 в отличии от WinXP(где это просто сделать при помощи srvany.exe), запустить апп как службу не так-то просто...
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
RUVATA [url_ex=javascript:qq.OpenLink('http://autoit-script.ru/index.php/topic,6622.msg46507.html#msg46507')][?][/url_ex]
Это свернет приложение на панель, а не в трей
Странное поведение подопытной программы :smile:
Из справки @SW_HIDE прячет окно-цель полностью (его не видно на рабочем столе и нет в панели, а значок в трее остается, если он был)
Специально проверил на WinXp так работает:
Код:
WinSetState('Total Commander', '', @SW_HIDE)
Sleep(5000)
WinSetState('Total Commander', '', @SW_SHOW)

Правда у тотала значок в трее появляется, если его свернуть, и здесь он не появился.

Свернуть на панель - это @SW_MINIMIZE, и тут пришлось бороться с коммандером :D вот такое решение, с использование страшного колдунства :sorcerer: сворачивает и разворачивает (иконка при сворачивании появляется, после восстановления пропадает) все строчки нужные!:
Код:
WinSetState('Total Commander', '', @SW_MINIMIZE)
Sleep(1000)
WinSetState('Total Commander', '', @SW_RESTORE)
Sleep(1000)
WinSetState('Total Commander', '', @SW_MINIMIZE)
Sleep(1000)
WinSetState('Total Commander', '', @SW_RESTORE)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
RUVATA [?]
Это свернет приложение на панель, а не в трей
это скроет окно полностью, а не свернет куда-то. но в трее же уже сидит AutoIt скрипт, если поменяешь его иконку на нужную, будет как будто твоя программа в трее. я обычно делал так.
 
АТ
R

RUVATA

лучше один раз увидеть, чем десять раз услышать...
Сообщения
132
Репутация
37
пробую...
а как отловить клик на значке скрипта в трее... дабы имитировать развертку программы, устанавливая окну аппа @SW_SHOW
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Код:
TrayGetMsg
 
АТ
R

RUVATA

лучше один раз увидеть, чем десять раз услышать...
Сообщения
132
Репутация
37
Kaster,Redline,
Спасибо... работаю... как чего наколдую отпишусь :IL_AutoIt_1:
 
Верх