C ++ X11获取大写锁定的状态

问题描述 投票:-1回答:2

我需要使用C ++获取CAPS LOCK的状态。我试图使用XkbGetIndicatorState获得状态,但它不起作用。

有人能帮我吗?

c++ x11 capslock
2个回答
0
投票

我正在努力解决同样的问题,但是对于NUM_LOCK Key状态。我修改了找到的代码,找到了CAPS_LOCK状态:

这是代码,我希望这会有所帮助:

#include <X11/Xlib.h>


Display *dpy = XOpenDisplay(":0");
XKeyboardState x;
printf("led_mask=%lx\n", x.led_mask);
printf("NumLock is %s\n", (x.led_mask & 2) ? "On" : "Off");
printf("CapsLock is %s\n", (x.led_mask & 1) ? "On" : "Off");

-6
投票

尝试以下内容:

if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0)
  cout<<"Caps Lock ON!";
else
  cout<<"Caps Lock OFF!";

或者(reference

Use GetAsyncKeyState with VK_CAPITAL (0x14)
© www.soinside.com 2019 - 2024. All rights reserved.