PowerGetActiveScheme (powrprof)
Last changed: -83.83.51.202

.
Summary
Retrieves current power scheme GUID for Windows Vista

C# Signature:

    [DllImport("powrprof.dll")]
    public static extern UInt32 PowerGetActiveScheme(IntPtr UserRootPowerKey, ref IntPtr ActivePolicyGuid);

VB Signature:

    Declare Function PowerGetActiveScheme Lib "powrprof.dll" (ByVal UserRootPowerKey As IntPtr, ByRef ActivePolicyGuid As IntPtr) As Integer

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

    private string GetCurrentPowerSchemeVistaAPI()
    {
        IntPtr ptrActiveGuid = IntPtr.Zero;
        uint res = PowerGetActiveScheme(IntPtr.Zero, ref ptrActiveGuid);
        if (res == 0)
        {
        uint buffSize = 0;
        res = PowerReadFriendlyName(IntPtr.Zero, ptrActiveGuid, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, ref buffSize);
        if (res == 0)
        {
            IntPtr ptrName = Marshal.AllocHGlobal((int)buffSize);
            res = PowerReadFriendlyName(IntPtr.Zero, ptrActiveGuid, IntPtr.Zero, IntPtr.Zero, ptrName, ref buffSize);
            if (res == 0)
            {
            string ret = Marshal.PtrToStringUni(ptrName);
            Marshal.FreeHGlobal(ptrName);
            return ret;
            }
            Marshal.FreeHGlobal(ptrName);
        }
        }
        throw new Exception("Error reading current power scheme. Native Win32 error code = " + res);
    }

Documentation