函数功能:可以获得与系统中输入法的当前集相对应的键盘布局句柄。该函数将句柄拷贝到指定的缓冲区中。

函数原型:UINT GetKeyboardLayoutList(int nBuff,HKL FAR *IpList)

参数:
nBuff:指定缓冲区中可以存放的最大句柄数目。
Iplist:缓冲区指针,缓冲区中存放着键盘布局句柄数组。

返回值:若函数调用成功,则返回值为拷贝到缓冲区的键盘布局句柄的数目,

或者,若nBuff为0,则运回值为接受所有当前键盘布局的缓冲区中的大小(以数组成员为单位)。

若函数调用失败,返回值为0。

若想获得更多错误信息,可调用GetLastError函数。



头文件:winuser.h:库文件:user32.lib。




;~ GetKeyboardLayoutList function: 
;~ http://msdn.microsoft.com/en-us/library/windows/desktop/ms646297

HKLNum := DllCall("GetKeyboardLayoutList", "UInt", 0, "UInt", 0)  
MsgBox %HKLNum%
VarSetCapacity(HKLList, HKLNum*4, 0)
DllCall("GetKeyboardLayoutList", "UInt", HKLNum, "UInt", &HKLList)
loop, %HKLNum%
{
   HKL%A_Index% := NumGet(HKLList, (A_Index-1)*4 )
   MsgBox % HKL%A_Index%
}