获得当前输入法的名称:
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;
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;
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;
hKL key
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;
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.
ListBox1.Items := Screen.Imes;
可以得到当前系统的输入法名称。
ListBox1.Items := Screen.Imes;
可以得到当前系统的输入法列表。
ListBox1.Items := Screen.Imes;