i want to be a good developer citizen, pay my taxes, and disable things if we're running over Remote Desktop, or running on battery.
If we're running over remote desktop (or equivalently in a Terminal server session), we must disable animations and double-buffering. You can check this with:
/// <summary>
/// Indicates if we're running in a remote desktop session.
/// If we are, then you MUST disable animations and double buffering i.e. Pay your taxes!
///
/// </summary>
/// <returns></returns>
public static Boolean IsRemoteSession
{
//This is just a friendly wrapper around the built-in way
get
{
return System.Windows.Forms.SystemInformation.TerminalServerSession;
}
}
Now i need to find out if the user is running on battery power. If they are, i don't want to blow through their battery. i want to do things such as
- disable animations
- disable background spell-checking
- disable background printing
- turn off gradients
- use
graphics.SmoothingMode = SmoothingMode.HighSpeed;
- use
graphics.InterpolationMode = InterpolationMode.Low;
- use
graphics.CompositingQuality = CompositingQuality.HighSpeed;
- minimize hard drive access - to avoid spin up
- minimize network access - to save WiFi power
Is there a managed way to see if the machine is currently running on battery?
Bonus Reading
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…