Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Uw Windows Forms-toepassingen kunnen profiteren van de energiebeheerfuncties in het Windows-besturingssysteem. Uw toepassingen kunnen de energiestatus van een computer bewaken en actie ondernemen wanneer er een statuswijziging plaatsvindt. Als uw toepassing bijvoorbeeld wordt uitgevoerd op een draagbare computer, kunt u bepaalde functies in uw toepassing uitschakelen wanneer de acculading van de computer onder een bepaald niveau valt.
Het .NET Framework biedt een PowerModeChanged gebeurtenis die optreedt wanneer er een wijziging in de energiestatus is, zoals wanneer een gebruiker het besturingssysteem onderbreekt of hervat, of wanneer de stroomstatus of de batterijstatus verandert. De eigenschap PowerStatus van de SystemInformation-klasse kan worden gebruikt om een query uit te voeren op de huidige status, zoals wordt weergegeven in het volgende codevoorbeeld.
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
Naast de BatteryChargeStatus opsommingen bevat de eigenschap PowerStatus ook opsommingen voor het bepalen van de accucapaciteit (BatteryFullLifetime) en het acculadingspercentage (BatteryLifePercent, BatteryLifeRemaining).
U kunt de SetSuspendState methode van de Application gebruiken om een computer in de sluimerstand of onderbrekingsmodus te plaatsen. Als het argument force
is ingesteld op false
, verzendt het besturingssysteem een gebeurtenis naar alle toepassingen die toestemming vragen om te onderbreken. Als het argument disableWakeEvent
is ingesteld op true
, schakelt het besturingssysteem alle wake-gebeurtenissen uit.
In het volgende codevoorbeeld ziet u hoe u een computer in de slaapstand plaatst.
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
Zie ook
.NET Desktop feedback