Gerenciamento de Energia em Formulários do Windows

Seus aplicativos de Formulários do Windows podem aproveitar os recursos de gerenciamento de energia no sistema operacional Windows.Os aplicativos podem monitorar o status de energia de um computador e executar alguma ação quando ocorre uma alteração de status.Por exemplo, se seu aplicativo estiver sendo executado em um computador portátil, convém desativar determinados recursos do mesmo quando carga da bateria do computador cai a um determinado nível.

O .NET Framework fornece um evento PowerModeChanged que ocorre sempre que houver uma alteração no status de energia, como quando um usuário suspende ou reinicia o sistema operacional, ou quando altera o status de energia AC ou status da bateria.A propriedade PowerStatus da classe SystemInformation pode ser usada para consultar o status atual, conforme mostrado no código exemplo a seguir.

Private Sub PowerModeChanged(ByVal Sender As System.Object, ByVal e As _
Microsoft.Win32.PowerModeChangedEventArgs)
    Dim si As System.Windows.Forms.SystemInformation
    Select Case si.PowerStatus.BatteryChargeStatus
        Case BatteryChargeStatus.Low
            MessageBox.Show("Battery is running low", _ System.Windows.Forms.MessageBoxIcon.Exclamation)
        Case BatteryChargeStatus.Critical
            MessageBox.Show("Battery is critically low", _ System.Windows.Forms.MessageBoxIcon.Stop)
        Case Else
            ' Battery is okay.
            Exit Select
    End Select
End Sub
private void powerModeChanged(System.Object sender, _
Microsoft.Win32.PowerModeChangedEventArgs e)
{
    int si = SystemInformation.PowerStatus;
    switch (si)
        {
        case BatteryChargeStatus.Low:
            MessageBox.Show("Battery is running low", _ MessageBoxIcon.Exclamation);
        case BatteryChargeStatus.Low:
            MessageBox.Show("Battery is critcally low", _ MessageBoxIcon.Stop);
        Default:
            // Battery is okay.
        }
}

Além das enumerações BatteryChargeStatus, a propriedade PowerStatus também contém enumerações para determinar a capacidade da bateria (BatteryFullLifetime) e porcentagem carga da bateria (BatteryLifePercent, BatteryLifeRemaining).

Você pode usar o método SetSuspendState do Application para colocar um computador em hibernação ou modo suspenso.Se o argumento force é definido como false, o sistema operacional irá transmitir um evento para todos os aplicativos solicitando permissão para suspender.Se o argumento disableWakeEvent é definido como true, o sistema operacional desativa todos os eventos de acordar.

O código exemplo a seguir demonstra como colocar um computador em hibernação.

Private si as System.Windows.Forms.SystemInformation
If si.PowerStatus.BatteryChargeStatus.Critical = True Then
    Application.SetSuspendState(PowerState.Hibernate, False, False)
End If
if (SystemInformation.PowerStatus.BatteryChargeStatus.ToString() == _
"Critical")
    {
        Application.SetSuspendState (PowerState.Hibernate, false, false);
    }

Consulte também

Referência

PowerModeChanged

PowerStatus

SetSuspendState

SessionSwitch