Что нового

Text Correction - исправление текста набранного в неправ. раскладке клавиатуры

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
AutoIt: 3.3.6.1
Версия: 0.8

Категория: Автоматизация

Описание: Программа для исправления текста набранного в неправильной раскладке клавиатуры. Для исправления не требуется выделять текст, используя горячие клавиши выделяется либо вся строка, либо слово. Если выделить текст вручную то исправляется только выделенное в любом режиме. При исправлении текста переключается раскладка клавиатуры, чтобы продолжить набор текста на соответствующем языке. Исправляет Caps Lock и наоборот.
Текущие горячие клавиши:
Ctrl+\ исправление слова неинвертированием, либо всё на русском, либо всё на английском
Ctrl+э (') - исправление строки инвертированием. При исправлении смешанного языка для символов ;:? проверяется близ-лежащее слово.
Ctrl+ж (; ) - исправление слова до первого пробела скобки; Не инвертирует. Для слов типа "многоэтажный". Такой режим игнорирует символы [];',. как разделитель слов.
Ctrl+д (l) - исправление слова инвертированием (русские буквы в англ., англ в русский)
Ctrl+. (?) - красная строка, первая буква заглавная.
Ctrl+х ([) - перевод в верхний регистр, с учётом спец-символов 23467,если снята галочака CapsLock
Ctrl+ъ (]) - перевод в нижний регистр, с учётом спец-символов, если снята галочака CapsLock
Ctrl+ESC - выход

Файл: TextCorrection (exe+исходник)

История версий:
0.8
Благодаря очистке буфера перед копированием выделенного текста стабильность исправления улучшена
Добавлен стандартный способ назначения горячих клавиш.
Обновлены некоторые функции


Источник: azjio.ucoz.ru
Автор(ы): AZJIO

Недостатки, от которых хотелось бы избавится.
1. В некоторых окнах не работают клавиши Ctrl+Ins, например поиск в проводнике.
2. Исправление работает по отжатию горячих клавиш, а не по нажатию. Это позволяет эмулировать клавиши.
 

XM

Знающий
Сообщения
70
Репутация
8
Re: Исправление текста набранного в неправильной раскладке клавиатуры

AZJIO сказал(а):
3. Исправление работает по отжатию горячих клавиш, а нужно по нажатию.
Подсказка №1: При нажатии клавиш генерируется код нажатой клавиши + [timeout] (параметр которого установлен в настройках клавы (панель управления)) Т.е. на выходе (полный ID нажатой клавиши мы получим лишь отпустив ее...)


Добавлено:
Сообщение автоматически объединено:

P.S. В Вашем случае...
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Re: Исправление текста набранного в неправильной раскладке клавиатуры

Vendor
Незнаю как насчёт кода клавиш, но в программах срабатывает по нажатию а не по отжатию, яркий пример - перетаскивание объектов (файлов, текста, ссылок).
Посмотри в справке Send('{SHIFTDOWN}'), и кстати, ещё на "Sign 0f Misery" мучился создавая нажатия и отжатия клавиш, в AutoIt с этим проще.
 

XM

Знающий
Сообщения
70
Репутация
8
Ну... А вообще затея интересная. Можно поразмышлять на эту тему...
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Для правильного исправления капслока добавил исправление спец-символов, проверте перевод символов 23467 в верхний и нижний регистр, с учётом языка.
Обновил только код, файл (exe) обновлю чуть позже.
 

XM

Знающий
Сообщения
70
Репутация
8
Чет у меня не рабит... (Notepad++)
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Vendor
Используешь au3 или exe? exe ещё не обновлял, так как собираюсь прикрутить иконку смены раскладки.
Использую только Notepad++, работает как часы.
 

XM

Знающий
Сообщения
70
Репутация
8
Использую au3 пока что...
exe не пробовал
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Vendor
И что, Ctrl+[ не меняет текст 23467 на @#$^& в анлийской раскладке или на "№;:? в русской раскладке?
Скопировал спойлер, проверил ещё раз, всё работает во всех приложениях: Notepad++, SciTE, QIP, Opera, M$ Office...

А какая ось? На Win7 не тестировал.

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

Пока в скрипт добавил автоконфигурирование раскладки взависимости от языка по умолчанию. Поддерживается только Ru и En. На апостроф горячая клавиша не работает.
 

XM

Знающий
Сообщения
70
Репутация
8
Win XP
Английский по умолч.

Я пока просто тестировал, в код не углублялся.

Получается существует какая то зависимость работы скрипта от "чего-то"...
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Vendor
Зависимость функций HotKeySet в AutoIt3 от языка по умолчанию.

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

___________________________________

Обновлена версия до 0.3 и перезалит exe-файл
1. Функция поиска _ArraySearch заменена на StringInStr, за счёт этого в 2 раза увеличилась скорость конвертирования текста. Заметно на объёмном тексте.
2. Учтена зависимость горячих клавиш от раскладки клавиатуры по умолчанию.
3. Добавлена обработка спец-символов и прочие улучшения по мелочи.
 

XM

Знающий
Сообщения
70
Репутация
8
А где выложен исправленный скрипт?? :smile:
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Vendor
А где выложен исправленный скрипт??
в спойлере

А я пока гадаю алгоритм исправление символов ;:? в смешанном тексте. Либо угадывать язык по символу справа либо слева, в реале можно узнать только при тесте, какой вариант наиболее предпочтительнее.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Vendor
Вы вероятно не в теме, посмотри у кого в той теме больше всего постов.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Обновлено до версии 0.4
1. Добавлена иконка в трее отображающая раскладку Ru/En
2. Добавлено более умное распознавание смешенного текста для символов <;:?>. Определяется по языку слева от символа.

______________________________________________

Исправил смену иконок. В цикле каждые 10 раз в секунду происходила установка иконки, а ведь это обращение к харду, теперь в цикле сравнивается раскладка клавиатуры, и иконка изменяется только после смены раскладки.
Исправил проблему вылета при запуске с ярлыка, так как ни одно окно неактивно.

Ссылки, код обновлены.

В планах вывести таблицу клавиш и языковые атрибуты (1033, 0409) во внешний файл, для возможности использовать программу на других языках.
Добавить настройки:
1. обработка как "Caps Lock" или как Shift
2. Возможность добавления символов являющимися разделителями слов при обработке слова. По умолчанию пробел, допустимое добавление символов /()\
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Обновил программу до версии 0.5 (v3.3.6.1)
Добавлена возможность изменения горячих клавиш.
Выбор поведения CapsLock.
Настройки вынесены в TextCorrection.ini, программа сама его сгенерирует при первом старте.

Вынесение настроек в ini-файл позволяет:
1. Сменить язык указав свою раскладку в соответствии позиции символов в строке.
2. Сохранение настроек горячих клавиш позволяет использовать программу портабельно.


Смена языка:
1. Значения Lang1, Lang2 - должны содержать тот же набор символов с сохранением позиции. Сверяем по англ. раскладке.
2. Значения LangT1, LangT2 - содержат набор только букв принадлежащих языку, без сохранения позиции. Копируем из Lang1, Lang2, удалив спец-символы и знаки препинания.
3. Значения LangN1, LangN2 - номер языка, смотрим в Readme запущенной программы
4. Значения LangR1, LangR2 - номер раскладки указанный в реестре "HKEY_CURRENT_USER\Keyboard Layout\Preload", смотрим в Readme запущенной программы

Ссылку на файл обновил, добавив в архив обе версии. Версия 0.5 на моей OS работает с залипанием клавиш, приходится по 2 раза нажимать, поэтому пользуюсь 0.4, а у кого не залипает можете попробовать 0.5.
 

XM

Знающий
Сообщения
70
Репутация
8
AZJIO сказал(а):
Обновлено до версии 0.4
....

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


Добавлено:
Сообщение автоматически объединено:

AZJIO сказал(а):
Обновил программу до версии 0.5
....

AZJIO, а нельзя ли параметры программы в реестр записывать, а не INI? Как то файлы инициализации уже не в моде... :smile:
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Vendor
На счёт реестра я думал, другая половина бы сказала, а нельзя ли было, чтоб в реестр не гадила. И я пока решил сделать как переносную, тем более ini читается только при запуске полторы милисекунды (с реестра полторы микро-секунды думаю я разницы не замечу).

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

А 0.5 значит работает? Без залипания?
 
Верх