Сообщения, напоминания, подсказки



MSG: "msg_text"

Выводит на экран информационное сообщение с заданным текстом.

В тексте сообщения можно использовать пользовательские переменные и предопределенные переменные nnCron. Чтобы ввести в текст сообщения знак кавычек, знак процента или перевод строки используйте, соответственно, переменные %QUOTE%, %PERCENT% и %crlf%.
Используя переменную %FILE: filename%, можно вывести в качестве текста сообщения содержимое указанного файла.

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

Примеры:

MSG: "Работа выполнена на 100%PERCENT%"
MSG: "Hello, %USERNAME%!"
MSG: "Не пора ли домой?"

Существует вариант этого слова с постфиксным расположением параметров:

S" Hello, world!" MsgBox
\ конвертируем число на стеке ('115') в строку \ и выводим ее на экран
115 N>S MsgBox

TMSG: "msg_text" <time_in_sec>

Работает аналогично MSG:, но отображает сообщение только в течение указанного времени (в секундах), после чего автоматически закрывает его и продолжает выполнение задачи. Пользователь может закрыть сообщение и раньше указанного срока, нажав на кнопке OK.

Примеры:

\ сообщение демонстрируется на экране 
\ в течение трех секунд
TMSG: "Все готово!" 3
\ сообщение демонстрируется на экране 
\ в течение пяти секунд
TMSG: "Hello, %USERNAME%!" 5

Существует вариант этого слова с постфиксным расположением параметров:

S" Hello, world!" 3 TimeMsgBox

ERR-MSG: "msg_text"

Работает аналогично MSG:, но отображает сообщение не с иконкой "Информация", а с иконкой "Ошибка".

ERR-MSG: имеет смысл использовать для предупреждения пользователя о произошедших неполадках.


QUERY: "query_text"

Это слово выводит на экран сообщение (message box) с указанным вопросом. Если пользователь отвечает на вопрос утвердительно (нажимает кнопку YES), то QUERY: возвращает флаг TRUE (-1).


Пример:

#( test_query
\ по рабочим дням, в 18:00 задаем вопрос и выключаем
\ компьютер в случае утвердительного ответа
Time: 0 18 * * 1-5 *
Rule: QUERY: "Выключить компьютер?"
Action: 
    POWEROFF
)# 

TQUERY: "query_text" <timeout_in_sec> Yes/No

Действует подобно QUERY:, но ожидает реакции юзера заданное количество секунд. Если реакции юзера не последовало, то TQUERY: принимает в качестве ответа указанное последним аргументом значение (Yes или No).

Пример:

#( test_tquery
\ по рабочим дням, в 18:00 задаем вопрос и выключаем
\ компьютер в случае утвердительного ответа пользователя
\ или если пользователь не ответил на вопрос 
\ в течение 30 секунд
Time: 0 18 * * 1-5 *
Rule: TQUERY: "Выключить компьютер?" 30 Yes
Action: 
    POWEROFF
)# 

REMINDER: "reminder_text"

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

Иногда напоминания могут оказаться "просроченными" - не выполненными в указанное время из-за того, что компьютер был выключен или просто не был загружен nnCron. Специальный чекбокс "Показывать просроченное напоминание" предписывает вывести просроченное напоминание на дисплей "при первой возможности", т. е. сразу после загрузки nnCron (подробнее).


HINT: "hint_text"

Отображает небольшую подсказку и продолжает выполнение задачи вне зависимости от реакции пользователя.

Появившуюся подсказку можно переместить в любое место экрана простым "перетаскиванием" мышью.

Закрыть подсказку можно "вручную", кликнув на ней правой кнопкой мыши и выбрав пункт меню Close, или "программно", с помощью слова HINT-OFF.

См. также "Опции отображения подсказки".


HINT-OFF

"Программно" закрывает подсказку.


HINTW: "hint_text"

Работает аналогично HINT:, но приостанавливает выполнение задачи, пока юзер "вручную" не закроет подсказку или она не будет закрыта с помощью HINT-OFF.

См. также "Опции отображения подсказки".


THINT: "hint_text" <time_in_sec>

Отображает подсказку в течение указанного времени в секундах. Пользователь может закрыть подсказку и раньше указанного срока, кликнув на ней. Выполнение задачи не приостанавливается.

См. также "Опции отображения подсказки".


THINTW: "hint_text" <time_in_sec>

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

См. также "Опции отображения подсказки".


Опции отображения подсказки

Перед использованием слов HINT:, HINTW:, THINT: и THINTW: можно использовать следующие опции, контролирующие размер и положение подсказок на экране:

HINT-POS: x y
(Существует вариант этого слова с постфиксным расположением параметров: x y HINT-POS)

 

задать положение окна подсказки
HINT-SIZE: w h
(Существует вариант этого слова с постфиксным расположением параметров: w h HINT-SIZE)
задать размеры окна подсказки

Следующие две постфиксные опции меняют цвет фона и текста подсказки, а также гарнитуру и размер шрифта:

<bgcolor> <fgcolor> HINT-COLOR

задать цвет фона и текста окна подсказки. Цвет указывается в виде шестнадцатеричного числа, например:

0x000000 - черный
0xFFFFFF - белый
0xFF0000 - красный
0x00FF00 - зеленый
0x0000FF - голубой
0xFFFF00 - желтый и т. д.

S" font name" <font-size> HINT-FONT задать гарнитуру шрифта и его размер в окне подсказки

Пример:

HINT-POS: 200 200 HINT-SIZE: 200 200
0x00FF3333 0x00000000 HINT-COLOR
S" Times New Roman" 26 HINT-FONT THINT: "Это подсказка" 5

BALLOON: "balloon_title" "balloon_text"

Выводит на экран небольшую подсказку с заданным заголовком и текстом и продолжает выполнение задачи вне зависимости от реакции пользователя. Подсказка появляется возле иконки nnCron в системном трее.

Подсказку можно закрыть "кликнув" мышью на ней самой или на кнопке Close в правом верхнем углу. Если подсказку не закрыть вручную, то через некоторое время она "пропадет" сама. Внимание: подсказка не закроется автоматически если в данный момент отсутствует пользовательская активность (клики мышью, нажатия на клавиши клавиатуры).

Пример:

#( test_backup
NoActive
Action:
    BALLOON: "Внимание!" "Стартовала задача %QUOTE%%CUR-TASK-NAME%%QUOTE%"
    BEEP: 250 500
)#

Чтобы принудительно закрыть появившуюся подсказку, вызовите слово BALLOON: с пустым заголовком и текстом:

#( test_backup1
NoActive
Action:
    \ отображаем подсказку
    BALLOON: "Внимание!" "Стартовала задача %QUOTE%%CUR-TASK-NAME%%QUOTE%"
    BEEP: 250 500
    PAUSE: 2000
    \ закрываем подсказку
    BALLOON: "" ""
)#

Настроить поведение BALLOON: можно с помощью следующих переменных:

BalloonTime Устанавливает время (в миллисекундах), после которого подсказка будет закрыта. Система накладывает ограничение на "рабочий диапазон" этой переменной: вы можете устанавливать время в диапазоне от 10000 до 30000 миллисекунд. Значение по умолчанию - 10000 миллисекунд.
BalloonIcon

Устанавливает иконку, которая будет отображаться в подсказке:

  • 0 - иконка отсутствует
  • 1 - иконка Asterisk ()
  • 2 - иконка Warning ()
  • 3 - иконка Error ()

Значение по умолчанию - 1.

Пример:

#( test_backup2
NoActive
Action:
    \ в случае ошибки
    30000 BalloonTime !
    3 BalloonIcon !
    BALLOON: "Ошибка!" "Ошибка в задаче %QUOTE%%CUR-TASK-NAME%%QUOTE%"
    BEEP: 250 500
)#

Существует вариант этого слова с постфиксным расположением параметров:

S" title" S" text" BALLOON

Слово BALLOON: работает только в Win2000/XP.

Примечание: если слово BALLOON: не работает на вашей системе, проверьте следующий ключ в реестре: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced. Значение EnableBalloonTips должно быть установлено так: dword:00000001.

См. также: TrayIconBalloonClick:, OnBalloonClick.


WIN-INPUT-TEXT: "caption_text" "prompt_text" "default_input_text" <time_in_sec>

Выводит на экран диалоговое окно с предложением ввести информацию, которая в дальнейшем, в виде строки может быть использована в задаче.

В качестве аргументов слово WIN-INPUT-TEXT: принимает три строки: заголовок окна, текст приглашения на ввод информации, текст поля ввода по умолчанию и время (в секундах) в течении которого программа будет ожидать реакции пользователя. Если вместо последнего аргумента введен 0, то диалоговое окно с приглашением на ввод будет демонстрироваться на экране без ограничения времени.

Слово WIN-INPUT-TEXT: возвращает:

Примеры:

#( test_win_input_text
\ помещаем полученную строку на стек
NoActive
Action:
WIN-INPUT-TEXT: "Just a test" "Please, enter your first name" "Type here" 0 0=
IF
    MSG: "Hi, %1 esPICKS%!"
ELSE
    MSG: "The user has no name..."
THEN
)#

#( test_win_input_text1
\ сохраняем полученную строку в массив
CREATE input_geography 256 ALLOT
NoActive
Action:
WIN-INPUT-TEXT: "Another test" "Where are you from?" "Type here" 0 0=
IF
    input_geography PLACE
    MSG: "You are from %input_geography COUNT%!"
ELSE
    MSG: "This user is from nowhere..."
THEN
)#

#( test_win_input_text2
\ преобразовываем строку в число
CREATE input_years 256 ALLOT
NoActive
Action:
WIN-INPUT-TEXT: "The last test" "How old are you?" "Enter two digits only!" 0 0=
IF
    2DUP
    input_years PLACE
    \ преобразовываем строку в число
    \ и убеждаемся, что полученное число больше или равно 18:
    S>NUM 18 < 0=
    IF
        MSG: "You are >= 18 (%input_years COUNT% years old actually)!"
    ELSE
        MSG: "You are at unknown age or < 18 (%input_years COUNT%) so you can not proceed!"
    THEN
ELSE
    MSG: "This user is at unknown age..."
THEN
)#

#( test_win_input_text3
\ обрабатываем коды возврата
NoActive
Action:
WIN-INPUT-TEXT: "Error processing test" "You have 30 seconds to enter something useful" "Type here" 30 DUP 0=
IF
    DROP
    MSG: "You have entered: %QUOTE%%1 esPICKS%%QUOTE%"
ELSE
    1 =
    IF
        MSG: "The user pressed CANCEL or hit the ESC key..."
    ELSE
        MSG: "The user was unable to enter smth useful in 30 seconds"
    THEN
THEN
)#

Существует также вариант этого слова с постфиксным расположением параметров: WIN-INPUT-TEXT ( a u a u a u n -- a u 0 | -- 1/2)

S" caption_text" S" prompt_text" S" default_input_text" 0 WIN-INPUT-TEXT

См. также: