既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
//调用Windows WMIC指令 获取硬件信息 此方法仅适用于Windows环境
QString GetHardWare::GetWare(QString cmd)
{
QProcess p;
p.start(cmd);
p.waitForFinished();
QString result = QString::fromLocal8Bit(p.readAllStandardOutput());
QStringList list = cmd.split(" ");
result = result.remove(list.last(), Qt::CaseInsensitive);
result = result.replace(“\r”, “”);
result = result.replace(“\n”, “”);
result = result.simplified();
return result;
}
具体实现
获取电脑名称
如果此处报错,这里没详细描述,可查看:【Qt/C++异常笔记】“QHostInfo”: 不是类或命名空间名称
//获取电脑名字
QString GetHardWare::getMachineName()
{
QString machineName = QHostInfo::localHostName();
return machineName;
}
获取CPU信息
如:Intel® Core™ i7-8750H CPU @ 2.20GHz
//获取CPU信息
QString GetHardWare::getCpuInfo()
{
return GetWare(“wmic cpu get name”);
}
获取CPU序列号
//获取CPU序列号
QString GetHardWare::getCpuSerial()
{
return GetWare(“wmic cpu get processorid”);
}
获取内存信息
返回信息依次为:已使用内存大小、未使用内存大小、总内存大小,单位为MB;
如:(“5041”, “3001”, “8042”)
//获取内存信息
//返回信息依次为:已使用内存大小、未使用内存大小、总内存大小,单位为MB
//如:(“5041”, “3001”, “8042”)
QStringList GetHardWare::getMemoryInfo()
{
QStringList m_memInfo;
int memoryPercent;
int memAll;
int memUse;
int memFree;
MEMORYSTATUSEX statex;
statex.dwLength = sizeof (statex);
GlobalMemoryStatusEx(&statex);
memoryPercent = statex.dwMemoryLoad;
memAll = statex.ullTotalPhys / MB;
memFree = statex.ullAvailPhys / MB;
memUse = memAll - memFree;
m_memInfo.append(QString::number(memUse));
m_memInfo.append(QString::number(memFree));
m_memInfo.append(QString::number(memAll));
return m_memInfo;
}
获取第一个磁盘序列号
//获取第一个磁盘序列号
QString GetHardWare::getDiskSerial()
{
return GetWare(“wmic diskdrive where index=0 get serialnumber”);//只能在Windows环境下使用
}
获取磁盘信息
返回信息依次为:磁盘名称、已使用空间大小、未使用空间大小、总空间大小、使用百分比;
如: ((“C:/”, “92.9G”, “122.5G”, “215.5G”, “43”),
(“D:/”, “175.8G”, “135.2G”, “311.0G”, “56”),
(“E:/”, “90.9G”, “220.1G”, “311.0G”, “29”),
(“F:/”, “243.1G”, “66.4G”, “309.5G”, “78”))
//获取磁盘信息
//返回信息依次为:磁盘名称、已使用空间大小、未使用空间大小、总空间大小、使用百分比
//如: ((“C:/”, “92.9G”, “122.5G”, “215.5G”, “43”),
// (“D:/”, “175.8G”, “135.2G”, “311.0G”, “56”),
// (“E:/”, “90.9G”, “220.1G”, “311.0G”, “29”),
// (“F:/”, “243.1G”, “66.4G”, “309.5G”, “78”))
QList GetHardWare::getDiskInfo()
{
QList diskList;
QFileInfoList list = QDir::drives();
foreach (QFileInfo dir, list)
{
QStringList curDisk;
QString dirName = dir.absolutePath();
LPCWSTR lpcwstrDriver = (LPCWSTR)dirName.utf16();
ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes;
if(GetDiskFreeSpaceEx(lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTotalFreeBytes) )
{
//已使用的空间大小
QString use = QString::number((double) (liTotalBytes.QuadPart - liTotalFreeBytes.QuadPart) / GB, ‘f’, 1);
use += “G”;
//未使用的空间大小
QString free = QString::number((double) liTotalFreeBytes.QuadPart / GB, ‘f’, 1);
free += “G”;
//总空间大小
QString all = QString::number((double) liTotalBytes.QuadPart / GB, ‘f’, 1);
all += “G”;
//使用率百分比
int percent = 100 - ((double)liTotalFreeBytes.QuadPart / liTotalBytes.QuadPart) * 100;
curDisk.append(dirName);
curDisk.append(use);
curDisk.append(free);
curDisk.append(all);
curDisk.append(QString::number(percent));
}
diskList.append(curDisk);
}
return diskList;
}
获取操作系统信息
如:Windows 10 Version 1909 64bit
//获取系统信息
//如:Intel® Core™ i7-8750H CPU @ 2.20GHz
QString GetHardWare::getOSInfo()
{
QString m_osInfo;
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle(TEXT(“kernel32”)),“IsWow64Process”);
if (NULL != fnIsWow64Process)
{
fnIsWow64Process(GetCurrentProcess(),&bIsWow64);
}
QString sysBit = “unknown”;
if(bIsWow64)
sysBit = “64bit”;
else
sysBit = “32bit”;
m_osInfo = QSysInfo::prettyProductName() + " " + sysBit;
return m_osInfo;
}
获取主板序列号
//获取主板序列号
QString GetHardWare::getBiosSerial()
{
return GetWare(“wmic baseboard get serialnumber”);
}
获取网卡MAC地址
如:(“00:15:5D:A2:BD:C7”, “00:50:56:C0:00:01”, “00:50:56:C0:00:08”, “D8:F2:CA:6D:6A:2D”)
//获取所有网卡的MAC地址
//如:(“00:15:5D:A2:BD:C7”, “00:50:56:C0:00:01”, “00:50:56:C0:00:08”, “D8:F2:CA:6D:6A:2D”)
QStringList GetHardWare::getMacAddress()
{
QStringList macList;
QList netList = QNetworkInterface::allInterfaces();
foreach(QNetworkInterface item, netList)//遍历所有网卡
{
if((QNetworkInterface::IsUp & item.flags()) && (QNetworkInterface::IsRunning & item.flags())
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
orkInterface::IsUp & item.flags()) && (QNetworkInterface::IsRunning & item.flags())
[外链图片转存中…(img-eVkVCmmC-1715900580861)]
[外链图片转存中…(img-jXEf6kHO-1715900580861)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)