【问题标题】:Detect if the keyboard layout has AltGr on it under WindowsWindows下检测键盘布局是否有AltGr
【发布时间】:2019-07-02 11:36:45
【问题描述】:

有没有人知道如何从 C/C++ 代码中检查实际键盘布局是否有 ALTGR 键的好方法?

我认为最好的方法是阅读和解释键盘布局文件,例如德语的“KBDGR.DLL”,但执行此操作的 API 不存在,并且存在的内容没有很好的记录。

还有其他方法可以做到这一点吗?

【问题讨论】:

    标签: windows keyboard keyboard-layout


    【解决方案1】:

    我知道已经有一段时间了 - 这是我想出的最好的

    BOOL CMonitor::LayoutHasAltGr(HKL keyboard_layout)
    {
        BOOL hasAltGr = FALSE;
        int scancode;
    
        for (WORD i = 32; i < 256; ++i)
        {
            scancode = VkKeyScanEx((TCHAR)i, keyboard_layout);
            if (scancode != -1 && (scancode & 0x600) == 0x600)
            {
                // Ctrl + Alt means AltGr
                hasAltGr = TRUE;
                break;
            }
        }
    
        return hasAltGr;
    

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 2011-02-28
      • 2017-12-04
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 2011-04-17
      • 2022-01-18
      • 2020-07-29
      相关资源
      最近更新 更多