2

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

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

4

2 回答 2

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”

于 2011-06-26T02:57:03.783 回答
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);
于 2013-03-01T08:47:55.257 回答