Ich verwende Microsoft Keyboard Layout Creator 1.4, um ein benutzerdefiniertes persisches Tastaturlayout zu erstellen.
Ich möchte Shift
+ Space
als ZWNJ
('' - U+200c)-Zeichen wie im persischen (Standard-)Layout definieren. Wenn ich jedoch DLL und Setup-Paket erstellen möchte, akzeptiert es kein ZWNJ
Leerzeichen. Hier ist der Fehler in der Protokolldatei:
FEHLER: „VK_SPACE“ im Umschaltzustand „Umschalt“ muss aus Leerzeichen bestehen, wird aber stattdessen als „“ (U+200c) definiert.
Wie kann ich dieses Problem lösen? Gibt es alternative Software?
Antwort1
SpaceJeder Versuch, im Microsoft Keyboard Layout Creator die Taste auf Shift+ zuzuordnen, Space führt zu folgender Fehlermeldung:
Dies ist eine Einschränkung von Microsoft, möglicherweise aus Sorge, dass ein Benutzer ein unbrauchbares Tastaturlayout erstellt. Es wurde bereits in einem Post stammt aus dem Jahr 2012 und hat sich seitdem nicht geändert.
Eine Lösung muss dann von einem Drittanbieterprodukt kommen, das die eingegebenen Tasten vor Windows abruft, wie zum Beispiel AutoHotkey.
Das folgende einzeilige AutoHotkey-Skript sendet die Unicode-Taste, 200C
wenn Shift+ Spacegedrückt wird:
+Space::Send {U+200C}
Nachdem Sie AutoHotKey installiert haben, legen Sie das Skript in eine .ahk
Datei und doppelklicken Sie darauf, um es zu testen. Sie können das Skript stoppen, indem Sie mit der rechten Maustaste auf das grüne H-Symbol in der Taskleiste klicken und „Beenden“ wählen. Um es beim Anmelden auszuführen, platzieren Sie es in der Autostart-Gruppe unter
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
.
Nützliche AutoHotkey-Dokumentation:
Antwort2
Sie brauchen keine zusätzliche Software. Sie können es zwar U+200C
als Ihr definiertes Zeichen in MSKLC einrichten, ABER Sie müssen es als Tottaste einrichten. Richten Sie die Taste also als normales U+0020
Zeichen ein, aktivieren Sie aber die Tottaste. Darin können Sie jedes beliebige Zeichen einrichten, auch wenn es kein Leerzeichen ist. Ich habe meine Leertaste so eingerichtet, dass sie U+2011
mit AltGr (Strg+Atl) gerendert wird (geschützter Bindestrich). Der einzige Nachteil ist, dass Sie sie zweimal drücken müssen, damit Ihr Zeichen gerendert wird.
Sagen Sie mir, ob U+200C
es auch funktioniert.