Uses Imm;
获得当前输入法的名称:
function GetImeFileName: string;
var
  szImeFileName: array[0..MAX_PATH] of char;
begin
  if ImmGetIMEFileName(GetKeyboardLayout(0), szImeFileName, MAX_PATH) <> 0 then
    Result := AnsiUpperCase(StrPas(szImeFileName))
  else
    Result := '';
end;

解决方案 »

  1.   

    获得输入法的名称:
    function GetImeFileName: string;
    var
      szImeFileName: array[0..MAX_PATH] of char;
    begin
      if ImmGetIMEFileName(GetKeyboardLayout(0), szImeFileName, MAX_PATH) <> 0 then
        Result := AnsiUpperCase(StrPas(szImeFileName))
      else
        Result := '';
    end;
    调用控制面板中输入法设置:
    WinExec('rundll32.exe shell32,Control_RunDLL main.cpl @4', SW_SHOWNORMAL);
      

  2.   

    sean2000(地宽天高) 
    返回的结果是 xxx.ime 不对
      

  3.   

    sean2000(地宽天高) 
    返回的结果是 xxx.ime 不对
      

  4.   

    combobox1.Items.CommaText:=screen.Imes.CommaText;
      

  5.   

    neilwq(啄木鸟) 不一定是当前系统输入法
      

  6.   

    这是取得系统中已安装的输入法,
    不明白你到底要什么?是不是要默认的输入法名称?
    用这个edit1.text:=screen.defaultime