Автор Тема: Поиск значка в трее по процессу  (Прочитано 324 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sov44 [?]

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

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

Русское сообщество AutoIt

Поиск значка в трее по процессу
« Отправлен: Ноябрь 11, 2017, 11:06:54 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1371
  • Репутация: 171
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Поиск значка в трее по процессу
« Ответ #1, Отправлен: Ноябрь 11, 2017, 14:05:59 »
В поиске могут помочь функции из SysTray_UDF.au3
Код: AutoIt [Выделить]
; _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)
 


Оффлайн sov44 [?]

  • Новичок
  • *
  • Сообщений: 22

  • Автор темы
  • Репутация: 0
    • Награды
Re: Поиск значка в трее по процессу
« Ответ #2, Отправлен: Ноябрь 11, 2017, 16:18:02 »
А поиск и нажатие "Настройка" в контексте раскрывшегося окна какими командами решаются?
alex33, можно готовое решение? К сожалению самому не осилить код.
« Последнее редактирование: Ноябрь 12, 2017, 08:46:58 от sov44 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1371
  • Репутация: 171
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Поиск значка в трее по процессу
« Ответ #3, Отправлен: Ноябрь 12, 2017, 10:41:12 »
Ну например:
Код: AutoIt [Выделить]
#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
 


Русское сообщество AutoIt

Re: Поиск значка в трее по процессу
« Ответ #3 Отправлен: Ноябрь 12, 2017, 10:41:12 »

Оффлайн sov44 [?]

  • Новичок
  • *
  • Сообщений: 22

  • Автор темы
  • Репутация: 0
    • Награды
Re: Поиск значка в трее по процессу
« Ответ #4, Отправлен: Ноябрь 12, 2017, 11:14:38 »
alex33, код не работает. Да и вариант с определением шагов перемещения не универсален. Уверен, решение входа в настройки приложения из контекста иконки трея было-бы интересно многим.
п.с. приложение KFA 18.0.0.405, процесс avp.exe, win7x86

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1371
  • Репутация: 171
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Поиск значка в трее по процессу
« Ответ #5, Отправлен: Ноябрь 12, 2017, 11:41:26 »
код не работает.
С программой, на которой я проверял работает.

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

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

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


Добавлено: Ноябрь 12, 2017, 11:44:20
А, так это не Kaspersky ли случайно? Если так, то у антивирусов защиты обычно есть от автоматизации...

Оффлайн sov44 [?]

  • Новичок
  • *
  • Сообщений: 22

  • Автор темы
  • Репутация: 0
    • Награды
Re: Поиск значка в трее по процессу
« Ответ #6, Отправлен: Ноябрь 14, 2017, 18:20:48 »
Друзья, может всё-таки есть решение?

Русское сообщество AutoIt

Re: Поиск значка в трее по процессу
« Ответ #6 Отправлен: Ноябрь 14, 2017, 18:20:48 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3500 Просмотров
Последний ответ Май 23, 2010, 15:32:20
от beve
8 Ответов
8540 Просмотров
Последний ответ Декабрь 21, 2010, 20:41:56
от ArchangeL
3 Ответов
2122 Просмотров
Последний ответ Октябрь 05, 2011, 17:56:14
от AZJIO
5 Ответов
4138 Просмотров
Последний ответ Февраль 29, 2012, 23:13:07
от madmasles
0 Ответов
1673 Просмотров
Последний ответ Февраль 29, 2012, 23:11:58
от madmasles
3 Ответов
1613 Просмотров
Последний ответ Май 20, 2013, 22:24:40
от Sky-WaLkeR
5 Ответов
2726 Просмотров
Последний ответ Сентябрь 09, 2013, 12:25:25
от inververs
6 Ответов
1319 Просмотров
Последний ответ Октябрь 26, 2015, 22:45:41
от Prog
2 Ответов
254 Просмотров
Последний ответ Сентябрь 25, 2017, 17:55:09
от vaf
0 Ответов
214 Просмотров
Последний ответ Октябрь 18, 2017, 10:47:36
от garylucky