Определить, есть ли на раскладке клавиатуры AltGr под Windows
Кто-нибудь знает хороший метод, как мы можем проверить из кода на C/C++, есть ли на фактической раскладке клавиатуры клавиша ALTGR или нет?
Я думаю, что лучшим способом было бы прочитать и интерпретировать файл раскладки клавиатуры, например, "KBDGR.DLL" для немецкого языка, но API для этого не существует, а то, что существует, недостаточно документировано.
Есть ли другой способ сделать это?
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;