Udostępnij przez


Programy obsługi sterowania konsolą

Każdy proces konsoli ma własną listę funkcji obsługi sterowania, które są wywoływane przez system, gdy proces odbiera sygnał CTRL+C, CTRL+BREAK lub CTRL+CLOSE . Początkowo lista procedur obsługi kontrolek dla każdego procesu zawiera tylko domyślną funkcję obsługi, która wywołuje funkcję ExitProcess . Proces konsoli może dodawać lub usuwać dodatkowe funkcje programu HandlerRoutine przez wywołanie funkcji SetConsoleCtrlHandler . Ta funkcja nie ma wpływu na listy procedur obsługi kontrolek dla innych procesów. Gdy proces konsoli odbiera dowolny z sygnałów sterujących, wywołuje funkcje programu obsługi na podstawie ostatniego zarejestrowanego, pierwszego wywołania do momentu, gdy jeden z programów obsługi zwróci wartość TRUE. Jeśli żadna z procedur obsługi nie zwróci wartości TRUE, zostanie wywołana domyślna procedura obsługi.

Parametr dwCtrlType funkcji określa, który sygnał sterujący został odebrany, a wartość zwracana wskazuje, czy sygnał został obsłużony.

Nowy wątek jest uruchamiany wewnątrz procesu klienta wiersza polecenia, aby uruchomić procedury obsługi. Więcej informacji na temat wartości limitu czasu i akcji tego wątku można znaleźć w dokumentacji funkcji HandlerRoutine .

Aby zapoznać się z przykładem funkcji obsługi kontrolek, zobacz Rejestrowanie funkcji obsługi kontrolek.

Należy pamiętać, że wywołanie metody AttachConsole, AllocConsole lub FreeConsole spowoduje zresetowanie tabeli procedur obsługi kontrolek w procesie klienta do stanu początkowego.