【发布时间】:2011-08-12 02:13:04
【问题描述】:
我需要在 Windows 中获取当前选择的 IME 语言设置。
我找到了 ImmGetConversionStatus(),但它没有返回当前选择的语言。
【问题讨论】:
我需要在 Windows 中获取当前选择的 IME 语言设置。
我找到了 ImmGetConversionStatus(),但它没有返回当前选择的语言。
【问题讨论】:
虽然这个问题很久以前就被问过了。我相信你可能已经自己解决了。 :)
你试过了吗? : 如果在 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'
【讨论】:
基于此:
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);
【讨论】: