获取系统信息(CPU、内存等)
简述
获取计算机CPU、主板、内存、硬盘、网卡这些信息,Qt中没有相应的处理,所以需要根据平台来做差异化处理。也许Qt为了跨平台,没有提供与操作系统和硬件密切相关的一些功能(如内存、CPU、硬盘等相关信息)。
获取CPU信息
Linux
很简单,直接读取这几个文件就好了。
/proc/cpuinfo 处理器信息
/proc/meminfo 物理内存信息
/proc/vmstat 虚拟内存信息
Windows
调用相应的Win API来获取,GetSystemInfo用于返回关于当前系统的信息。
SYSTEM_INFO systemInfo;
GetSystemInfo(&systemInfo);
qDebug() << QStringLiteral("处理器掩码:%1").arg(systemInfo.dwActiveProcessorMask);
qDebug() << QStringLiteral("处理器个数:%1").arg(systemInfo.dwNumberOfProcessors);
qDebug() << QStringLiteral("处理器分页大小:%1").arg(systemInfo.dwPageSize);
qDebug() << QStringLiteral("处理器类型:%1").arg(systemInfo.dwProcessorType);
qDebug() << QStringLiteral("最大寻址单元:") << systemInfo.lpMaximumApplicationAddress;
qDebug() << QStringLiteral("最小寻址单元:") << systemInfo.lpMinimumApplicationAddress;
qDebug() << QStringLiteral("处理器等级:%1").arg(systemInfo.wProcessorLevel);
qDebug() << QStringLiteral("处理器版本:%1").arg(systemInfo.wProcessorRevision);
获取内存信息
#define MB (1024 * 1024)
MEMORYSTATUSEX statex;
statex.dwLength = sizeof(statex);
GlobalMemoryStatusEx(&statex);
qDebug() << QStringLiteral("物理内存使用率:%1").arg(statex.dwMemoryLoad);
qDebug() << QStringLiteral("物理内存总量:%1").arg(statex.ullTotalPhys / MB);
qDebug() << QStringLiteral("可用的物理内存:%1").arg(statex.ullAvailPhys / MB);
qDebug() << QStringLiteral("系统页面文件大小:%1").arg(statex.ullTotalPageFile / MB);
qDebug() << QStringLiteral("系统可用页面文件大小:%1").arg(statex.ullAvailPageFile / MB);
qDebug() << QStringLiteral("虚拟内存总量:%1").arg(statex.ullTotalVirtual / MB);
qDebug() << QStringLiteral("可用的虚拟内存:%1").arg( statex.ullAvailVirtual / MB);
qDebug() << QStringLiteral("保留(值为0):%1").arg(statex.ullAvailExtendedVirtual / MB);
获取系统信息(CPU、内存等)的更多相关文章
- 主机性能监控之wmi 获取系统信息及内存性能信息
标 题: 主机性能监控之wmi 获取系统信息及内存性能信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990240.html 欢迎转帖 请保持文本完整 ...
- GetSystemInfo 和 GlobalMemoryStatus获取系统信息,内存信息
// GetSystemInfo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #in ...
- Java如何获取系统信息(包括操作系统、jvm、cpu、内存、硬盘、网络、io等)
1 下载安装sigar-1.6.4.zip 使用java自带的包获取系统数据,容易找不到包,尤其是内存信息不够准确,所以选择使用sigar获取系统信息. 下载地址:http://sourceforge ...
- Android系统信息(内存、cpu、sd卡、电量、版本)获取
Android系统信息(内存.cpu.sd卡.电量.版本)获取 /*APPInfo.java*/ public class AppInfo { private String appLable; pri ...
- Android -- 系统信息(内存、cpu、sd卡、电量、版本)获取
内存(ram) android的总内存大小信息 ...
- Java如何获取系统cpu、内存、硬盘信息
1 概述 前段时间摸索在Java中怎么获取系统信息包括cpu.内存.硬盘信息等,刚开始使用Java自带的包进行获取,但这样获取的内存信息不够准确并且容易出现找不到相应包等错误,所以后面使用sigar插 ...
- java 获取系统信息及CPU的使用率(转)
java 获取系统信息及CPU的使用率 原文:http://kakaluyi.javaeye.com/blog/211492 最近做个项目,就是要取得cpu占有率等等的系统信息,一开始以为要用动态链接 ...
- asp.net mvc4 简单的服务器监控开发之C#获取服务器CPU、RAM、TCP等系统信息(上)
一.背景 前段时间服务器出了点问题,加上学业愈来愈紧张,写博文分享的时间越来越少.虽然不是第一次在博客园上写经验,但是近期分享的博文得到了不少的朋友支持和指正,在这里内心非常感激和开心.希望以后能认真 ...
- 使用.NET FrameWork获取CPU,内存使用率以及磁盘空间
在以前,我们想获取CPU,内存等信息就不得不借助win32 API来实现.但现在,.NET FrameWork已经把这些API封装到.NET类库中了,所以我们可以借助.NET类库很轻松的获取这些信息. ...
随机推荐
- 四、服务器上的 Git
一个远程仓库通常只是一个裸仓库(bare repository)— 即一个没有当前工作目录的仓库.因为该仓库仅仅作为合作媒介,不需要从磁碟检查快照:存放的只有 Git 的资料.简单的说,裸仓库就是你专 ...
- zabbbix4.0升级到4.2
一.添加Zabbix存储库 1.安装存储库配置包. rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4 ...
- Android开发进度07
1,今日:目标:完成记账功能 2,昨天:账单的增删改查方法 3,收获:无 4,问题:SQLite表单出现问题,提交后软件直接退出
- STM32 关于头文件路径没添加错误问题(cannot open source input file "spi.h": No such file or directory)
error: #5: cannot open source input file "spi.h": No such file or directory 1.出现这种问题,首先要确 ...
- Java基础学习总结(47)——JAVA输入输出流再回忆
一.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. Java的I/O流提供了 ...
- maven规定的目录
Maven规定的目录结构 若要使用Maven,那么项目的目录结构必须符合Maven的规范 ,如写一个使用Spring的Web项目就需要引入大量的jar包.一个项目Jar包的数量之多往往让我们瞠目结舌, ...
- Android多媒体学习六:利用Service实现背景音乐的播放
Android同意我们使用Service组件来完毕后台任务.这些任务的同意不会影响到用户其它的交互. 1.Activity类 [java] view plaincopy package demo.ca ...
- Shuttle ESB实现消息推送
ESB全称Enterprise Service Bus,即企业服务总线.它是传统中间件技术与XML.Web服务等技术结合的产物. ESB的出现改变了传统的软件架构,能够提供比传统中间件产品更为便宜的解 ...
- Vitual Router in The Cloud
VyOS and ESXi,VyOS Configuration The next step is to configure both VyOS routers. Before we do, we s ...
- python爬虫 分页获取图片并下载
--刚接触python2天,想高速上手,就写了个爬虫,写完之后,成就感暴增,用起来顺手多了. 1.源代码 #coding=utf-8 import urllib import re class Pag ...