C++和Qt 获取系统CPU、内存和磁盘空间 | 您所在的位置:网站首页 › qt获取cpu数量 › C++和Qt 获取系统CPU、内存和磁盘空间 |
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 实验室设备网 版权所有 |