Ru-Board.club
← Вернуться в раздел «Программы»

» caesar

Автор: sandrey
Дата сообщения: 29.05.2007 09:21
caesar
Небольшая утилита, совмещающая в себе расширенное управление окнами Windows, менеджер горячих клавиш, переключатель раскладки клавиатуры, а также планировщик заданий. CAESAR не имеет графического интерфейса, управляется из командной строки, а все настройки описываются в конфигурационном файле.


Вот некоторые возможности программы:

переключение раскладки клавиатуры по клавише Ctrl (или Shift), индикация раскладок клавиатуры с помощью Scroll Lock, Caps Lock, Num Lock;
изменение (через буфер обмена) регистра набираемого текста, его транслитерация и обратная транслитерация, корректировка раскладки клавиатуры;
сворачивание окон в область уведомлений, изменение их прозрачности, перемещение мышью при нажатой Alt, прокрутка содержимого окна под указателем мыши;
выполнение произвольных действий при создании (открытии) окна (запуске приложения);
назначение горячих клавиш на произвольную последовательность действий (управление окном, запуск приложений, скриптов, выход из системы, перезагрузка, эмуляция клавиатуры и мыши);
любые действия при нажатии мышью (прокрутке ролика мыши) на такие кнопки, как «Свернуть», «Развернуть», «Закрыть» и др., а также в произвольных областях экрана;
выполнение определённой последовательности действий с некоторой периодичностью (по расписанию);
...

Более подробную информацию смотрите сайте программы: http://caesar-09.narod.ru.



Текущая версия caesar - 0.9.11 от 25 сентября 2008 г. (zip, 106 КБ или 7z, 78 КБ)



23.09.2011. Работа сайта программы восстановлена.

12.03.2013. Небольшое обновление caesar. Это не новая полноценная версия; внесенные изменения связаны только с обеспечением совместимости функций работы с громкостью звука в системах старше Windows XP (например, в Windows 7).
Автор: LevT
Дата сообщения: 01.06.2007 09:57


Цитата:
Кстати, раскладка клавиатуры корректно переключается даже на XP с установленным IE 7.0.


а где написано о симптомах некорректности других переключателей в этом случае? Пользуюсь пунто свитчером, глюков хватает и без IE7, и на 2003, но я их не систематизировал.
Автор: sandrey
Дата сообщения: 01.06.2007 10:41
Не совсем понял вопрос.
При чем тут "другие переключатели"?
"а где написано...?" - На самом деле - где? В этой ветке я о "других переключателях" вообще ни слова не говорю (а по мнению LevT должен что-ли получается?). Ветка посвящена конкретной программе - caesar. И переключение раскладки - это лишь одна из функций этой программы.

Добавлено:
Да, и еще

Цитата:
Кстати, раскладка клавиатуры корректно переключается даже на XP с установленным IE 7.0.

эта фраза - просто одна из строчек файла whatsnew.txt программы. Многие ставят последние версии своих браузеров и поэтому я посчитал, что для них такое упоминание будет актуальным.
Автор: Chern
Дата сообщения: 01.06.2007 11:16
sandrey
Возможно ли сохранение состояния буфера обмена до преобразований?
Автор: Mitkasik
Дата сообщения: 01.06.2007 11:46
sandrey
по первым спечатлениям нравится. У пунто все равно я выключал всегда автоматическое переключение. Все, чем я пользуюсь присутсвует.
Но есть момент, который нужен, но его не было в пунто. Хочется переключать в ДОС окнах. Можно твою программку научить этому?

Спасибо тебе.
Автор: sandrey
Дата сообщения: 01.06.2007 12:10

Цитата:
Возможно ли сохранение состояния буфера обмена до преобразований?

В текущей версии - нет.
Дело в том, что предполагается, что преобразование (например, корректировка раскладки клавиатуры командой ChangeClipboardLayout) ты выполняешь как раз над содержимым буфера обмена. Как и какое ты туда поместишь содержимое - это твое дело (выделив текст до начала строки и скопировав его в буфер, просто скопировав в буфер текущее выделение и т.п.), причем различные варианты действий можно повесить на различные горячие клавиши.


Цитата:
Хочется переключать в ДОС окнах. Можно твою программку научить этому?

