アプリケーションが使用中であることをシステムに通知し、アプリケーション実行中にシステムがスリープしたりディスプレイをオフにするのを防ぐ。
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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |