Как создать / вставить объект WMI? - PullRequest
0 голосов
/ 14 декабря 2010

Я занимаюсь программным обеспечением, которое управляет планами электропитания Windows в C #, и ManagementObjet легко получить планы электропитания и установить их настройки. Но я хочу создать новый План электропитания, другими словами, создать новый объект WMI, и я не знаю, как это сделать.

Кто-нибудь знает, как его создать?

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

Вы не можете сделать это в WMI. Вы можете использовать Win32 API для управления схемами электропитания, как описано здесь , чтобы создать свой план, а затем отслеживать / управлять им с помощью WMI.

Для создания схемы питания вам необходимо: сначала продублируйте существующую схему используя PowerDuplicateScheme функция, определяющая GUID Схема вы хотите основать свой новый Схема по. Вы должны скопировать один из встроенные схемы и модифицировать настройки мощности в соответствии с вашими потребностями.

0 голосов
/ 15 декабря 2010

Теперь это работает ... следуйте ниже, как я это сделал:

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

Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...