Как это сделано? Техническая часть
Программа
Anbur.exe представляет собой скрипт на языке Autohotkey 2.0. Скрипт описывает горячие клавиши, по нажатию на которые происходит вставка символов анбура. Пример:
sc21:: Send("{U+0x10350}")
Здесь 21 — сканкод клавиши А, 10350 — код буквы «ан» в юникоде.Для приведения в соответствие русских и древнепермских букв используется таблица
generator.xlsm в excel.
В этот файл встроен макрос, формирующий список горячих клавиш, а также команды включения и отключения этих клавиш.
Что за костыль для word?
О, это очень интересный вопрос. Дело в том, что при вставке символа анбура word почему-то сразу меняет шрифт на MS Mincho, который этих символов не содержит и появляется квадратик. Такое поведение наблюдается в word 2007 и более свежих версиях.
Именно поэтому мы берём объект Word и выполняем команду
Selection.TypeText(symbol)
где symbol представляет собой суррогатную пару UTF-16. Эти суррогатные пары тоже рассчитываются макросом в excel и попадают в код скрипта anbur.ahk.
При такой вставке символа шрифт не меняется. Вот такой немного необычный хак.
С помощью компилятора Ahk2Exe можно собрать
Anbur.ahk и вспомогательные файлы
Disabler.ahk, Enabler.ahk, Hotkeys.ahk и HotkeysWord.ahk в единый файл Anbur x64.exe, чтобы запускать его на ПК, где Autohotkey не установлен.
Исходный код скрипта и вспомогательных файлов находится здесь:
https://yadi.sk/d/SP_HZ3hUI2IvxA источник
Комментарии 1