В соответствии с документацией Microsoft, в Windows CE 3.0 и выше, функция DeviceIoControl
, вызываемая с помощью управляющего кода IOCTL_CONSOLE_SETCONTROLCHANDLER
, установит обработчик Ctrl + C в Windows CE. Я не пробовал это сам еще, но что-то вроде этого «должны» работы:
DWORD ignore;
DeviceIoControl(
_fileno(stdout), // handle to the console
IOCTL_CONSOLE_SETCONTROLCHANDLER, // Tell Win CE to set the console Ctrl+C handler
(LPVOID)consoleHandler, // pointer to the signal handler
sizeof(consoleHandler), // size of the pointer
NULL, // output buffer not needed
0, // zero output buffer size
&ignore, // no data will be put into the output buffer so we don't need its size
NULL); // not an asynchronous operation - don't need to provide async info
где consoleHandler
, конечно, ваш обработчик Ctrl + C.
Документы:
заголовков необходимы:
Console.h
winbase.h
(как правило, включены т hrough windows.h).
Любой шанс, что вы можете пойти с подходом «отключение» Control + C от убийства вашего приложения? Этот элемент управления ввода-вывода может сделать трюк для этого: http://msdn.microsoft.com/en-us/library/aa931517.aspx. – reuben
Спасибо, но мне нужно сделать очистку перед закрытием приложения, чтобы не допустить, чтобы приложение было убито. –