api函数GetKeyboardLayoutList可以获取所有的当前显示在系统“文本服务和输入语言”中的键盘布局。
它的语法如下:
int GetKeyboardLayoutList( int nBuff, HKL *lpList );
其中参数nBuff表示预设的最大的获取键盘布局的句柄数, *lpList参数为指向存储键盘布局句柄的数组指针。
如果这个函数执行成功,将返回实际获取到的键盘布局的句柄数。
要在vba中使用这个函数,函数的声明很重要,以下是在vba中使用这个函数的示例代码:
Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, ByVal lpList As Long) As Long
Sub QQ1722187970()
Dim arr(100) As Long
'VarPtr(arr(0))表示传递数组的第一个元素的地址
iNum = GetKeyboardLayoutList(100, VarPtr(arr(0)))
For i = 0 To iNum - 1
'输出句柄值,句柄的16进制值
Debug.Print arr(i), VBA.Hex(arr(i))
Next i
End Sub


发表评论