什么是Linux的Window的GetAsyncKeyState?

时间:2016-11-20 05:03:48

标签: c++ linux keyboard

我正在使用c ++,我需要确定是否按下了shift键。在Windows中,我可以使用GetAsyncKeyState。我怎么能在Linux中这样做? 我不能以root身份运行。

1 个答案:

答案 0 :(得分:1)

在X Windows下,您可以加载X Keyboard扩展程序并调用XkbGetState()以获取当前的键盘状态。如果按下shift键,则由base_mods设置的XkbStateRec结构的XkbGetState()字段将设置ShiftMask位。完整文档:https://www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Determining_Keyboard_State

或者:https://stackoverflow.com/a/4225290/4474419