2010-12-14 54 views
0

Je suis en train de faire un logiciel qui gère les plans d'alimentation Windows en C#, et pour obtenir les plans d'alimentation et définir ses paramètres est facile par le ManagementObjet. Mais je veux créer un nouveau plan de puissance, en d'autres termes, créer un nouvel objet WMI, et je ne sais pas comment le faire.Comment créer/insérer un objet WMI?

Est-ce que quelqu'un sait comment le créer?

Répondre

1

Vous ne pouvez pas faire cela dans WMI. Vous pouvez utiliser les API Win32 pour Power Scheme Management comme décrit here pour créer votre plan, puis le surveiller/gérer à l'aide de WMI.

Pour créer un système d'alimentation, vous devez d'abord dupliquer un régime existant par en utilisant la fonction PowerDuplicateScheme , en spécifiant le GUID du régime que vous souhaitez baser votre nouveau régime sur . Vous devez copier l'un des modèles intégrés et modifier les paramètres d'alimentation en fonction de vos besoins.

+0

J'ai trouvé trop: – fghoffmann

0

Maintenant, il travaille ... comment je suivre beugler fait il:

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

Merci pour votre aide