【问题标题】:How to get ime language info?( windows, C++ )如何获取 ime 语言信息?(windows,C++)
【发布时间】:2011-08-12 02:13:04
【问题描述】:

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

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

【问题讨论】:

    标签: c++ windows winapi ime


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,但我想知道当前的键盘本地(语言)信息。不是默认语言。我有 ImmGetConversionStatus() 函数。对不起,我的英语能力很差。
    【解决方案2】:

    基于此:

    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);
    

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多