SetThreadExecutionState

アプリケーションが使用中であることをシステムに通知し、アプリケーション実行中にシステムがスリープしたりディスプレイをオフにするのを防ぐ。

SetThreadExecutionState esFlags

esFlags : [int] 

(プラグイン / モジュール : kernel32.dll)

解説

アプリケーションが使用中であることをシステムに通知し、アプリケーション実行中にシステムがスリープしたりディスプレイをオフにするのを防ぐ。

[戻り値]
関数が成功した場合、戻り値は直前のスレッド実行状態である。関数が失敗した場合、戻り値は NULL となる。

[備考]
システムはローカルのキーボード・マウス入力、サーバ動作、ウィンドウフォーカスの変化などの活動を自動検出する。ディスクや CPU
の動作、ビデオ表示などは自動検出されない。ES_CONTINUOUS なしで SetThreadExecutionState
を呼ぶとアイドルタイマがリセットされるだけで、ディスプレイやシステムを稼働状態に保つには定期的に
SetThreadExecutionState を呼ぶ必要がある。電源管理されたコンピュータで適切に動作するために、Fax
サーバ・留守番電話・バックアップエージェント・ネットワーク管理アプリケーションなどはイベント処理時に ES_SYSTEM_REQUIRED
と ES_CONTINUOUS
の両方を使う必要がある。動画プレイヤーやプレゼンテーションなどのマルチメディアアプリケーションは、ユーザー入力なしで長時間ビデオを表示する場合に
ES_DISPLAY_REQUIRED を使う必要がある。ワープロ・表計算・ブラウザ・ゲームなどのアプリケーションは
SetThreadExecutionState を呼ぶ必要はない。ES_AWAYMODE_REQUIRED
は、システムがスリープ中に見えながら録画やストリーミングなどのバックグラウンド処理を行う必要があるメディアアプリケーションでのみ、本当に必要な場合に限って使うべきである。重要なバックグラウンド処理を必要としないアプリケーションや携帯機器上で動作するアプリケーションは、システムが真のスリープに入って電力を節約するのを妨げないように
Away モードを有効化すべきではない。Away モードを有効化するには ES_AWAYMODE_REQUIRED と
ES_CONTINUOUS を併用し、無効化するには ES_CONTINUOUS のみで SetThreadExecutionState
を呼ぶ。Away モード中はコンピュータをスリープさせる操作が代わりに Away モード遷移となる。Away
モードはスリープアイドルタイマには影響しないため、タイマ満了時にスリープへ入るのを防ぐには ES_SYSTEM_REQUIRED
も併用しなければならない。SetThreadExecutionState
はユーザーがコンピュータをスリープさせるのを妨げるためには使えない。アプリケーションは、ユーザーがノート PC
のふたを閉じたり電源ボタンを押したときの期待動作を尊重するべきである。本関数はスクリーンセーバの実行を止めない。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs