<Return[S]><Top>

SetThreadExecutionState

Declare Function Api_SetThreadExecutionState& Lib "kernel32" Alias "SetThreadExecutionState" (ByVal esFlags&)

Declare Function SetThreadExecutionState Lib "kernel32" (ByVal esFlags As Long) As Long

パラメータ
esFlags
    スレッドの実行要求を指定する。次のいずれかの値を指定する。

    フラグ                                   

説明                                                                                                                                           

    ES_SYSTEM_REQUIRED

システムでアクティビティとして通常認識されない操作をスレッドが実行していることをシステムに通知する。

    ES_DISPLAY_REQUIRED

 

システムでディスプレイアクティビティとして通常認識されない操作をスレッドが実行していることをシステムに通知する。

    ES_CONTINUOUS

 

ほかの状態フラグがクリアされており、ES_CONTINUOUS を使った次の呼び出しまで設定済みの状態を維持する必要があることをシステムに通知する。


戻り値
    関数が成功すると、前回のスレッド実行状態が返る。
    関数が失敗すると、NULL が返る。

解説
    ローカルのキーボードまたはマウスによる入力、サーバーアクティビティ、ウィンドウフォーカス切り替えなどのアクティビティは、システムで自

    動的に検出される。一方、ディスクや CPU のアクティビティ、ビデオディスプレイなどは自動的に検出されない。
    SetThreadExecutionState 関数で ES_SYSTEM_REQUIRED をセットして呼び出すと、システムがシステムアイドルタイマをリセットして、

    コンピュータをスリープ状態にするのを防ぐことができる。SetThreadExecutionState 関数で ES_DISPLAY_REQUIRED をセットして呼び出

    すと、システムがシステムアイドルタイマをリセットして、ディスプレイをオフにするのを防ぐことができる。SetThreadExecutionState 関数で

    ES_CONTINUOUS をセットしないで呼び出すと、システムのアイドルタイマがリセットされるだけである。ディスプレイやシステムの実行状態

    を維持するには、スレッドで SetThreadExecutionState 関数を定期的に呼び出す必要がある。
    電源が管理されるコンピュータで正しく実行するには、ファクスサーバー、留守番電話、バックアップエージェント、ネットワーク管理アプリケ

    ーションのようなアプリケーションでイベントを処理するときに ES_SYSTEM_REQUIRED | ES_CONTINUOUS を使う。長時間ユーザー入

    力がない状態でビデオを表示するには、ビデオプレーヤやプレゼンテーションアプリケーションなどのマルチメディアアプリケーションで

    ES_DISPLAY_REQUIRED を使う。ワードプロセッサ、スプレッドシート、ブラウザ、ゲームなどのアプリケーションでは、

    SetThreadExecutionState 関数を呼び出す必要はない。