TNB Library
静的公開メンバ関数 | 全メンバ一覧
CPowerManager クラス

シャットダウン [詳解]

#include <TnbWindows.h>

静的公開メンバ関数

static bool AbortShutdown (LPCTSTR lpMachineName)
 [実行] シャットダウン中止. [詳解]
 
static bool GetStatus (LPSYSTEM_POWER_STATUS _lpSystemPowerStatus)
 [取得] システム電源状態取得 [詳解]
 
static bool SetShutdownNotifyLevel (WORD level)
 [設定] シャットダウンパラメータ設定 [詳解]
 
static bool Shutdown (bool bForceAppsClosed=false, bool bRebootAfterShutdown=true)
 [実行] シャットダウン [詳解]
 
static bool Shutdown95 (UINT uFlags=EWX_POWEROFF)
 [実行] シャットダウン [詳解]
 
static bool ShutdownNt (LPCTSTR lpMachineName, LPCTSTR lpMessage, DWORD dwTimeout, bool bForceAppsClosed=false, bool bRebootAfterShutdown=true)
 [実行] シャットダウン [詳解]
 
static bool Suspend (bool fSuspend=true, bool fForce=false)
 [実行] サスペンド [詳解]
 

詳解

シャットダウン

覚え書き
シャットダウンは「 CPowerManager::Shutdown(); 」で実行します。
サスペンドは「 CPowerManager::Suspend(); 」で実行します。
●シャットダウンに付いて
    実行すると、ウィンドウを持つアプリに、 WM_QUERYENDSESSION, 0, 0 を通知(SendMessage)します。
    アプリは、このメッセージにより、終了しても良い状態にします。もし、終了したくない場合、
    このメッセージの応答で FALSE を返します。

    続いて WM_ENDSESSION が通知されます。 wParam が FALSE なら、誰かがシャットダウンを拒否したため、
    シャットダウンはキャンセルされたことを意味します。
    lParam が TURE ならログオフしようとしている時、FALSEならシャットダウンしようとしている時を意味します。
    
●サスペンドに付いて
    実行すると、ウィンドウを持つアプリに、 WM_POWERBROADCAST, wParam, 0 を通知(SendMessage)します。
    wParam は、以下のようになっています。
    ・PBT_APMQUERYSUSPEND ; 
                        サスペンド問合せ。応答で、 BROADCAST_QUERY_DENY を返すことで、
                        サスペンドを拒否できます。全アプリが TRUEを返すとサスペンド処理に入ります。
※VISTA では発行されません。 ・PBT_APMQUERYSUSPENDFAILED ; サスペンド問い合わせで、一つでも BROADCAST_QUERY_DENY を返した時(拒否した時)、 サスペンドキャンセルを、全部アプリに通知されます。
※VISTA では発行されません。 ・PBT_APMSUSPEND ; サスペンド開始通知。拒否できません。 ・PBT_APMRESUMESUSPEND ; 復帰通知(レジューム)。 ・PBT_APMRESUMECRITICAL; クリティカルスリープからの復帰通知。上記サスペンドのメッセージなしにサスペンド せざる得なかった時(電池切れなど)、復帰時に通知されます。
必要ファイル
TnbWindows.h
日付
06/10/24;新規作成。

TnbWindows.h106 行目に定義があります。

関数詳解

◆ AbortShutdown()

static bool AbortShutdown ( LPCTSTR  lpMachineName)
static

[実行] シャットダウン中止.

Exec() で開始したシャットダウンを停止できます。ただし、表示時間(秒)以内に本メソッドを 実行する必要があります。

覚え書き
WindowsNT系専用です。
引数
lpMachineNameシャットダウン中止するコンピュータ名。NULLならLOCALが対象。
戻り値
true成功。シャットダウンはキャンセル。
false失敗。

TnbWindows.h249 行目に定義があります。

◆ GetStatus()

static bool GetStatus ( LPSYSTEM_POWER_STATUS  _lpSystemPowerStatus)
static

[取得] システム電源状態取得

引数
[out]_lpSystemPowerStatus情報
戻り値
true成功。
false失敗。

TnbWindows.h283 行目に定義があります。

◆ SetShutdownNotifyLevel()

static bool SetShutdownNotifyLevel ( WORD  level)
static

[設定] シャットダウンパラメータ設定

覚え書き
システム内の他のプロセスから見た相対的なシャットダウンの順序を設定します。 設定しないと中間になっています。
WindowsNT系、専用です。
引数
levelレベル。 0x000〜0x4FF を指定可能。
0x000〜0x0FF 最後の方でシャットダウンするシステムの構成要素用
0x100〜0x1FF 最後の方でシャットダウンするアプリケーション用
0x200〜0x2FF “中間”でシャットダウンするアプリケーション用
0x300〜0x3FF 最初の方でシャットダウンするアプリケーション用
0x400〜0x4FF 最初の方でシャットダウンするシステムの構成要素用
戻り値
true成功。
false失敗。拡張エラー情報を取得するには、 GetLastError() を使います。

TnbWindows.h302 行目に定義があります。

◆ Shutdown()

static bool Shutdown ( bool  bForceAppsClosed = false,
bool  bRebootAfterShutdown = true 
)
static

[実行] シャットダウン

引数
bForceAppsClosed強制終了オプション。 TRUE を指定すると、強制的に終了させます。 FALSE を指定すると、アプリケーションを終了するようユーザーに指示する ダイアログボックスが表示されます。
bRebootAfterShutdown再起動オプション。 TRUE を指定すると、コンピュータは再起動します。 FALSE を指定すると、コンピュータは、電源を切っても安全な状態になったことを示す メッセージを表示します。
戻り値
true成功。シャットダウン開始。
false失敗。

TnbWindows.h217 行目に定義があります。

◆ Shutdown95()

static bool Shutdown95 ( UINT  uFlags = EWX_POWEROFF)
static

[実行] シャットダウン

覚え書き
Windows95系では、このメソッドのみ使用可能です。
引数
uFlagsシャットダウンフラグ。省略すると EWX_POWEROFF。
EWX_LOGOFF - 呼び出し側のプロセスのセキュリティコンテキストで実行されているすべてのプロセスを終了し、現在のユーザーをログオフさせます。
EWX_POWEROFF - システムをシャットダウンした後、電源を切ります。システムは、パワーオフ機能をサポートしていなければなりません。
EWX_REBOOT - システムをシャットダウンした後、システムを再起動します。
EWX_SHUTDOWN - システムをシャットダウンして、電源を切っても安全な状態にします。すべてのバッファをディスクへフラッシュし(バッファの内容をディスクに書き込み)、動作していたすべてのプロセスを停止します。
上記シンボルに加えて or で以下のシンボルも指定できます。
EWX_FORCE - プロセスを強制的に終了させます。このフラグを指定すると、システムは、現在実行されているアプリケーションへ WM_QUERYENDSESSION メッセージや WM_ENDSESSION メッセージを送信しません。この結果、アプリケーションがデータを失う可能性もあります。したがって、このフラグは、緊急時にのみ指定してください。
EWX_FORCEIFHUNG - プロセスが WM_QUERYENDSESSION または WM_ENDSESSION メッセージに応答しない場合、それらのプロセスを終了させます。EWX_FORCE フラグを指定すると、EWX_FORCEIFHUNG フラグは無視されます。 (Windows 2000以上のみ有効)
戻り値
true成功。
false失敗。

TnbWindows.h166 行目に定義があります。

◆ ShutdownNt()

static bool ShutdownNt ( LPCTSTR  lpMachineName,
LPCTSTR  lpMessage,
DWORD  dwTimeout,
bool  bForceAppsClosed = false,
bool  bRebootAfterShutdown = true 
)
static

[実行] シャットダウン

覚え書き
WindowsNT系専用です。
引数
lpMachineNameコンピュータ名。NULLならLOCALが対象。
lpMessage表示するべきメッセージ。NULLなら表示しません。
dwTimeout表示時間(秒)。
bForceAppsClosed強制終了オプション。 TRUE を指定すると、強制的に終了させます。 FALSE を指定すると、アプリケーションを終了するようユーザーに指示する ダイアログボックスが表示されます。
bRebootAfterShutdown再起動オプション。 TRUE を指定すると、コンピュータは再起動します。 FALSE を指定すると、コンピュータは、電源を切っても安全な状態になったことを示す メッセージを表示します。
戻り値
true成功。シャットダウン開始。
false失敗。

TnbWindows.h192 行目に定義があります。

◆ Suspend()

static bool Suspend ( bool  fSuspend = true,
bool  fForce = false 
)
static

[実行] サスペンド

引数
fSuspendtrue を指定すると サスペンド、false を指定すると、システムが休止状態に入ります。
fForce
true を指定すると、関数は各アプリケーションやドライバに PBT_APMSUSPEND イベントをブロードキャストした後、直ちに操作を中断します。
false を指定すると、関数は各アプリケーションに PBT_APMQUERYSUSPEND イベントをブロードキャストし、操作を中断するためのアクセス権を要求します。
戻り値
true成功。(サスペンドしてレジュームしたことを表す) 。
false失敗。

TnbWindows.h268 行目に定義があります。