ubuntu检测鼠标键盘是否活动

阅读: 评论:0

ubuntu检测鼠标键盘是否活动

ubuntu检测鼠标键盘是否活动

在ubuntu系统,检测鼠标键盘是否活动

理论

在ubuntu系统,一切皆文件的哲学思想,很容易让我们想到,要检测鼠标键盘是否活动,主要方法是找到鼠标和键盘对应的设备文件。通过检测设备文件是否修改,以达到检测鼠标和键盘是否活动的目的。

经过查询,发现鼠标和键盘对应的设备文件,位于目录:/dev/input/ ,我们只需要监视此目录下的文件是否被修改,就可以得知鼠标和键盘是否活动。

代码实现细节:

void listenKeyMice(const char *keyDev, const char *miceDev)
{//init key devfd_set readfds;int fd = open(keyDev, O_RDONLY);struct input_event event;if (fd < 0){perror(keyDev);return;}//init mice devchar buf[256];int n_len;fd_set miceReadfds;int miceFd = open(miceDev, O_RDONLY);if (miceFd < 0){perror(miceDev);return;}struct timeval tv;int retval;while (1){if(qAbs(mNowDateTime.secsTo(mLastDateTime)) >= mLogoutTime * 60 && bIsListening)  //鼠键在设定时间内未响应,对外发出消息。{lock.lockForWrite();mLastDateTime = mNowDateTime;mLockState = true;lock.unlock();// qDebug()<< "secsTo: " <<mNowDateTime.secsTo(mLastDateTime);emit sngLock(true);}{   //Listen Key BoardQThread::msleep(30);FD_ZERO(&readfds);FD_SET(fd, &readfds);tv.tv_sec = 0;tv.tv_usec = 500;mNowDateTime = QDateTime::currentDateTime();if((retval = select(fd+1, &readfds, NULL, NULL, &tv)) == 1){if ((read(fd, &event, sizeof(event)) == sizeof(event))  && bIsListening){if (pe == EV_KEY){//if (event.value == 0 || event.value == 1){if(mLockState)emit sngLock(false);lock.lockForWrite();mLastDateTime = mNowDateTime;mLockState = false;lock.unlock();// qDebug() << "Key Board Clicked";}}}}}{   //Listen mouse// QThread::msleep(30);FD_ZERO(&miceReadfds);FD_SET(miceFd, &miceReadfds);tv.tv_sec = 0;tv.tv_usec = 500;mNowDateTime = QDateTime::currentDateTime();if((retval = select(miceFd+1, &miceReadfds, NULL, NULL, &tv)) == 1){if (((n_len = read(miceFd, buf, sizeof(buf))) > 0) && bIsListening){if (n_len == 3){if(mLockState)emit sngLock(false);lock.lockForWrite();mLastDateTime = mNowDateTime;mLockState = false;lock.unlock();//  qDebug() << "mouse Clicked";}}}}}
}

调用接口

 listenKeyMice("/dev/input/event1" , "/dev/input/mice");

注意

如果监视 event1、mice无效,可以尝试event2、mice2,不同的ubuntu版本,可能会有所不同。

本文发布于:2024-01-28 04:58:23,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063891094951.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:鼠标键盘   ubuntu
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23