有人知道一种好方法,如何在C / C ++中从代码中检查实际的键盘布局是否带有ALTGR键?
我认为最好的方法是读取和解释键盘布局文件,例如用于德语的“ KBDGR.DLL”,但执行此操作的API不存在,并且所存在的内容也没有得到充分记录。
还有其他方法吗?
答案 0 :(得分:0)
我知道已经有一段时间了-这是我想到的最好的
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;