public SystemBatteryState GetSystemBatteryState() { IntPtr status = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(SystemBatteryState))); Win32FunctionInvokeWrapper.CallNtPowerInformation(INFORMATION_LEVEL.SystemBatteryState, IntPtr.Zero, 0, status, (UInt32)Marshal.SizeOf(typeof(SystemBatteryState))); return((SystemBatteryState)Marshal.PtrToStructure(status, typeof(SystemBatteryState))); }
public DateTime GetLastSleepTime() { IntPtr status = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(long))); Win32FunctionInvokeWrapper.CallNtPowerInformation(INFORMATION_LEVEL.LastSleepTime, (IntPtr)null, 0, status, (UInt32)Marshal.SizeOf(typeof(long))); long lastSleepTime = (long)Marshal.PtrToStructure(status, typeof(long)); return(DateTime.FromFileTime(lastSleepTime)); }