Символы управления обслуживанием Windows
-
13-10-2019 - |
Вопрос
Я создал службу Windows и хотел бы отправить ему контрольное значение Control+B или Control+C. Я знаю, что могу использовать контроль SC, но мне было интересно, есть ли место, в котором содержатся все возможные значения, которые я могу отправить. Есть метод остановки SC, но я хочу отправить ему контрольный персонаж.
Решение
«Изящность» отключения услуг зависит от того, как ваш сервис реагирует на запрос. Если вы пишете Сервис, то у вас есть полный контроль над тем, как ваш сервис отвечает, когда SCM отправляет запрос «остановить». После получения запроса у вас ограниченное количество времени (Windows решает, сколько), чтобы остановить вашу службу и ответить на запрос управления. Если вы не можете своевременно реагировать, Windows может безупречно прекратить процесс обслуживания.
Приложение консоли может ответить на запрос Ctrl+C, используя SetConsoleCtrlHandler()
функция Тем не менее, процессы обслуживания не выполняются внутри окна консоли, поэтому этот обработчик совершенно не применяется к услугам.