ここでは、システムをスタンバイ(中断、サスペンド、スリープ)状態(モード)や休止状態(メモリの情報をハードディスクに保存して電源を切る)にする方法を紹介します。
なお、休止状態にするには、コンピュータの設定で休止状態を有効にしている必要があります。休止状態が有効になっていないときにここで紹介する方法で休止状態にしようとすると、スタンバイ状態になります。
.NET Framework 2.0からは、Application.SetSuspendStateメソッドにより可能です。
'スタンバイ状態にする Application.SetSuspendState(PowerState.Suspend, False, False) '休止状態にする Application.SetSuspendState(PowerState.Hibernate, False, False)
//スタンバイ状態にする Application.SetSuspendState(PowerState.Suspend, false, false); //休止状態にする Application.SetSuspendState(PowerState.Hibernate, false, false);
SetSuspendStateメソッドの2番目のパラメータをTrueにすると、現在実行中のアプリケーションに通知することなく、強制的にスタンバイや休止状態になります(Falseでは、アプリケーションにPBT_APMQUERYSUSPENDイベントが通知されます)。
SetSuspendStateメソッドの3番目のパラメータをTrueにすると、デバイス等がWakeイベントでシステムの復元を要求したときでも復元されなくなります。
.NET Framework 1.1以前では、SetSuspendState関数をPInvokeで呼び出せば、Application.SetSuspendStateメソッドと同じことができます。
SetSuspendState関数を呼び出すためには、次のようなメソッドを作成します。
<System.Runtime.InteropServices.DllImport("Powrprof.dll", _ SetLastError:=True)> _ Public Shared Function SetSuspendState(ByVal hibernate As Boolean, _ ByVal forceCritical As Boolean, _ ByVal disableWakeEvent As Boolean) As Boolean End Function
[System.Runtime.InteropServices.DllImport("Powrprof.dll", SetLastError = true)] public static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);
このメソッドを使用してスタンバイ状態または休止状態にするには、次のようにします。
'スタンバイ状態にする SetSuspendState(False, False, False) '休止状態にする SetSuspendState(True, False, False)
//スタンバイ状態にする SetSuspendState(false, false, false); //休止状態にする SetSuspendState(true, false, false);
SetSuspendState関数の1番目のパラメータでスタンバイ状態にするか休止状態にするかを指定します。2番目と3番目のパラメータの意味は、Application.SetSuspendStateメソッドと同じです。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。