public string GetPowerScheme()
{
string powerSchemeName = "";
var p_ActivePolicyGuid = IntPtr.Zero;
var aa = PowerGetActiveScheme(IntPtr.Zero,ref p_ActivePolicyGuid);
if (aa == 0) {
Guid guid = (Guid)Marshal.PtrToStructure(p_ActivePolicyGuid, typeof(Guid));
powerSchemeName = ReadFriendlyName(guid);
}
return powerSchemeName;
}
//获取当前使用的电源方案
[DllImport("PowrProf.dll")]
public static extern UInt32 PowerGetActiveScheme(IntPtr RootPowerKey, ref IntPtr p_ActivePolicyGuid);
//获取电源计划的名字
[DllImport("PowrProf.dll")]
public static extern UInt32 PowerReadFriendlyName(IntPtr RootPowerKey, ref Guid SchemeGuid, IntPtr SubGroupOfPowerSettingGuid, IntPtr PowerSettingGuid, IntPtr Buffer, ref UInt32 BufferSize);
private static string ReadFriendlyName(Guid schemeGuid)
{
uint sizeName = 1024;
IntPtr pSizeName = Marshal.AllocHGlobal((int)sizeName);
string friendlyName;
try
{
PowerReadFriendlyName(IntPtr.Zero, ref schemeGuid, IntPtr.Zero, IntPtr.Zero, pSizeName, ref sizeName);
friendlyName = Marshal.PtrToStringUni(pSizeName);
}
finally
{
Marshal.FreeHGlobal(pSizeName);
}
return friendlyName;
}
转载: http://cn.voidcc.com/question/p-sdkysnqb-kb.html