На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

CTRL+C and CTRL+BREAK Signals



The CTRL+C and CTRL+BREAK key combinations receive special handling by console processes. By default, when a console window has the keyboard focus, CTRL+C or CTRL+BREAK is treated as a signal (SIGINT or SIGBREAK) and not as keyboard input. By default, these signals are passed to all console processes that are attached to the console, causing the system to call the control handler function or functions associated with these processes. Detached processes (GUI processes or console processes started with the DETACHED_PROCESS or CREATE_NEW_CONSOLE flag) are not affected.

CTRL+BREAK is always treated as a signal, but an application can change the default CTRL+C behavior in two ways that prevent the handler functions from being called:

· The SetConsoleMode function can disable the ENABLE_PROCESSED_INPUT input mode for a console's input buffer, so CTRL+C is reported as keyboard input rather than as a signal.
· When SetConsoleCtrlHandler is called with NULL and TRUE values for its parameters, the calling process ignores CTRL+C signals. Normal CTRL+C processing is restored by calling SetConsoleCtrlHandler with NULL and FALSE values. This attribute of ignoring or not ignoring CTRL+C signals is inherited by child processes, but it can be enabled or disabled by any process without affecting existing processes.




Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

CTRL+C и Сигналы CTRL+BREAK



CTRL+C И ключевые комбинации CTRL+BREAK получают специальную обработку консольными процессами. По умолчанию, когда консольное окно имеет клавишный фокус, CTRL+C или CTRL+BREAK рассмотрен как сигнал (SIGINT или SIGBREAK) и не как ввод данных с клавиатуры. По умолчанию, эти сигналы пройдены во все консольные процессы, что приложены к консоли, вызывающей систему, чтобы называть управляющую функцию вручителя или функции связывались этими процессами. Отделенные процессы (процессы ГРАФИЧЕСКОГО интерфейса пользователя или консольные процессы начатые DETACHED_PROCESS или флаг CREATE_NEW_CONSOLE), не воздействованы.

CTRL+BREAK всегда рассмотрен как сигнал, но приложение может изменить встроенное поведение CTRL+C в двух путях, которые предохраняют функции вручителя от названное:

Функция SetConsoleMode может вывести из строя входной способ ENABLE_PROCESSED_INPUT для консольного входного буфера, так что CTRL+C сообщен как ввод данных с клавиатуры а не как сигнал.
Когда SetConsoleCtrlHandler назван НЕДЕЙСТВИТЕЛЬНЫМ и ИСТИНА оценивается для своих параметров, вызов процесса игнорирует сигналы CTRL+C. Нормально обработка CTRL+C восстановлена вызовом SetConsoleCtrlHandler с НЕДЕЙСТВИТЕЛЬНЫМИ и ЛОЖНЫМИ величинами. Этот атрибут игнорирующий или не игнорируя сигналы CTRL+C унаследован процессами ребенка, но может быть приспособлено или выведено из строя любым процессом не влияя на существовать процессов.




Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz