联系人: 张经理
销售部: 13773887114
市场部: 18962834342
主要产品: 南通嘉科电源制造有限公司是专业的直流电源,直流稳压电源,高压电源生产厂家,严格按照ISO90001质量体系进行设计、研发、生产、管理与销售。公司生产的直流电源、直流稳压电源、可调直流电源、大功率开关电源、高压直流电源、高压电源、恒压恒流开关电源完全符合GJB要求,产品主要有:直流电源、直流稳压电源、高压电源、可调开关电源、直流稳压稳流开关电源、大功率直流电源、老化测试实验电源、高压电源等。完美的设计、完善的售后!期待你的光临!
产品列表
  主页 > 技术支持 > Windows XP电源管理及注册表分析
网站关键词:直流电源,直流电源厂家,直流电源价格,直流稳压电源,直流稳压电源厂家,直流稳压电源价格,高压电源,高压电源厂家,高压电源价格
 

Windows XP电源管理及注册表分析

来源于: 嘉科电源  |  发布日期: 2018-01-17 11:56  |  点击次数:   |  [返回新闻中心]

  这两天写一个关于电脑电源选项的管理程序,可以使电脑能更少的用电。最开始想的是通过注册表来实现,然后搜索关键字就为“电源选项 注册表”,然后国庆的前面两天一直是在忙于“电源选项”和“注册表”之间的联系,花了一天的时间来分析关系,然后另一天的时间来架构和编码。郁闷的是,最后做出来程序可以操作电源选项的那部分注册表,但是就是电源不按照设置的工作,也没有查出原因来,我猜测可能是分析出来电源注册表值之间关系不对,或是注册表更新的问题。

  没办法,这个管理程序要急于做出来,于是厚着脸皮去请教同学了,他先过来搜索的是“VC 注册表 更新”(受我之前的想法),不过还是没有解决问题,于是搜索“VC 电源选项”然后找到了PPOWER_POLICY结构体,然后问题就解决了。哈哈...虽说这个程序比较2。进入正题,GO!

注册表:

  注册表中电源选项的关键字为“PowerCfg”,以为Windows XP SP3的系统为例,注册表中有“PowerCfg”的位置有HKEY_CURRENT_USER\Control Panel\PowerCfgHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ControlsFolder\PowerCfgHKEY_USERS\.DEFAULT\Control Panel\PowerCfgHKEY_USERS\S-1-5-18\Control Panel\PowerCfgHKEY_USERS\S-1-5-19\Control Panel\PowerCfgHKEY_USERS\S-1-5-20\Control Panel\PowerCfgHKEY_USERS\S-1-5-21-1292428093-1123561945-682003330-1003\Control Panel\PowerCfgHKEY_USERS\S-1-5-21-1292428093-1123561945-682003330-1003\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit。
  最后通过测试分析发现电源选项中注册表①和②最为重要,①中项“PowerPolicies”为电源选项中配置的方案列表,“CurrentPowerPolicy”为当前系统使用的方案。如下:

  [HKEY_CURRENT_USER\Control Panel\PowerCfg\PowerPolicies\0]
  "Name"="家用/办公桌"
  "Description"="此种模式适用于大多数家用和桌面计算机,这些计算机可在任何时候插入使用。"
  "Policies"=hex:01,00,00,00,02,00,00,00,01,00,00,00,00,00,00,00,02,00,00,00,05,\
          00,00,00,00,00,00,00,[b0,04],00,00,78,00,00,00,32,32,03,02,02,00,00,00,02,00,\
          00,00,00,00,18,77,2e,f2,07,00,[3c,00],00,00,3c,00,00,00,[00,00],00,00,b4,00,00,\
          00,00,00,64,64,64,64,93,7c

  在Policies中存储的REG_BINARY格式(16进制格式?),分析发现第一个[]中(28/29位置,0开始)表示“系统待机”,第二个[]中(56/57位置)表示“关闭监视器”,第三个[](64/65位置)表示“关闭硬盘”。时间是按秒数的16进制保存的,比如[b0,04]表示16进制的[0x04b0],换算成十进制为1200,表示20分钟,"从不"对应的为[00,00]。
   ②中“PowerPolicies”和“ProcessorPolicies”列举的是出现过的电源选项(包括自定义),这里解释一下,当你通过“控制面板”→“电源选项”新建的方案这里会记录,即使你删除之后这里还是会存在(存储的数值没有分析过什麽含义:)),①的记录则会删除。“LastID”表示历史记录中出现过的方案数目,这个值和①也会有关系的。

 

API函数:(来源参考资料1)

  1、枚举系统所有的Power Schemes

 

Windows XP电源管理及注册表分析

Windows XP电源管理及注册表分析

View Code

BOOLEAN EnumPwrSchemes(
PWRSCHEMESENUMPROC lpfnPwrSchemesEnumProc,
LPARAM lParam
);


 

Windows XP电源管理及注册表分析

Windows XP电源管理及注册表分析

View Code

Typedef BOOLEAN (CALLBACK* PWRSCHEMESENUMPROC)(
UINT uiIndex, DWORD dwName, LPTSTR sName, DWORD dwDesc, LPTSTR sDesc, PPOWER_POLICY pp, LPARAM lParam );


  其中:The sName and sDesc parameters are null-terminated strings; they are Unicode strings on Windows 2000/XP and ANSI strings on Windows Me/98/95.

  2、得到当前正在使用的Power Scheme

 

Windows XP电源管理及注册表分析

Windows XP电源管理及注册表分析

View Code

BOOLEAN GetActivePwrScheme(
PUINT puiID
);
BOOLEAN ReadPwrScheme(
UINT uiID,
PPOWER_POLICY pPowerPolicy
);

或:

 

分享到: 更多
上一篇:笔记本电源线价格
下一篇:恒压电源厂家 过认证开关电源厂家 深圳市山普智能科技有限公价格,广东深圳恒压电源厂家 过认证开关电源厂家 深圳市山普智能
[返回新闻中心]
地磅遥控器游戏机遥控器

网站首页  | 公司简介  | 产品展示  | 技术支持  | 新闻中心  | 售后服务  | 在线留言  | 联系我们

直流电源,直流稳压电源,高压电源, 网站地图