2010-12-14 54 views
0

我正在做一個軟件來管理C#中的Windows電源計劃,並且通過ManagementObjet獲得電源計劃並設置它的設置非常簡單。但是我想創建一個新的Power Plan,換句話說,創建一個新的WMI對象,我不知道該怎麼做。如何創建/插入WMI對象?

做任何人都知道如何創建它?

回答

1

你不能在WMI中這樣做。您可以使用描述here所述的Power Scheme Management的Win32 API來創建您的計劃,然後使用WMI進行監視/管理。

要創建電源使用方案,你需要 首先 使用PowerDuplicateScheme 功能複製現有的方案,指定希望在立足新 方案 方案的GUID。您應該複製 其中一個內置方案,並根據需要修改 電源設置。

+0

我發現這太: – fghoffmann 2010-12-15 11:49:56

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

感謝您的幫助