Autoit сообщение в трее

Обновлено: 06.05.2024

Готовые скрипты и программы с открытым кодом на AutoIt:

В трее "сидит" программка.
Необходимо, чтобы при нажатии левой кнопкой мышки запускался графический интерфейс проги (при повторном нажатии он прятался), при нажатии правой кнопкой мышки вылазило меню с настройками.
Все, что у меня получилось, это делать любое их перечисленных действий, но только не одновременно. Т.е. при нажатии как левой, так и правой кнопок выполняется одно и тоже. Я просто не знаю как разделить нажатие левой и правой кнопок.

$Gui = GuiCreate ( "Tray Demo" )

GUISetState ()

While 1
$Msg = GUIGetMsg ()
$TrayMsg = TrayGetMsg ()
Select
Case $Msg = - 3 Or $TrayMsg = $ExitTrayItem
Exit
Case $TrayMsg = $TRAY_EVENT_PRIMARYDOWN
If _WinIsVisible ( $Gui ) Then
GUISetState ( @SW_HIDE )
Else
GUISetState ( @SW_SHOW )
WinActivate ( $Gui )
EndIf
EndSelect
WEnd

Т.е если подобный скрипт запустить так:

Еще один интересующий меня вопрос.
Вот код.

Люди, в справке всё это есть, это базовые вопросы, почитайте вниматильнее (используйте поиск и заголовки по справке, очень удобно), многому из справки можно научиться .

Еще вопрос.
А как изменять количество опций в меню?
К примеру было:
opt
option1
option2
option3

Допустим в "opt" можно установить количество "option" от 0 до 3.
Будет:
opt
option1
option3

Maza Faka так же спасибо, но ваш вариант в данном случае не работает, по всей видимости из-за относительных путей в батнике.

Вот пример с комментариями:

Global $OptionsArray [ 4 ]
Global $DefaultNumber = 1

$ChooseOption = TrayCreateItem ( "Указать количество пунктов в меню. " )

For $i = 1 To UBound ( $OptionsArray )- 1
$OptionsArray [ $i ] = TrayCreateItem ( "Пункт " & $i )
Next

$Seperator = TrayCreateItem ( "" )
$ExitItem = TrayCreateItem ( "Exit" )

While 1
$TrayMsg = TrayGetMsg ()

Switch $TrayMsg
Case $ExitItem
Exit
Case $ChooseOption
Input ()
EndSwitch
WEnd

Func Input ()
$Ubound = UBound ( $OptionsArray ) ;Общее число пунктов + 1 (чтобы не считать каждый раз)

While 1
$Var = InputBox ( "" , "Напишите необходимое количество" , $DefaultNumber )
If @error Then Return ;Если нажата "Отмена" то выходим из функции
$Var = StringRegExpReplace ( $Var , '[^0-9]' , '' )

;Проверяем ввёл ли юзер лигитимное число
If $Var = '' Then
MsgBox ( 48 , "Внимание!" , "Введено не верное число (или вовсе не число)" & @LF & "Введите ещё раз.." , 5 )
ContinueLoop
EndIf
ExitLoop
WEnd

;Если юзер ввёл одинаковое число что и пунктов меню, то ничего не делаем
If $Var = $Ubound - 1 Then Return

;Если введено больше пунктов, то просто добавляем.
If $Var > $Ubound - 1 Then
ReDim $OptionsArray [ $Var + 1 ]
For $i = $Ubound To $Var
$OptionsArray [ $i ] = TrayCreateItem ( "Пункт " & $i , - 1 , $i )
Next
Else ;если меньше, то удаляем лишние
For $i = $Var + 1 To $Ubound - 1
TrayItemDelete ( $OptionsArray [ $i ])
Next
ReDim $OptionsArray [ $Var + 1 ]
EndIf

ReConnect ( "Adsl" , "MyName" , "MyPass" , 2 )

Func Connect ( $ConnectionName , $UserName , $Password )
Run ( 'Rasdial "' & $ConnectionName & '" "' & $UserName & '" "' & $Password & '"' , '' , @SW_HIDE )
EndFunc

