【问题标题】:Power Plan Changing Event beetwen High Performance, Power Saver and Balanced电源计划更改事件 beetwen 高性能、省电和平衡
【发布时间】:2016-10-26 14:43:31
【问题描述】:

我正在尝试弄清楚,如何在 High PerformancePower Saver 之间获得 电源计划更改事件平衡,我需要它来为每个计划更改我的应用程序的不同模式。我在这个方向上找到了一些解决方案,但没有得到想要的结果。

例如,如果我采用item.CurrentMhz,它记录了处理器当前的功率值,它对不同的目的很有用,但是这个输出并没有给出电源计划状态public uint Number; MaxMhz; CurrentMhz; MhzLimit; MaxIdleState; CurrentIdleState;。例如,CurrentIdleState 在 Power Saver 和 High Performance 计划中是相等的。无论如何,如果我能以某种方式使用它,主要问题是我不能让它作为事件工作,只能作为条件结果。但实际上它不是电源计划状态,不同处理器的功率值不同。似乎对于这个目标来说,这不是获得预期结果的正确方法。

SystemEvents_PowerModeChanged 在这种情况下也没有意义,如果电源线连接或断开,则仅发生电源状态更改事件。

PowerStatus powerStatus = SystemInformation.PowerStatus; 相同,但在连接或断开电源线时会识别当前电源状态。

所以我不确定,如果有任何有用的解决方案,我如何在电源计划更改之间获取此事件。

【问题讨论】:

    标签: c# event-handling systemevent power-state


    【解决方案1】:

    不仅仅是这三个计划。您可以从控制面板编辑计划并创建新计划。所以不要指望找到一个三值的enum

    PBT_APMPOWERSTATUSCHANGE 事件指示电源状态的变化。然后该页面说要读取包含由电源计划控制的设置的SYSTEM_POWER_POLICY 结构。

    因此该方法似乎是处理PBT_APMPOWERSTATUSCHANGE 事件,调用GetSystemPowerStatus 以在SYSTEM_POWER_POLICY 结构中获取当前电源状态,然后选择对您的应用程序很重要的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多