我正在使用C ++,我需要确定是否按下Shift键。 在Windows中,我只能使用GetAsyncKeyState。 我怎么能在Linux上做到这一点? 我不能以root身份运行。
在X Windows下,您可以加载X Keyboard扩展并调用XkbGetState()
来获取当前的键盘状态。 如果按下Shift键,由XkbGetState()
设置的XkbStateRec
结构的base_mods
字段将设置ShiftMask
位。 完整的文档在这里: https : //www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Determining_Keyboard_State
或者: https : //stackoverflow.com/a/4225290/4474419