如何获得时间语言信息?(windows, c++)

How to get ime language info?( windows, C++ )

本文关键字:windows c++ 何获得 时间 语言信息      更新时间:2023-10-16

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

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

虽然这个问题在很久以前就被问过了。我相信你可能已经自己解决了。:)

你试过吗?:如果在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);