切换系统输入法 ( 积分: 0 )

  • 主题发起人 主题发起人 zqssoft
  • 开始时间 开始时间
Z

zqssoft

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在listbox中获取当前系统的所有输入法名称,每当点击listbox中的一个项目后,则系统自动切换输入法为当前点击的项目。
 
请系统编程的高手指点一下啊,非常急!在线等。
 
用screen对象吧

这是在网上找到的:

for i:=0 to Screen.Imes.Count-1 do//获取系统输入法清单
lsbxImes.Items.Add(Screen.Imes.Strings);

Procedure OpenIme(ImeName:string) ;//打开指定的输入法
var
i:Integer;
myhkl:hkl;
begin
if Trim(ImeName)<>'' then
begin
if Screen.Imes.Count<>0 then
begin
i:=Screen.Imes.IndexOf(ImeName);
if i>=0 then
myhkl:=hkl(Screen.Imes.Objects);
ActivateKeyBoardLayOut(myhkl,KLF_ACTIVATE);
end;
end;
end;

Procedure CloseIme;//关闭输入法
var
myhkl:hkl;
begin
myhkl:=GetKeyBoardLayOut(0);
if ImmIsIME(myhkl) then
ImmsimulateHotKey(Handle,IME_cHotKey_IME_NonIME_Toggle);
end;
 
楼上的兄弟,谢谢你,真热心啊。补充一下,需要添加引用 use imm单元。
再接着问个问题:
如果我把listbox1中的输入法顺序调整了,怎么实现保存调整过的顺序到系统。
另,如果在windows系统中删除在listbox1中选择的输入法。
像拼音加加---输入法小管家那样的内容。
谢了啊,各位,来郑州联系我,我请你们吃烧鸡!
:)
 
后退
顶部