Wie entferne ich selten verwendete Sprachen aus Hotkeys zum Sprachenwechsel?

Wie entferne ich selten verwendete Sprachen aus Hotkeys zum Sprachenwechsel?

Ich tippe in den folgenden 3 Sprachen:

Sprache A - 55 % der Zeit

Sprache B - 40 % der Zeit

Sprache C - 5 % der Zeit

Die übliche Lösung wäre, alle drei Sprachen zu installieren und Strg/Alt-Umschalt zu verwenden. Es ist jedoch ziemlich ärgerlich, jedes Mal, wenn ich zwischen A und B hin- und herwechsele, auf Sprache C umschalten zu müssen.

Gibt es eine Lösung, mit der ich verhindern kann, dass Windows zur Sprache C wechselt, wenn ich Strg/Alt-Umschalt drücke? Ich könnte dann einen separaten Hotkey zum Wechseln zur Sprache C hinzufügen.

Ich verwende Windows 7 SP1.

Danke schön.

Antwort1

Sie können erstellenAutoitSkript zum „Überspringen“ der Sprache „C“ beim Wechseln der Tastatursprache.

Nach der InstallationAutoitUndEditor. Klicken Sie mit der rechten Maustaste auf den Desktop -> Neu -> Autoit-Skript. Klicken Sie mit der rechten Maustaste auf die erstellte Datei -> Bearbeiten. Jetzt sollten Sie das ScITE-Fenster sehen und nach der Zeile „Fügen Sie unten Ihren Code ein“ diesen Code hinzufügen:

#include <WinAPISys.au3>
ClipPut(_WinAPI_GetKeyboardLayout(ControlGetHandle("[ACTIVE]","","")))

Drücken Sie UMSCHALT+ALT (oder die Hotkeys, die zum Wechseln der Tastatursprache registriert sind), bis Ihre aktuelle Sprache „C“ ist (wenn der Name der Tastatursprache nicht in der Taskleiste angezeigt wird, drücken Sie Win+R ->> CTFMON.EXE ->> Eingabe). Drücken Sie dann im ScITE-Fenster Extras -> Gehe zu. Jetzt ist in Ihrer Zwischenablage der Sprachcode „C“. Fügen Sie ihn ein (STRG+V) und speichern Sie ihn irgendwo.

Entfernen Sie den vorherigen Code und fügen Sie diesen ein:

#include <WindowsConstants.au3>
#include <WinAPISys.au3>
#include <String.au3>
#KeinTrayIcon
$skiplang="0x04090409" ;diese Sprache beim Sprachwechsel überspringen
$list=_WinAPI_GetKeyboardLayoutList ( )

$fakeforwardlang=""
Wenn IsArray($list) Dann
    if $list[0]<3 then Exit; du Kartoffel
    Für $i = 1 Nach $list[0]
        wenn $list[$i]=$skiplang, dann; nächste Sprache suchen
            wenn $i=$list[0] dann
                $fakeforwardlang=$list[1]
                ExitLoop
            EndeWenn
            $fakeforwardlang=$list[$i+1]
            ExitLoop
        EndeWenn
    Nächste
Anders
    Ausfahrt
EndeWenn
$fakeforwardlang=StringMid($fakeforwardlang,1,6)
während 1
$handle=ControlGetHandle("[AKTIV]","","")
wenn getcurkb($handle)=$skiplang dann _WinAPI_SetKeyboardLayout($handle, $fakeforwardlang)
Schlafen(100)
wenden
Funktion getcurkb($handle)
    Gibt _WinAPI_GetKeyboardLayout($handle) zurück.
Endfunktion

Im nächsten Schritt müssen Sie den gespeicherten Code in der Sprache "C" ersetzen durch0x04090409in diesem Skript (5 Zeilen).

Klicken Sie dann im SciTE-Fenster auf Tools->Build. Jetzt erhalten Sie eine ausführbare Datei im selben Verzeichnis, in dem sich das Autoit-Skript befand. Führen Sie diese ausführbare Datei (.exe) aus.

Wenn Sie das Skript stoppen möchten, müssen Sie den Task-Manager verwenden, um den Prozess zu beenden.

Funktioniert unter Windows 7 mit 3 Tastatursprachen und deaktivierter Benutzerkontensteuerung.

Aktualisieren:

Ich vermassle es. _WinAPI_SetKeyboardLayout Forward funktioniert nur manchmal. Standardmäßiges Senden ist sehr fehlerhaft, wenn die Taste {down} gedrückt wird. Aktuelle Lösung basiert auf externer Funktion. Aber ein Problem mit dieser Funktion: Sie müssen Umschalt und Alt loslassen, um zur nächsten Tastatursprache zu wechseln. Code sollte später erneut überprüft werden.

Update 2:

Zurück zu _WinAPI_SetKeyboardLayout, aber mit Fake Forward. Ich kann jetzt keine Probleme finden.

Antwort2

Ich habe die gleiche Situation und lege für jede Sprache unterschiedliche Hotkeys fest, zB:

  • Ctrl+ Shift+ 1für Sprache A,
  • Ctrl+ Shift+ 2für Sprache B,
  • Ctrl+ Shift+ 3für Sprache C

Damit kann mit nur einem Tastendruck zur gewünschten Sprache gewechselt werden. Dies kann unter Systemsteuerung\Alle Systemsteuerungselemente\Sprache\Erweiterte Einstellungen\Hotkeys für die Sprachleiste ändern eingestellt werden (das ist der Pfad von Windows 10, unter Windows 7 kann er anders sein, aber irgendwo ähnlich). Der Dialog sieht folgendermaßen aus:Tastenfolge ändern

verwandte Informationen