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