Что нового

[Окна, Диалоги] Запуск или активация окна программы из трея

mef-t

Осваивающий
Сообщения
306
Репутация
30
Доброго времени суток.

Помогите запустить программу, агент которой находится в трее.
В частности интересует запуск окна антивируса.
Если еще детальнее, то интересует Eset Nod.

Антивирус работает. Он активен и висит в трее.
Необходимо запустить/активировать его главное окно, или любое другое, относящееся к нему окно.

Следующий вариант не подходит.
Код:
Run('C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe')

так адрес может быть и другим
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
Спасибо. Как то не догадался в этой вязке использовать


Добавлено:
Сообщение автоматически объединено:

Просьба подсказать, а если это не NOD, а касперский?
Я пробовал эту связку на работе, на работе каспер и там такой вариант не прошел.

Суть в том, что для касперского запущен именно агент. Это не сам касперский.
А для нода иначе. В трее висит именно программа нода, потому такой вариант и подходит.
 

InnI

AutoIT Гуру
Сообщения
4,555
Репутация
1,257
Вот пример клика по иконке в трее, зная текст. На русской Win7 данный пример выводит индикатор громкости.
Код:
#include <GuiToolbar.au3>

Global $tray, $search = "Динамики"

$tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow321")
If FindClick($search) Then Exit

ControlClick("[class:Shell_TrayWnd]", "", "Button1")
$tray = ControlGetHandle("[class:NotifyIconOverflowWindow]", "", "ToolbarWindow321")
If Not FindClick($search) Then MsgBox(0, "", "Кнопка с текстом '" & $search & "' не найдена", 7)

Func FindClick($text)
  For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
    If StringInStr(_GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i)), $text) > 0 Then
      _GUICtrlToolbar_ClickIndex($tray, $i)
      Return 1
    EndIf
  Next
  Return 0
EndFunc
 

k_ok_o_s

Новичок
Сообщения
4
Репутация
0
Вот пример клика по иконке в трее, зная текст. На русской Win7 данный пример выводит индикатор громкости.
Код:
#include <GuiToolbar.au3>

Global $tray, $search = "Динамики"

$tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow321")
If FindClick($search) Then Exit

ControlClick("[class:Shell_TrayWnd]", "", "Button1")
$tray = ControlGetHandle("[class:NotifyIconOverflowWindow]", "", "ToolbarWindow321")
If Not FindClick($search) Then MsgBox(0, "", "Кнопка с текстом '" & $search & "' не найдена", 7)

Func FindClick($text)
  For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
    If StringInStr(_GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i)), $text) > 0 Then
      _GUICtrlToolbar_ClickIndex($tray, $i)
      Return 1
    EndIf
  Next
  Return 0
EndFunc
Можно Вас попросить посмотреть, почему на 10-ке не работает? Пишет - "Кнопка с текстом не найдена"
 

InnI

AutoIT Гуру
Сообщения
4,555
Репутация
1,257
почему на 10-ке не работает?
Потому что тулбар и кнопка имеют другие номера. Да и текст отличается.
Код:
#include <GuiToolbar.au3>

Global $tray, $search = "Speakers"

$tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow323")
If FindClick($search) Then Exit

ControlClick("[class:Shell_TrayWnd]", "", "Button2")
$tray = ControlGetHandle("[class:NotifyIconOverflowWindow]", "", "ToolbarWindow321")
If Not FindClick($search) Then MsgBox(0, "", "Кнопка с текстом '" & $search & "' не найдена", 7)

Func FindClick($text)
  For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
    If StringInStr(_GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i)), $text) > 0 Then
      _GUICtrlToolbar_ClickIndex($tray, $i)
      Return 1
    EndIf
  Next
  Return 0
EndFunc
 
Верх