在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 这是同步调用,但您可以通过调用XkbSelectEventDetails()请求在键盘状态发生某些变化时发送XkbEvent事件。还有其他几种异步接收键盘事件的方法,但在这里,您对按下或释放Shift键感兴趣,这是作为修饰符字段中的位掩码报告的。或者:https://dev59.com/pnA65IYBdhLWcg3wvxeE#4225290