如何获取ime语言信息?(windows,C ++)

时间:2011-04-25 02:21:15

标签: c++ windows winapi ime

我需要在Windows中获取当前选择的IME语言设置。

我找到了ImmGetConversionStatus(),但它没有返回当前选择的语言。

2 个答案:

答案 0 :(得分:2)

虽然很久以前就提出这个问题了......我相信你可能已经解决了这个问题。 :)

你尝试过吗? : 如果在Windows 7上:GetUserDefaultLocaleName函数 语法:

int GetUserDefaultLocaleName(
  __out  LPWSTR lpLocaleName,
  __in   int cchLocaleName
);

lpLocaleName包含当前文化。

检查文档:http://msdn.microsoft.com/en-us/library/dd318136%28VS.85%29.aspx

仅供参考, 检查这些: http://msdn.microsoft.com/en-us/library/dd318135%28VS.85%29.aspx 还有'support.microsoft.com/kb/193080'

答案 1 :(得分:0)

基于此:

https://stackoverflow.com/a/12954320/964053

......你必须这样做:

HWND fore = GetForegroundWindow(); // Every window has it's own current language (keyboard layout)
DWORD tpid = GetWindowThreadProcessId(fore, 0);
HKL hKL = GetKeyboardLayout(tpid);
WORD wd;
ToAsciiEx(VirtualKey, ScanCode, KeyState, (LPWORD)&wd, 0, hKL);