Программа Windows C выполняет действие при выключении - PullRequest
3 голосов
/ 28 февраля 2011

Я делаю программу, которая отправляет «сердцебиения» на сервер для отслеживания узлов. Это пакеты со следующей полезной нагрузкой:

  • запуск при запуске

  • «работает» каждые 5 секунд

  • «остановка» при выключении

Первые два легко. Поток / цикл может установить сообщение при первом и последующих запусках. Как сделать так, чтобы цикл «перехватывал» завершение работы, чтобы он мог отправлять последний пакет?

Я использую компилятор minGW для C на платформе WinXP.

Редактировать: я добавил соответствующие детали, которые я пропустил (спасибо ходьба цели и Ферруччо)

  • Это незавершенное приложение, которое содержит в себе грязные вещи: -)
  • Для отправки пакетов используется libCURL, клиентская библиотека HTTP
  • Это консольное приложение, которое я (намного позже) намереваюсь использовать в качестве службы
  • Нужно сохранить файл и отправить пакет при выключении
  • Необходимо зафиксировать завершение работы системы

1 Ответ

1 голос
/ 28 февраля 2011

В вашем WindowProc () вы можете проверить сообщение WM_QueryEndSession, которое Windows отправляет всем открытым процессам перед завершением работы. Для получения дополнительной информации об этом сообщении см. Следующую ссылку, но я понимаю, что это так же тривиально, как проверка WM_SIZE:

http://msdn.microsoft.com/en-us/library/aa376890%28VS.85%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...