【发布时间】:2017-04-03 17:03:03
【问题描述】:
我正在使用 c++,我需要确定是否按下了 shift 键。在 Windows 中,我可以只使用 GetAsyncKeyState。我怎样才能在 Linux 中做到这一点? 我无法以 root 身份运行。
【问题讨论】:
我正在使用 c++,我需要确定是否按下了 shift 键。在 Windows 中,我可以只使用 GetAsyncKeyState。我怎样才能在 Linux 中做到这一点? 我无法以 root 身份运行。
【问题讨论】:
在 X Windows 下,您可以加载 X 键盘扩展并调用 XkbGetState() 以获取当前键盘状态。如果按下 shift 键,由XkbGetState() 设置的XkbStateRec 结构的base_mods 字段将设置ShiftMask 位。完整文档在这里:https://www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Determining_Keyboard_State
【讨论】: