Показать полную графическую версию : Как открыть программу, которая запускается сразу в трей, при том что трей не виден
Mikhail83
24-03-2010, 13:11
Как с помощью AutoIt развернуть на весь экран окно сторонней программы, которая запускается сразу в трей при том что трей не виден (это терминальный сервер и explorer там не загружается, установлен запуск сразу программы и её просто не видно).
Mikhail83
просто: включите опцию в программе Запускать в полноэкранном режиме.
Mikhail83
24-03-2010, 15:54
Простите, не пояснил, я имел ввиду стороннюю программу, которую нужно открыть с помощью AutoIt. К сожалению в ней нет данной опции.
а программа запускается AutoIt'ом или другими средствами?
можно развернуть программу зная например Title окна, который отвечает за эту программу.
Например через функцию
WinList()
можно посмотреть список всех окон и найти свой, каким-то образом.
После выявления нужного окна, нужно ему задать состояние "разворачивания на весь экран"
$title = 'Title нужного окна'
WinSetState($title, '', @SW_MAXIMIZE)
Mikhail83
24-03-2010, 16:09
а программа запускается AutoIt'ом или другими средствами?
можно развернуть программу зная например Title окна, который отвечает за эту программу.
Например через функцию »
Да, но окна программы пока еще нет, чтобы оно появилось нужно два раза кликнуть на значке в трее, а проблема еще и в том что самого значка не видно, несмотря на то что программа в процессах висит. Поскольку explorer.exe не будет загружен. Можно ли как то по PID её вызвать?
madmasles
24-03-2010, 16:50
Mikhail83,
Мне кажется, все зависит от свойств самой программы. Например, чтобы открыть окно ESET Smart Security достаточно WinSetState("ESET Smart Security", "", @SW_SHOW)А чтобы открыть окно Ad Muncher, надо или кликнуть по иконке в трее, илиIf ProcessExists("AdMunch.exe") Then
Run("C:\Program Files\Ad Muncher\AdMunch.exe")
EndIf
Да, но окна программы пока еще нет »
ты пробовал смотреть список всех существующих окон через команду
#include <array.au3>
$a = WinList()
_ArrayDisplay($a)
и найти там нужное? я более чем уверен, что окно есть, просто оно скрытое.
И вот еще, лучше сделай не просто @SW_SHOW, еще и можно сделать его активным
WinSetState($title, '', @SW_SHOW)
WinActivate($title)
Mikhail83
24-03-2010, 17:25
ты пробовал смотреть список всех существующих окон через команду »
подтверждаю, окно висит, однако после команд:
WinSetState("окно программы", "", @SW_SHOW)
WinSetState("окно программы", "", @SW_MAXIMIZE)
оно появляется, но "пустое", без интерфейса. Если нажать на кнопку в трее то интерфейс у онка появляется. Все таки надо нажимать на иконку, которую к сожалению не видно.
Mikhail83, вполне возможно, что ты не то окно пытаешься активировать. в смысле что у одной программы могут быть несколько окон.
Mikhail83
25-03-2010, 08:39
вполне возможно, что ты не то окно пытаешься активировать. в смысле что у одной программы могут быть несколько окон. »
Да нет, вроде то самое окно, оно появляется с минимальным интерфейсом, и активируется (заполняется кнопками) только если нажать иконку в трее, это сама программа так написана. А нет ли еще какого нибудь метода, например эмулировать нажатие иконки программы в трее?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC