C/C++判断是否为笔记本电脑

时间:2022-12-28 20:32:06

首先我们知道台式机和笔记本的区别就在于是否有电源

如果有读取电源信息的API提供返回值,是不是就可以断定是笔记本或者台式机了呢?


下面先看一个API

GetSystemPowerStatus function


C/C++判断是否为笔记本电脑

我们大体上可以知道

这是一个检索系统电源状态的函数,这个状态暗示了系统是直流电还是交流电,还有电池当前的装载清空等等等的呢。


下面我看看参数:

SYSTEM_POWER_STATUS 

C/C++判断是否为笔记本电脑

C/C++判断是否为笔记本电脑

我们可见BatterFlag这个成员,他加载了电池的状况和包含的标志

可知当值为128和255时反应的是没电压或者读取不到电压,

所以可以敲以下代码:

#include <Windows.h>
#include <stdio.h>

int main()
{
SYSTEM_POWER_STATUS a;
GetSystemPowerStatus(&a);

if (a.BatteryFlag == 128 && a.BatteryFlag == 255)
{
printf("台式电脑\n");
}
else
{
printf("笔记本电脑\n");
}

return 0;
}
运行结果:

C/C++判断是否为笔记本电脑