如何在 Windows 10 上将 2 个键交换为特定语言/KB 布局?

如何在 Windows 10 上将 2 个键交换为特定语言/KB 布局?

我想交换所需键盘布局上的W]键,即 'ჯ' 和 'ჟ',这样 键W输出后一个字符,]键输出前一个字符,并且仅在使用所述键盘时才输出。我该怎么做?

我知道 AutoHotKey,但我不知道它是否有这个确切的功能。我也考虑过编写一个 Python 脚本,但同样,我不确定这是否足够简单,以致于这个问题在我的技能水平之内。

答案1

首先运行此 Autohotkey 脚本并按 F1 来检索 KeyboardLocale:

; Script 1

F1:: MsgBox, % InputLocaleID()

InputLocaleID() {
    ControlGetFocus, Focused, A
    ControlGet, CtrlID, Hwnd,,% Focused, A
    ThreadID := DllCall("GetWindowThreadProcessId", "Ptr", CtrlID, "Ptr", 0)
    Return, Format("{:X}", DllCall("GetKeyboardLayout", "UInt", ThreadID, "Ptr"))
} 

检索后,您可以使用#IF 指令重映射另一个脚本中所需键盘布局上的键,例如:

; Script 2

#IF InputLocaleID() = 4090409 ; english
    
    w::l
    l::w

#IF

InputLocaleID() {
    ControlGetFocus, Focused, A
    ControlGet, CtrlID, Hwnd,,% Focused, A
    ThreadID := DllCall("GetWindowThreadProcessId", "Ptr", CtrlID, "Ptr", 0)
    Return, Format("{:X}", DllCall("GetKeyboardLayout", "UInt", ThreadID, "Ptr"))
} 

相关内容