1. Если имеется в виду переключение раскладки по клавише Ctrl (Shift), то:
1.1 если имеется в виду консольное 32-х разрядное приложение (например, Far manager), то раскладка в таких приложениях должна переключаться корректно.
1.2 если имеется в виду именно DOS-приложение - 16-ти разрядное (DOS Navigator, например), то этого нет, и, я думаю, не будет.
2. Если имеется в виду корректировка раскладки клавиатуры (командой ChangeClipboardLayout), то в консольных приложениях она срабатывает только в одну сторону (например, если в системе язык по умолчанию английский, то будет скорректировано "ghbdtn" в "привет", а вот "руддщ" в "hello" - нет). Возможно (хотя и вряд ли - такова особенность консольных приложений) мне удасться исправить этот недостаток в будущих версиях.
Автор: Mitkasik
Дата сообщения: 09.06.2007 06:28
Если я захочу установить поведение окна при открытии, например Консультант +
Когда открылось окно полность нужно на нем нажать два раза вниз и Enter
Это отвлеченный пример, но у меня есть подобная задача.
я делаю:

Цитата:

window Cons {
??????????????
Task {
osdText Консультант Плюс
DownKey              VK_DOWN
sleep 1000
DownKey              VK_DOWN
sleep 1000
DownKey              VK_RETURN

}
}


?????????????? что ставить?

имя процесса cons.exe
заголовок окна КонсультантПлюс

Автор: sandrey
Дата сообщения: 09.06.2007 07:32
Ставить то, что отличит это окно от всех других. Отличительными признаками может быть заголовок окна (Title); имя файла процесса, которому принадлежит окно (FileName); имя класса окна (ClassName); или комбинация этих параметров объединенная по логическому "И".

Как узнать эти три параметра? Если в caesar включен режим XMenu (включен по умолчанию), то при нажатии средней кнопкой мыши на заголовке окна появляется меню, в котором есть пункт "Window Info" (это же окно можно получить нажав горячую клавишу Win+I - эта комбинация задана в файле конфигурации по умолчанию). В появившемся окне мы и увидим Window Title, Window Class Name, Module File Name.

Если имя класса окна уникально и его никто, кроме нужного вам окна не использует, то следует использовать именно его. Если имя класса начинается на "Afx...", то, скорее всего, оно генерируется автоматически и при каждом запуске будет разным и на него ориентироваться не следует. Любое диалоговое окно имеет класс "#32770", поэтому такое имя класса тоже не является отличительным признаком.

Если при запуске окна у него всегда один и тот же заголовок (да к тому же такой, которого у других окон нет), то можно ориентироваться на заголовок окна.

Можно также ориентироваться на имя файла. Однако учтите, что один процесс может порождать несколько окон верхнего уровня. В этом случае можно дополнительно к имени файла указать заголовок нужного окна или его класс.

Теперь на конкретном примере.
Запустив Консультант Плюс и нажав Win+I в его главном окне мы увидим, что оно имеет имя класса "Afx: ...", т.е. это имя меняется при каждом запуске приложения, а потому оно для нас не показатель. Несмотря на то, что мы запускали файл cons.exe, главное окно программы работает от другого (порожденноего cons.exe) процесса - vr330016.res (пусть вас не смущает, что он имеет расширение res - просто авторам программы так захотелось). Ориентироваться можно на имя файла. Однако если посмотреть на заголовок окна программы, то он не меняется и всегда равен "КонсультантПлюс", причем при старте (когда долго идет "Загрузка данных") заголовок окна равен пустой строке, что нам только на руку - мы ведь не хотим в этот момент что-то делать. Итак, я предлагаю ориентироваться на заголовок окна (для усиления можно добавить и имя файла - вдруг какая-нибудь программа тоже себе поставит такой заголовок).

Код: window {
Title КонсультантПлюс
; можно добавить также
; FileName c:\Cons\vr330016.res
Task {
; Напишем радостную весть о том, что мы распознали окно
osdText Мы запустили Консультант Плюс
; Надо подождать пока прорисуется первое диалоговое окно в котором мы будем нажимать клавиши
Sleep 1000
; Нажимаем два раза стрелку вниз и Enter
SendKeystroke Down Down Enter
}
}
Автор: Mitkasik
Дата сообщения: 09.06.2007 08:54
Вот, спасибище!!!
Автор: sandrey
Дата сообщения: 15.06.2007 13:00
Вышла новая версия caesar - 0.9.6.

Среди изменений:

- переключение раскладки (команда ChangeClipboardLayout) происходит корректно и в консольных окнах;


Цитата:
Возможно ли сохранение состояния буфера обмена до преобразований?

