Windows IME API╋imm.h

这篇博客介绍了如何使用Windows的IME API,包括imm.h头文件的引用,以及如何通过GetKeyboardLayoutList、ImmGetProperty、ImmEscape等函数来获取和操作输入法的状态和属性。示例代码展示了查询和切换输入法、获取输入法描述、判断输入法类型等功能。
摘要由CSDN通过智能技术生成

只要#include        <imm.h>
#include <vcl.h>    //这个不能删除
静态调用C:/WINDOWS/system32/imm32.dll 107 KB

D:/bcb/cb6/Borland/CBuilder6/Lib/Psdk/imm32.lib居然不必“加”入工程
头文件也不必声明
各个外部dll函数


微软拼音输入法2.0和3.0版本都可以反查拼音,2003版本不能了

 

 

    #include <vcl.h>
    #pragma hdrstop
    #include "main.h"
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    Tmain_ *main_;
    //---------------------------------------------------------------------------
    __fastcall Tmain_::Tmain_(TComponent* Owner):TForm(Owner){sum=::GetKeyboardLayoutList(255,NULL);}
    //---------------------------------------------------------------------------
    void __fastcall Tmain_::Button1Click(TObject *Sender)
    {
      for(int k=0;k<sum;k++)
      {
        hkl=::GetKeyboardLayout(k);
        ::ActivateKeyboardLayout(hkl,0);
        hkl=::GetKeyboardLayout(0);  //切换成当前输入法
        unsigned int len=ImmGetDescriptionA(hkl,NULL,0);
        char* buff=new char[len+1];  //注意+1
        if(ImmIsIME(hkl)==1)   //必须是中文状态,才可看ImmGetDescription
        {
          ImmGetDescriptionA(hkl,buff,len);
          msg="第"+IntToStr(k+1)+"种输入法是“中文输入法”,全名描述叫: 【"+buff+"】";
          Application->MessageBox(msg.c_str(), " ", MB_OK);
        }
        else
        {
          msg="第"+IntToStr(k+1)+"种输入法是“英文输入法”,English,不可见ImmGetDescription!";
          Application->MessageBox(msg.c_str(), " ", MB_OK);
        }
        delete [] buff;
      }
    }
    //---------------------------------------------------------------------------
    void __fastcall Tmain_::Button2Click(TObject *Sender)
    {
       hkl=::GetKeyboardLayout(0);//当前输入法
        __int64  rev[7];
        rev[0]=ImmGetProperty(hkl,IGP_CONVERSION);//组字属性  bit field for conversion mode
        /*
        #define IME_CMODE_ALPHANUMERIC          0x0000   //英文字母和数字输入
        #define IME_CMODE_NATIVE                0x0001   //本地语言输入
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值