【问题标题】:How to create/insert WMI object?如何创建/插入 WMI 对象?
【发布时间】:2014-07-13 15:32:40
【问题描述】:

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

有谁知道如何制作它?

【问题讨论】:

    标签: c# windows wmi


    【解决方案1】:

    您不能在 WMI 中执行此操作。您可以按照here 所述使用用于电源方案管理的 Win32 API 来创建您的计划,然后使用 WMI 监控/管理它。

    要创建电源方案,您需要 首先复制一个现有的方案 使用 PowerDuplicateScheme 函数,指定的 GUID 您希望建立新的计划 计划上。您应该复制其中之一 内置方案并修改 根据您的需要进行电源设置。

    【讨论】:

      【解决方案2】:

      现在它正在工作......按照下面我是如何做到的:

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

      感谢您的帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 2021-08-08
        • 2017-04-17
        • 1970-01-01
        • 2014-12-20
        相关资源
        最近更新 更多