Я хотел бы создать приложение, которое предупреждает о другом, когда компьютер выключается.
Является ли функция
onShutdown() {
[Send my message]
}
что мой сигнал будет передаваться из одного приложения в другое, когда компьютер выключится?
EDIT: прочитав комментарии, добавлю, что, по-видимому, первым является получение сообщений о завершении. Есть ли способ получить это сообщение, поскольку "onShutdown()" может быть недостаточным, чтобы гарантировать, что мое приложение будет первым, которое будет остановлено?
RE-EDIT: для IHM лучше всего использовать
WindowProc() {}
И для не-IHM лучше всего использовать:
SetConsoleCtrlHandler();
По-прежнему не было никакого понятия о не-оконном приложении.
Вы можете отправить сообщение в ответ на WM_QUERYENDSESSION
. Теперь возможно, чтобы другое приложение ушло буквально в любой момент, поэтому в любом случае нет гарантии на 100%. Тем не менее, WM_QUERYENDSESSION
вряд ли вызовет выключение приложения, поэтому нет особых причин опасаться, что другое приложение умрет именно в этот момент.
WM_QUERYENDSESSION
(я думаю, что до WM_QUERYENDSESSION
Windows, вызывающей обвиняющие сообщения, разрешено до 5 секунд), чтобы дать другому приложению время для обработки сообщения.
WM_ENDSESSION
сообщениеWM_ENDSESSION
и уже прекратило работу?