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
发表评论