Fungsi SetThreadExecutionState (winbase.h)
Memungkinkan aplikasi untuk menginformasikan sistem bahwa aplikasi sedang digunakan, sehingga mencegah sistem memasuki tidur atau mematikan tampilan saat aplikasi berjalan.
Sintaks
EXECUTION_STATE SetThreadExecutionState(
[in] EXECUTION_STATE esFlags
);
Parameter
[in] esFlags
Persyaratan eksekusi utas. Parameter ini bisa menjadi satu atau beberapa nilai berikut.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah status eksekusi utas sebelumnya.
Jika fungsi gagal, nilai yang dikembalikan adalah NULL.
Keterangan
Sistem secara otomatis mendeteksi aktivitas seperti keyboard lokal atau input mouse, aktivitas server, dan mengubah fokus jendela. Aktivitas yang tidak terdeteksi secara otomatis termasuk aktivitas disk atau CPU dan tampilan video.
Memanggil SetThreadExecutionState tanpa ES_CONTINUOUS hanya mengatur ulang timer menganggur; untuk menjaga tampilan atau sistem dalam status berfungsi, utas harus memanggil SetThreadExecutionState secara berkala.
Untuk berjalan dengan benar pada komputer yang dikelola daya, aplikasi seperti server faks, mesin penjawab, agen cadangan, dan aplikasi manajemen jaringan harus menggunakan ES_SYSTEM_REQUIRED dan ES_CONTINUOUS saat memproses peristiwa. Aplikasi multimedia, seperti pemutar video dan aplikasi presentasi, harus menggunakan ES_DISPLAY_REQUIRED ketika mereka menampilkan video untuk jangka waktu yang lama tanpa input pengguna. Aplikasi seperti prosesor kata, spreadsheet, browser, dan game tidak perlu memanggil SetThreadExecutionState.
Nilai ES_AWAYMODE_REQUIRED harus digunakan hanya ketika benar-benar diperlukan oleh aplikasi media yang mengharuskan sistem untuk melakukan tugas latar belakang seperti merekam konten televisi atau media streaming ke perangkat lain saat sistem tampaknya tidur. Aplikasi yang tidak memerlukan pemrosesan latar belakang kritis atau yang berjalan pada komputer portabel tidak boleh mengaktifkan mode menjauh karena mencegah sistem menghemat daya dengan memasuki true sleep.
Untuk mengaktifkan mode tandang, aplikasi menggunakan ES_AWAYMODE_REQUIRED dan ES_CONTINUOUS; untuk menonaktifkan mode tidak di tempat, aplikasi memanggil SetThreadExecutionState dengan ES_CONTINUOUS dan menghapus ES_AWAYMODE_REQUIRED. Ketika mode tandang diaktifkan, operasi apa pun yang akan membuat komputer tidur meletakkannya dalam mode menjauh sebagai gantinya. Komputer tampaknya tidur saat sistem terus melakukan tugas yang tidak memerlukan input pengguna. Mode tidak di tempat tidak memengaruhi timer menganggur tidur; untuk mencegah sistem memasuki tidur ketika timer kedaluwarsa, aplikasi juga harus mengatur nilai ES_SYSTEM_REQUIRED .
Fungsi SetThreadExecutionState tidak dapat digunakan untuk mencegah pengguna tidur. Aplikasi harus menghormati bahwa pengguna mengharapkan perilaku tertentu ketika mereka menutup tutup pada laptop mereka atau menekan tombol daya.
Fungsi ini tidak menghentikan penghemat layar dijalankan.
Contoh
// Television recording is beginning. Enable away mode and prevent
// the sleep idle time-out.
//
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);
//
// Wait until recording is complete...
//
//
// Clear EXECUTION_STATE flags to disable away mode and allow the system to idle to sleep normally.
//
SetThreadExecutionState(ES_CONTINUOUS);
Persyaratan
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |