【问题标题】:windows api request for lpSystemPowerStatus always shows 0 powerlpSystemPowerStatus 的 windows api 请求始终显示 0 电源
【发布时间】:2015-09-15 07:35:56
【问题描述】:

谁能知道为什么这总是错误的?

    SYSTEM_POWER_STATUS lpSystemPowerStatus;
    GetSystemPowerStatus(&lpSystemPowerStatus);
    int charging = (lpSystemPowerStatus.BatteryFlag & BATTERY_FLAG_CHARGING) ? 1 : 0;

【问题讨论】:

  • 您没有检查GetSystemPowerStatus() 是成功还是失败。它返回一个BOOL:“如果函数成功,返回值非零。如果函数失败,返回值为零。”。实际返回值是多少?如果它成功了,您只需要从几个可能的标志值中寻找 1 个标志。 BatteryFlag 的实际值是多少?
  • 您是否在有电池的计算机上运行此程序?电池是否真的在充电而不是充满?最后,BatteryFlag 的值是多少?检查它:)
  • 另外,您没有初始化lpSystemPowerStatus,所以如果GetSystemPowerStatus(...) 失败,您可能正在检查垃圾数据。

标签: c++ winapi window


【解决方案1】:

我必须在#include "Windows.h" 之前#define _WIN32_WINNT 0x0400

信用: http://www.cpp-home.com/forum/viewtopic.php?f=2&t=5533

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多