设置调用线程或当前进程输入法区域标识符.
#Include <WinAPIEx.au3>
_WinAPI_ActivateKeyboardLayout ( $hLocale [, $iFlag] )
$hLocale | 被激活的输入法区域标识符.此参数必须是键盘布局句柄或以下值之一: $HKL_NEXT --- 系统区域标识符列表中的下一个区域标识符. $HKL_PREV --- 系统区域标识符列表中的前一个区域标识符. |
$iFlag | [可选参数] 指定如何激活输入法区域标识符.参数可以是以下值之一: $KLF_REORDER --- 系统区域标识符列表重新排序,并将激活的区域标识符置于顶部. $KLF_RESET --- 如设置此项而未设置 KLF_SHIFTLOCK,则 Caps Lock 状态为打开;如同时设置 KLF_SHIFTLOCK, 则 Caps Lock 状态为按 Shift 键关闭. $KLF_SETFORPROCESS --- 为全部进程指定区域标识符,并发送 WM_INPUTLANGCHANGE 消息到当前线程或活动窗口. $KLF_SHIFTLOCK -- 用于 KLF_RESET.见 KLF_RESET 的解释. |
成功: | 返回先前的输入法区域标识符. |
失败: | 返回 0,并设置@error标志为非 0 值. |
在MSDN中搜索
#Include <APIConstants.au3>
#Include <StaticConstants.au3>
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global $Msg, $Label, $Next, $Prev, $Update = True
GUICreate('MyGUI', 300, 200)
$Label = GUICtrlCreateLabel('', 10, 66, 280, 40, $SS_CENTER)
GUICtrlSetFont(-1, 12, 800, 0, 'Tahoma')
$Prev = GUICtrlCreateButton('<', 82, 164, 60, 24)
$Next = GUICtrlCreateButton('>', 158, 164, 60, 24)
GUISetState()
While 1
If $Update Then
GUICtrlSetData($Label, '0x' & StringRight(@KBLayout, 4) & @CR & _WinAPI_GetLocaleInfo(Number('0x' & @KBLayout), $LOCALE_SLANGUAGE))
$Update = 0
EndIf
$Msg = GUIGetMsg()
Switch $Msg
Case -3
ExitLoop
Case $Next
_WinAPI_ActivateKeyboardLayout($HKL_NEXT)
$Update = 1
Case $Prev
_WinAPI_ActivateKeyboardLayout($HKL_PREV)
$Update = 1
EndSwitch
WEnd