看板 EzHotKey 關於我們 聯絡資訊
※ 引述《logs ( )》之銘言: : 請問要如何讓 AutoHotkey 可以偵測目前的輸入法狀態是否開啟 : 如果開啟的話 --> 關閉輸入法 : 如果沒開啟 --> 不做任何事 IME_STATUS(hWindow) { IMEWnd := DllCall("imm32.dll\ImmGetDefaultIMEWnd", "Uint",hWindow) buf := DllCall("user32.dll\SendMessageA", "UInt", IMEWnd, "UInt", 0x0283, "Int", 0x0005, "Int", 0) Return buf } IME_ON(hWindow, ON) { IMEWnd := DllCall("imm32.dll\ImmGetDefaultIMEWnd", "Uint",hWindow) buf := DllCall("user32.dll\SendMessageA", "UInt", IMEWnd, "UInt", 0x0283, "Int", 0x0006, "Int", ON) Return buf } ; WM_IME_CONTROL = 0x0283 ; IMC_GETOPENSTATUS = 0x0005 ; IMC_SETOPENSTATUS = 0x0006 以上斷行部份自行接上 使用範例: F12:: DetectHiddenWindows, On ;必要 hWindow := WinExist("A") If (IME_STATUS(hWindow)==1) IME_ON(hWindow, False) Return 以上於 Win7(x64) + AHK_L 測試 輸入法停在新注音模式時使用後會切到"A",不過我本身是用嘸蝦米...沒反應... ImmGetDefaultIMEWnd http://msdn.microsoft.com/en-us/library/windows/desktop/dd318561(v=vs.85).aspx WM_IME_CONTROL http://msdn.microsoft.com/en-us/library/windows/desktop/dd374135(v=vs.85).aspx -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.4.24
logs:非常感謝! 10/13 03:36
bdsl:我的就是嘸蝦米所以一般用法就沒反應,很傷惱筋 11/02 22:01