Каталог статей
Как перехватить закрытие Win32 console
#include <windows.h> #include <stdio.h> #include <conio.h>
HANDLE g_hEvent = 0;
BOOL WINAPI HandlerRoutine( DWORD dwCtrlType // control signal type ) { if (!g_hEvent) return FALSE;
switch (dwCtrlType) { case CTRL_C_EVENT: printf ("Ctrl+C pressed"); SetEvent (g_hEvent); break; case CTRL_BREAK_EVENT: printf ("Ctrl+Break pressed"); SetEvent (g_hEvent); break; case CTRL_CLOSE_EVENT: printf ("Close pressed"); SetEvent (g_hEvent); break; case CTRL_LOGOFF_EVENT: printf ("User logoff"); SetEvent (g_hEvent); break; case CTRL_SHUTDOWN_EVENT: printf ("System shutdown"); SetEvent (g_hEvent); break; }
return TRUE; // as we handle the event }
int main(int argc, char* argv[]) { g_hEvent = CreateEvent (NULL, FALSE, FALSE, NULL); SetConsoleCtrlHandler (HandlerRoutine, TRUE);
if (g_hEvent) { printf ("Waiting for the window to close...\n"); WaitForSingleObject (g_hEvent, INFINITE); CloseHandle (g_hEvent); } else printf ("Error creating event\n");
printf ("\nPress any key to exit!"); getch ();
SetConsoleCtrlHandler (HandlerRoutine, FALSE); return 0; }
|
|
| Категория: С/С++/MFC | Добавил: Cromartie (31.01.2013)
|
| Просмотров: 421
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
| Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
|