Обнаружение события выключения с помощью python - PullRequest
2 голосов
/ 12 июля 2020

У меня есть сервер Minecraft bedrock edition, работающий на нашем общем p c. Я хотел бы связаться с ним через python. Однако у меня есть одна проблема: мои братья иногда перезапускают наши обновления p c или Windows. Мне нужно знать, как обнаружить это событие выключения и отправить команду выключения на сервер перед перезапуском. Я использую библиотеку подпроцесса.

1 Ответ

1 голос
/ 12 июля 2020

Итак, вам понадобится win32API и функция, описанная здесь . Вы можете использовать эту функцию, чтобы добавить так называемый метод обработчика элементов управления, который будет запускаться всякий раз, когда программа закрывается или завершается по любой причине, включая завершение работы. Вы можете найти список различных кодов, которые могут быть переданы обработчику, и их значения здесь . В идеале у вас должен быть метод-обработчик, который просто отключает сервер, ждет его завершения sh выключения, а затем возвращается.

У меня нет личного опыта работы с библиотекой, но он должно быть довольно простым.

РЕДАКТИРОВАТЬ: как отметил @ErykSun, вам нужно будет создать скрытое окно, чтобы получать события. Честно говоря, я не знаю, как создать это скрытое окно. В некоторой документации предполагается, что запуск вашего приложения как службы также может работать. Я изучу это подробнее, если у меня будет время.

...