Что нового

Поиск значка в трее по процессу

sov44

Новичок
Сообщения
22
Репутация
0
Версия AutoIt: 3.3.14

Описание:
Нужно по имени процесса нужно найти значок в трее, кликнуть по нему правой кнопкой мыши и в раскрывшемся меню найти и нажать пункт "Настройка".
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
В поиске могут помочь функции из SysTray_UDF.au3
Код:
; _SysTrayIconProcesses() - Get list of all process names that have icon in systray (hidden or visible)
; _SysTrayIconPids() - Get list of all parent process id's that own an icon in systray (hidden or visible)
 
Автор
S

sov44

Новичок
Сообщения
22
Репутация
0
А поиск и нажатие "Настройка" в контексте раскрывшегося окна какими командами решаются?
alex33, можно готовое решение? К сожалению самому не осилить код.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Ну например:
Код:
#include "SysTray_UDF.au3" ; подключаем библиотеку для работы с треем

_main()
Func _main()
	Local $iIconIndex, $aIconPos
	$iIconIndex = _SysTrayIconIndex("Zadarma.exe", 0) ; находим иконку по имени процесса
	If @error Or $iIconIndex < 0 Then Return False
	$aIconPos = _SysTrayIconPos($iIconIndex) ; получаем ее координаты
	If @error Or $aIconPos[0] = -1 Or $aIconPos[1] = -1 Then Return False
	MouseClick("menu", $aIconPos[0], $aIconPos[1]) ; кликаем правой кнопкой мыши, вызываем меню
	Sleep(1000)

	; есть вариант стрелкой вниз дойти до нужного пункта и нажать enter
	Send("{DOWN 4}{ENTER}")

	; ну а есть способ немного сложней через API, но для разных программ он может существенно различаться
EndFunc   ;==>_main
 
Автор
S

sov44

Новичок
Сообщения
22
Репутация
0
alex33, код не работает. Да и вариант с определением шагов перемещения не универсален. Уверен, решение входа в настройки приложения из контекста иконки трея было-бы интересно многим.
п.с. приложение KFA 18.0.0.405, процесс avp.exe, win7x86
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
sov44 сказал(а):
код не работает.
С программой, на которой я проверял работает.

Да и вариант с определением шагов перемещения не универсален. Уверен, решение входа в настройки приложения из контекста иконки трея было-бы интересно многим.
Дело в том, что здесь тоже универсального метода нет. Каждая программа сделана по-своему. К каждой нужен свой подход. Так что и здесь не может быть универсальности.

Ну почему же. Если меню статическое, т.е. не меняется никогда, то вполне можно и так (стрелками) сделать.
Если есть стандартные горячие клавиши, то их в принципе тоже можно задействовать, почему нет. Если есть какой-то параметр командной строки, к примеру, тоже можно его использовать...

Сейчас посмотрим на это приложение, что-нибудь сделаем.


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

А, так это не Kaspersky ли случайно? Если так, то у антивирусов защиты обычно есть от автоматизации...
 
Автор
S

sov44

Новичок
Сообщения
22
Репутация
0
Друзья, может всё-таки есть решение?
 
Верх