【发布时间】:2019-07-02 11:36:45
【问题描述】:
有没有人知道如何从 C/C++ 代码中检查实际键盘布局是否有 ALTGR 键的好方法?
我认为最好的方法是阅读和解释键盘布局文件,例如德语的“KBDGR.DLL”,但执行此操作的 API 不存在,并且存在的内容没有很好的记录。
还有其他方法可以做到这一点吗?
【问题讨论】:
标签: windows keyboard keyboard-layout
有没有人知道如何从 C/C++ 代码中检查实际键盘布局是否有 ALTGR 键的好方法?
我认为最好的方法是阅读和解释键盘布局文件,例如德语的“KBDGR.DLL”,但执行此操作的 API 不存在,并且存在的内容没有很好的记录。
还有其他方法可以做到这一点吗?
【问题讨论】:
标签: windows keyboard keyboard-layout
我知道已经有一段时间了 - 这是我想出的最好的
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;
【讨论】: