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;
获得当前输入法的名称:
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;
解决方案 »
- cann't load package 'rtl70'. It contains unit 'System',which is also contain
- Byte 数组
- insufficient memory for this operation
- DLL中传递开放数组的问题
- the project already contains a form or module named pcm001怎麼解決
- 一个关于进程的问题!!请大家帮帮忙!!1
- 请介绍一下DirectX开发的书
- 如何取得ADOQuery返回的数据记录总数?
- 100分提问!跟者有分!“请大家努力完善Delphi论坛!”
- 高分求助!!进来看一看!
- 怎样使一个窗口弹出后,不关闭,同进程的别的窗口不能获得焦点
- ADO取oracle9的数据,为什么把负数都变成正的拿出来?
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);
返回的结果是 xxx.ime 不对
返回的结果是 xxx.ime 不对
不明白你到底要什么?是不是要默认的输入法名称?
用这个edit1.text:=screen.defaultime