搞定了 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单元。
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单元。