Тема: AutoIt: TrayTip — уведомления в System Tray, для пакетных файлов CMD
Утилита выводит всплывающее уведомление (Balloon Tip) в области System Tray. Основное применение — в пакетных файлах. Следует обратить внимание на то, что она не предназначена для ведения логов чего-либо, поскольку на отображение уведомлений накладывается ряд ограничений, в том числе невозможность гарантированно задать точное время отображения уведомления.
Утилита принимает параметры из командной строки:
TrayTip[.exe] <Title> <Text> <Timeout> <Icon>
где:
<Title> — заголовок [1-63 символов];
<Text> — текст сообщения [1-255 символов];
<Timeout> — время отображения [1-30 секунд];
<Icon> — одно из <None|Info|Warning|Error> [без иконки|Информация|Предупреждение|Ошибка].
Пример:
TrayTip Привет "Я Вася" 5 Info
выведет на 5 секунд всплывающее уведомление с заголовком «Привет», текстом «Я Вася» и информационной иконкой.
Все параметры являются обязательными.
Утилита появилась как дополнение к отсутствующей (надеюсь, пока) аналогичной возможности утилиты NirCmd.exe, поэтому она понимает следующие квалификаторы:
в параметре <Title> : ~t, ~q, ~~;
в параметре <Text> : ~t, ~q, ~n, ~~;
где:
~t — табуляция;
~q — двойные кавычки;
~n — новая строка (CrLf);
~~ — тильда ~.
Пример:
TrayTip "Привет ~qВася~q" "Я~t-~t~qПетя~q.~nМне ~~ 8 лет." 10 Warning
При запуске утилита проверяет возможность отображения всплывающих уведомлений путём проверки значения параметра «EnableBalloonTips» подраздела «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced» (HOW TO: Disable Notification Area Balloon Tips in Windows XP) и, при необходимости, предлагает изменить его.
Утилита является GUI-приложением, поэтому при использовании её в пакетном файле следует помнить: если достаточно просто отобразить уведомление — используется обычный запуск «TrayTip.exe …» (или «start TrayTip.exe …»); если необходимо сделать паузу на заданное время — в пакетном файле используется запуск в виде «start /wait TrayTip.exe …». Также, иногда это может понадобиться, поскольку очередной запуск утилиты пытается очистить своё предыдущее уведомление.
Пример использования в пакетном файле, производящем обновление сведений об оборудовании посредством вызова утилиты devcon.exe:
@echo off
start TrayTip.exe "Rescaning" "Rescaning devices..." 15 Info
"C:\Program Files\DevCon\devcon.exe" rescan > nul
start TrayTip.exe "Rescaning" "Devices rescaning is done" 3 Info
exit /b 0
Во вложенном файле исходный код на языке AutoIt с ресурсами, скомпилированный исполняемый файл и пример командного файла.