是否特定于 Windows 电源管理用户

本文关键字:电源 管理 用户 Windows 是否 | 更新日期: 2023-09-27 17:58:57

我正在使用 C# 中的 Windows 电源管理 API(PowrProf.dll P/Invokes(来获取和设置系统的电源管理设置,但我不确定电源管理设置是特定于用户还是特定于计算机:(

Windows XP的流程是获取活动电源方案(使用GetActivePwrScheme()(,读取全局电源设置(使用ReadGlobalPwrPolicy()(,读取特定于方案的设置(使用ReadPwrScheme()(,并在必要时将修改后的数据写回系统(使用SetActivePwrScheme()(。

Windows vista 和 7 的流程是获取有效电源方案(使用 PowerGetActiveScheme()(,读取单个电源设置(使用 PowerReadACValueIndex()PowerReadDCValueIndex()(,并在必要时将修改后的数据写回系统(使用 PowerWriteACValueIndex()PowerWriteDCValueIndex()(。

问题是我更喜欢在Windows服务中运行这些代码,并且担心如果我运行这些代码,我将获取并设置系统帐户的电源管理设置。我有点困惑,请帮忙。

提前谢谢。

是否特定于 Windows 电源管理用户

经过几个小时的互联网搜索,最后我不得不接受MSDN文档。根据MSDN for XP,我们有:

全局用户电源策略

:包含适用于用户的所有电源方案的全局用户电源策略设置。

全局计算机电源策略

:包含适用于所有用户的所有电源方案的全局计算机电源策略设置。

用户电源策略

:包含用户的每个电源方案唯一的电源策略设置。

计算机电源策略

:包含计算机上每个电源方案唯一的计算机电源策略设置。

对于Vista+,没有全局/本地或用户/计算机设置;相反,一切都是特定于方案的,并且设置适用于所有用户。(见此(

但是当我在两台不同的机器上测试上述事实(一台在 Win XP 上运行,另一台在 Win 7 上运行(时,我得到了意想不到的结果!在XP上,从Windows服务(以系统帐户运行(和Windows应用程序(以管理员帐户运行(运行我的代码表示没有特定于用户的行为。在Win7上,同样的实验,产生了相同的结果!