Я использую Microsoft Keyboard Layout Creator 1.4 для создания пользовательской персидской раскладки клавиатуры.
Я хочу определить Shift
+ Space
как ZWNJ
символ ('' - U+200c) как в персидской (стандартной) раскладке. Однако, когда я хочу собрать DLL и настроить пакет, он не принимается ZWNJ
как символ пробела. Вот ошибка в файле журнала:
ОШИБКА: «VK_SPACE» в состоянии Shift «Shift» должен состоять из пробельных символов, но вместо этого определяется как «» (U+200c).
Как решить эту проблему? Есть ли альтернативное ПО?
решение1
Любая попытка в Microsoft Keyboard Layout Creator сопоставить Spaceклавишу с Shift+ Space приводит к следующему сообщению об ошибке:
Это ограничение Microsoft, возможно, обеспокоенной тем, что пользователь создаст непригодную для использования раскладку клавиатуры. Это уже было отмечено в почта датируется 2012 годом и с тех пор не менялся.
Тогда решение должно исходить от стороннего продукта, который обрабатывает набранные клавиши раньше Windows, например AutoHotkey.
Следующий однострочный скрипт AutoHotkey отправит клавишу Unicode 200C
при нажатии Shift+ :Space
+Space::Send {U+200C}
После установки AutoHotKey поместите скрипт в .ahk
файл и дважды щелкните по нему для проверки. Вы можете остановить скрипт, щелкнув правой кнопкой мыши по зеленому значку H в трее и выбрав Exit. Чтобы он запускался при входе в систему, поместите его в группу Startup в
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
.
Полезная документация по AutoHotkey:
решение2
Нет необходимости использовать какое-либо дополнительное программное обеспечение. Вы действительно можете настроить U+200C
как определенный вами символ в MSKLC, НО вам придется настроить его как мертвую клавишу. Таким образом, настройте клавишу как обычный U+0020
символ, но включите функцию мертвой клавиши. В ней вы можете настроить любой символ, даже если это не пробел. Я настроил свою клавишу пробела на отображение U+2011
(неразрывного дефиса) с помощью AltGr (Ctrl+Atl). Единственный недостаток в том, что вам придется нажать ее дважды, чтобы отобразить вашего символа.
Скажите, U+200C
работает ли это также.
Посмотрите и повторите то, что я сделал с помощью своего индивидуального макета.