作者frank38 (:~)
看板EzHotKey
標題Re: [AHK-] 若輸入法開啟,關閉輸入法
時間Fri Oct 12 21:23:27 2012
※ 引述《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
1F:推 logs:非常感謝! 10/13 03:36
2F:→ bdsl:我的就是嘸蝦米所以一般用法就沒反應,很傷惱筋 11/02 22:01