如何获得当前正在使用的某种系统输入法,注意不是所有输入法的列表

解决方案 »

  1.   

    搞定了
    var
      p: PChar;
      function GetImeName(Key: string): string;
      begin
        with TRegistry.Create do
        try
          RootKey := HKEY_LOCAL_MACHINE;
          if OpenKey('\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\' + Key, True) then
            Result := ReadString('Layout Text')
          else
            Result := '';
        finally
          CloseKey;
          Free;
        end;
      end;
    begin
      GetMem(p, KL_NAMELENGTH);
      try
        GetKeyboardLayoutName(p);
        ShowMessage(GetImeName(p));
      finally
        FreeMem(p)
      end;
    end;记得uses Registry单元。