取得電腦內裝有的輸入法名稱
請準備一個command button
Option Explicit
Private Declare Function GetKeyboardLayoutList Lib "user32" (ByVal 
  nBuff As Long, lpList As Long) As Long
  Private Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" 
  (ByVal hkl As Long, ByVal lpsz As String, ByVal uBufLen As Long) As Long
  Private Declare Function ImmIsIME Lib "imm32.dll" (ByVal hkl As Long) 
  As Long
Dim IMEList() As Long
Private Sub Command1_Click()
  Dim ret As Long
  Dim n As Integer
  Dim i As Integer
  Dim StrName As String
  ReDim IMEList(24) As Long
  n = GetKeyboardLayoutList(25, IMEList(0))
  ReDim Preserve IMEList(n - 1) As Long
  For i = 0 To n - 1
    If ImmIsIME(IMEList(i)) <> 0 Then
      StrName = String(255, 0)
      ret = ImmGetDescription(IMEList(i), StrName, 255)
      StrName = Left(StrName, ret)
      Print StrName
    End If
  Next i
  End Sub