获取系统信息(CPU、内存等)

简述

获取计算机CPU、主板、内存、硬盘、网卡这些信息,Qt中没有相应的处理,所以需要根据平台来做差异化处理。也许Qt为了跨平台,没有提供与操作系统和硬件密切相关的一些功能(如内存、CPU、硬盘等相关信息)。

  • 简述
  • 获取CPU信息
    • Linux
    • Windows
  • 获取内存信息

获取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);
时间: 2024-10-24 16:52:58

获取系统信息(CPU、内存等)的相关文章

SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息

在SQL SERVER中如何通过SQL语句获取服务器硬件和系统信息呢?下面介绍一下如何通过SQL语句获取处理器(CPU).内存(Memory).磁盘(Disk)以及操作系统相关信息.如有不足和遗漏,敬请补充.谢谢! 一:查看数据库服务器CPU的信息 ---SQL 1:获取数据库服务器的CPU型号 EXEC xp_instance_regread 'HKEY_LOCAL_MACHINE', 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', 'Pro

javascript-js非IE内核浏览器上获取系统信息,包括CPU使用率。求解

问题描述 js非IE内核浏览器上获取系统信息,包括CPU使用率.求解 做Flash player,需要获取系统信息,想用js获取然后传递给AS3.js调用WMI,在非IE浏览器上没反应 解决方案 其他浏览器需要通过插件,比如FIREFOX Chrome都支持插件,然后通过插件来获取系统的CPU等信息

如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况

问题描述 如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况 如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况,参考什么书籍或知识点! 解决方案 http://download.csdn.net/detail/ww516617119/7178777 解决方案二: google wmi 性能计数器 <你用的语言> 结果就有了 解决方案三: 楼上这个连接有点厉害,我觉的吧得深入了解win32 sdk,学的快的话,还是调用别人的库 解决方案四: WM

脚本-linux获取CPU内存占用信息

问题描述 linux获取CPU内存占用信息 想弄个脚本定时记录,linux 占用最高CPU 内存的进程. 生成友好阅读的日志,或者将查到的信息追加到日志文件中也行. 然后放到crontab里去执行. 但是有个前提,不使用ps命令. 网上找了一堆,可以使用这个方式,但是我不能使用PS命令,请问有什么办法吗: linux下获取占用 CPU 资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linu

解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解_Android

Android获取系统cpu信息,内存,版本,电量等信息 1.CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系统CPU的类型等多种信息.读取/proc/stat 所有CPU活动的信息来计算CPU使用率 下面我们就来讲讲如何通过代码来获取CPU频率: 复制代码 代码如下: package com.orange.cpu; import java.io.BufferedReader;import java.io.FileNotFound

使用.NET FrameWork获取CPU,内存使用率以及磁盘空间

原文:使用.NET FrameWork获取CPU,内存使用率以及磁盘空间       在以前,我们想获取CPU,内存等信息就不得不借助win32 API来实现.但现在,.NET FrameWork已经把这些API封装到.NET类库中了,所以我们可以借助.NET类库很轻松的获取这些信息.首先,介绍几个要用到的类:      PerformanceCounter:表示windows NT性能计数器组件      ComputerInfo:提供用于获取与计算机内存,已加载程序集,名称和操作系统有关信息

Android获取设备CPU核数、时钟频率以及内存大小的方法_Android

本文实例讲述了Android获取设备CPU核数.时钟频率以及内存大小的方法.分享给大家供大家参考,具体如下: 因项目需要,分析了一下 Facebook 的开源项目 - Device Year Class. Device Year Class 的主要功能是根据 CPU核数.时钟频率 以及 内存大小 对设备进行分级.代码很简单,只包含两个类: DeviceInfo -> 获取设备参数, YearClass -> 根据参数进行分级. 下表是 Facebook 公司提供的分级标准,其中 Year 栏表

在Visual C#中运用API函数获取系统信息

visual|函数 API函数是构筑Windows应用程序的基石,是Windows编程的必备利器.每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法,或者是调用Windows API函数的接口,也就是说具备调用动态连接库的能力.Visual C#和其它开发工具一样也能够调用动态链接库的API函数.本文中笔者就结合实例向大家介绍在Visual C#中如何调用各种返回值的API,该实例就是一个通过API函数调用获取系统信息的程序. 在Visual C#中调用

使用Python实现对Linux服务器CPU内存网络的监控脚本

本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写.Python 是由 Guido van Rossum 开发的.可免费获得的.非常高级的解释型语言.其语法简单易懂,而其面向对象的语义功能强大(但又灵活).Python 可以广泛使用并具有高度的可移植性.本文 Linux 服务器是 Ubuntu 12.10, Python 版本 是 2.7 .如果是 Python 3.0 版本的语法上有一定的出入.另外这里笔者所说的 Python 是 CPython