Func DisConnect ()
Run ( 'Rasdial /Disconnect' , '' , @SW_HIDE )
EndFunc

Отображает всплывающую подсказку с иконками AutoIt.

TrayTip ( "title" , "text" , timeout [, option = 0 ] )

title Заголовок с жирным шрифтом в верхней части всплывающей подсказки. (Максимум 63 символа)
text Текст всплывающей подсказки. (Максимум 255 символа)
timeout Грубая установка времени (в секундах) отображения всплывающей подсказки. (Windows отображает мин. и макс. около 10-30 секунд, но не всегда выполняется в этом диапазоне.)
option [необязательный] Смотрите примечания.
0 - (по умолчанию) Без иконки
1 - Иконка "Информация"
2 - Иконка "Предупреждение"
3 - Иконка "Ошибка"

Подсказка трея закрывается, если иконка AutoIt в трее исчезает. Следовательно, всплывающая подсказка не может появиться, если установлен AutoItSetOption ( "TrayIconHide" , 1 ) или если пользователь отключил отображение всплывающих подсказок в настройках реестра!

Windows XP обычно проигрывает звук при отображении всплывающей подсказки. Этот звук можно выключить, добавив 16 в параметр option или установив пустой заголовок.

Чтобы очистить всплывающую подсказку, которая продолжает отображаться, вызовите другую подсказку с пустым текстом (и любым заголовком).

Утилита выводит всплывающее уведомление (Balloon Tip) в области System Tray. Основное применение — в пакетных файлах. Следует обратить внимание на то, что она не предназначена для ведения логов чего-либо, поскольку на отображение уведомлений накладывается ряд ограничений, в том числе невозможность гарантированно задать точное время отображения уведомления.

Утилита принимает параметры из командной строки:

Все параметры являются обязательными.

Утилита появилась как дополнение к отсутствующей (надеюсь, пока) аналогичной возможности утилиты NirCmd.exe, поэтому она понимает следующие квалификаторы:

~t — табуляция;
~q — двойные кавычки;
~n — новая строка (CrLf);
~~ — тильда ~.

Пример использования в пакетном файле, производящем обновление сведений об оборудовании посредством вызова утилиты devcon.exe:

Во вложенном файле исходный код на языке AutoIt с ресурсами, скомпилированный исполняемый файл и пример командного файла.

You don't have the permssions to download the attachments of this post.

2 Ответ от alexii 2010-11-04 16:09:37

Начиная с версии 2.45 в утилите NirCmd появилась команда trayballoon — отображение всплывающего уведомления (Balloon Tip) в области System Tray. Предлагаю отныне, для целей изложенных в первом посте данной темы, пользовать отныне именно NirCmd с командой trayballoon.

Формат команды

trayballoon [Title] [Balloon Text] [Icon File] [Timeout]

где:
Title — заголовок всплывающего уведомления; может быть пустым (""), при этом подавляется и отображение иконки во всплывающем уведомлении, даже если она задана (в самой области уведомления иконка отображается).
Balloon Text — текст всплывающего уведомления.

~t — табуляция;
~q — двойные кавычки;
~n — новая строка (CrLf);
~~ — тильда ~.

Timeout — время отображения всплывающего уведомления в миллисекундах; конечно, полагаться на точность здесь не стоит.

Пример, аналогичный первому примеру из предыдущего поста:

Со вторым примером:

Конфигурация компьютера
Процессор: Intel Core i3 530 (2.93GHz)
Материнская плата: GigaByte GA-H55M-S2H
Память: 4 Гб DDR3-1333 DDR3 SDRAM
HDD: WDC WD10EARS-00Z5B1 (1000 Гб)
Видеокарта: NVIDIA GeForce GTS 250 (1024 Мб)
Звук: Realtek High Definition Audio
Блок питания: 500Вт
CD/DVD: HL-DT-ST DVDRAM GH22NS50
Монитор: Монитор ЖК 22" Samsung SyncMaster 2223NW
ОС: Windows 7

