您的位置:首页 > 编程语言 > VB

用VB在程序中添加切换中文输入法的功能

2005-01-17 15:12 1386 查看
思路:
先用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: