RT

解决方案 »

  1.   

    Text1.IMEMode = 1'中文输入
    Text1.IMEMode = 2'英文输入
      

  2.   

    用VB在程序中添加切换输入法的功能
    思路:,先用GetKeyboardLayoutList 函数来取得所有输入法,然后逐个用ImmIsIME判断是否是中文输入法,如果是的话在用ImmGetDescription
    得到输入法的名称,最后选定你需要的输入法用ActivateKeyboardLayout激活它. 
    源码:  Public Declare Function ActivateKeyboardLayout Lib "user32" (ByVal hkl As Long, ByVal flags As Long) As Long
           Public Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, lpList As Long) As Long
                   Public Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
                   Public Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" (ByVal hkl As Long, 
                                                                 _ByVal lpsz As String, ByVal uBufLen As Long) As Long
           Public Declare Function ImmIsIME Lib "imm32.dll" (ByVal hkl As Long) As Long
                   Public hCurKBDLayout As Long
                   Public Sub loadsrfz()
                     Dim buff As String 
                     buff = String(255, 0)
                     Dim NoOfKBDLayout As Long
                     Dim BuffLen As Long
                     Dim retstr As String
                     
                     hCurKBDLayout = GetKeyboardLayout(0)′取得目前的输入法
                     NoOfKBDLayout = GetKeyboardLayoutList(25, hkb(0))
                     For I = 1 To NoOfKBDLayout
                       If ImmIsIME(hkb(I - 1)) = 1 Then
                         BuffLen = 255
                         RetCount = ImmGetDescription(hkb(I - 1), buff, BuffLen)
                         retstr = Left(buff, RetCount)
                         If Left(retstr, Len("智能ABC")) = "智能ABC" Then
                          ActivateKeyboardLayout hkb(I - 1), 0
                           Exit Sub
                         End If
                       End If
                     Next
                   End Sub