输入法的的api函数及用法

需要在程序中不使用键盘,但是要输入数据,所以要调用输入法 

 

请讲解详细一点,有例子更好,谢谢 

--------------------------------------------------------------- 

 

BOOL  ImmSimulateHotKey( 

    HWND  hWnd,                 

    DWORD  dwHotKeyID     

); 

BOOL  ImmIsIME( 

    HKL  hKL     

); 

 

--------------------------------------------------------------- 

 

函数声明: 

function  boolean  ImmSimulateHotKey  (ULong  hWnd,  ULong  dwHotKeyID)  library  "IMM32.dll"   

function  ulong  GetKeyboardLayout(ulong  dwLayout)  LIBRARY  "user32.dll"   

function  boolean  ImmIsIME(uLong  hklKeyboardLayout)  library  "IMM32.DLL"   

 

脚本如下: 

constant  int  IME_THotKey_IME_NonIME_Toggle=112   

ulong  hklCurrent   

ulong  hnd   

 

//切换到英文输入法 

hklCurrent=GetKeyboardLayout(0)   

if  ImmIsIME(hklCurrent)  then   

hnd=Handle(parent)   

ImmSimulateHotKey(hnd,IME_THotKey_IME_NonIME_Toggle)   

end  if   

 

//切换到中文输入法 

hklCurrent=GetKeyboardLayout(0)   

if  not  ImmIsIME(hklCurrent)  then   

hnd=Handle(parent)   

ImmSimulateHotKey(hnd,IME_THotKey_IME_NonIME_Toggle)   

end  if 

--------------------------------------------------------------- 

 

如何在PB中切换中英文输入法数 

 

关键:API函数ImmSimulateHotKey和ImmIsIME 

 

函数声明: 

function  boolean  ImmSimulateHotKey  (ULong  hWnd,  ULong  dwHotKeyID)  library   

"IMM32.dll" 

function  ulong  GetKeyboardLayout(ulong  dwLayout)  LIBRARY  "user32.dll" 

function  boolean  ImmIsIME(uLong  hklKeyboardLayout)  library  "IMM32.DLL" 

 

脚本如下: 

constant  int  IME_THotKey_IME_NonIME_Toggle=112 

ulong  hklCurrent 

ulong  hnd 

 

//切换到英文输入法 

hklCurrent=GetKeyboardLayout(0) 

if  ImmIsIME(hklCurrent)  then 

hnd=Handle(parent) 

ImmSimulateHotKey(hnd,IME_THotKey_IME_NonIME_Toggle) 

end  if 

 

//切换到中文输入法 

hklCurrent=GetKeyboardLayout(0) 

if  not  ImmIsIME(hklCurrent)  then 

hnd=Handle(parent) 

ImmSimulateHotKey(hnd,IME_THotKey_IME_NonIME_Toggle) 

end  if 

 

 

1、如何在PB中切换中英文输入法数: 

ZHANWEI   

斑竹举的例子当然没话说,但是在WIN2000下好象那个112的参数不能切换,需要换成16才行; 

 

2、如何打开中文输入法的软键盘: 

 

给你贴篇文档: 

 

第二章      Windows9x系统提供的ime管理函数 

 

  上一章,我们介绍了ime文件中必须设计的函数,这些函数要靠我们自己来设计。要完成这些函数的设计,需用到windows系统提供的管理函数(Input   

Method  Manager,简称IMM)。 

 

        IMM函数可以被IME函数使用,也可用于应用软件直接管理IME。 

 

        相关术语: 

 

                (1)input  method  context   

简称IMC--输入法相关部分,在这里解释为:相关连的应用程序(进程) 

 

                (2)component  of  the  input  context       

简称IMCC--IMC的部件,是INPUTCONTEXT  结构的成员。 

 

一、IME中使用的IMM函数清单 

 

                      ImmGetCompositionWindow                                          //取编码窗口信息 

 

ImmSetCompositionWindow                                            //设置编码窗口信息 

 

ImmGetCandidateWindow                                                    //取选择窗口信息 

 

ImmSetCandidateWindow                                                    //设置选择窗口信息 

 

ImmGetCompositionString                                                  //取编码窗口的某一信息 

 

ImmSetCompositionString                                                  //设置编码窗口的某一信息 

 

ImmGetCompositionFont                                                      //取编码字体 

 

ImmSetCompositionFont                                                      //设置编码字体 

 

ImmGetNumCandidateList                                                  //取选择区中编码数 

 

ImmGetCandidateList                                                                //取选择区中编码 

 

ImmGetGuideLine 

 

ImmGetConversionStatus                                                     

//取当前输入法的状态(ACSII,SHAPE,FULL等) 

 

ImmGetConversionList                                                            //重新获得选择区转换表 

 

ImmGetOpenStatus                                                                      //取输入法打开属性 

 

ImmSetConversionStatus                                                    //设置输入法状态 

 

ImmSetOpenStatus                                                                      //设置输入法打开状态 

 

ImmNotifyIME                                                                                       

//通报IME,输入法状态被改变 

 

                  ImmGenerateMessage                         

//将我们的汉字串法发送到与当前输入法相关联的应用软件中 

                  ImmRequestMessage                            //向应用程序发送WM_IME_REQUEST 

 

                  ImmLockIMC                                                             

//获取当前IMC的INPUTCONTEXT结构信息,增加IMC  计数器 

                  ImmUnlockIMC                                                //释放IMC计数器 

                  ImmGetIMCLockCount                                //取计数器值 

                  ImmCreateIMCC                                            //创建INPUTCONTEXT结构的一个成员 

                  ImmDestroyIMCC                                      //删除IMC成员缓冲区 

                  ImmLockIMCC                                                     

//取IMCC缓冲地址,同时使IMCC的计数器值增加 

                ImmUnlockIMCC                                          //递减IMCC计数器 

                  ImmReSizeIMCC                          //重新设置IMC的成员的缓冲区大小 

                ImmGetIMCCSize                                    //取IMC成员的缓冲区大小 

                        ImmGetIMCCLockCount              //返回IMC计数器值 

                        ImmGetHotKey                                               

//取输入法状态键,该函数供控制面板使用 

 

                        ImmSetHotKey                                                  //设置输入法的热键 

                        ImmCreateSoftKeyboard                    //产生一个软键盘 

                        ImmDestroySoftKeyboard            //销毁软键盘 

                        ImmShowSoftKeyboard            //显示或隐藏软键盘 

 

--------------------------------------------------------------- 

 

在HKEY_USERS:".DEFAULT/keyboard  layout/preload"放的是已安装的输入法,下有几个以数字为名的子键,内容是输入法代号(keyboard  layout),如"e0040804",其中左4位是设备代码(device  identifier),右4位是语言代码(language  identifier)。简体输入法的序号为E02x0804(x为’0’-‘9’的数字) 

在HKEY_LOCAL_MACHINE:"System/CurrentControlSet/Control/Keyboard  Layouts/"放的是已注册的输入法。他的子键名为输入法代号(keyboard  layout),内容为该输入法的ime文件,名称等信息。 

 

再往下LoadKeyboardLayout  装入输入法的键盘布局   

 

我也只能到这里。。呵呵! 

 

建议找找有没有用别的语言写的dll,pb再往下太难了
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值