Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le applicazioni Windows Form possono sfruttare le funzionalità di risparmio energia nel sistema operativo Windows. Le applicazioni possono monitorare lo stato di alimentazione di un computer e intervenire quando si verifica una modifica dello stato. Ad esempio, se l'applicazione è in esecuzione in un computer portatile, è possibile disabilitare determinate funzionalità nell'applicazione quando la carica della batteria del computer è inferiore a un determinato livello.
.NET Framework fornisce un PowerModeChanged evento che si verifica ogni volta che si verifica una modifica dello stato di alimentazione, ad esempio quando un utente sospende o riprende il sistema operativo o quando lo stato dell'alimentazione AC o lo stato della batteria cambia. La PowerStatus proprietà della SystemInformation classe può essere utilizzata per eseguire una query sullo stato corrente, come illustrato nell'esempio di codice seguente.
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
Oltre alle BatteryChargeStatus enumerazioni, la PowerStatus proprietà contiene anche enumerazioni per determinare la capacità della batteria (BatteryFullLifetime) e la percentuale di carica della batteria (BatteryLifePercent, BatteryLifeRemaining).
È possibile utilizzare il SetSuspendState metodo di Application per inserire un computer in modalità di ibernazione o sospensione. Se l'argomento force
è impostato su false
, il sistema operativo trasmetterà un evento a tutte le applicazioni che richiedono l'autorizzazione per la sospensione. Se l'argomento disableWakeEvent
è impostato su true
, il sistema operativo disabilita tutti gli eventi di riattivazione.
Nell'esempio di codice seguente viene illustrato come inserire un computer in ibernazione.
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
Vedi anche
.NET Desktop feedback