AHK切换输入法,网上搜集的一些切换输入版本。可以设置键位定向切换至中文、英文。至于自动切换,则可以配合窗口ID定向切换,但此处就没有折腾了,直接借助软件
KBLAutoSwitch
平替了
IME_SET(setSts, WinTitle="")
;-----------------------------------------------------------
; IMEの状態をセット
; 対象: AHK v1.0.34以降
; SetSts : 1:ON 0:OFF
; WinTitle: 対象Window (省略時:アクティブウィンドウ)
; 戻り値 1:ON 0:OFF
;-----------------------------------------------------------
{ifEqual WinTitle,, SetEnv,WinTitle,AWinGet,hWnd,ID,%WinTitle%DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint);Message : WM_IME_CONTROL wParam:IMC_SETOPENSTATUSDetectSave := A_DetectHiddenWindowsDetectHiddenWindows,ONSendMessage 0x283, 0x006,setSts,,ahk_id %DefaultIMEWnd%DetectHiddenWindows,%DetectSave%Return ErrorLevel
}IME_GET(WinTitle="")
;-----------------------------------------------------------
; IMEの状態の取得
; 対象: AHK v1.0.34以降
; WinTitle : 対象Window (省略時:アクティブウィンドウ)
; 戻り値 1:ON 0:OFF
;-----------------------------------------------------------
{ifEqual WinTitle,, SetEnv,WinTitle,AWinGet,hWnd,ID,%WinTitle%DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint);Message : WM_IME_CONTROL wParam:IMC_GETOPENSTATUSDetectSave := A_DetectHiddenWindowsDetectHiddenWindows,ONSendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%DetectHiddenWindows,%DetectSave%Return ErrorLevel}SwitchIME(dwLayout){ ;;SwitchIME(0x04090409) 切换美式键盘 英文HKL:=DllCall("LoadKeyboardLayout", Str, dwLayout, UInt, 1)ControlGetFocus,ctl,ASendMessage,0x50,0,HKL,%ctl%,A
}#a:: ;测试函数
myVariable := IME_GET()
MsgBox % myVariable
return:*:;;:: ;AHK输入注释 自动切换成中文
IME_SET("0")
returnrctrl:: ;固定切换成中文
IME_SET("0")
returnrshift:: ;固定切换成英文
IME_SET("1")
return