我知道原来微软拼音输入法2.0和3.0版本都是可以调用那个反查的,但是现在到了2003以后的版本就不能调用了,不知道各位有没有类似经验可以分享,谢谢!

解决方案 »

  1.   

    用LoadLibrary加载IME文件(那实际上是DLL),之后调用ImmRegisterWord函数。
    在我的计算机上的微软拼音输入法 2003(v6.0.0.2527)的文件名是IMSC40A.IME。
    http://msdn.microsoft.com/library/en-us/intl/ime_88q6.asp
      

  2.   

    我原来用BCB写过一个输入法反查的,供你参考:
    void   __fastcall   TForm1::Button1Click(TObject   *Sender)   
      {   
        
        HKL   pt[20];   
        char   iname[80],buff[256],buff1[80];   
        String   x;   
        int   ct,ct1,dwg,j;   
        
        ct   =   GetKeyboardLayoutList(20,pt   );     //   ct   =   机上输入法个数   
        for(int   i=0;i<ct;i++)   
            if   ((dwg=ImmEscape(pt[i],   NULL,   IME_ESC_IME_NAME,iname   ))   >   0   )   
                {   
                    Memo1->Lines->Add(iname);                   //   第i个输入法的名   
                    ct1=   ImmEscape(pt[i],   NULL,   IME_ESC_MAX_KEY,   NULL);   
                    Memo1->Lines->Add(ct1);                       //   输入法的最大键长   
        
                  ActivateKeyboardLayout(pt[i],0);     //   切换到该输入法   
        
                    dwg=ImmGetConversionList(pt[i],NULL,"明",NULL,0,GCL_REVERSECONVERSION);   
                    if   (dwg<=0)       //   是否可反查(查"明")   
                        continue;   
                    ImmGetConversionList(pt[i],NULL,"明",(PCANDIDATELIST)buff,dwg,GCL_REVERSECONVERSION);   
                    x=buff+buff[24];   
                    Memo1->Lines->Add(x);     //   结果在x中   
                }   
                  ActivateKeyboardLayout(pt[0],0);   //   恢复   
        
      }