找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4559|回复: 0

[其它源码] change Ctrl-Shift 出现输入法的顺序

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2010-8-8 15:00:44 | 显示全部楼层 |阅读模式
change Ctrl-Shift 出现输入法的顺序
    loadKeyboardLayout()可以改变order,只要第一个叁数传
    您要使之变成Top的KeyboardlayoutName,第二个叁数传KLF_REORDER
    便可,例如底下的例子便是

    aa = LoadKeyboardLayout("e0060404", KLF_REORDER) '使大易 变top
    aa = LoadKeyboardLayout("00000409", KLF_REORDER) '使英文变top
    aa = LoadKeyboardLayout("e0010404", KLF_REORDER) '使注音变top
    如此,使顺序变成

             注音
             英文
             大易


       而如何得知每个输入法的keyboardlayName呢? 则使用
       GetKeyboardLayoutname()它会传回Current KeyBoardLayoutName
       配合GetKeyboardLayoutList 取得所有install的KeyBoard Handle
       再用activateKeyboardlayout()来设定目前的keyboardLayout如下:


Private Declare Function GetKeyboardLayoutList Lib "user32" Alias _
   "GetKeyboardLayoutList" (ByVal nBuff As Long, lpList As Long) As Long
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias _
   "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Declare Function ActivateKeyboardLayout Lib "user32" Alias _
   "ActivateKeyboardLayout" (ByVal HKL As Long, ByVal flags As Long) As Long
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" _
   (ByVal pwszKLID As String, ByVal flags As Long) As Long
Const KLF_REORDER = &H8

Private Form_Load()
Dim hkb5(24) as Long, i as Long
Dim kln As String
Dim BuffLen As Long
Dim Buff As String
Dim RetStr As String
Dim RetCount As Long

Buff = String(255, 0)
BuffLen = 255

kln = String(8, 0)
LayOutNO = GetKeyboardLayoutList(25, hkb5(0))
For i = 0 To LayOutNO - 1
   ActivateKeyboardLayout hkb5(i), 0
   res = GetKeyboardLayoutName(kln)
   RetCount = ImmGetDescription(hKB5(i - 1), Buff, BuffLen)
   RetStr = Left(Buff, RetCount)
   Debug.Print RetStr, kln   '列印各种输入法,及其输入法名称代号
Next i
End Sub
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表