このドキュメントはアーカイブされており、メンテナンスされていません。

Windows フォームでの電源管理

Windows フォーム アプリケーションでは、Windows オペレーティング システムの電源管理機能を利用できます。コンピュータの電源状態を監視し、状態が変化したときにアクションを実行できます。たとえば、ポータブル コンピュータでアプリケーションを実行している場合、コンピュータの充電が一定レベルを下回ったときにアプリケーションの特定の機能を無効にできます。

.NET Framework では、オペレーティング システムを中断または再開したり、AC 電源やバッテリの状態が変化したりした場合など、電源状態が変化したときに発生する PowerModeChanged イベントを利用できます。PowerStatus クラスの SystemInformation プロパティを使用すると、次のコード例に示すように現在の状態を照会できます。

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.
        }
}

BatteryChargeStatus 列挙値の他に、PowerStatus プロパティにも、バッテリ容量 (BatteryFullLifeTime)、バッテリの充電率 (BatteryLifePercentBatteryLifeRemaining) を確認する列挙値が含まれています。

ApplicationSetSuspendState メソッドを使用すると、コンピュータを休止モードまたは中断モードに設定できます。force 引数を false に設定すると、中断のためのアクセス許可を要求するすべてのアプリケーションにイベントがブロードキャストされます。また、disableWakeEvent 引数を true に設定すると、すべての wake イベントが無効になります。

次のコード例は、コンピュータを休止モードに設定する方法を示しています。

if (SystemInformation.PowerStatus.BatteryChargeStatus.ToString() == _
"Critical")
    {
        Application.SetSuspenState (PowerState.Hibernate, false, false);
    }

参照

表示: