none
Завершить программу перед перезагрузкой или выключением RRS feed

  • Вопрос

  • Виртуальная машина Windows Server 2012 R2, на ней работает MDaemon 15. Поскольку при запуске MDaemon в режиме службы есть определенные проблемы в его работе, приходится запускать его как приложение. В связи с этим возникает проблема с завершением работы или перезагрузкой, т.к. он требует подтверждения закрытия и соответственно все останавливается и появляется экран, что приложение не дает завершить работу. Для завершения MDaemon без запроса имеется приложение MDLaunch.exe, которое запускается с ключом /stop. При попытке поставить задание на событие 1074 User32 или через групповые политики на выключение или выход ничего не происходит, т.к. explorer уже начал завершать работу активных приложений и соответственно все останавливается, хотя задание на событие срабатывает, но видимо действия explorerа не дают корректно отработать программе. Вопрос: можно ли запретить explorerу убивать процесс MDaemon или что еще можно придумать в данной ситуации? Я конечно понимаю, что по истечению какого то времени будет инициировано принудительное закрытие, особенно если завершение инициировано Hyper-V, но хотелось бы корректного завершения.
    25 апреля 2015 г. 1:22

Ответы

Все ответы

  • Подготовьте командные файлы с использованием команды mdlaunch.exe /stop и shutdown для выключения и перезагрузки сервера и создайте ярлыки на эти командные файлы. Используйте их, а не стандартные элементы интерфейса для завершения работы. Вы также можете скрыть локальной групповой политикой стандартные элементы выключения/перезагрузки: это не запретит возможность использования shutdown в командной строке. 
    25 апреля 2015 г. 16:06
    Модератор
  • Спасибо за ответ, но если бы меня устраивал данный вариант я бы не задавал здесь этот вопрос. Ситуация как раз и состоит в том, чтобы все происходило естественным путем, а такое решение не подходит, хотя бы по той причине, что сервер виртуальный и, чтобы перезагрузить хостовый сервер, необходимо сначала выключать его, в таком случае проще просто загасить программу, чем изгаляться с "батниками". Отправка VM в гибернацию не прокатывает - она вторичный контролер домена.
    27 апреля 2015 г. 21:17
  • Тогда решение лежит в области программирования, что находится за рамками Форумов TechNet:

    https://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.sessionending(v=vs.110).aspx

     
    28 апреля 2015 г. 11:02
    Модератор
  • Спасибо. Что-то в этом роде я и предполагал, но решил на всякий случай проверить, а вдруг... На этом тему считаю завершенной.

    28 апреля 2015 г. 21:20