Forked from maokwen/AutoHotKey-Lock-Chinese-IME.ahk
Last active
August 21, 2025 07:32
-
-
Save pernalin9/220d00016182acb7f13b96cd0506c0a9 to your computer and use it in GitHub Desktop.
微软输入法自动跳转为中文Fix.ahk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 如果可以接受capslock作为输入法切换按键,强烈建议使用评论区脚本 | |
| # 如果可以接受capslock作为输入法切换按键,强烈建议使用评论区脚本 | |
| # 如果可以接受capslock作为输入法切换按键,强烈建议使用评论区脚本 | |
| #Include %A_ScriptDir% | |
| timeInterval := 500 | |
| ; +-------------------------+-------------------------+ | |
| ; | SubLanguage ID | Primary Language ID | | |
| ; +-------------------------+-------------------------+ | |
| ; 15 10 9 0 bit | |
| InChs(hWnd) { | |
| ThreadID:=DllCall("GetWindowThreadProcessId", "UInt", hWnd, "UInt", 0) | |
| ime_status := DllCall("GetKeyboardLayout", "int", ThreadID, "UInt") | |
| return (ime_status & 0xffff) = 0x804 ; LANGID(Chinese) = 0x804 | |
| } | |
| SwitchImeState(id) { | |
| SendMessage(0x283, ; WM_IME_CONTROL | |
| 0x002, ; wParam IMC_SETCONVERSIONMODE | |
| 1025, ; lParam (Chinese) | |
| , ; Control (Window) | |
| id) | |
| } | |
| DetectHiddenWindows True | |
| outer: | |
| Loop { | |
| try { | |
| hWnd := WinGetID("A") | |
| id := DllCall("imm32\ImmGetDefaultIMEWnd", "Uint", hWnd, "Uint") | |
| if (InChs(hWnd)) { | |
| SwitchImeState(id) | |
| } | |
| } catch as e { | |
| ; ^Esc 开始菜单弹窗,会卡死在找不到当前窗口 | |
| continue("outer") | |
| } | |
| Sleep(timeInterval) | |
| } |
额,确实是,我也不知道为什么, 这两个怎么都不生效,不知道什么时候开始这样的.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@silentmoooon 发现一个问题,记事本和系统设置无法切换到中文,资源管理器、任务管理器、浏览器都正常,系统 win11 24h2。