部分代码如下:
extra_btn_fd = open("/dev/input/by-id/usb-Razer_Razer_Naga_2014-event-mouse", O_RDONLY);
ioctl(extra_btn_fd, EVIOCGRAB, 1);
问题是它不仅控制了 2 个额外的按钮(前进和后退),还控制了点击按钮(我认为还有滚动)。
我正在尝试完全控制 2 个前进和后退按钮,而不是点击。
最佳答案
您必须在代码中过滤事件。例如像下面
while(1) {
struct input_event event;
read(extra_btn_fd, &event, sizeof(event));
if (event.type == EV_KEY && (event.code == BTN_FORWARD || event.code == BTN_BACK) {
printf("%d %d\n", event.type, event.code);
}
}
关于c++ - 如何让 C++ 中的 ioctl 只管理我鼠标的 4 个按钮中的 2 个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55134082/