如何轉換輸入法

以下是改變輸入法為的程式碼。為了方便網友,副站長特意寫了一個函數
,只需填入輸入法名稱的關鍵字作參數便可以了。,請準備二個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
Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal Flags As Long) As Long

Private Function ChangeIME(ByVal Keyword As String) As Boolean
Dim IMEList() As Long
Dim ret As Long
Dim n As Integer
Dim i As Integer
Dim StrName As String
ChangeIME = False
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)
    If InStr(StrName, Keyword) <> 0 Then
      ActivateKeyboardLayout IMEList(i), 0
      ChangeIME = True
      Exit Function
    End If
  End If
Next i
End Function

Private Sub Command1_Click()
ChangeIME "倉頡" '改變輸入法為倉頡
End Sub

Private Sub Command2_Click()
ChangeIME "速成" '改變輸入法為速成
End Sub