获得当前输入法的名称:
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;
      

  2.   

    In the registry, the system stores the filename as the IME name value in HKEY_LOCAL_MACHINE root under the \System\CurrentControlSet\control\keyboard layouts\
    hKL key
      

  3.   

    function list_Ime(List_box:Tcombobox):boolean;
    var Ime_count:integer;
    begin
       List_box.Clear;
       for Ime_count:=0 to screen.Imes.Count-1 do
         list_box.Items.Add(screen.Imes.Strings[Ime_count]);
       result:=true;
    end;
      

  4.   

    1、获得当前系统的所有输入法:使用Screen对象的Imes属性!   
    2、设置Memo的输入法:设置Memo的ImeName属性
    3、在Memo获得输入焦点时打开输入法:将Memo.ImeMode从默认的imDontcase改imOpenunit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
    type
      TForm1 = class(TForm)
        Memo1: TMemo;//设好imeMode属性!
        ComboBox1: TComboBox;//Text属性为空
        procedure FormCreate(Sender: TObject);
        procedure ComboBox1Change(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;
    implementation
    {$R *.DFM}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      ComboBox1.Items:=Screen.Imes;//获取系统安装的所有输入法
    end;
    procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      Memo1.ImeName:=ComboBox1.Text;//根据所选的输入法变化Memo的默认输入法
    end;
    end.
      

  5.   

    试试以下:
        ListBox1.Items := Screen.Imes;
    可以得到当前系统的输入法名称。
      

  6.   

    试试以下:
        ListBox1.Items := Screen.Imes;
    可以得到当前系统的输入法列表。
      

  7.   

    ImmGetIMEFileName的Uses单元?F1都找不到
      

  8.   

    sean2000(地宽天高),行了,谢谢!结贴。
      

  9.   

    看来你没有试,可惜!其实最简单的方法也是最有效的。
    ListBox1.Items := Screen.Imes;