Windows Forms'ta Güç Yönetimi

Windows Forms uygulamalarınız Windows işletim sistemindeki güç yönetimi özelliklerinden yararlanabilir. Uygulamalarınız bir bilgisayarın güç durumunu izleyebilir ve bir durum değişikliği gerçekleştiğinde işlem gerçekleştirebilir. Örneğin, uygulamanız taşınabilir bir bilgisayarda çalışıyorsa, bilgisayarın pil ücreti belirli bir düzeyde kaldığında uygulamanızdaki belirli özellikleri devre dışı bırakmak isteyebilirsiniz.

.NET Framework, PowerModeChanged bir kullanıcının işletim sistemini askıya aldığı veya devam ettiğinde ya da AC güç durumu veya pil durumu değiştiğinde, güç durumunda gerçekleşen bir olay sağlar. PowerStatusSystemInformation Aşağıdaki kod örneğinde gösterildiği gibi, sınıfının özelliği geçerli durumu sorgulamak için kullanılabilir.

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

BatteryChargeStatusNumaralandırmaların yanı sıra, PowerStatus özelliği pil kapasitesini ( BatteryFullLifetime ) ve pil ücreti yüzdesini (,) belirlemek için numaralandırmalar da içerir BatteryLifePercentBatteryLifeRemaining .

SetSuspendStateApplication Bir bilgisayarı hazırda bekleme veya askıya alma moduna almak için yöntemini kullanabilirsiniz. forceBağımsız değişken olarak ayarlandıysa false , işletim sistemi askıya almak için izin isteyen tüm uygulamalara bir olay yayınlar. disableWakeEventBağımsız değişken olarak ayarlandıysa true , işletim sistemi tüm uyanma olaylarını devre dışı bırakır.

Aşağıdaki kod örneği, bir bilgisayarın hazırda beklemeye nasıl yerleştirileceğini gösterir.

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

Ayrıca bkz.