AutoHotkey 脚本:自动切换窗口英文输入法
下面是一个使用 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 不熟悉,建议先学习一下基础知识。
原文地址: https://www.cveoy.top/t/topic/ba4i 著作权归作者所有。请勿转载和采集!