下面是一个使用 AutoHotkey 编写的脚本,当激活一个窗口时,自动切换为英文输入状态:

#Persistent
SetTimer, CheckActiveWindow, 1000
return

CheckActiveWindow:
WinGetActiveTitle, ActiveWindowTitle
if (ActiveWindowTitle != '') {
    InputLocale := GetInputLocale(ActiveWindowTitle)
    if (InputLocale != '0409') {
        SetInputLocale(ActiveWindowTitle, '0409')
    }
}
return

GetInputLocale(WindowTitle) {
    DetectHiddenWindows, On
    hwnd := WinExist(WindowTitle)
    hkl := DllCall('GetKeyboardLayout', 'uint', hwnd)
    hkl := Format('{:08x}', hkl & 0xFFFF)
    return hkl
}

SetInputLocale(WindowTitle, Locale) {
    DetectHiddenWindows, On
    hwnd := WinExist(WindowTitle)
    PostMessage, 0x50, 1, %Locale%,, ahk_id %hwnd%
    PostMessage, 0x50, 2, %Locale%,, ahk_id %hwnd%
    PostMessage, 0x50, 0, %Locale%,, ahk_id %hwnd%
}

将上述代码保存为一个.ahk文件,然后运行该文件,脚本将在后台持续运行。

请注意,该脚本使用了一些 AutoHotkey 的高级功能,如获取当前激活窗口的标题和窗口句柄,以及发送消息给窗口来更改输入法状态。因此,如果你对 AutoHotkey 不熟悉,建议先学习一下基础知识。

AutoHotkey 脚本:自动切换窗口英文输入法

原文地址: https://www.cveoy.top/t/topic/ba4i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录