Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 69

События HandlerRoutine для SetConsoleCtrlHandler

19.07.2017, 01:14. Показов 3028. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

У меня как-то получается что все эти события делятся на три части, события при которых обработчик:

Часть 1. Исполняет пользовательскую инструкцию.
CTRL_C_EVENT
CTRL_BREAK_EVENT

Часть 2. Не исполняет пользовательскую инструкцию.
CTRL_CLOSE_EVENT

Часть 3. Ещё не тестил.
CTRL_LOGOFF_EVENT
CTRL_SHUTDOWN_EVENT

Вопрос, у Вас так же? У Вас тоже при закрытии консоли (CTRL_CLOSE_EVENT) пользовательская инструкция не исполняется обработчиком?

И подскажите, CTRL_LOGOFF_EVENT и CTRL_SHUTDOWN_EVENT, какие у них особенности?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2017, 01:14
Ответы с готовыми решениями:

Как подключить обработчик в ф-ии SetConsoleCtrlHandler() в mfc
Как подключить обработчик с помощью ф-ии SetConsoleCtrlHandler() в mfc ? Объявляю и определяю обработчик в классе представления....

Для чего использовать ключевое слово event в объявлении события, если события — это те же самые делегаты
Господа, скажите пожалуйста, для чего использовать ключевое слово event в объявлении события, если события - это те же самые делегаты ?...

Напишите функцию-обработчик для события onFocus для поля checkbox
Помоги, пожалуйста сделать :cry::help: Задание :Напишите функцию-обработчика для события согласно вырианту onFocus При...

2
18 / 17 / 16
Регистрация: 04.07.2017
Сообщений: 36
19.07.2017, 01:51
Лучший ответ Сообщение было отмечено codesurfer как решение

Решение

The system generates CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT signals when the user closes the console, logs off, or shuts down the system so that the process has an opportunity to clean up before termination. Console functions, or any C run-time functions that call console functions, may not work reliably during processing of any of the three signals mentioned previously. The reason is that some or all of the internal console cleanup routines may have been called before executing the process signal handler.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
BOOL WINAPI HandlerRoutine(
    _In_ DWORD dwCtrlType
)
{
    if(dwCtrlType == CTRL_CLOSE_EVENT){
        std::ofstream("miracle.txt");
        return 1;
    }
}
int main()
{
    SetConsoleCtrlHandler(HandlerRoutine, 1);
    cin.get();
}
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 69
19.07.2017, 02:03  [ТС]
По CTRL_CLOSE_EVENT чуть не так. Обработчик исполняет пользовательскую инструкцию, но не исполняет всё что после неё.
А CTRL_C_EVENT и CTRL_BREAK_EVENT ещё исполняют код после пользовательской инструкции обработчика.

Добавлено через 9 минут
Разобрался. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.07.2017, 02:03
Помогаю со студенческими работами здесь

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

Где найти события onShow для GridPane или для Pane?
Собственно, где найти события onShow для GridPane или для Pane? Потому что в SceneBuilder его нет и IDEA говорит тоже самое.

Как вызвать один обработчик события в другом обработчике события?
Здравствуйте. Подскажите пожалуйста, каким образом можно вызвать информацию из одного обработчика события в другой обработчик события? ...

Как в одном обработчике события запустить другой обработчик события
Есть список listView1, который заполняется из массива PeopleListprivate void listView1_RetrieveVirtualItem(object sender,...

Использовать обработку события по изменению данных DataGridView в обработке события сторонней кнопки
Имеется некий DataGridView, при изменении данных в определенной ячейке которого создается определенное действие, описанное в обработчике...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru