Ich schreibe ein Programm in C#, das im Hintergrund ausgeführt wird und Benutzern die Verwendung eines Hotkeys ermöglicht, um Tastaturlayouts im aktiven Fenster zu wechseln. (Windows unterstützt nur CTRL +SHIFT und ALT +SHIFT)Ändern des Tastaturlayouts für andere Prozesse
ich RegisterHotKey bin mit dem Hotkey zu fangen, und es funktioniert gut.
Das Problem ist, dass ich keine API finden kann, um das Tastaturlayout für das fokussierte Fenster zu ändern.
ActivateKeyboardLayout und LoadKeyboardLayout können nur das Tastaturlayout für den aufrufenden Thread ändern.
Kann jemand das Tastaturlayout für einen anderen Thread ändern (wie die Sprachleiste)?
Wenn Sie Sprachen mit einem Windows-builtin Hotkey wechseln, ist es nicht anders Fäden beeinflussen, nicht wahr? – JXG
pro Thread Tastaturlayout wechseln? Im Gegensatz zum systemweiten Layoutwechsel? Etwas mit Akkorden machen? – jcolebrand
@drachenstern: Es gibt keine systemweite Tastaturlayoutschaltung; Das aktive Tastaturlayout ist ein Status pro UI-Thread. Ich versuche, Alt + Shift zu ersetzen, damit ich es nicht versehentlich drücke, also ist das Chording keine Option (wenn ich verstehe, was du meinst). – SLaks