我正在使用C#管理Windows电源计划的软件,并通过ManagementObjet轻松获取电源计划并设置它的设置。但是我想创建一个新的Power Plan,换句话说,创建一个新的WMI对象,我不知道该怎么做。
有人知道如何创建吗?
答案 0 :(得分:1)
您无法在WMI中执行此操作。您可以按照here所述使用Win32 API进行电源方案管理来创建您的计划,然后使用WMI监控/管理它。
要创建电源方案,您需要 首先复制现有的方案 使用PowerDuplicateScheme function,指定的GUID 你希望以新的为基础的计划 计划。你应该复制一个 内置方案并修改 根据您的需求进行电源设置。
答案 1 :(得分:0)
现在它正在运作......请按照我的方式进行操作:
using System.Runtime.InteropServices;
[DllImport("powrprof.dll", EntryPoint = "PowerDuplicateScheme", SetLastError = true)]
public static extern UInt32 PowerDuplicateScheme(IntPtr RootPowerKey, ref Guid SrcSchemeGuid, ref IntPtr DstSchemeGuid);
public static Guid createNewPowerPlan()
{
Guid result = new Guid();
IntPtr RetrPointer = IntPtr.Zero;
// Attempt to duplicate the 'Balanced' Power Scheme.
NativeMethods.PowerDuplicateScheme(IntPtr.Zero, ref VISA_PM_BASIC_SCHEMES.BALANCED, ref RetrPointer);
if (RetrPointer != IntPtr.Zero)
{
// Function returns a pointer-to-memory, marshal back to our Guid variable.
result = (Guid)Marshal.PtrToStructure(RetrPointer, typeof(Guid));
}
return result;
}
感谢您的帮助