// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <string>
#include <string.h>
#include <windows.h>
#include <tchar.h>
#include <CString>
#include <sstream>
#pragma comment(lib,"User32.lib")
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
SYSTEM_POWER_STATUS sysPowerStatus;
vector<std::string> vStr;
if (GetSystemPowerStatus(&sysPowerStatus))
{
//电源状态
std::string Str;
if (sysPowerStatus.ACLineStatus != -1)
{
if (sysPowerStatus.ACLineStatus & 1)
{
Str = "Power state:Power on";
vStr.push_back(Str);
}
else
{
Str = "Power state:Power off";
vStr.push_back(Str);
}
}
//电池状态
if (sysPowerStatus.BatteryFlag != -1)
{
if (!(sysPowerStatus.BatteryFlag & 128))
{
//充电状态
if (sysPowerStatus.BatteryFlag & 8)
Str ="Charging status:Be Charging";
else
Str ="Charging status:Uncharged State";
vStr.push_back(Str);

//电池可用时长
if (sysPowerStatus.BatteryLifeTime != -1)
{
if (sysPowerStatus.BatteryLifeTime)
{
int iTime = (int)(sysPowerStatus.BatteryLifeTime);
if (iTime % 60)
iTime = iTime / 60 + 1;
else
iTime = iTime / 60;
Str ="Dump Energy";
vStr.push_back(Str);
if (iTime / 60)
{
Str = to_string(iTime / 60);
Str += "Hour";
vStr.push_back(Str);
}
if (iTime % 60)
{
Str = to_string(iTime % 60);
Str += "Minute";
vStr.push_back(Str);
}
}
}

//电池可用百分比
if (sysPowerStatus.BatteryLifePercent != -1)
{
if (sysPowerStatus.BatteryLifePercent)
{
Str= _T("(") + to_string((int)(sysPowerStatus.BatteryLifePercent)) + _T("%)");
Str = "Percentage of battery usable:" + Str;
vStr.push_back(Str);
}
}
}
}
}
std::string Str;
try
{
fstream ff;
ff.open("Battery.txt", ios::out);
for (DWORD dw = 0; dw < vStr.size(); dw++)
{
ff << vStr[dw] << endl;
}
ff.close();
}
catch (exception& e)
{
cout << e.what() << endl;
}
return 0;
}

c++编写: 检测试笔记本电池充电状况相关推荐

  1. Ubuntu NVIDIA显卡驱动工作模式切换,无法检测到笔记本自带屏幕,屏幕无法工作/黑屏

    Ubuntu NVIDIA显卡驱动工作模式切换,无法检测到笔记本自带屏幕,笔记本内置屏幕无法工作 问题描述 解决方法 总结 问题描述 联想Y9000P ubuntu20.04装完nvidia显卡驱动后 ...

  2. 全球及中国基因检测市场投资规模状况与应用前景规划报告2022年

    全球及中国基因检测市场投资规模状况与应用前景规划报告2022年 ··························· <修订日期>:2022年1月 <专员对接>:周文文 &l ...

  3. java检测服务器之间网络状况及丢包率

    问题 服务器因为防火墙的原因,或者为了安全禁止了ping服务,导致无法ping通,会让我们误判断两个服务器之间网络不通,但是服务器却可以远程访问,是正常连通状态,编写程序判断两个服务器之间网络状况. ...

  4. 适合编写python的笔记本_适合编程的笔记本

    合适编程的笔记本电脑可以提高程序员开发效率,需要优秀的CPU及4GB以上内存,推荐参考:戴尔Latitude E7470.Apple MacBook Pro.华硕K501UW-AB78.联想Yoga ...

  5. 硬盘安装以及磁盘分区和检测(笔记本R7000)

    笔记本电脑清洁小记(附螺丝滑丝处理,常见意外情况)参考这篇打开外壳,关闭电源 这就是安硬盘的地方: PS:不要用叠瓦盘 小心这个角落,我懒得拆卸电池: 看清,这东西要掰下来: 不想给螺丝可以不给... ...

  6. Linux脚本编写—检测内网主机存活状态(语句:if+for+while)

    涉及知识: Linux-shell脚本(条件if语句的简单使用)[实列]_孤城286的博客-CSDN博客 一.ping 操作的修饰: 二.简单编写: 三.优化: -局限性: -循环语句的介绍: (1) ...

  7. Win11又有新的错误报告,某些用户笔记本电池充电竟能超过100%

    人人都希望尽可能地延长自己的笔记本电脑的电池使用续航寿命,而且每一次新Windows的更新都会为延长电池使用时间作出重大承诺.但是Windows11出现了一个奇怪的错误,意味着你可能得到了比你期望的更 ...

  8. 使用高斯混合模型检测不同的股票市场状况

    在本篇文章中将试图使用高斯混合模型 (GMM) 对股市中的不同市场行情进行聚类分析 介绍 通过过去的十年的发展,普通人越来越容易进入股票市场,每天进出市场的资金量创历史新高. 作为投资者,你可以通过多 ...

  9. c 控制台 笔记本电池充电监控程式

    // ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> ...

最新文章

  1. 面试热点|理解TCP/IP传输层拥塞控制算法
  2. [Android]动态加载/热部署框架汇总
  3. CSS综合复习笔记 01
  4. UA MATH564 概率论VI 数理统计基础1
  5. JQuery 自动触发事件
  6. unity json mysql_unity——json总结
  7. 服务器虚拟化与虚拟容器,虚拟化与Docker
  8. Duilib教程-自动布局1
  9. elupload获取文件名与路径_Uipath获取文件名,路径,扩展名等操作
  10. 每日站立会议个人博客二
  11. java序列化写法_java-spark的各种常用算子的写法
  12. 【Python CheckiO 题解】Multicolored Lamp
  13. UML类图画法及类之间几种关系
  14. 第三周博客作业西北师范大学|李晓婷
  15. Kafka的高性能原理
  16. JAVA异常-面试题
  17. okvis odometry的安装与运行
  18. 用PYTHON优化投资组合的配置
  19. 写给 Linux 初学者的一封信
  20. Mapgis 到ArcGis 双向转换

热门文章

  1. 有两个瓶子一个瓶承5升水一个瓶子成3升水,那怎么可以成四升水呢
  2. 2021-2025年中国农用拖拉机行业市场供需与战略研究报告
  3. Endnote——论文写作与文献管理神器
  4. oracle安装出现问题--无法在节点上执行物理内存检查
  5. 程序员干不动了,你还能干点啥?——敢问路在何方
  6. python extractall函数_Python的内置函数(七)、all()
  7. 那些年我们追过的拳皇(r8笔记第37天)
  8. vue3.0对服务端进行渲染
  9. java爬虫框架代理ip的配置与调试
  10. 福州大学研究生院数学与计算机学院,福州大学数学与计算机科学学院计算机图形学与多媒体/人工智能研究生导师:陈家瑞...