如何创建/插入WMI对象?

时间:2010-12-14 18:20:36

标签: c# windows wmi

我正在使用C#管理Windows电源计划的软件,并通过ManagementObjet轻松获取电源计划并设置它的设置。但是我想创建一个新的Power Plan,换句话说,创建一个新的WMI对象,我不知道该怎么做。

有人知道如何创建吗?

2 个答案:

答案 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;
}

感谢您的帮助