CTRL+C ve CTRL+BREAK Sinyalleri

CTRL+C ve CTRL+BREAK tuş bileşimleri konsol işlemleri tarafından özel işleme alır. Varsayılan olarak, bir konsol penceresinde klavye odağı olduğunda , CTRL+C veya CTRL+BREAK klavye girişi olarak değil sinyal (SIGINT veya SIGBREAK) olarak değerlendirilir. Varsayılan olarak, bu sinyaller konsola bağlı tüm konsol işlemlerine geçirilir. (Ayrılmış işlemler etkilenmez. Bkz. Konsol Oluşturma.) Sistem, olayı işlemek için her istemci işleminde yeni bir iş parçacığı oluşturur. İşlem hata ayıklanıyorsa, iş parçacığı bir özel durum oluşturur. Hata ayıklayıcı özel durumu işleyebilir veya işlenmeyen özel durumla devam edebilir.

CTRL+BREAK her zaman bir sinyal olarak değerlendirilir, ancak bir uygulama işleyici işlevlerinin çağrılmasını engelleyen iki yolla varsayılan CTRL+C davranışını değiştirebilir:

  • SetConsoleMode işlevi konsolun giriş arabelleği için ENABLE_PROCESSED_INPUT giriş modunu devre dışı bırakabilir, bu nedenle CTRL+C tuşları sinyal olarak değil klavye girişi olarak bildirilir.
  • SetConsoleCtrlHandler parametreleri için NULL ve TRUE değerleriyle çağrıldığında, çağırma işlemi CTRL+C sinyallerini yoksayar. Normal CTRL+C işleme, NULL ve YANLIŞ değerleriyle SetConsoleCtrlHandler çağrılarak geri yüklenir. CTRL+C sinyallerini yoksayma veya yok saymama özniteliği alt işlemler tarafından devralınır, ancak mevcut işlemleri etkilemeden herhangi bir işlem tarafından etkinleştirilebilir veya devre dışı bırakılabilir.

Zaman aşımları da dahil olmak üzere bu sinyallerin nasıl işlendiği hakkında daha fazla bilgi için lütfen İşleyici Yordamı geri çağırma belgelerine bakın.