Como executo um script ou programa no Windows Shut Down

1

Eu quero executar um arquivo exe ou bat quando a janela é desligada? Eu quero desmontar algumas unidades, que são montadas pelo meu aplicativo, quando o usuário desligar o sistema.

Para isso, preciso executar outro exe no desligamento, que desconectará as unidades montadas pelo meu aplicativo.

Eu tenho alguns links que mostram que podemos criar uma entrada na Diretiva de Grupo para executar um programa enquanto a janela é desligada. Não tenho certeza de como posso adicionar uma entrada ao Group ploicy pelo código C ++.

Novamente, a política de grupo não funciona com o Win Vista. Qualquer outra abordagem melhor?

    
por Simsons 12.11.2010 / 11:17

5 respostas

2

Além de escrever seu próprio arquivo de lote para desligar e fazer o que você quer, você pode agendar uma tarefa para fazer a mesma coisa, para não ter que lembrar de clicar em um atalho para desligar uma maneira especial ou qualquer coisa.

Usando ferramentas de administração | Agendador de Tarefas você pode agendar uma tarefa com base em eventos registrados no log de eventos do sistema. O evento shutdown / restart está associado ao log de eventos do sistema com USER32 como a origem, a identificação de evento 1074. Quando o log de eventos é atualizado com essas informações, a tarefa agendada deve ser iniciada. Eu testei isso em uma caixa no trabalho e funcionou muito bem, mas eu sou um administrador no domínio e não tenho certeza se você teria problemas de permissão ou algo assim.

    
por 15.11.2010 / 20:00
0

Escreva um programa que tenha uma janela somente de mensagens ( HWND_MESSAGE ), então manipule: WM_ENDSESSION , então execute seu arquivo bat ou faça o que quiser.

Windows: link

WM_ENDSESSION: link

    
por 12.11.2010 / 11:27
0

O que você pode fazer é escrever seu arquivo de lote para incluir todos os seus comandos que você gostaria de executar antes de desligar e, em seguida, como o último comando incluir o shutdown.exe em uma sintaxe semelhante a esta: shutdown.exe - s -t 45. Neste caso, eu estou dizendo o comando para desligar o sistema, com o switch -s e, em seguida, o switch -t está dizendo para fazer isso em 45 segundos. Talvez seja necessário usar a opção -f para forçar o fechamento de qualquer programa, caso eles impeçam o desligamento do sistema. Se você estiver executando o Windows XP, Vista ou 7, o comando de desligamento já estará disponível. Qualquer coisa mais antiga, no entanto, você pode ter que baixá-lo do site da Mircrosoft. Espero que esta informação ajude!

Danbo

    
por 12.11.2010 / 19:07
0

Já que a versão do Vista não tem o GPEDIT.MSC instalado, talvez encontre quais entradas o GPEDIT normalmente faria para um script de desligamento e veria se essas chaves de registro existem no seu Vista Home?

Eu não tenho o Vista rodando aqui, mas fiz um teste preliminar no Server 2003. Eu iniciei o REGMON e abri o GPEDIT.MSC, então editei o script Shutdown. A principal mudança foi localizada aqui:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown

Se essa estrutura de árvore de chaves existe no Vista, pode ser apenas uma questão de construir a entrada em uma máquina que tenha um editor de política de grupo, exporte a chave e importe-a para o Vista. Pura especulação, eu não tentei isso.

    
por 15.11.2010 / 18:25
0

No Agendador de Tarefas do Windows, crie uma Tarefa Básica assim:

    
por 30.05.2018 / 14:59