Когда я нажимаю кнопку выключения, Windows с радостью отклоняет выключение, независимо от того, какая тривиальная программа/задача запрашивает больше времени. Когда я нажимаю кнопку физического выключения, я хочу, чтобы Windows выключалась независимо от чего, за исключением veracrypt, которому нужно достаточно времени для повторного шифрования дисков, очистки ключей из памяти и всего остального, что он делает при выходе.
Достижимо ли это?
(глобальное принудительное отключение, очевидно, не вариант, поскольку veracrypt требует надлежащего отключения)
решение1
Причина, по которой я спросил вас выше о версии Windows, которую вы используете, заключается в том, что ваше утверждение о том, что «Когда я нажимаю кнопку выключения, Windows с радостью отклоняет завершение работы, независимо от того, какая тривиальная программа/задача требует больше времени», просто не соответствует действительности ни для одной версии после XP.
Как говорит Рэймонд Чен вИзменения в управлении питанием в Windows VistaиТеперь, когда Windows затрудняет блокировку завершения работы вашей программы, как заблокировать завершение работы?, начиная с Vista, только приложения, реализующие ShutdownBlockReasonCreate()функция может блокировать процесс выключения после его запуска, и даже тогда пользователь всегда может выбрать принудительное выключение, несмотря ни на что. Это было сделано для предотвращения старой проблемы, когда люди (особенно пользователи ноутбуков) инициировали выключение, а затем обнаруживали, что система все это время оставалась включенной, потому что зависла из-за какого-то приложения и, таким образом, нагрелась или разрядила аккумулятор.
Вы можете очень легко это проверить. Откройте несколько приложений, которые не позволяют вам закрыть их, если есть несохраненные изменения. Например, Notepad, Paint, Word и т. д., которые все выдают диалоговые окна типа «Вы хотите сохранить?». Теперь, если вы установили кнопку питания на выключение и нажмете ее, вы увидите окно, отображающее все открытые приложения, и ониволябыть уничтожены независимо от того, сохраните ли вы свою работу очень быстро или нет.
Я пока не сталкивался ни с одним потребительским приложением, которое бы злоупотребляло ShutdownBlockReasonCreate() для предотвращения выключения Windows. Это не значит, что таких некорректно работающих приложений не существует, но ваше утверждение о том, что каждая тривиальная программа может блокировать выключение Windows, больше не соответствует действительности. Если вы действительно сталкиваетесь с этим, то с вашей стороны явно что-то не так, потому что Windows не должна так себя вести (и ведет себя) со времен Vista.