Microsoft Keyboard Layout Creator не принимает ZWNJ (U+200c) в качестве символа пробела

Microsoft Keyboard Layout Creator не принимает ZWNJ (U+200c) в качестве символа пробела

Я использую 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работает ли это также.

Посмотрите и повторите то, что я сделал с помощью своего индивидуального макета.

Связанный контент