作者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