Energisparfunktioner i Windows-formulär
Dina Windows Forms-program kan dra nytta av energisparfunktionerna i Windows-operativsystemet. Dina program kan övervaka energistatusen för en dator och vidta åtgärder när en statusändring sker. Om programmet till exempel körs på en bärbar dator kanske du vill inaktivera vissa funktioner i programmet när datorns batteriladdning faller under en viss nivå.
.NET Framework tillhandahåller en PowerModeChanged händelse som inträffar när energisparstatusen ändras, till exempel när en användare pausar eller återupptar operativsystemet, eller när ac-strömstatusen eller batteristatusen ändras. Egenskapen PowerStatus för klassen SystemInformation kan användas för att fråga efter aktuell status, enligt följande kodexempel.
public Form1()
{
InitializeComponent();
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(SystemEvents_PowerModeChanged);
}
void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
switch (SystemInformation.PowerStatus.BatteryChargeStatus)
{
case System.Windows.Forms.BatteryChargeStatus.Low:
MessageBox.Show("Battery is running low.", "Low Battery", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case System.Windows.Forms.BatteryChargeStatus.Critical:
MessageBox.Show("Battery is critcally low.", "Critical Battery", MessageBoxButtons.OK, MessageBoxIcon.Stop);
break;
default:
// Battery is okay.
break;
}
}
Public Sub New()
InitializeComponent()
AddHandler Microsoft.Win32.SystemEvents.PowerModeChanged, AddressOf PowerModeChanged
End Sub
Private Sub PowerModeChanged(ByVal Sender As System.Object, ByVal e As Microsoft.Win32.PowerModeChangedEventArgs)
Select Case SystemInformation.PowerStatus.BatteryChargeStatus
Case BatteryChargeStatus.Low
MessageBox.Show("Battery is running low.", "Low Battery", MessageBoxButtons.OK, _
System.Windows.Forms.MessageBoxIcon.Exclamation)
Case BatteryChargeStatus.Critical
MessageBox.Show("Battery is critically low.", "Critical Battery", MessageBoxButtons.OK, _
System.Windows.Forms.MessageBoxIcon.Stop)
Case Else
' Battery is okay.
Exit Select
End Select
End Sub
Förutom BatteryChargeStatus uppräkningar innehåller egenskapen PowerStatus också uppräkningar för att fastställa batterikapacitet (BatteryFullLifetime) och batteriladdningsprocent (BatteryLifePercent, BatteryLifeRemaining).
Du kan använda metoden SetSuspendState för Application för att placera en dator i viloläge eller pausläge. Om argumentet force
är inställt på false
sänder operativsystemet en händelse till alla program som begär behörighet att pausa. Om argumentet disableWakeEvent
är inställt på true
inaktiverar operativsystemet alla aktiveringshändelser.
Följande kodexempel visar hur du placerar en dator i viloläge.
if (SystemInformation.PowerStatus.BatteryChargeStatus == System.Windows.Forms.BatteryChargeStatus.Critical)
{
Application.SetSuspendState(PowerState.Hibernate, false, false);
}
If SystemInformation.PowerStatus.BatteryChargeStatus = System.Windows.Forms.BatteryChargeStatus.Critical Then
Application.SetSuspendState(PowerState.Hibernate, False, False)
End If
Se även
.NET Desktop feedback