Bagikan melalui


Penangan Kontrol Konsol

Setiap proses konsol memiliki daftar fungsi handler kontrol sendiri yang dipanggil oleh sistem ketika proses menerima sinyal CTRL+C, CTRL+BREAK, atau CTRL+CLOSE . Awalnya, daftar handler kontrol untuk setiap proses hanya berisi fungsi handler default yang memanggil fungsi ExitProcess. Proses konsol dapat menambahkan atau menghapus fungsi HandlerRoutine tambahan dengan memanggil fungsi SetConsoleCtrlHandler. Fungsi ini tidak memengaruhi daftar handler kontrol untuk proses lain. Saat proses konsol menerima salah satu sinyal kontrol, proses ini memanggil fungsi handler berdasarkan yang terakhir didaftarkan dan pertama kali dipanggil hingga salah satu handler mengembalikan TRUE. Jika tidak ada handler yang mengembalikan TRUE, handler default akan dipanggil.

Parameter dwCtrlType fungsi mengidentifikasi sinyal kontrol mana yang diterima, dan nilai pengembalian menunjukkan apakah sinyal ditangani.

Utas baru dimulai di dalam proses klien baris perintah untuk menjalankan rutinitas handler. Informasi selengkapnya tentang nilai batas waktu dan tindakan utas ini dapat ditemukan dalam dokumentasi fungsi HandlerRoutine.

Untuk contoh fungsi handler kontrol, lihat Mendaftarkan Fungsi Handler Kontrol.

Perhatikan bahwa memanggil AttachConsole, AllocConsole, atau FreeConsole akan mengatur ulang tabel penangan kontrol dalam proses klien ke status awalnya.