代码如下:
Option Explicit
'* ************************************************************** *
'* 程序名称:modIME.bas
'* 程序功能:用API控件输入法状态
'* 作者:lyserver
'* 联系方式:http://blog.csdn.net/lyserver
'* ************************************************************** *
Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
Private Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, lpList 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 Const KLF_SETFORPROCESS = &H100
'打开或关闭中文输入法
Public Sub SetImeMode(bMode As Boolean) 'True打开、False关闭
Dim i As Long
Dim hCurKB As Long
Dim hKB() As Long, KBCount As Long
hCurKB = GetKeyboardLayout(0) '获得当前输入法句柄
If CBool(ImmIsIME(hCurKB)) <> bMode Then
KBCount = GetKeyboardLayoutList(0, ByVal 0&)
ReDim hKB(KBCount - 1)
GetKeyboardLayoutList KBCount, hKB(0)
For i = 0 To KBCount - 1
If CBool(ImmIsIME(hKB(i))) = bMode Then
ActivateKeyboardLayout hKB(i), KLF_SETFORPROCESS
Exit For
End If
Next
End If
End Sub
摘自:用API控制输入法状态