- реализованы, так называемые, альтернативные буферы обмена, которые могут сохранять состояние буфера обмена Windows, на моменты преобразования раскладки или регистра; более того, - их можно использовать как замену (дополнение) к основному буферу обмена (см. в примерах задачи, выполняемые по нажатию Win+C, Win+V).
Автор: Mitkasik
Дата сообщения: 18.06.2007 05:58
Не запускается в Win 2003
Автор: sandrey
Дата сообщения: 18.06.2007 06:36
Я пробовал в Windows Server 2003 Standard Edition (Версия 5.2, Сборка 3790). Запускал как под администраторским аккаунтом, так и из под обычного пользователя. Работает.
Автор: Mitkasik
Дата сообщения: 19.06.2007 06:29
sandrey
Извиняюсь, запускается.

Можно повесить переключение раскладки клавиатуры на CapsLock и тем самым полезно задействовать бесполезную клавишу?
Автор: sandrey
Дата сообщения: 19.06.2007 13:25

Цитата:
Можно повесить переключение раскладки клавиатуры на CapsLock и тем самым полезно задействовать бесполезную клавишу?

Почему же бесполезную? А верний регистр чем влючать?

В текущей версии раскладка переключается только по любому Ctrl или любому Shift (на ваш выбор).
Автор: Mitkasik
Дата сообщения: 22.06.2007 04:05
У меня после набора слов в английской раскладке, использующих символы [];',./ - что фактически русские буквы хъжэбю. - при переключении конвентируются символы только те, которые стоят поле них.

Пример пишу слово gtht[jl (переход) жмакаю Паузе получаю gtht[од

можно избавиться?
Автор: sandrey
Дата сообщения: 22.06.2007 07:16
То, как происходит выделение при нажатии на Ctrl+Shift+Left зависит от конкретной программы. Например, если в Блокноте (Notepad) набрать "gtht[jl" и нажать Pause, то (при использовании файла конфигурации по умолчанию) получится "переход". Но тоже самое в Ворде (MS Word) даст "gtht[од".

Не думаю, что это большая проблема, т.к. буквы х, ъ, ж, э, б, ю - наиболее редкие, по сравнению с другими, в русском языке. Но как вариант (он приведен в файле caesar.conf-example) можно в задаче к клавише Pause вместо

Код: SendKeystroke Ctrl+Shift+Left Ctrl+C
Автор: sandrey
Дата сообщения: 23.07.2007 15:31
Вышла новая версия caesar - 0.9.7.

Среди изменений:

- теперь на любую клавишу Ctrl или Shift можно повесить не только переключение раскладки клавиатуры, но и включение заданной раскладки;

- добавлена команда EmptyClipboard, которая может использоваться для предотвращения случаев изменения буфера обмена, если в него делается попытка скопировать для преобразования пустую строку (см. файл man/caesar.conf-example).
Автор: Mitkasik
Дата сообщения: 16.08.2007 07:03
Можно-ли сделать таким образом, чтобы по двойному клику на панели задач по заголовку окна оно закрывалось?
Автор: sandrey
Дата сообщения: 16.08.2007 14:34
Нет, возможности программы этого не позволяют.
Автор: zadolbali
Дата сообщения: 05.09.2007 20:07
Отличная программа! Ко мне вернулась буква ё (Vista x64). Был счастлив полчаса. К сожалению, есть пара багов:

Первый: в InDesign CS3 не проходит Alt-DblClick
Второй: при работе с Wacom Intuos3 Alt на планшете начинает работать странно - при движении перетаскивает окно. Не работает ластик.

Если бы эти траблы можно мыло решить - моему счастью не было бы предела.
Автор: bytex
Дата сообщения: 05.09.2007 20:24
Огромное спасибо автору за программу. Хотел уже обратно с висты на хр переезжать, а тут такое чудо
Автор: sandrey
Дата сообщения: 06.09.2007 06:41

Цитата:
Первый: в InDesign CS3 не проходит Alt-DblClick

Посмотрю. (В данный момент нет Adobe InDesign CS3, что бы сказать в чем там дело)

Цитата:
Второй: при работе с Wacom Intuos3 Alt на планшете начинает работать странно - при движении перетаскивает окно. Не работает ластик.

Скорее всего проблему решит отключение режима XMove (перемещение любого окна мышью при нажатой Alt). Что бы полностью отключить этот режим нужно в конфигурационном файле написать

Код: XMove off
Автор: Smitis
Дата сообщения: 06.09.2007 10:01
А какой смысл делать конфигурационные файлы и, тем более, лог в unicode? Это только затрудняет работу с ними.
Автор: sandrey
Дата сообщения: 06.09.2007 13:40
Ну в принципе это оценят только те, кто использует на своей машине больше двух языков. Еще использование unicode на NT-платформах дает немного более компактный код и чуть лучшую производительность.

Затруднений в работе с unicode я вообще-то не вижу. Разве что редактирование (но не просмотр) в консольных программах (Far, например). А так - даже самая примитивная программа в Windows - Блокнот, и тот работает с такими файлами на ура.
Автор: zadolbali
Дата сообщения: 06.09.2007 13:53

Цитата:
Скорее всего проблему решит отключение режима XMove (перемещение любого окна мышью при нажатой Alt). Что бы полностью отключить этот режим нужно в конфигурационном файле написать

Код:
XMove off


Огромное спасибо. Все заработало (и двойной клик при альте тоже).
Автор: Smitis
Дата сообщения: 06.09.2007 16:17
sandrey
В конфигах есть запуск ФАРа, но сюдя повсему ты его не используешь.

Происходит иногда двойное срабатывание по Break - нажимаю один раз, а судя по мельканию индикатора раскладки происходят две перекодировки подряд, язык остаётся тот же, текст тоже.
Автор: sandrey
Дата сообщения: 06.09.2007 16:52

Цитата:
В конфигах есть запуск ФАРа, но сюдя повсему ты его не используешь.

Очень активно использую. Но не для редактирования текстовых файлов. А по F3 юникод автоматом распознается и отображается корректно.

Цитата:
Происходит иногда двойное срабатывание по Break - нажимаю один раз, а судя по мельканию индикатора раскладки происходят две перекодировки подряд, язык остаётся тот же, текст тоже.

Я такого ни разу не наблюдал.
Это происходит в какой-то определенной программе или от программы не зависит? Вы пользуетесь hoykey'ем на Break (Pause) из файла конфигурации по умолчанию или внесли в него какие-нибудь изменения (если внесли, то приведите ваш вариант)? Обратите внимание на мелькание самого слова, раскладку которого вы хотите переключить - оно должно выделяться (т.к. эмулируется нажатие Ctrl+Shift+Left). Тоже два раза мелькает?
Автор: Smitis
Дата сообщения: 06.09.2007 19:47
sandrey
Да, мелькает. Но, похоже, проявляется это только на работе на ноуте. Сейчас проверил - дома, вроде, нормально.
Весь файл конфигурации:

Код:
LayoutForRShift 00000419
LayoutForLShift 00000409

hotkey switch-layout {
Key Pause
Task {
StoreClipboard
EmptyClipboard
SendKeystroke Ctrl+Shift+Left Ctrl+C
Sleep 200
ChangeClipboardLayout to prev layout
SendKeystroke Ctrl+V
Sleep 200
SetKeyboardLayout to prev layout
RestoreClipboard
}
}
Автор: sandrey
Дата сообщения: 07.09.2007 08:07

Цитата:
Но, похоже, проявляется это только на работе на ноуте.

У меня ноут дома, но на нем тоже работает.
Убедитесь, что на ноутбуке не запущено других программ, которые могут обрабатывать ввод с клавиатуры (в частности нажатие на Pause/Break).
Как вариант - попробовать на ноутбуке повесить это действие на другую клавишу и посмотреть работает или нет.

Цитата:
Вопрос - чем в конфиге отличается LanguageId от layout-name? Первый выглядит как 0x0419, второй как 00000419. В чём принципиальная разница?

Идентификатор языка (LanguageId) задает язык (алфавит), а имя раскладки (layout-name) кроме языка содержит информацию о раскладке клавиатуры для данного языка. Например, стандартная (qwerty) раскладка для американского английского языка - это 00000409, а американский английский с раскладкой Дворака - это 00010409.

Автор: Smitis
Дата сообщения: 09.09.2007 11:33
sandrey
Ладно, со сменой клавиши поэксперементирую, но всё равно, пришёл к мнению, что конвертация текста через буфер обмена для меня не самое лучшее решение - история буфера быстрее забивается мусором (я использую CLCL), работает не везде. В этом плане Пунто хоть и подглючивает, но лучше.
Что, имхо, на данный момент лучше у Цезаря - переключение языка. Работает в тех окнах, где не работает у Пунто.
Так что, Цезарь и Пунто живут поку вместе. Эксперементирую дальше.

Страницы: 123456789

Предыдущая тема: Your Uninstaller


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.