最近由于项目的需要一直在搞WIN7的电源管理方案,本来想在网上查点类似的代码,可是搜了许久,一点有用的知识也没有,索性自己来研究了,MSDN上面说的到挺详细,不过没有示例,一些参数总是搞不明白,而且WIN7下的电源管理方案的API函数和XP下有了很大的改变,写这篇文章的目的:一是帮助向我这样苦苦搜索类似的资料的同行人,二是做一个笔记避免将来自己忘掉,做一个备份.
要提起WIN7的电源管理方案,首先要说的就是GUID,在WIN7下 每一个设备都给分配了一个GUID,电源管理方案,同样如此,这里主要用到了三种GUID:
1.SchemeGuid 这个是用来标示电源管理方案的,就是在WIN7下我们看到 什么平衡模式,节能模式,高性能模式.
const GUID FAR GUID_POWER_SAVER ={ 0xa1841308, 0x3541, 0x4fab, { 0xbc, 0x81, 0xf7, 0x15, 0x56, 0xf2, 0x0b, 0x4a } }; //节能
//a1841308-3541-4fab-bc81-f71556f20b4a
const GUID FAR GUID_BALANCED ={ 0x381b4222, 0xf694, 0x41f0, { 0x96, 0x85, 0xff, 0x5b, 0xb2, 0x60, 0xdf, 0x2e } }; //平横
//381b4222-f694-41f0-9685-ff5bb260df2e
const GUID FAR GUID_HIGH_PERFORMANCE ={ 0x8c5e7fda, 0xe8bf, 0x4a96, { 0x9a, 0x85, 0xa6, 0xe2, 0x3a, 0x8c, 0x63, 0x5c } }; //高性能
这是WIN7下的三种电源管理方案的三种模式的GUID,这些东西是不变的.
2.Subgroup GUID 也就是API函数中SubGroupOfPowerSettingsGuid 这个参数 是每个电源管理方案下每个小组的的GUID,这个参数非常重要,控制每组的参数 全指望它了.
Value | Meaning |
---|---|
|
Settings in this subgroup will be part of the default power scheme. |
|
Settings in this subgroup control power management configuration of the system's hard disk drives. |
|
Settings in this subgroup control configuration of the system power buttons. |
|
Settings in this subgroup control configuration of processor power management features. |
|
Settings in this subgroup control configuration of the video power management features. |
|
Settings in this subgroup control battery alarm trip points and actions. |
|
Settings in this subgroup control system sleep settings. |
|
Settings in this subgroup control PCI Express settings. |
上面这些是所有的Subgroup GUID.
3.还有最后一个参数就是Power Setting GUID,刚开始搞时也就是这个参数困忧了我很长时间,一直不知道是做什么用的,后来才知道,他是Subgroup GUID 的子项,也就是组选项下面的小选项.这个里面涉及的参数比较多,API没有给出详细的GUID 不过我都导出来了,供大家使用方便和自己查询.
Current DC Power Setting Index: 0x00000258
Subgroup GUID: 0d7dbae2-4294-402a-ba8e-26777e8488cd (Desktop background setti
ngs)
Power Setting GUID: 309dce9b-bef4-4119-9921-a851fb12f0f4 (Slide show)
Possible Setting Index: 000
Possible Setting Friendly Name: Available
Possible Setting Index: 001
Possible Setting Friendly Name: Paused
Current AC Power Setting Index: 0x00000000
Current DC Power Setting Index: 0x00000001
Subgroup GUID: 19cbb8fa-5279-450e-9fac-8a3d5fedd0c1 (Wireless Adapter Setting
s)
Power Setti