;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; конфигурационный файл caesar (c) Андрей Салмов ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Комментарием может быть лишь целая строка,
;; которая начинается с символа ';' или '#'.
;;
;; Ключевые слова не чувствительны к регистру.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Globals
;;
;; Глобальные настройки.
;; Настройки общие для всей системы и программы.
;;
## --- содержание
XMove {on | off}
XMoveKey {Ctrl | Alt | Shift | ...}
XScroll {on | off}
OnPressLCtrl task-name
OnPressRCtrl task-name
OnPressLShift task-name
OnPressRShift task-name
; или
OnPressLCtrl {
...
}
; или
task OnPressLCtrl {
...
}
; (аналогично и для других задач OnPress*)
QuickKeyDelay k
XKey vk
OnDownXKey task-name
OnUpXKey task-name
; или аналогично синтаксису задач OnPress*
OnScrollLockForLayout LanguageId
OnCapsLockForLayout LanguageId
OnNumLockForLayout LanguageId
OnStartCaesar task-name
; или аналогично синтаксису задач OnPress*
WaitThreads n
mapkey key1 to key2
...
mapkey keyX to keyY
osdRectPos x,y
osdRectSize w,h
osdTextFlags flags
osdTextColor {0xBBGGRR | n}
osdTextBorderColor {0xBBGGRR | n}
osdFontSize n
osdFontFlags n
osdFontName font-name
osdTime k
MenuTransparencyAlpha {
...
}
MenuTransparencyColor {
...
}
## --- описание
; Перемещение любого окна мышью при нажатой Alt.
; Вместо Alt параметром XMoveKey (смотрите описание
; ниже) можно задать другую клавишу.
; (по умолчанию - on)
XMove {on | off}
; Задает клавишу для режима XMove.
; (по умолчанию - Alt)
XMoveKey {Ctrl | Alt | Shift | Win | lAlt
| rAlt | lCtrl | rCtrl | lShift
| rShift | lWin | rWin}
; Прокрутка колесиком мыши того окна, над которым находится
; указатель.
; (по умолчанию - on)
XScroll {on | off}
; Выполнение определенной задачи при нажатии на левую клавишу
; Ctrl. Задача выполняется только если клавиша была нажата
; меньше чем за QuickKeyDelay миллисекунд (смотрите описание
; ниже).
; task-name - имя задачи; синтаксис описания задач приведен
; ниже в разделе Tasks.
OnPressLCtrl task-name
; Другой синтакcис состоит в том, что бы описать команды
; выполняемые при нажатии на левую клавишу Ctrl без создания
; раздела task.
OnPressLCtrl {
NewThread {on | off}
LogStart {on | off}
LogEnd {on | off}
; --- последовательность команд --- ;
; (смотрите описание раздела Tasks) ;
}
; или
task OnPressLCtrl {
...
}
; Выполнение определенной задачи при нажатии на правую клавишу
; Ctrl. Смотрите описание OnPressLCtrl.
OnPressRCtrl task-name
OnPressRCtrl {
...
}
task OnPressRCtrl {
...
}
; Выполнение определенной задачи при нажатии на левую клавишу
; Shift. Смотрите описание OnPressLCtrl.
;
; Если вы хотите использовать клавишу Shift как горячую
; клавишу, то учтите, что по умолчанию в Windows пятикратное
; нажатие Shift включает так называемый "режим залипания". В
; определенных ситуациях это может вызвать некоторые неудобства
; для вас (например, вы можете случайно включить этот режим).
; Отключить данное поведение клавиши Shift можно через меню
; "Панель управления", "Специальные возможности". В открывшемся
; диалоговом окне, на вкладке "Клавиатура", нажмите кнопку
; "Настройка" в разделах "Залипание клавиш" и "Фильтрация
; ввода" и снимите галочку "использовать такой способ" (т.е.
; использовать клавишу Shift).
OnPressLShift task-name
OnPressLShift {
...
}
task OnPressLShift {
...
}
; Выполнение определенной задачи при нажатии на правую клавишу
; Shift. Смотрите описание OnPressLCtrl и OnPressLShift.
OnPressRShift task-name
OnPressRShift {
...
}
task OnPressRShift {
...
}
; Задает время в миллисекундах, в течение которого нужно нажать
; клавишу lCtrl, rCtrl, lShift, rShift что бы выполнилась
; задача, ассоциированная с данными клавишами.
; (по умолчанию - 1200)
QuickKeyDelay k
; Задает клавишу, для которой могут быть описаны две задачи -
; одна на нажатие клавиши, вторая - на ее отпускание.
; vk - виртуальный код клавиши в формате, аналогичном параметру
; Key раздела hotkey. Кроме этого vk может принимать также
; значения
; {lAlt | rAlt | lCtrl | rCtrl | lShift | rShift | lWin | rWin}.
XKey vk
; Задача, выполняемая при нажатии на клавишу XKey.
OnDownXKey task-name
OnDownXKey {
...
}
task OnDownXKey {
...
}
; Задача, выполняемая при отпускании клавиши XKey.
OnUpXKey task-name
OnUpXKey {
...
}
task OnUpXKey {
...
}
; Задачи, выполняемые при нажатии и отпускании клавиши XKey
; следует писать очень внимательно. Учтите, что если задана
; хотя бы одна задача (либо OnDownXKey, либо OnUpXKey), то
; системе не будет сообщаться ни о нажатии клавиши, ни о ее
; отпускании. Поэтому, если выполнением задачи/задач вы не
; хотите отменять стандартное поведение клавиши, то следует ее
; самостоятельно "нажать" в задаче OnDownXKey и (обязательно!)
; "отпустить" в задаче OnUpXKey.
; Пример (вряд ли имеющий практическую ценность):
; Пусть мы хотим, что бы при нажатии на клавишу lShift
; появлялось название текущей раскладки клавиатуры. Сами
; функции клавиши Shift мы при этом перекрывать не будем.
; XKey lShift
; OnDownXKey {
; # Показываем наименование раскладки клавиатуры.
; osdText %L
; # Возвращаем стандартное поведение клавиши lShift,
; # нажимая ее.
; DownKey lShift
; }
; OnUpXKey {
; # Даже присутствие одной задачи приводит к тому,
; # что системе не сообщается ни о нажатии клавиши,
; # ни о ее отпускании. Поскольку мы решили сохранить
; # стандартное поведение клавиши lShift, то кроме
; # нажатия нужно вернуть и отпускание клавиши.
; UpKey lShift
; }
; p.s.
; Использовать в качестве XKey клавишу Alt не рекомендуется.
; Включение подсветки Scroll Lock для раскладки клавиатуры
; LanguageId (0x0419 - русский, 0x0409 - английский и т.п.).
; Если 0 или не задано, то подсветки Scroll Lock при
; переключении раскладки не происходит. При заданном LanguageId
; световой индикатор не отображает состояние клавиши Scroll
; Lock - он отображает, установлена или нет заданная раскладка.
; (по умолчанию - 0)
OnScrollLockForLayout LanguageId
; Аналогично OnScrollLockForLayout, но для индикатора Caps Lock.
OnCapsLockForLayout LanguageId
; Аналогично OnScrollLockForLayout, но для индикатора Num Lock.
OnNumLockForLayout LanguageId
; Задача выполняемая при старте caesar.
; task-name - имя задачи; синтаксис описания задач приведен
; ниже в разделе Tasks.
OnStartCaesar task-name
; Другой синтакcис состоит в том, что бы описать команды
; выполняемые при старте caesar без создания раздела task.
OnStartCaesar {
NewThread {on | off}
LogStart {on | off}
LogEnd {on | off}
; --- последовательность команд --- ;
; (смотрите описание раздела Tasks) ;
}
; или
task OnStartCaesar {
...
}
; Количество ожидающих потоков.
; (значение от 0 до 24. по умолчанию - 2)
; Ожидающий поток - поток, который caesar создает при старте.
; Данный поток "спит" пока не появится какая-нибудь задача
; (task), после чего он пробуждается, выполняет эту задачу и
; снова переходит в режим ожидания. Если все ожидающие потоки
; заняты выполнением задач, то caesar создает новый поток,
; который выполнит задачу и завершится (именно завершится, а
; не перейдет в режим "сна", как ожидающий поток).
; Всего программа может выполнять одновременно до 32 задач
; (создавать до 32 потоков).
WaitThreads n
; Переопределяет клавишу key1 в клавишу key2.
; Т.е. нажатия клавиши key1 будут восприниматься системой
; как нажатия клавиши key2 (можно использовать, например,
; для переопределения нужных, но неудобно расположенных клавиш
; на клавиатурах ноутбуков).
; key1 и key2 - виртуальные коды клавиш, задаваемые аналогично
; параметру Key, описанному ниже в разделе Hotkeys и в команде
; DownKey раздела task.
mapkey key1 to key2
; Координаты верхнего левого угла прямоугольника, в котором
; будет выводится OSD-сообщение.
; (по умолчанию - 20, 20)
osdRectPos x,y
; Размеры прямоугольника, в котором будет выводиться OSD-текст.
; (по умолчанию - 400, 200)
osdRectSize w,h
; Выравнивание OSD-текста относительно заданного прямоугольника.
; flags является одним или суммой нескольких значений:
; 0x00000 - выравнивать текст по левому краю;
; 0x00001 - выравнивать текст по центру;
; 0x00002 - выравнивать текст по правому краю;
; 0x00000 - выравнивать текст по верхнему краю;
; 0x00004 - выравнивать текст по центру по вертикали;
; 0x00008 - выравнивать текст по нижнему краю;
; 0x00100 - не обрезать текст, если он не умещается в прямоугольнике;
; 0x20000 - использовать письмо "справа налево" (для арабских шрифтов).
; (по умолчанию - 0x00100)
; При использовании недопустимых значений flags поведение окна
; с OSD-текстом не определено.
osdTextFlags flags
; Цвет OSD-сообщения.
; Если 0, то прозрачный.
; (по умолчанию - 0x00DD00)
osdTextColor {0xBBGGRR | n}
; Цвет границы (рамки) OSD-сообщения.
; Если 0, то граница отсутствует.
; (по умолчанию - 0x004400)
osdTextBorderColor {0xBBGGRR | n}
; Размер шрифта OSD-текста, в пунктах.
; (по умолчанию - 22)
osdFontSize n
; Модификации шрифта OSD-текста.
; flags является одним или суммой нескольких значений:
; 0x00 - без модификаций;
; 0x01 - жирный шрифт;
; 0x02 - курсив;
; 0x04 - подчеркнутый шрифт;
; 0x08 - зачеркнутый шрифт.
; (по умолчанию - 0)
osdFontFlags n
; Наименование шрифта, которым отображается OSD-текст.
; (по умолчанию - "Arial Black")
osdFontName font-name
; Время в миллисекундах, в течение которого отображается
; OSD-сообщение.
; (по умолчанию - 2000)
osdTime k
; (смотрите также группу OSD в описании команд раздела task)
; Описание своего раздела "Transparency" в XMenu.
; Может быть максимум 9 пунктов.
; Каждая строка - один пункт меню. Сначала идет значение
; прозрачности по альфа-каналу (число от 0 до 255), затем
; текст пункта меню.
; (Пункт меню "No" предопределен - т.е. всегда присутствует
; в меню Transparency.)
; (по умолчанию
; MenuTransparencyAlpha {
; 234 &8%
; 229 &10%
; 219 1&4%
; 204 &20%
; 191 2&5%
; 178 &30%
; }
; )
MenuTransparencyAlpha {
value-1 menu-name-1
value-2 menu-name-2
value-3 menu-name-3
...
}
; Описание своего раздела "Transparency" в XMenu.
; Может быть максимум 5 пунктов.
; Каждая строка - один пункт меню. Сначала идет значение
; прозрачного цвета (десятичное число или 0xBBGGRR, где RR,
; GG, BB - 16-тиричные представления красной, зеленой и синей
; составляющей цвета), затем текст пункта меню.
; (Пункт меню "No Color Key" предопределен - т.е. всегда
; присутствует в меню Transparency.)
; (по умолчанию
; MenuTransparencyColor {
; 0x000000 &Black
; 0xFFFFFF &White
; 0xD4D0C8 &Gray
; }
; )
MenuTransparencyColor {
value-1 menu-name-1
value-2 menu-name-2
value-3 menu-name-3
...
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Tasks
;;
;; Список задач.
;; Задачи могут вызываться на выполнение горячими клавишами
;; или при создании определенных окон (смотрите ниже описание
;; раздела window).
;;
## --- содержание
task [task-name-1] {
NewThread {on | off}
LogStart {on | off}
LogEnd {on | off}
; --- последовательность команд --- ;
}
## --- описание
task [task-name-2] {
; Следует ли выполнять задачу в отдельном потоке приложения
; (on) или в основном (off). Если параметр NewThread не
; указан, то caesar сам решает создавать отдельный поток
; для задачи или нет. Если в задаче более 8 команд или
; имеются операторы перехода (goto) на метки, расположенные
; выше них, то поток создается.
; Вне зависимости от значения этого параметра задача будет
; выполнена в отдельном потоке, если в ней есть команда,
; которая отмечена символом "*" (звездочка) в описании
;команд, приведенном ниже.
NewThread {on | off}
; Делать запись в лог-файл о том, что задача запущена (on)
; или нет (off).
; (по умолчанию - off)
LogStart {on | off}
; Делать запись в лог-файл о том, что задача завершена (on)
; или нет (off).
; Следует понимать, что, например, в случае, если задача
; запускает некоторое приложение, то она не ждет его
; завершения, и в лог-файл будет сделана запись
; непосредственно после запуска приложения, а не после его
; завершения (исключение - команды раздела task
; RunAppAndWaitForClose, WaitForClose).
; (по умолчанию - off)
LogEnd {on | off}
; Полный список возможных команд приводится в конце этого
; файла.
}
task [task-name-3] {
...
}
...
; p.s.
; Имена задач нечувствительны к регистру и различаются между
; собой только по первым 48 символам.
; Если задача находится внутри раздела window, hotkey или
; job (смотрите их описание ниже) и у нее нет имени, то ей
; присваивается имя данного раздела (если оно задано).
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; HotKeys
;;
;; Список горячих клавиш.
;; Задают горячие клавиши, выполняемые задачи при их нажатии.
;;
## --- содержание
hotkey [hotkey-name-1] {
Key [модификаторы]ВиртуальныйКод
Mouse [модификаторы]КнопкаМыши Область
Task task-name
Task [task-name] {
...
}
}
## --- описание
hotkey [hotkey-name-2] {
; Горячая клавиша.
; Задается в формате [модификаторы]ВиртуальныйКод
Key [Ctrl+][Alt+][Shift+][Win+]{0-9 | A-Z
| ' | , | - | . | / | ; | = | [ | \
| ] | ` | BackSpace | Tab | Enter | Escape
| CapsLock | Space | PageUp | PageDown
| End | Home | Apps | Left | Up | Right
| Down| PrintScr | Pause | Insert | Delete
| Sleep | Num0-Num9 | NumMult | NumPlus
| NumMinus | NumDot | NumDiv | F1-F24
| NumLock | ScrollLock | App1 | App2
| 0xNN (NN - 16-тиричный виртуальный код
клавиши; например, '0x70' и 'F1' - это
одно и тоже, смотрите файл
tips/virtual-keys.txt)}
; Горячая клавиша мыши.
; Задает модификатор, кнопку мыши и область в заголовке окна,
; на которой нужно кликнуть заданной кнопкой мыши (или
; прокрутить колесико мыши в заданном направлении) при нажатых
; клавишах-модификаторах, что бы выполнилась задача,
; описанная в данном разделе hotkey.
; Кнопки мыши:
; LClick - клик левой кнопкой мыши;
; RClick - клик правой кнопкой мыши;
; MClick - клик средней кнопкой мыши;
; X1Click - клик кнопкой x1;
; X2Click - клик кнопкой x2;
; WheelUp - прокрутка колесика вверх (от себя);
; WheelDown - прокрутка колесика вниз (на себя).
; Области в заголовке окна:
; SysMenu - область системного меню окна;
; CaptionLeft - левая половина области заголовка окна;
; CaptionRight - правая половина области заголовка окна;
; Minimize - кнопка "Свернуть / Восстановить";
; Maximize - кнопка "Развернуть / Восстановить";
; Help - кнопка "Справка";
; Close - кнопка "Закрыть".
Mouse [Ctrl+][Alt+][Shift+][Win+]{LClick
| RClick | MClick | X1Click | X2Click
| WheelUp | WheelDown}
on {SysMenu | CaptionLeft | CaptionRight
| Minimize | Maximize | Help | Close}
; Помните, что стандартные действия, которые выполняются
; при кликах в области заголовка окна выполняются Windows вне
; зависимости от того, нажаты ли клавиши-модификаторы или нет.
; Например, клик левой кнопкой мыши на кнопке "Свернуть"
; минимизирует окно вне зависимости от того, нажата клавиша
; Ctrl (или Alt, или Shift) или нет. Поэтому переопределяя
; это действие Windows какой-либо задачей (т.е. задав
; "Mouse LClick on Minimize") вы всегда можете кроме своего,
; выполнить еще и действие по умолчанию, удерживая, например,
; клавишу Ctrl при клике на кнопке минимизации (это если вы
; не назначили свою задачу и на "Mouse Ctrl+LClick on Minimize").
; Другой синтаксис параметра Mouse позволяет выполнить задачу,
; описанную в данном разделе при нажатии кнопок мыши в
; произвольной области экрана.
; Область экрана представляет собой прямоугольник и задается
; координатами его левого верхнего и правого нижнего углов:
; left, top - координаты левого верхнего угла области;
; right, bottom - координаты правого нижнего угла области.
; Левый верхний угол экрана имеет координаты (0, 0).
Mouse [Ctrl+][Alt+][Shift+][Win+]{LClick
| RClick | MClick | X1Click | X2Click
| WheelUp | WheelDown}
in Rect left, top, right, bottom
; И, наконец, еще один синтаксис параметра Mouse позволяет
; выполнять задачу либо при входе указателя мыши в заданную
; область экрана, либо при выходе из нее.
Mouse move {in | out} Rect left, top, right, bottom
; Задача, которая будет выполнена при нажатии на клавишу,
; если задан параметр Key, и/или при клике мышкой (прокрутке
; колесика мыши), если задан параметр Mouse.
Task task-name
; Другой синтаксис - непосредственное описание задачи.
Task [task-name] {
...
}
; p.s.
; Действия, которые будут выполняться в задаче Task при
; нажатии на горячую клавишу Key будут относиться к текущему
; (активному) окну верхнего уровня (окну на переднем плане).
;
; Действия, которые будут выполняться в задаче Task при
; нажатии на горячую клавишу мыши Mouse будут относиться к
; окну, над которым находится указатель мыши.
;
; Одновременно несколько задач с разными параметрами Mouse
; могут претендовать на выполнение при определенных условиях
; (например, две разных области, описанные в разных разделах
; hotkey могут пересакаться и, кроме того, в прямоугольнике
; пересечения областей может находится заголовок окна для
; которого также задана обработка в третьем разделе hotkey).
; В таких случаях выполняется только одна задача, которая
; выбирается по следующим правилам (приоритетам):
; - если есть задача для обработки заголовка окна, то
; выполняется она;
; - если есть несколько задач на нажите кнопки мыши
; (прокрутки колесика мыши) в данной области экрана, то
; из таких задач выполняется первая, описанная в
; конфигурационном файле;
; - если есть несколько задач на вход указателя мыши в
; данную область экрана, то выполняется первая, описанная
; в конфигурационном файле;
; - если есть несколько задач на выход указателя мыши из
; данной области, то из таких задач выполняется первая,
; описанная в конфигурационном файле.
}
hotkey [hotkey-name-3] {
...
}
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Windows
;;
;; Список окон.
;; Для окон, заданных вами, можно переопределить глобальные
;; настройки и/или выполнить при создании окна какую-нибудь
;; задачу. Окна также используются в задачах (task) для
;; разграничения действий выполняемых над разными типами
;; окон (смотрите ниже команды WindowIs, SwitchToWindow).
;;
## --- содерждание
window [window-name-1] {
ClassName window-class-name
Title window-title
FileName window-file-name
XMove {on | off}
XScroll {on | off}
Task task-name
Task [task-name] {
...
}
}
## --- описание
window [window-name-2] {
; Задают отличительные признаки окна: по имени класса,
; заголовка или имени файла. Отсутствие параметра обозначает
; "любой" (заголовок, класс, файл). Присутствующие параметры
; связываются по логическому "И".
ClassName window-class-name
Title window-title
FileName window-file-name
; Переопределение глобальных параметров для данного типа
; окон.
XMove {on | off}
XScroll {on | off}
; Задача, которая будет выполняться при создании (запуске)
; такого окна.
Task task-name
; Другой синтаксис - непосредственное описание задачи.
Task [task-name] {
...
}
p.s.
; Действия, которые будут выполняться в задаче Task,
; заданной в разделе window, будут относиться к окну,
; описываемому данным разделом.
}
window [window-name-3] {
...
}
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Jobs
;;
;; Список работ.
;; Работа - задача, выполняемая периодически и/или в
;; определенное время (в соответствии с задаваемым расписанием).
;;
## --- содержание
job [job-name-1] {
StartTime YYYY-MM-DD hh:mm:ss
Period d
CronTime tMin tHour tDay tMonth tDayOfWeek
ResumeForRun {on | off}
Task task-name
Task [task-name] {
...
}
}
## --- описание
job [job-name-2] {
; Время первого запуска задачи.
StartTime YYYY-MM-DD hh:mm:ss
; Периодичность выполнения задачи в секундах.
; Например,
; d = 3600 - выполнять задачу один раз в час;
; d = 86400 - выполнять задачу один раз в сутки;
; d = 604800 - выполнять задачу один раз в неделю.
Period d
; Шаблон времени выполнения задачи в формате сервиса cron
; (планировщик в unix-системах).
; tMin, tHour, tDay, tMonth, tWeekOfDay - шаблоны
; минут, часов, дней, месяцев и дней недели соответственно.
CronTime tMin tHour tDay tMonth tDayOfWeek
; Шаблоны могут быть:
; - конкретным значением (например, 5 - пятое число или
; месяц и т.п.);
; - перечислением значений через запятую (например, 5,9,13,18);
; - интервалом значений (например, 5-13);
; - интервалом с определенным шагом (например, 1-9/2 -
; равносильно 1,3,5,7,9);
; - символом * (звездочка), эквивалентным слову "любой"
; или списку всех допустимых значений (например, * для
; часов - это тоже, что и 0-23).
;
; В общем случае шаблоны имеют следующий формат:
; {*[/step] | n0[-n1[/step]]}[, ...]
; n0, n1 - числа. Для минут - от 0 до 59, для часов - от
; 0 до 23, для дней - от 1 до 31, для месяцев - от 1 до 12,
; для дней недели - от 0 (воскресение) до 6.
; step - число, обозначающее периодичность.
; * - эквивалентна записи m0-m1, где m0 - минимальное
; значение, m1 - максимальное (для минут, часов, дней и т.д.).
; Дни могут задаваться двумя способами - день месяца и день
; недели. Если задан и день месяца и день недели, то задача
; будет выполняться и в указанные дни месяца и в указанные
; дни недели.
; Примеры:
; 0 * * * * - выполнять работу каждый час (в 0 минут каждого
; часа);
; 5 13 * * * - выполнять работу раз в день (каждый день) в
; 13 часов 5 минут;
; 1-15,20,45-59/2 */2 * * * - выполнять работу каждые два часа
; (в 0 часов, 2, 4, 6 и т.д.) ежеминутно с 1 по
; 15-ю минуты часа, потом в 20 минут, потом через
; одну минуту начиная с 45-ой (в 45 мин, 47, 49,
; 51 и т.д.);
; 30 4 1,15 1-3 5 - выполнять работу в 4:30 первого и 15
; числа в январе, феврале и марте, а также в 4:30
; каждую пятницу января, февраля и марта.
; p.s.
; Для каждой работы обязательно должен быть задан хотя бы
; один из параметров StartTime, Period, CronTime. Если заданы
; и Period, и CronTime, то задача будет выполняться и во время
; соответствующее Period, и во время соответствующее CronTime.
; Если задано StartTime, то в первый раз задача выполнится в
; StartTime независимо от того, удовлетворяет это время
; шаблону CronTime, или нет.
; Выводить компьютер из ждущего режима для выполнения
; задачи (on) или нет (off). Если компьютер находится ждущем
; режиме, то в случае значения off выполнение задачи будет
; пропущено.
; (по умолчанию - off)
ResumeForRun {on | off}
; Задача, которая будет выполняться по расписанию.
Task task-name
; Другой синтаксис - непосредственное описание задачи.
Task [task-name] {
...
}
; p.s.
; Действия, которые будут выполняться в задаче Task, заданной
; в разделе job, будут относиться к окну на переднем плане.
}
job [job-name-3] {
...
}
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Transliterations
;;
;; Таблицы, используемые для транслитерации содержимого буфера
;; обмена (смотрите ниже описание команды TranslitClipboard).
;;
## --- содержание
transliteration [translit-table-name1] {
From from-str
To to-str
...
}
## --- описание
transliteration [translit-table-name2] {
; Строка, задающая (через пробел) КАКИЕ символы будут
; транслироваться.
; Строка должна начинаться с наиболее длинных
; последовательностей. Сами символы можно задавать также в
; формате \uNNNN или \xNNNN, где NNNN - шестнадцатиричный код
; символа в кодировке Unicode.
; Например, "ый ий яя а б в г ь".
From from-str
; Строка, задающая (через пробел) В КАКИЕ символы будут
; транслироваться соответствующие символы из строки From.
; Символ "~" (тильда) обозначает "заменить на пустое
; значение". (Если необходимо использовать собственно знак
; тильда, то его следует записать в виде кода: \u007E).
; Например, "y y aya a b v g ~".
To to-str
...
}
transliteration [translit-table-name3] {
...
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; конец конфигурационного файла caesar ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Далее идет полный список возможных в разделе task команд.
;; каждая команда может повторяться в разделе task любое
;; количество раз.
;;
;; Команды, описание которых начинается с символа "*"
;; (звездочка), заставляют программу игнорировать параметр
;; NewThread задачи: задача всегда выполняется в отдельном, а
;; не в основном, потоке приложения.
;;
;; Если не оговорено иное, то:
;; - каждая команда присваивает переменной errorlevel (смотрите
;; ниже раздел "Управляющие конструкции") значение 0, если
;; она выполнена успешно, и значение 1 в противном случае;
;; - переменной result присваивается значение 0.
;;
; Далее,
; t - это время в миллисекундах, в течение которого необходимо
; ждать выполнения текущей команды прежде чем перейти к
; следующей команде в задаче. Должно быть в пределах от 100 до
; 60000000 мс. Если не указано, то сразу осуществляется переход
; к следующей команде.
; T - аналогично t, но: должно быть больше 100 мс, и, если не
; указано, то следует ожидать выполнения текущей команды
; бесконечно долго.
# Окно ##################################################
## --- содержание
SetAlwaysOnTop {on | off}
SetWindowPos x,y
MoveWindow dx,dy
SetWindowSize w,h
ResizeWindow dw,dh
MaximizeWindow [t]
MinimizeWindow [t]
RestoreWindow [t]
CloseWindow [t]
* MinimizeWindowToTray
* RestoreWindowFromTray
SetResizeWindowMode [t]
SetTransparencyAlpha n
UpTransparencyAlpha dn
DownTransparencyAlpha dn
SetTransparencyColor {0xBBGGRR | n}
SwitchToForegroundWindow
SwitchToParentWindow
SwitchToWindow window-name
SetWindowToForeground
WindowIs window-name
WindowStateIsIconic
WindowStateIsZoomed
WindowStateIsVisible
ShowWindowInfo
TrackXMenu
## --- описание
; Установить / снять режим отображения поверх остальных окон.
SetAlwaysOnTop {on | off}
; Переместить окно. (x, y) - координаты левого верхнего угла
; у новой позиции окна в пикселях.
SetWindowPos x,y
; Переместить окно относительно текущей позиции. (dx, dy) -
; на сколько пикселей нужно сместиться отосительно текущего
; положения окна.
; Если dy равно 0x8000, то окно смещается по своей диагонали,
; идущей из левого верхнего угла в правый нижний на dx
; пикселей.
; Если dx равно 0x8000, то окно смещается по своей диагонали,
; идущей из правого верхнего угла в левый нижный на dy
; пикселей.
MoveWindow dx,dy
; Изменить размеры окна (w, h) - новая ширина и высота окна
; в пикселях.
SetWindowSize w,h
; Изменить ширину и высоту окна относительно его текущих
; размеров. (dw, dh) - на сколько пикселей нужно изменить
; размер ширины и высоты окна.
; Если dh равно 0x8000, то меньший размер окна изменяется на
; dw пикселей, а больший - на такое количество писелей, что бы
; соотношение ширины и высоты окна не изменилось (сохранилась
; пропорция).
ResizeWindow dw,dh
; Распахнуть окно на весь экран.
MaximizeWindow [t]
; Свернуть окно.
MinimizeWindow [t]
; Восстановить окно.
RestoreWindow [t]
; Закрыть окно.
CloseWindow [t]
;*Свернуть окно в трей.
MinimizeWindowToTray
;*Восстановить окно из трея.
RestoreWindowFromTray
; Перевести окно в режим изменения размеров с клавиатуры.
; (Аналогично выбору пункта "Размер" в системном меню окна.)
SetResizeWindowMode [t]
; Установить прозрачность окна по альфа-каналу.
; n - значение от 0 (окно полностью прозрачно) до 255 (окно
; не прозрачно).
SetTransparencyAlpha n
; Увеличить значение прозрачности окна.
UpTransparencyAlpha dn
; Уменьшить значение прозрачности окна.
DownTransparencyAlpha dn
; Установить в качестве прозрачного определенный цвет.
; n - десятичное число, 0xBBGGRR - шестнадцатеричное,
; где RR, GG, BB - 16-теричные представления красной, зеленой
; и синей составляющей цвета.
SetTransparencyColor {0xBBGGRR | n}
; Переключится на окно, которое сейчас на переднем плане.
; (Сначала команды задачи начинаются либо с окна на переднем
; плане (если задачу запустила горячая клавиша), либо с
; окна которое создается (если задача запущена из window);
; многие команды могут убрать первоначальное окно с переднего
; плана (или вообще закрыть его); для смены текущего окна,
; над которым будут производиться дальнейшие действия и
; предназначена данная команда.)
SwitchToForegroundWindow
; Переключиться на окно, которое является родительским окном
; верхнего уровня по отношению к текущему окну.
; (Задачи, которые выполняются как результат прокрутки
; колесика мыши или клике кнопкой мыши на кнопках заголовка
; окна, могут оперировать с дочерними окнами; для переключения
; на родительское окно верхнего уровня и служит данная
; команда.)
SwitchToParentWindow
; Переключиться на окно, описанное разделом window.
; window-name - имя окна.
; После выполнения этой команды переменная errorlevel
; устанавливается в 0, если окно найдено и дальнейшие команды
; будут относиться к нему, и в 1, если окно не найдено и
; переключения не произведено.
; Поиск происходит только среди окон верхнего уровня. Если под
; описание окна с именем window-name попадает несколько окон,
; то переключение происходит на любое из них. Если текущее
; окно уже соответствует окну window-name, то caesar попытается
; найти другое окно и переключиться на него. В этом случае
; errorlevel будет равно 0 вне зависимости от того удалось
; найти второе окно window-name или нет.
SwitchToWindow window-name
; Переводит текущее окно, над которым производятся действия
; в задаче не передний план (делает его активным).
SetWindowToForeground
; Проверяет, является ли текущее окно окном, описанном в
; разделе window под именем window-name.
; После выполнения данной команды переменная result
; устанавливается в значение 1, если текущее окно является
; окном window-name и в значение 0 - в противном случае.
WindowIs window-name
; Проверяет, свернуто текущее окно (минимизировано) или нет.
; Если после выполнения команды переменная result равна 1,
; то окно свернуто, иначе - нет.
WindowStateIsIconic
; Проверяет, развернуто текущее окно (максимизировано) или нет.
; Если после выполнения команды переменная result равна 1,
; то окно развернуто, иначе - нет.
WindowStateIsZoomed
; Проверяет, видимо ли текущее окно или нет.
; Если после выполнения команды переменная result равна 1,
; то окно видимо, иначе - нет.
WindowStateIsVisible
; Показать информацию об окне.
; (Аналогична пункту меню "Window Info" в XMenu.)
ShowWindowInfo
; Отобразить XMenu для текущего окна.
; Меню отображается в текущей позиции указателя мыши.
TrackXMenu
# Приложение ############################################
## --- содержание
SetProcessPriority priority-class
* Run file-name
RunApp command-line
* RunAppAndWaitForInputIdle command-line
* RunAppAndWaitForClose command-line
AppShow show-mode
AppUser user-name
AppPassword user-password
AppDomain domain-name
* WaitForInputIdle [T]
* WaitForClose [T]
* Sleep k
TerminateApp
## --- описание
; Устанавливает приоритет текущего процесса.
SetProcessPriority {real time | height | above normal
| normal | below normal | idle}
;*Запустить файл.
; (Аналогично нажатию Enter на файле в проводнике,
; или выбору в меню Пуск команды "Выполнить", заполнения поля
; "Открыть" (например, "http://www.ya.ru") и нажатию OK.)
; Если команда устанавливает errorlevel в 1 (т.е. файл
; запустить не удалось), то в result сохраняется код ошибки.
; Вот некоторые значения result:
; 2 - файл не найден;
; 3 - путь не найден;
; 5 - доступ запрещен;
; 8 - не хватает памяти для выполнения операции;
; 26 - ошибка совместного доступа к файлу;
; 27 - ассоциация с данным файлом задана неверно;
; 31 - отсутствует приложение, ассоциированное с данным файлом.
; (Везде, где только есть возможность настоятельно рекомендую
; использовать вместо этой команды команду RunApp, где в
; качестве параметра exe-файла будет file-name.)
Run file-name
; Запустить приложение (exe или com).
; comand-line - командная строка с аргументами. Если в имени
; выполняемого файла присутствуют пробелы, то его нужно
; заключить в двойные кавычки.
RunApp command-line
;*Запустить приложение и ждать пока процесс не войдет в цикл
; ожидания.
RunAppAndWaitForInputIdle command-line
;*Запустить приложение и дождаться его завершения.
; В случае успешного завершения команды (errorlevel = 0) в
; result сохраняется код, с которым завершилось приложение,
; указанное в command-line.
RunAppAndWaitForClose command-line
; Задать режим первоначального отображения окна запускаемого
; командами Run* приложения.
; default - запустить с отображением по умолчанию для
; данного приложения;
; hide - окно скрыто (невидимо);
; normal - нормальный режим отображения окна (не
; свернуто и не максимизировано);
; minimized - минимизировано;
; maximized - развернуто на весь экран.
AppShow {hide | normal | minimized | maximized | default}
; Команды, выполняемые RunApp* можно запустить от имени другого
; пользователя (только для Win2000 и выше). Для этого перед
; вызовами RunApp* можно указать команды
AppUser user-name
AppPassword user-password
AppDomain domain-name
; Что бы после запуска от имени другого пользователя запустить
; приложение от текущего пользователя достаточно вызвать
; AppUser с пустым user-name.
;
; Пример:
; task multiuser-run {
; RunApp excel.exe
; AppUser UserName1
; AppPassword UserPassword1
; RunApp calc.exe
; RunApp notepad.exe
; AppUser
; AppShow maximized
; RunApp word.exe
; }
;
; calc.exe и notepad.exe будут запущены от имени UserName1,
; а excel.exe и word.exe - от имени текущего пользователя.
; Окно word.exe будет развернуто на весь экран.
; Задачу, в которой присутствует команда RunApp*, а запуск
; приложения осуществляется от другого пользователя,
; рекомендуется запускать в отдельном потоке (NewThread on).
;
; Команды App* не изменяют значений переменных errorlevel и
; result.
;*Ждать пока процесс не войдет в цикл ожидания.
WaitForInputIdle [T]
;*Подождать завершения приложения.
; По результатам выполнения команды возможны следующие
; значения переменной errorlevel:
; 0 - команда выполнилось успешно, приложение завершено
; (код, с которым завершилось приложение сохраняется
; в result);
; 1 - при выполнении команды возникли ошибки, приложение
; не завершено;
; 2 - команда завершилась, так как истек таймаут T,
; приложение не завершено.
WaitForClose [T]
;*Ничего не делать k миллисекунд.
Sleep k
; Уничтожить процесс (все несохраненные данные теряются).
TerminateApp
# Система ###############################################
## --- содержание
LockWorkstation
OffMonitor [n]
Suspend [n]
Hibernate [n]
Logoff [n]
Reboot [n]
Shutdown [n]
## --- описание
; Заблокировать компьютер.
; (Только для Win2000 и выше.)
LockWorkstation
; Выключить монитор (перевести его в off mode).
; Если задано n, отличное от нуля, то монитор переводится
; в режим низкого энергопотребления (low-power mode).
OffMonitor [n]
; Перевод компьютера в ждущий режим (отключаются диски и
; монитор; просыпается компьютер по нажатию любой клавиши).
; Если задано n, отличное от нуля, то разрешения на переход
; в ждущий режим у других программ не спрашивается.
Suspend [n]
; Перевод компьютера в спящий режим (компьютер полностью
; выключается, сохраняя на винчестере образ памяти, который он
; восстанавливает при следующей загрузке).
; Если задано n, отличное от нуля, то разрешения на переход
; в спящий режим у других программ не спрашивается.
Hibernate [n]
; Завершить сеанс пользователя.
; Если задано n, отличное от нуля, то сеанс завершается даже
; если имеются несохраненные данные (которые будут утеряны).
Logoff [n]
; Перезагрузить компьютер.
; Если задано n, отличное от нуля, то перезагрузка будет
; выполнена даже если имеются несохраненные данные (которые
; будут утеряны).
Reboot [n]
; Выключить компьютер.
; Если задано n, отличное от нуля, то выключение будет
; выполнено даже если имеются несохраненные данные (которые
; будут утеряны).
Shutdown [n]
# Буфер обмена ##########################################
## --- содержание
CopyToClipdoard [message-text]
ChangeClipboardCase {to upper case | to lower case | switch case}
ChangeClipboardLayout {to next layout | to prev layout | ...}
ChangeClipboardFormat to plain text
TranslitClipboard translit-table-name
BackTranslitClipboard translit-table-name
UseWordbreakTemplate [wordbreak-set]
StoreClipboard [n]
RestoreClipboard [n]
EmptyClipboard
ClipboardIsEmpty
## --- описание
; Копировать строку в буфер обмена.
; Если message-text не задан, то в буфер обмена будет
; скопирован текст из окна, который имеет в данный момент фокус
; ввода (копируются только первые 1024 символа строки).
; message-text может содержать специальные символы
; форматирования (смотрите описание команды osdText).
CopyToClipdoard [message-text]
; Поскольку вставку из буфера обмена каждая программа реализует
; по-своему, то рекомендуются для вставки эмулировать действия
; пользователя в той программе в которой производится вставка
; (смотрите разделы "Клавиатура" и "Мышь").
; Изменение регистра текста, находящегося в буфере обмена.
; to upper case - преобразовать к ВЕРХНЕМУ регистру;
; to lower case - преобразовать к нижнему регистру;
; switch case - иЗМЕНИТЬ регистр.
ChangeClipboardCase {to upper case | to lower case | switch case}
; Изменение раскладки клавиатуры текста, находящегося в буфере
; обмена (например, преобразование "ghbdtn" в "привет").
; to next layout - к следующей, по отношению к текущей,
; раскладке клавиатуры;
; to prev layout - к предыдущей, по отношению к текущей,
; раскладке клавиатуры;
; to stored layout [n] - к сохраненной ранее командой
; StoreKeyboardLayout раскладке клавиатуры;
; layout-name - к конкретной раскладке клавиатуры.
; layout-name = 00000419 - русская;
; 00000409 - английская;
; 00000423 - белорусская;
; 00000422 - украинская;
; ... - и т.д.
ChangeClipboardLayout {to next layout | to prev layout
| to stored layout [n] | layout-name}
; Команда из всего содержимого буфера обмена оставляет в нем
; только текст.
; Если в буфере обмена отсутствует текст, то буфер очищается и
; переменной result присваивается значение 1.
ChangeClipboardFormat to plain text
; Транслитерация содержимого буфера обмена по таблице
; translit-table-name задаваемой разделом transliteration
; (смотрите выше).
; Преобразование осуществляется из значений From в значения To
; таблицы транслитерации.
; (Например, преобразование "привет" в "privet".)
TranslitClipboard translit-table-name
; Обратная транслитерация содержимого буфера обмена по таблице
; translit-table-name.
; Команда аналогична команде TranslitClipboard, но
; преобразование осуществляется из значений To в значения From
; таблицы преобразований.
; Данную команду рекомендуется использовать только в том случае,
; если таблица транслитерации взаимнооднозначна: т.е. длины
; соответствующих значений в From и To равны и одному значению
; из To соответствует ровно одно значение из From. Иначе, для
; обратной транслитерации, лучше описать еще один раздел
; transliteration и воспользоваться командой TranslitClipboard.
BackTranslitClipboard translit-table-name
; Если данная команда испльзуется, то она изменяет поведение
; команд ChangeClipboardCase, ChangeClipboardLayout,
; TranslitClipboard, BackTranslitClipboard. Данные команды в
; этом случае преобразуют не все содержимое буфера обмена, а
; только последнее слово. Символы, которые являются
; разделителями слов перечисленны в строке wordbreak-set. Если
; wordbreak-set не задана, то используется строка
; \u0020\u0009\u00A0\u000D
; (пробел, табуляция, неразнывный пробел, перевод строки).
; Использовать данную команду следует перед каждым вызовом
; ChangeClipboardCase, ChangeClipboardLayout, TranslitClipboard
; или BackTranslitClipboard.
; Команда не оказывает влияния на переменные errorlevel и
; result.
UseWordbreakTemplate [wordbreak-set]
; Сохранить содержимое буфера обмена в памяти.
; n - номер, так называемой, ячейки, в которой нужно сохранить
; данные. Может быть от 0 до 9. Если не задан, то - 0. Если
; буфер обмена пуст, то после выполнения команды содержимое
; ячейки n также будет пустым.
StoreClipboard [n]
; Восстановить ранее сохраненное содержимое буфера обмена
; из ячейки n (от 0 до 9). Если n не задано, то данные
; восстанавливаются из нулевой ячейки. После восстановления
; ячейка очищается (в отличие от буфера обмена Windows, в
; котором содержимое остается даже после вставки). Если
; первоначально ячейка n пуста, то содержимое буфера обмена
; будет очищено.
RestoreClipboard [n]
; Очистить содержимое буфера обмена.
EmptyClipboard
; Проверяет имеются ли в буфере обмена какие-либо данные.
; После выполнения данной команды переменная result
; устанавливается в 1, если буфер обмена не пуст, и в 0, в
; противном случае.
ClipboardIsEmpty
# Рабочий стол ##########################################
## --- содержание
RunScreenSaver [t]
PressStartButton [t]
MinimizeAll [t]
RestoreAll [t]
ToggleDesktop [t]
* MakeScreenShot bmp-file-name
SetWallpaperCenter bmp-file-name
SetWallpaperScaled bmp-file-name
SetWallpaperTiled bmp-file-name
## --- описание
; Запустить заставку.
RunScreenSaver [t]
; Нажать кнопку "Пуск".
PressStartButton [t]
; Cвернуть все окна.
MinimizeAll [t]
; Восстановить окна, свернутые командой MinimizeAll.
RestoreAll [t]
; Показать рабочий стол Windows, либо восстановить окна,
; скрытые предыдущим вызовом команды.
; В отличие от команды MinimizeAll, команда ToggleDesktop
; скрывает для отображения рабочего стола даже те окна, у
; которых отсутствует кнопка "Минимизировать".
ToggleDesktop [t]
;*Сделать "снимок" экрана и сохранить результат в bmp-файл.
MakeScreenShot bmp-file-name
; Установить в качестве обоев файл. Расположить картинку по
; центру экрана.
SetWallpaperCenter bmp-file-name
; Установить в качестве обоев файл. Растянуть картинку на весь
; экран.
SetWallpaperScaled bmp-file-name
; Установить в качестве обоев файл. Расположить картинки рядом,
; заполняя весь экран.
SetWallpaperTiled bmp-file-name
# Клавиатура ############################################
## --- содержание
StoreKeyboardLayout [n]
SetKeyboardLayout {to next layout | to prev layout | ...}
SetNumLock {on | off | switch}
SetCapsLock {on | off | switch}
SetScrollLock {on | off | switch}
DownKey vk
UpKey vk
SendKeystroke vk11+vk12+..+vk1n vk21+vk22+..vk2k ...
TypeText message-text
KeyboardWasChanged
## --- описание
; Запомнить текущую раскладку клавиатуры в памяти caesar.
; n - номер, так называемой, ячейки, в которой нужно
; сохранить раскладку. Может быть от 0 до 9. Если не задан,
; то - 0.
; В дальнейшем использовать сохраненную раскладку можно в
; командах ChangeClipboardLayout и SetKeyboardLayout.
StoreKeyboardLayout [n]
; Переключиться на определенную раскладку клавиатуры.
; to next layout - к следующей, по отношению к текущей,
; раскладке клавиатуры;
; to prev layout - к предыдущей, по отношению к текущей,
; раскладке клавиатуры;
; to stored layout [n] - к сохраненной ранее командой
; StoreKeyboardLayout раскладке клавиатуры;
; layout-name - к конкретной раскладке клавиатуры.
; layout-name = 00000419 - русская;
; 00000409 - английская;
; 00000423 - белорусская;
; 00000422 - украинская;
; ... - и т.д.
SetKeyboardLayout {to next layout | to prev layout
| to stored layout [n] | layout-name}
; Задать состояние клавиши Num Lock.
; off - выключена;
; on - включена;
; switch - если включена, то выключить, если выключена,
; то включить.
SetNumLock {on | off | switch}
; Задать состояние клавиши Caps Lock.
; (смотрите SetNumLock)
SetCapsLock {on | off | switch}
; Задать состояние клавиши Scroll Lock.
; (смотрите SetNumLock)
SetScrollLock {on | off | switch}
; Нажать определенную клавишу.
; vk - виртуальный код клавиши в формате, аналогичном параметру
; Key раздела hotkey. Кроме этого vk может принимать также
; значения {lAlt | rAlt | lCtrl | rCtrl | lShift | rShift |
; lWin | rWin}.
; Возможно также принудительно снимать или устанавливать флаг
; "расширенная клавиша" ("extended key"): если перед кодом (или
; обозначением) клавиши указать символ "^" (крышка), то это
; устанавливает данный флаг; если указать символ "~" (тильда),
; то это снимает флаг; в противном случае необходимость
; установки флага определяется автоматически.
DownKey vk
; Отпустить (отжать) определенную клавишу.
; (смотрите также DownKey)
UpKey vk
; Эмулировать нажатия нескольких клавиш.
; (смотрите также DownKey)
SendKeystroke vk11+vk12+..+vk1n vk21+vk22+..vk2k ...
; До пробела клавиши нажимаются, пробел - значит отпустить все
; нажатые клавиши, затем идет опять нажатие клавиш, потом
; пробел - отпустить и т.д.
; Учтите, что данной командой нажимаются именно клавиши, а не
; буквы. Так если необходимо написать слово "Привет", то это
; можно сделать следующими командами:
; SetCapsLock off
; SetKeyboardLayout 00000419
; SendKeystroke Shift+g h b d t n
; Однако проще воспользоваться командой TypeText:
; TypeText Привет
; Эмулировать набор текста с клавиатуры.
; (Только для Win2000 и выше.)
; message-text - текст, содержащий специальные символы
; форматирования, описание которых смотрите в команде osdText
; ниже.
TypeText message-text
; Показывает были ли нажаты какие-либо клавиши между нажатием
; и отпусканием клавиши XKey.
; После выполнения данной команды переменная result
; устанавливается в 1, если между после нажатия на клавишу XKey
; была нажата какая-либо другая клавиша, и в 0, в противном
; случае.
; Рекомендуется использовать данную команду в задаче OnXKeyUp.
KeyboardWasChanged
# Мышь ##################################################
## --- содержание
DownMouseButton {left | right | middle | x1 | x2}
UpMouseButton {left | right | middle | x1 | x2}
ClickMouseButton {left | right | middle | x1 | x2}
SetMousePos x,y
MoveMouse dx,dy
WheelMouse n
## --- описание
; Нажать кнопку мыши.
DownMouseButton {left | right | middle | x1 | x2}
; Отпустить кнопку мыши.
UpMouseButton {left | right | middle | x1 | x2}
; Кликнуть кнопкой мыши (тоже, что и нажать, а затем отпустить).
ClickMouseButton {left | right | middle | x1 | x2}
; Переместить указатель мыши в определенную позицию.
SetMousePos x,y
; Сместить указатель мыши относительно текущей позиции.
MoveMouse dx,dy
; Прокрутить колесико мыши n раз.
; Если n > 0 - прокрутить вперед (от пользователя, вверх),
; иначе - назад (к пользователю, вниз).
WheelMouse n
; p.s.
; Следует учитывать, что эмулируемые события от мыши не
; относятся к какому-то определенному окну. Так, если Вы
; программно (командой ClickMouseButton left) нажмете кнопку
; "Пуск", то прежде чем дальше программно выбирать определенный
; пункт меню в "Пуске" нужно подождать пока это меню
; прорисуется и отобразится на экране. Это можно сделать
; вызовом, например, Sleep 300.
# Звук ##################################################
## --- содержание
PlaySound wav-file-name
PlayStandardSound sound-type
* Beep k,h
SetVolume n
UpVolume dn
DownVolume dn
## --- описание
; Проиграть звуковой файл (в формате wav).
PlaySound wav-file-name
; Проиграть стандартный звук Windows.
; Поддерживаются следующие типы звуков:
; simple - звук по умолчанию, или, если отсутствует
; звуковая карта, - звук системного динамика;
; asterisk - звук "Звездочка";
; exclamation - звук "Восклицание";
; hand - звук "Критическая ошибка";
; question - звук "Вопрос";
; default - "Стандартный звук".
; Настройка стандартных звуков в Windows производится через
; меню "Пуск", "Панель управления", "Звуки и аудиоустройства".
PlayStandardSound {simple | asterisk | exclamation | hand | question | default}
;*Выдать звук системного динамика.
; k - время в миллисекундах в течение которого нужно
; подавать звук.
; h - частота звука в герцах (от 37 до 32767).
; Учтите, что, в отличии от команд PlaySound и PlayStandardSound,
; перехода к следующей команде не происходит пока звук не
; будет полностью проигран системным динамиком.
Beep k,h
; Установить общую громкость звука в системе.
; n - число от 0 (выключено) до 65535 (максимум).
SetVolume n
; Увеличить общую громкость звука в системе.
UpVolume dn
; Уменьшить общую громкость звука в системе.
DownVolume dn
# OSD ###################################################
; Показать OSD-сообщение.
osdText message-text
; message-text может содержать специальные символы форматирования.
; Символы форматирования чувствительны к регистру.
; \n - заменяется на перевод строки;
; \uNNNN или \xNNNN - заменяется на символ с шестнадцатиричным
; кодом NNNN (в кодировке Unicode);
; %O - состояние флага "always on top" для текущего окна;
; %t - заголовок текущего окна;
; %с - имя класса текущего окна;
; %f - имя основного модуля (файла) текущего окна;
; %X - горизонтальная позиция левого верхнего угла текущего окна;
; %Y - вертикальная позиция левого верхнего угла текущего окна;
; %W - ширина текущего окна;
; %H - высота текущего окна;
; %P - приоритет процесса, которому принадлежит текущее окно;
; %a - значение прозрачности окна по альфа-каналу (от 0 до 255);
; %p - значение прозрачности окна по альфа-каналу в процентах (от 0 до 100);
; %k - значение прозрачного цвета текущего окна в формате 0xBBRRGG;
; %V - значение общей громкости звука (от 0 до 65535);
; %v - значение общей громкости звука в процентах (от 0 до 100);
; %C - текст из буфера обмена;
; %L - полное наименование текущего языка (раскладки клавиатуры);
; %l - сокращенное (трехбуквенное) наименование текущего языка;
; %2 - сокращенное (двухбуквенное) наименование текущего языка;
; %e - значение переменной errorlevel;
; %r - значение переменной result;
; %% - символ %;
; %D[{date-format}] - текущая дата. Если не указан date-format,
; то дата выводится в "кратком формате даты" задаваемым
; в "Панели управления", "Язык и региональные стандарты".
; date-format - строка, содержащая специальные символы
; форматирования даты. Если в эту строку Вы включаете
; символы не являющиеся символами форматирования, то
; заключайте такие символы в одинарные кавычки. Символы
; форматирования:
; d - день месяца (один или две цифры без ведущего нуля);
; dd - день месяца (две цифры с ведущим нулем);
; ddd - краткое (двух- трехбуквенное) обозначение дня недели;
; dddd - полное наименование дня недели;
; M - номер месяца (одна или две цифры без ведущего нуля);
; MM - номер месяца (две цифры с ведущим нулем);
; MMM - краткое (трехбуквенное) обозначение месяца;
; MMMM - полное наименование месяца;
; y - последние две цифры года без ведущего нуля;
; yy - последние две цифры года с ведущем нулем;
; yyyy - четыре цифры года (полный номер года);
; gg - номер века.
; date-format не может превышать 48 символов.
; (пример: "сегодня %D{dddd dd'.'MM'.'yy}")
; %T[{time-format}] - текущее время. Если не указан time-format,
; то время выводится в формате, установленным в "Панели
; управления", "Язык и региональные стандарты".
; time-format - строка, содержащая специальные символы
; форматирования времени:
; h - часы (одна или две цифры без ведущего нуля) от 0 до 11;
; hh - часы (две цифры с ведущим нулем) от 0 до 12;
; H - часы (одна или две цифры без ведущего нуля) от 0 до 23;
; HH - часы (две цифры с ведущим нулем) от 0 до 23;
; m - минуты (одна или две цифры без ведущего нуля);
; mm - минуты (две цифры с ведущим нулем);
; s - секунды (одна или две цифры без ведущего нуля);
; ss - секунды (две цифры с ведущим нулем);
; t - один символ "до полудня" / "после полудня" (А или Р);
; tt - два символа "до полудня" / "после полудня" (AM или PM).
; time-format не может превышать 48 символов.
; (пример: "время %T{HH' : 'mm} - пора обедать")
; В разделе task также могут использоваться любые osd*
; параметры из глобальных настроек - они будут переопределять
; их. Причем переопределять можно несколько раз (перед
; каждым вызовом команды osdText). Задание osd*-настройки
; без параметра или с нулевым значением обозначает, что нужно
; взять значение по умолчанию (т.е. из глобальных настоек).
; osd* параметры не изменяют значений переменных errorlevel и
; result.
osdRectPos x,y
osdRectSize w,h
osdTextFlags flags
osdTextColor {0xBBGGRR | n}
osdTextBorderColor {0xBBGGRR | n}
osdFontSize n
osdFontFlags n
osdFontName font-name
osdTime t
; пример:
; hotkey down-transparency {
; Key Win+Down
; Task {
; DownTransparencyAlpha 4
; osdRectPos 10,10
; osdRectSize 300,100
; oszTime 1000
; osdText прозрачность %p%%
; }
; }
# Прочее ################################################
## --- содержание
InfoBox message-text
* MessageBox message-text
* QuestionBox message-text
* WriteToLog message-text
* ShowPassword [k,d]
CloseLogFile
OpenLogFile
* EjectDevice DeviceLetter
* LoadDevice DeviceLetter
## --- описание
; Показать сообщение в окне "Window info".
; message-text может содержать специальные символы
; форматирования (смотрите выше описание команды osdText).
InfoBox message-text
;*Показать сообщение в стандартном диалоговом окне.
; message-text может содержать специальные символы
; форматирования (смотрите выше описание команды osdText).
MessageBox message-text
;*Показать сообщение в стандартном окне диалога с возможностью
; ответа на него путем нажатия кнопок "Да" или "Нет".
; Переменная result принимает значение 1, если пользователь
; выбрал "Да", и значение 0 - в противном случае.
; message-text может содержать специальные символы
; форматирования (смотрите выше описание команды osdText).
QuestionBox message-text
;*Записать сообщение в лог-файл.
; message-text может содержать специальные символы
; форматирования (смотрите выше описание команды osdText).
WriteToLog message-text
;*Показать пароль, спрятанный за звездочками в стандартном
; поле для ввода пароля.
; k - показать пароль в отдельном информационном окне или в
; исходном окне (звездочки заменить открытым текстом). 0 (или
; не задано) - в информационном окне, 1 - в исходном.
; d - время, в миллисекундах, в течение которого нужно
; показывать пароль открытым текстом (если k=1), или по
; истечении которого нужно показать информационное окно (если
; k=0). Если не задано, то - 650 мс.
; Данная команда работает не во всех случаях.
ShowPassword [k,d]
; Прекратить запись в лог-файл, закрыть файл.
; Это может понадобиться что бы, например,
; переместить/переименовать лог-файл и начать запись
; в чистый (новый) файл.
CloseLogFile
; Возобновить запись в лог-файл, открыть файл.
; Если файла не существует, он создается. Имя файла берется из
; командной строки запуска caesar или по умолчанию (смотрите
; описание ключей командной строки caesar).
OpenLogFile
;*Извлечь диск из СD/DVD (отключить флэшку, диск фотокамеры,
; USB-диск и т.п.).
; DeviceLetter - буква устройства (диска)
EjectDevice DeviceLetter
;*Закрыть дверцу диска CD/DVD.
LoadDevice DeviceLetter
# Управляющие конструкции ###############################
; Выполнение набора команд command-set-1, если условие верно и
; набора команд command-set-2 - в противном случае.
; command-set может содержать любые команды и управляющие
; конструкции (в том числе конструкции if).
; op может принимать следующие значения:
; =, == - равно;
; !=, <> - не равно;
; > - больше;
; < - меньше;
; >= - больше или равно;
; <= - меньше или равно.
; Если op не указан, то подразумевается ">=" ("больше или
; равно") - по аналогии с bat-файлами Windows.
; n - число.
if {errorlevel | result} op n
command-set-1
[else
command-set-2
]
endif
; Задает метку с именем label-name.
:label-name
; Осуществляет переход к команде следующей за меткой
; с именем label-name.
goto label-name
; Завершение задачи.
; Все команды следующие за exit не выполняются.
exit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Я рекомендую так же использовать возможности командных
файлов (bat-файлов), использовать php-, js- или vb-скрипты.
Например, для запуска php-скрипта, нужно написать задачу со
строкой
RunApp php.exe -f php-file-name.php