Bagikan melalui


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 Makna
ES_AWAYMODE_REQUIRED
0x00000040
Mengaktifkan mode tidak di tempat. Nilai ini harus ditentukan dengan ES_CONTINUOUS.

Mode tidak di tempat harus digunakan hanya oleh aplikasi perekaman media dan distribusi media yang harus melakukan pemrosesan latar belakang penting pada komputer desktop saat komputer tampak tidur. Lihat Keterangan.

ES_CONTINUOUS
0x80000000
Menginformasikan sistem bahwa status yang ditetapkan harus tetap berlaku sampai panggilan berikutnya yang menggunakan ES_CONTINUOUS dan salah satu bendera status lainnya dihapus.
ES_DISPLAY_REQUIRED
0x00000002
Memaksa tampilan menjadi aktif dengan mengatur ulang timer diam tampilan.
ES_SYSTEM_REQUIRED
0x00000001
Memaksa sistem berada dalam status kerja dengan mengatur ulang timer diam sistem.
ES_USER_PRESENT
0x00000004
Nilai ini tidak didukung. Jika ES_USER_PRESENT dikombinasikan dengan nilai esFlags lainnya, panggilan akan gagal dan tidak ada status yang ditentukan yang akan ditetapkan.

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

Lihat juga

Fungsi Manajemen Daya

SetSuspendState

SetSystemPowerState

WM_POWERBROADCAST