怎么在delphi中启动控制面板中的"输入法"??(200分)

  • 主题发起人 主题发起人 gf.z
  • 开始时间 开始时间
G

gf.z

Unregistered / Unconfirmed
GUEST, unregistred user!
输入法好象没有对应的.cpl文件啊!!!
 
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Cime.cpl', SW_SHOWNORMAL);
 
同意lb_icesea79
 
我查找了以下,winodws里好象找不到有Cime.cpl这个文件啊!!!???
 
winexec('rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,5',9);
 
以下代码经过测试
procedure SetMyIme(ImeName:string);
var
i:integer;
HandleToSet:HKL;
begin
if not SysLocale.FarEast then Exit;
if ImeName<>' ' then
begin
if (AnsiCompareText(ImeName,Screen.DefaultIme)<>0) and (Screen.Imes.Count<>0)
then
begin
HandletoSet:=Screen.DefaultKbLayout;
i:=Screen.Imes.IndexOf(ImeName);
if i>=0 then HandletoSet:=HKL(Screen.Imes.Objects);
ActivateKeyboardLayout(HandleToSet,KLF_ACTIVATE);
end;
end;
end;
procedure ResetMyIme(ImeName:string);
begin
if not SysLocale.FarEast then Exit;
if ImeName<>' ' then
begin
if (AnsiCompareText(ImeName,Screen.DefaultIme)<>0) then
ActivateKeyboardLayout(Screen.DefaultKbLayout,KLF_ACTIVATE);
end;
end;
procedure TForm1.Memo1Click(Sender: TObject);
begin
SetMyIme('微软拼音输入法');
end;

在use下面你必须手工添加:IMM
ActivateKeyboardLayout的帮助文件在Windows SDK里面,你自己看吧
 
我要的是双击 控制面板 的 “输入法”打开的界面!!
在delphi中如何实现???
 
后退
顶部