Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ihre Windows Forms-Anwendungen können die Power Management-Features im Windows-Betriebssystem nutzen. Ihre Anwendungen können den Energiestatus eines Computers überwachen und Maßnahmen ergreifen, wenn eine Statusänderung auftritt. Wenn Ihre Anwendung z. B. auf einem tragbaren Computer ausgeführt wird, können Sie bestimmte Features in Ihrer Anwendung deaktivieren, wenn der Akkustand des Computers unter eine bestimmte Stufe fällt.
.NET Framework stellt ein PowerModeChanged Ereignis bereit, das auftritt, wenn sich ein Stromstatus ändert, z. B. wenn ein Benutzer das Betriebssystem anhält oder fortsetzt oder wenn sich der Netzstromstatus oder der Akkustatus ändert. Die PowerStatus Eigenschaft der SystemInformation Klasse kann verwendet werden, um den aktuellen Status abzufragen, wie im folgenden Codebeispiel gezeigt.
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
Neben den BatteryChargeStatus Enumerationen enthält die PowerStatus Eigenschaft auch Enumerationen zum Bestimmen der Akkukapazität (BatteryFullLifetime) und des Prozentsatzes der Akkuladung (BatteryLifePercent, BatteryLifeRemaining).
Sie können die Methode SetSuspendState von Application verwenden, um einen Computer in den Ruhezustand oder Energiesparmodus zu versetzen. Wenn das force
Argument auf false
festgelegt ist, sendet das Betriebssystem ein Ereignis an alle Anwendungen, die die Berechtigung zum Anhalten anfordern. Wenn das disableWakeEvent
Argument auf true
festgelegt ist, deaktiviert das Betriebssystem alle Wake-Ereignisse.
Im folgenden Codebeispiel wird veranschaulicht, wie ein Computer in den Ruhezustand versetzt wird.
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
Siehe auch
.NET Desktop feedback