c++ - 如何在 Wayland 上的 Ubuntu 中计算系统空闲时间?
问题描述
我已经实现了以下代码来计算 xorg 上 ubuntu 中的系统空闲时间,它工作正常:-
#include <X11/extensions/scrnsaver.h>
#include <stdio.h>
#include <X11/Xatom.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xinerama.h>
#include <thread>
#include <chrono>
#include <iostream>
using namespace std;
uint getSystemIdleTime()
{
Display *dpy = XOpenDisplay(nullptr);
if (!dpy) {
return(0);
}
std::this_thread::sleep_for(std::chrono::milliseconds(5000));
XScreenSaverInfo *info = XScreenSaverAllocInfo();
XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), info);
uint idletime= info->idle / 1000;
XFree(info);
XCloseDisplay(dpy);
return idletime;
}
int main()
{
int ans = getSystemIdleTime();
cout << ans << endl;
}
但我无法在 Wayland 上的 ubuntu 中找到任何方法/API 来计算系统空闲。
解决方案
推荐阅读
- c# - 有没有一种最有效的方法可以在 C# 中读取/写入最多 10GB 的二进制文件?
- expect - 在期望脚本中循环以发送多个发送命令
- php - Laravel/Heroku,没有这样的文件或目录用于会话
- c++ - 递归变体输出编译但在运行时出现段错误
- pandas - pandas datetime 为 2018-12-31 的 weekofyear 返回 1
- c# - 如何检索填充 WPF Treeview 的对象?
- javascript - 带有 react-bootstrap 的浮动标签
- jenkins - jenkins 和 github 集成期间“需要 GitHub 项目 url”
- c# - 如何从调用基本构造函数的类继承?
- javascript - 如何在本机反应中关闭模态?