%3A%20So%20ordnen%20Sie%20LCtrl%20neu%20zu%2C%20w%C3%A4hrend%20AltGr%20beibehalten%20wird.png)
Ich habe frühere Fragen durchsucht, aber keine Lösung zum Wechseln LAltmit LCtrl(oder CapsLockmit LCtrl) unter vollständiger Beibehaltung von gefunden AltGr, die Ctrl+ Alt(oder vielleicht LCtrl+ RAlt?) entspricht.
Dies ist die naheliegendste Frage, aber ich kann die Registry nicht verwenden, da ich nur eingeschränkte Rechte habe. Strg und Alt mit AutoHotKey vertauschen, ohne den Alt-Tab-Umschalter durcheinanderzubringen?
Auch verwandt: https://code.google.com/p/uawks/issues/detail?id=2
Ich verwende eines dieser einfachen Skripts:
LAlt::LCtrl
LCtrl::LAlt
Das Zweite:
LCtrl::CapsLock
CapsLock::LCtrl
Immer wenn ich AltGreine andere Taste drücke, bleibt etwas hängen und ich muss wahllos drücken Alt, Ctrlbis ich wieder schreiben kann. Wenn ich das zweite Skript verwende, wird die Feststelltaste aktiviert!
Meine Tastatur ist eine Schweizer Tastatur und ich habe viele Tasten mit einem dritten Symbol, die ich deshalb oft brauche. AltGrJede Taste neu zuzuordnen wäre keine saubere Lösung.
Aktualisieren
Ich habe gerade herausgefunden, dass die Probleme AltGrvollständig gelöst werden, indem man am Ende der beiden zuvor geposteten Skripte die folgende Zeile hinzufügt, aber ich verstehe nicht, warum das passiert.
<^>!::RAlt
Warum erzeugt die Neuzuordnung von AltGrals RAltALONE immer noch den Effekt eines regulären AltGr?
Antwort1
1) Obwohl die Logik dieses Beitrags von Natur aus einfach ist, ist sie für diejenigen von uns, die keine AltGr-Tastatur zum Testen haben, schwer nachvollziehbar. Ich spreche jedenfalls für mich selbst ... der Verständlichkeit halber kann es hilfreich sein, klarzustellen, von welchem zweizeiligen Skript Sie sprechen, gefolgt von einer Liste der Tasten, die Sie drücken (und in welcher Reihenfolge), gefolgt von einer Liste der Ergebnisse, die Sie erhalten. Listen Sie dann das nächste Skript, die Tasten und die Ergebnisse auf. Oder vielleicht brauchen andere das nicht, aber für mich war es ein bisschen schwierig, zu folgen, obwohl ich glaube, dass Sie alle wichtigen Informationen aufgelistet haben.
2) Haben Sie sich die Hotkey-Neuzuweisungen in den Hilfedateien angesehen? Mir sind zwei Dinge aufgefallen, mit denen Sie vielleicht experimentieren möchten. Erstens die Verwendung von * als Modifikator. Zweitens die Verwendung von „Up“, um bei einem Aufwärtsdruck einen anderen Aufwärtsdruck auszulösen (d. h. einen Aufwärtsdruck für einen anderen Modifikator zu senden). Sehen Sie sich die LWin-Neudefinition an, die in der Hilfedatei unter „Hotkeys“ aufgeführt ist:
*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}
3) Manchmal bleibt etwas hängen. Wenn das passiert, kann man es manchmal umgehen, indem man „Auf“-Befehle sendet, auch wenn die Taste bereits oben ist. Technisch ist das vielleicht nicht nötig, aber manchmal funktioniert es (und manchmal nicht).
4) Es kann hilfreich sein (oder auch nicht), über das Menü „Ansicht“ in der Liste mit den Tastenverläufen nachzusehen. Oft können Sie herausfinden, warum Dinge hängen bleiben oder fehlschlagen, indem Sie sich die Reihenfolge ansehen, in der die Tasten verarbeitet werden (d. h. die Reihenfolge, in der sie aufgelistet sind) und ob sie aus den verschiedenen aufgeführten Gründen ignoriert werden oder nicht.
5) Wie das Beispiel der LWin-Neudefinition zeigt, möchten Sie möglicherweise die Befehle „Send“ oder „SendInput“ verwenden, um bei der Fehlerbehebung flexibler zu sein (wenn Sie sie nicht benötigen, können Sie natürlich darauf verzichten und den Code sauberer machen, aber es schadet nichts). Mit einem Send-Befehl können Sie beispielsweise ganz einfach ein weiteres Zeichen oder einen Tastendruck an eine einzelne Hotkey-Neuzuweisung anhängen und dann die Auslösereihenfolge in der Tastenverlaufsliste überprüfen, um zu sehen, was es ist.denktgedrückt wurde und in welcher Reihenfolge.
Wenn ich eine dieser Tastaturen zum Testen hätte, würde ich wahrscheinlich eines der von Ihnen aufgelisteten zweizeiligen Beispiele nehmen und es in eine vierzeilige Tastenneuzuweisung umwandeln, ähnlich dem LWin-Neuzuweisungsbeispiel, und mir dann ansehen, was im Tastenverlauf passiert. Ich könnte auch eine Pausenanweisung hinzufügen, um sie auf frischer Tat zu ertappen und mir den Tastenanschlagverlauf bis zu dem Punkt ansehen zu können, an dem die Pause ausgeführt wurde, wodurch das Protokoll keine Anzeige von losgelassenen Sondertasten enthalten würde.
Ich habe keine Ahnung, ob das funktionieren würde, aber hier ist eine Übersicht über die Art von Dingen, mit denen Sie zu Debugging-Zwecken beginnen könnten.
*LAlt::Send {LCtrl Down}
*LAlt Up::Send {LCtrl Up}
*LCtrl Up::Send {LAlt Up}
*LCtrl::
Send {LAlt Down}
Pause ; once the script is paused you can go look at Key History
Return