我知道原来微软拼音输入法2.0和3.0版本都是可以调用那个反查的,但是现在到了2003以后的版本就不能调用了,不知道各位有没有类似经验可以分享,谢谢!
解决方案 »
- FreeCommunication Ver 2.8 已经出炉,请大家捧场,多谢!
- 在另一个Form中定义TreeNode为什么不行?
- 如何验证我用MD5加密的正确性呢?
- 高手帮帮忙 关于ChecklistBox !
- TuborPower Async是免费的吗?
- DBgrid中失去焦点后输入法改变.
- 关于Listview一个简单的问题?
- 感谢BEWILL(BEWILL)帮我解决UDP问题,请进来接分
- DBGrid问题
- 请问如下代码为什么不能将符合条件的记录全部删除?如何改正?
- 我想把一个简单的c算法转换成delphi的写的程序时候遇到了问题
- Indy9中 IdUDPClient,IdUDPServer可以实现互联网上两台计算机通讯吗?
在我的计算机上的微软拼音输入法 2003(v6.0.0.2527)的文件名是IMSC40A.IME。
http://msdn.microsoft.com/library/en-us/intl/ime_88q6.asp
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); // 恢复
}