在Windows上获取键盘语言

问题描述:

我知道我可以使用GetKeyboardLayout function来检索当前的键盘语言。 但是我仍然对如何使用这个函数的返回值感到困惑。在Windows上获取键盘语言

有人可以写下一个关于如何使用它的实际例子,例如,检查键盘是否设置为英语? (我正在使用C++)

预先感谢您。

+2

如果(PRIMARYLANGID(HKL&0xFFFF的)== LANG_ENGLISH) –

+1

@HansPassant,感谢您的答复。 其实我不认为你写的是完全正确的,因为我得到一个错误(“表达式必须有整型或无限型枚举类型”),但它绝对指出我正确的方向。 在我的Visual C++中,它似乎能够以这种方式正常工作: if(PRIMARYLANGID(KeyboardLayout)== LANG_ENGLISH) – Flavio

+1

好吧,不要告诉我,只要发布正确的代码来完成您的Q + A并接受它作为答案。 –

找到解决方案!

HKL KeyboardLayout = GetKeyboardLayout(0); 
if (PRIMARYLANGID(KeyboardLayout) == LANG_ENGLISH)