在远程PC上获取电源选项设置(C#)

时间:2017-06-02 21:17:09

标签: c# sleep remote-access

我正在尝试通过C#获取有关远程PC上电源选项的以下信息:

  • 睡觉时间
  • 关闭显示的时间
  • 关闭电池硬盘的时间
  • 插入时关闭硬盘的时间
  • 电池后睡眠
  • 插入电源后睡眠
  • 电池后休眠
  • 插入后的休眠

我不打算改变这些设置:只是阅读它们 CURRENTUSER \ Control Panel \ PowerCfg中的注册表不太有用,因为似乎没有一个指向上面的设置。
我也尝试过使用PowerEnumerate(),但找不到让这个功能在远程计算机上运行的方法。

如何从远程计算机获取这些设置的值?

2 个答案:

答案 0 :(得分:1)

注册表中的方案(不必要地)很复杂,但是:

HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings

包含不同设置的GUID值,以及库存计划的AC和DC的默认值。

密钥

HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes

包含对每个设置组和设置的GUID下的电源使用方案设置所做的任何修改。

HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\ActivePowerScheme

包含当前有效的电力方案的GUID。

我肯定不会通过注册表更改设置,但我相信你可以阅读它们。

例如,如果您的有效电源方案是高性能,则ActivePowerScheme包含8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c。如果您查看PowerSchemes\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c并查看

0012ee47-9041-4b5d-9b77-535fba8b1442
    6738e2c4-e8a5-4a42-b16a-e040e769756e
        ACSettingIndex  REG_DWORD  0x00000e10 (3600)

然后你就知道在交流电源上关闭硬盘的时间是3600秒或60分钟。

答案 1 :(得分:0)

您需要使用Power Management Api,这是示例类PowerManager.cs 并研究电力方案管理MSDN

编辑: 您正试图从远程PC捕获详细信息,您可以在窗口服务中安装程序,通过它可以读取更新。