gpt4 book ai didi

c++ - Window 的 GetAsyncKeyState 的 Linux 等效项是什么?

转载 作者:IT王子 更新时间:2023-10-29 00:38:39 25 4
gpt4 key购买 nike

我正在使用 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

这是一个同步调用,但您可以通过调用 XkbSelectEventDetails() 来请求在键盘状态的某些方面发生变化时发送 XkbEvent 事件。您可以通过其他几种方式异步接收键盘事件,但在这里,您感兴趣的是何时按下或释放 Shift 键,这在修饰符字段中报告为位掩码。

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

关于c++ - Window 的 GetAsyncKeyState 的 Linux 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com