Смотри в справке описание, и пример к функции: TrayCreateItem.

А вот, если хочется это сделать красивее:

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.

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

Конфигурация компьютера
Процессор: Intel Core i3 530 (2.93GHz)
Материнская плата: GigaByte GA-H55M-S2H
Память: 4 Гб DDR3-1333 DDR3 SDRAM
HDD: WDC WD10EARS-00Z5B1 (1000 Гб)
Видеокарта: NVIDIA GeForce GTS 250 (1024 Мб)
Звук: Realtek High Definition Audio
Блок питания: 500Вт
CD/DVD: HL-DT-ST DVDRAM GH22NS50
Монитор: Монитор ЖК 22" Samsung SyncMaster 2223NW
ОС: Windows 7

Смотри в справке описание функции: TraySetClick . (Сдесь используется в _TrayIconSetClick(-1, 9) - 9 что означает 1 = Pressing primary mouse button + 8 = Pressing secondary mouse button, иными словами при клике на значке в сист.трее левой или правой клавишей мышки, появится трей-меню. (А функция _TrayIconSetClick из библиотеки ModernMenuRaw.au3)

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.

Конфигурация компьютера
Процессор: 4x2.53 (Core i5)
Материнская плата: Apple MacBook Pro
Память: 2x4GB SO-DIMMs of 1066MHz DDR3 SDRAM
HDD: Hitachi SATA 500 GB
Видеокарта: nVidia GeForce GT 320M
Звук: Cirrus Logic CS4206A
Блок питания: Нет
CD/DVD: Matshita DVD-R
Монитор: 15'' MacBook Pro monitor
Ноутбук/нетбук: MacBook Pro 6.2
ОС: OS X Mountain Lion (10.8.2)

Подскажите, как вставить сюда этот скрипт

;Добавляем программу в автозапуск
If RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName) = "" Then _
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"' & @ScriptFullPath & '"')

;Указываем программу на запуск
$sApp = "notepad.exe"

;Указываем число запуска
$nDay = 16

While 1
If @MDAY = $nDay Then
Run($sApp)

While @MDAY = $nDay
Sleep(60000)
WEnd
EndIf

Уже все перепробовал но у меня не раб кнопка Выход, спасибо!

Конфигурация компьютера
Процессор: Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz, 3701 МГц, ядер: 4, логических процессоров: 4
Материнская плата: Gigabyte Technology Co., Ltd. BIOS American Megatrends Inc. F11, 21.08.2012
Память: G.Skill 4096 Мб (DDR3), Corsair 8192 Мб (DDR3)
HDD: WDC WD10EALX-009BA0 ATA Device
Видеокарта: NVIDIA GeForce GT 220
Звук: VIA Technologies, Inc.
Монитор: Fujicom 200804220001 (23)
ОС: Windows 10 Professional x64

Куда сюда? И код нужно заключать в соот-вующие теги.

Вопрос был в том, как поменять значок скрипта в трее, вам дали короткий и верный ответ - используйте TraySetIcon.

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

Скажите пожалуйста- есть ли возможность сделать - всплывающую подсказку при наведении курсора на иконку трея скрипта- которая будет показывать количество раз срабатывания цикличного скрипта.

Цикл такой : For $Step = 1 To 20 step 1


Всплывающая подсказка при наведении курсора на компонент
Возник еще один вопрос: как сделать, что бы при подводе стрелочки мышки к Label1 - появлялась.

Как сделать, чтобы при наведении курсора на текст появлялась всплывающая подсказка
день вечер! в power point редко приходилось работать, точнее простые презентации дела, а вот с.

При наведении курсора на определённую позицию в заказе появляется всплывающая подсказка (по позиции)
В скрипте информация представляется в иерархической структуре (контракт – цех – заказ - позиция).

Всплывающая подсказка при наведении на блок
есть такая конструкция из python + html <td style="background: .

Читайте также: