如何在vba中用GetKeyboardLayout获取指定线程的键盘布局句柄?

api函数GetKeyboardLayout可以获取指定线程的键盘布局句柄。它的语法如下:

HKL GetKeyboardLayout(
  DWORD idThread
);

其中参数idThread表示要获取键盘布局的线程ID,如果是0就表示是当前的线程。

该函数的返回值即为对应线程的键盘布局句柄。

在Vba中可以使用如下的代码获取当前线程的键盘布局句柄:

Declare Function GetKeyboardLayout Lib "user32" (ByVal idThread As Long) As Long
Sub QQ1722187970()
   Dim hkl As Long
   hkl = GetKeyboardLayout(0)
   Debug.Print hkl, VBA.Hex(hkl)
End Sub
       

发表评论