使用 C# 备份和恢复电源计划

我制作了一个与 Windows 电源计划混乱的程序。 在进行任何更改之前,最好制作一份当前电源计划的副本,以便用户可以恢复它。 有一个命令提示符命令 powercfg –restoredefaultschemes 但它会恢复所有计划,用户可能有一些他手动设置的设置,我不希望他丢失它。所以唯一的选择是导出然后导入。

因此,一旦程序启动,我就使用此代码创建当前方案的备份(如果不存在):

if (!File.Exists(@".\\PowerPlan.pow"))   
        {
            var cmd = new Process { StartInfo = { FileName = "powercfg" } };
            using (cmd)
            {
                cmd.StartInfo.CreateNoWindow = true;
                cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

                cmd.StartInfo.Arguments = $"/export PowerPlan.pow SCHEME_CURRENT"; //saves to the current folder,provide path if needed.
                cmd.Start();
                MessageBox.Show("Profile saved");
            }
        }

在这种情况下,我们可以使用 SCHEME_CURRENT 来引用我们需要导出的方案,甚至无需使用 GUID。

导入配置文件也很容易

cmd.StartInfo.Arguments = $"/-import PowerPlan.pow";
cmd.Start();

但是,要真正恢复备份的电源计划,我们不仅需要导入,还需要将其设置为活动状态。 当我们更改当前电源计划中的某些内容并希望将其设置为活动时,我们可以简单地使用

cmd.StartInfo.Arguments = $"/setactive SCHEME_CURRENT";
cmd.Start();

但是刚才我们备份的电源计划导入的时候,不能使用SCHEME_CURRENT(因为当前是修改过的),而且不知道导入的计划的GUID可以参考并将其设置为活动状态。

有人知道如何在不知道 GUID 的情况下实现它吗?此外,如果有人看到备份/恢复电源计划的更好方法,我会很高兴听到您的想法,并且会非常感激。

lxxlwj 回答:使用 C# 备份和恢复电源计划

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1088063.html

大家都在问