C# :在电源计划之间切换

本文关键字:之间 计划 电源 | 更新日期: 2023-09-27 17:56:33

>我正在创建一个 API,我想在电源计划之间切换

[平衡 , 高性能 , 功率 节省]

我的问题不在于代码,编码很容易,但我想知道在哪里可以找到这些电源平面.exe文件甚至注册表中的值来修改它

C# :在电源计划之间切换

与 C# 分开,2011 年 Raymond Chen 建议用户使用 GUI,或者对于那些喜欢终端的用户:

如果您使用的是 Vista 或更高版本,请从命令行运行:

powercfg -aliases

但是,这对我不起作用,因为-aliases不是Windows XP上的有效开关。

编辑:或者,您可以使用此有用的GUID列表!

虽然您当然可以使用像 powercfg 这样的外部工具,但您也可以使用 Power Management API

http://msdn.microsoft.com/en-us/library/aa372711%28v=VS.85%29.aspx

或 Windows Management Instrumenation (WMI)

http://msdn.microsoft.com/en-us/library/dd904518%28v=VS.85%29.aspx

您可以在 winnt.h SDK 头文件中找到它们。 存储在 c:''program files''Microsoft sdks''windows''v6.0a''include for VS2008, v7.0a for VS2010. 搜索"GUID_MAX_POWER_SAVINGS"以找到以下内容:

// =========================================
// Define GUIDs which represent well-known power schemes
// =========================================
//
//
// Maximum Power Savings - indicates that very aggressive power savings measures will be used to help
//                         stretch battery life.
//
// {a1841308-3541-4fab-bc81-f71556f20b4a}
//
DEFINE_GUID( GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A );
//
// No Power Savings - indicates that almost no power savings measures will be used.
//
// {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}
//
DEFINE_GUID( GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C );
//
// Typical Power Savings - indicates that fairly aggressive power savings measures will be used.
//
// {381b4222-f694-41f0-9685-ff5bb260df2e}
//
DEFINE_GUID( GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E );
下面是

电源管理 API 用法的示例:PowerManager.cs

您可以从命令行使用 Powercfg 命令