让 Windows XP 使用全局输入语言而不是每个应用程序都使用

让 Windows XP 使用全局输入语言而不是每个应用程序都使用

我在 XP 机器上使用 2 种,有时 3 种不同的语言。

Windows XP 根据每个应用程序选择输入语言。也就是说,当我切换到其他应用程序时,Windows 有时会更改输入语言,因为它会记住我上次使用该应用程序时使用了该语言。

我不喜欢这样。我希望 Windows 保持一种全局输入语言,并且只有当我按下 Alt-Shift 时才更改它。

是否有可能破解 Windows 并使其具有这样的行为?也许使用 AutoHotKey?

答案1

我认为唯一可行的方法是一次只安装一种键盘布局。例如,当您只想使用罗马尼亚语时,您将删除所有其他键盘布局...

AutoHotKey 可用于创建快捷方式以快速删除和安装键盘布局。

如果您对我的回答还有其他问题或疑虑,请发表评论。

答案2

以下是我大约一年来一直使用的 AHK 脚本:

language := 0

;;; Forced Hebrew: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;                                                                            ;
#z::
    language := 0
    Return

+#z::
    language := 1
    Return


#if language=1 and not GetKeyState("Capslock", "T")  
    `:: SendInput {;}
    q:: SendInput /
    w:: SendInput '
    e:: SendInput ק
    r:: SendInput ר
    t:: SendInput א
    y:: SendInput ט
    u:: SendInput ו
    i:: SendInput ן
    o:: SendInput ם
    p:: SendInput פ
    a:: SendInput ש
    s:: SendInput ד
    d:: SendInput ג
    f:: SendInput כ
    g:: SendInput ע
    h:: SendInput י
    j:: SendInput ח
    k:: SendInput ל
    l:: SendInput ך
    `;:: SendInput ף
    ':: SendInput `,
    z:: SendInput ז
    x:: SendInput ס
    c:: SendInput ב
    v:: SendInput ה
    b:: SendInput נ
    n:: SendInput מ
    m:: SendInput צ
    ,:: SendInput ת
    .:: SendInput ץ
    /:: SendInput .

    (:: SendInput )
    ):: SendInput (
    [:: SendInput ]
    ]:: SendInput [
    >:: SendInput <
    <:: SendInput >

#if
;                                                                            ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

相关内容