C++和Qt 获取系统CPU、内存和磁盘空间 您所在的位置:网站首页 qt获取cpu数量 C++和Qt 获取系统CPU、内存和磁盘空间

C++和Qt 获取系统CPU、内存和磁盘空间

2024-02-12 20:38| 来源: 网络整理| 查看: 265

1.CPU

用SYSTEM_INFO来获取系统CPU的相关信息。在WinBase.h头文件里,可以找到结构体SYSTEM_INFO的定义。通过结构体可以访问到系统CPU信息。

typedef struct _SYSTEM_INFO { union { DWORD dwOemId; // Obsolete field...do not use struct { WORD wProcessorArchitecture; WORD wReserved; }; }; DWORD dwPageSize; LPVOID lpMinimumApplicationAddress; LPVOID lpMaximumApplicationAddress; DWORD_PTR dwActiveProcessorMask;//处理器掩码 DWORD dwNumberOfProcessors;//处理器个数 DWORD dwProcessorType;//处理器类型 DWORD dwAllocationGranularity;// WORD wProcessorLevel;//处理器等级 WORD wProcessorRevision;//处理器版本 } SYSTEM_INFO, *LPSYSTEM_INFO; 2.内存Memory

用MEMORYSTATUSEX来获取系统内存的相关信息在WinBase.h头文件里,可以找到结构体MEMORYSTATUSEX的定义。通过结构体可以访问到系统内存信息。

typedef struct _MEMORYSTATUSEX { DWORD dwLength; DWORD dwMemoryLoad;//物理内存使用率 DWORDLONG ullTotalPhys;//物理内存总量 DWORDLONG ullAvailPhys;//可用的物理内存 DWORDLONG ullTotalPageFile;//系统页面文件大小 DWORDLONG ullAvailPageFile;//系统可用页面文件大小 DWORDLONG ullTotalVirtual;//虚拟内存总量 DWORDLONG ullAvailVirtual;//可用虚拟内存 DWORDLONG ullAvailExtendedVirtual; } MEMORYSTATUSEX, *LPMEMORYSTATUSEX; 3.硬盘大小

在WinBase.h里提供了API –GetDiskFreeSpaceExW:

GetDiskFreeSpaceExW( __in_opt LPCWSTR lpDirectoryName,//磁盘名,如“C:/” __out_opt PULARGE_INTEGER lpFreeBytesAvailableToCaller, __out_opt PULARGE_INTEGER lpTotalNumberOfBytes,//总空间 __out_opt PULARGE_INTEGER lpTotalNumberOfFreeBytes//可用空间 ); 4.本文示例

包含头文件#include

#include #define MB (1024*1024) #define GB (1024*1024*1024) 4.1获取磁盘空间 ////获取硬盘空间 ////driver:磁盘名 ////flag:1-空闲磁盘大小;0-磁盘总大小 quint64 getDiskSpace(QString iDriver,int flag) { ///磁盘名 LPCWSTR strDriver=(LPCWSTR)iDriver.utf16(); ULARGE_INTEGER freeDiskSpaceAvailable, totalDiskSpace, totalFreeDiskSpace; ///调用函数获取磁盘参数(单位为字节Byte) GetDiskFreeSpaceEx( strDriver, &freeDiskSpaceAvailable, &totalDiskSpace, &totalFreeDiskSpace) ; if(flag==0) return (quint64) totalDiskSpace.QuadPart/GB; else if(flag==1) return (quint64) totalFreeDiskSpace.QuadPart/GB; else return 0; }

调用方法示例:

///声明一个SYSTEM_INFO结构体对象 SYSTEM_INFO systemInfo; GetSystemInfo(&systemInfo);//GetSystemInfo()返回当前系统信息 cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有