Desligamento: aguardando o encerramento do programa

Desligamento: aguardando o encerramento do programa

Quando pressiono o botão de desligamento, o Windows rejeitará o desligamento com prazer, independentemente do programa/tarefa trivial que solicita mais tempo. Quando pressiono o botão de desligamento físico, quero que o Windows desligue, não importa o que aconteça, com exceção do veracrypt, que precisa de tempo suficiente para criptografar novamente as unidades, limpar as chaves da memória e tudo o mais que fizer ao sair.

Isso é alcançável?

(o desligamento forçado global obviamente não é uma opção com o veracrypt precisando de um desligamento adequado)

Responder1

A razão pela qual perguntei acima sobre a versão do Windows que você está usando é porque sua afirmação de que "Quando eu pressiono o botão de desligamento, o Windows rejeitará alegremente o desligamento, não importa qual programa/tarefa trivial que peça mais tempo" simplesmente não é verdade para qualquer versão posterior ao XP.

Como Raymond Chen fala emMudanças no gerenciamento de energia no Windows VistaeAgora que o Windows torna mais difícil para o seu programa bloquear o desligamento, como você bloqueia o desligamento?, a partir do Vista apenas aplicativos que implementam o ShutdownBlockReasonCreate()A função pode bloquear o processo de desligamento depois de iniciado e, mesmo assim, o usuário sempre pode optar pelo desligamento forçado, não importa o que aconteça. Isso foi feito para evitar aquele antigo problema em que as pessoas (especialmente usuários de laptop) costumavam desligar, apenas para descobrir mais tarde que o sistema permaneceu ligado o tempo todo porque estava travado devido a algum aplicativo e, portanto, havia aquecido ou esgotado a bateria. .

Você pode testar isso facilmente. Abra vários aplicativos que não permitem fechá-los se houver alterações não salvas. Por exemplo, Bloco de Notas, Paint, Word e assim por diante, todos exibem "Deseja salvar?" digite diálogos. Agora, se você configurou o botão liga / desliga para desligar e pressioná-lo, verá uma janela exibindo todos os aplicativos abertos, e elesvaiser morto independentemente de você salvar seu trabalho muito rapidamente ou não.

Até agora, não encontrei nenhum aplicativo de consumidor que abuse de ShutdownBlockReasonCreate() para impedir o desligamento do Windows. Isso não quer dizer que não existam aplicativos malcomportados, mas sua afirmação de que todo programa trivial pode bloquear o desligamento do Windows simplesmente não é mais verdadeira. Se você realmente está enfrentando isso, então há claramente algo errado do seu lado, porque não é assim que o Windows deveria se comportar (e faz) desde o Vista.

informação relacionada