Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] как сделать клик на иконке в tray

Ответить
Настройки темы
[решено] как сделать клик на иконке в tray

Новый участник


Сообщения: 25
Благодарности: 1

Профиль | Цитировать


Не могу сообразить как сделать клик на иконке в tray

Отправлено: 21:11, 12-02-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: zip SysTray_UDF.zip
(4.1 Kb, 145 просмотров)

Можно по PID:

Код: Выделить весь код
#NoTrayIcon
#include <SysTray_UDF.au3>
;

$Pid = ProcessExists("Opera.exe")

If Not $Pid Then
    MsgBox(16, "Error", "This process not exists")
    Exit
EndIf

$Index = _SysTrayIconIndex($Pid)

If @error Then
    MsgBox(16, "Error", "This process not have tray icon")
    Exit
EndIf

_SysTrayIconClick($Index, "Right")

If @error Then
    MsgBox(16, "Error", "There was an error to click on the icon")
    Exit
EndIf

Func _SysTrayIconClick($iIndex, $sButton="Main")
    Local $TrayIcon_Pos = _SysTrayIconPos($iIndex)
    If Not IsArray($TrayIcon_Pos) Then Return SetError(1, 0, 0)

    Local $Old_Mouse_Pos = MouseGetPos()
    MouseClick($sButton, $TrayIcon_Pos[0], $TrayIcon_Pos[1], 1, 0)
    MouseMove($Old_Mouse_Pos[0], $Old_Mouse_Pos[1], 0)
EndFunc
Рабочий SysTray_UDF.au3 (для последней версиии аутоита) прикрепил к сообщению.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:01, 13-02-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


А как при этом выбрать пункт из контекстного меню?

Creat0R, с помощью вашей программы контекстное меню Диспетчера очереди печати (spoolsv.exe) выскакивает, мне теперь нужно выбрать в нем пункт "Обновить ...".

Мне это требуется после программной очистки очереди печати, чтобы иконка не маячила в трее.

Если выбрать в контекстном меню Диспетчера очереди печати (spoolsv.exe) пункт "Обновить ...", иконка при этом, если очередь печати пустая, исчезает.

Может ее убрать можно как то и иначе, не знаю, пока нашел только способ с "Обновить ..." - в общем надо как то её убрать из трея.

Последний раз редактировалось kuzyaka, 13-03-2010 в 14:10.


Отправлено: 13:36, 13-03-2010 | #3


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 18:02, 01-03-2011 | #4


Забанен


Сообщения: 91
Благодарности: 0

Профиль | Цитировать


код работает но если появляется новая иконка,кликает мимо.

хотелось бы чтоб работало корректнее

Отправлено: 15:44, 18-07-2012 | #5


Аватара для AZJIO

Старожил


Сообщения: 265
Благодарности: 126

Профиль | Отправить PM | Цитировать


суровый, а если вызвать _SysTrayIconIndex перед SysTrayIconClick?

Отправлено: 16:52, 18-07-2012 | #6


Забанен


Сообщения: 91
Благодарности: 0

Профиль | Цитировать


в коде так и есть
вообще странно конечно нафиг тогда проверка присутствия приложения в трее если он всё время кликает самую левую иконку

вот один в один только имя файла моё

Код: Выделить весь код
#NoTrayIcon
#include <SysTray_UDF.au3>
;

$Pid = ProcessExists("advor.exe")

If Not $Pid Then
    MsgBox(16, "Error", "This process not exist")
    Exit
EndIf

$Index = _SysTrayIconIndex($Pid)

If @error Then
    MsgBox(16, "Error", "This process not have tray icon")
    Exit
EndIf

;_SysTrayIconIndex($Pid) // эта строчке  никак не влияет

_SysTrayIconClick($Index, "Right")

If @error Then
    MsgBox(16, "Error", "There was an error to click on the icon")
    Exit
EndIf

Func _SysTrayIconClick($iIndex, $sButton="Main")
    Local $TrayIcon_Pos = _SysTrayIconPos($iIndex)
    If Not IsArray($TrayIcon_Pos) Then Return SetError(1, 0, 0)

    Local $Old_Mouse_Pos = MouseGetPos()
    MouseClick($sButton, $TrayIcon_Pos[0], $TrayIcon_Pos[1], 1, 0)
    MouseMove($Old_Mouse_Pos[0], $Old_Mouse_Pos[1], 0)
EndFunc
А почему у меня синтаксис не подсвечивается ?

Последний раз редактировалось суровый, 18-07-2012 в 21:08.


Отправлено: 18:57, 18-07-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата суровый:
А почему у меня синтаксис не подсвечивается ? »
Ни у кого не подсвечивается . Но некоторые предварительно раскрашивают. Не вручную, конечно.

Отправлено: 20:28, 18-07-2012 | #8


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата суровый:
А почему у меня синтаксис не подсвечивается ? »
Au3ToPost - Инструмент для расскраски AutoIt-кода
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:31, 18-07-2012 | #9


Забанен


Сообщения: 91
Благодарности: 0

Профиль | Цитировать



прикольно
Блин,всё это конечно хорошо но почему иконка кликается всегда левая
хоть что пиши в
Цитата суровый:
$Pid = ProcessExists("qip.exe") »
любое приложение имеющееся в трее,всё ранво кликает левую иконку

Цитата суровый:
_SysTrayIconPos »
как вывести отладочную информацию,например значение этой функции в консоль или ещё куда.
Мозг устал размышлять по текущей ситуации.

Отправлено: 23:36, 18-07-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] как сделать клик на иконке в tray

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Как свернуть определенное окно в трей (Tray) Guest Программное обеспечение Windows 21 06-02-2020 18:35
Разное - System Tray как в windows 7 Windowz777 Оформление Windows XP 10 31-01-2010 18:07
Как сделать двойной клик на объекте, без мышки? Twix1124 AutoIt 2 26-07-2009 21:48
[решено] как перехватить клик мышки? proxy AutoIt 7 21-03-2009 11:13
[решено] Нужно сделать клик в браузере ph0en1x AutoIt 5 10-02-2009 11:06




 
Переход