Como iniciar automaticamente um aplicativo ao desligar o Windows 7

1

Ao desligar o Windows 7, como fazer com que um aplicativo inicialize automaticamente e seja executado rapidamente, feche?

Eu quero que o aplicativo seja exibido brevemente na tela, ou diga brevemente nos alto-falantes, meu lembrete para mim: "Desconecte o stick USB, desligue o aquecedor antes de sair do quarto". Depois disso, o Win 7 encerra.

    
por doanviettrung 20.06.2013 / 08:25

2 respostas

2

Use uma tarefa agendada do Windows para fazer isso. adicione um gatilho "no logoff do usuário" (pode ser chamado de forma diferente, não estou em uma janela do inglês agora).

Se você quer tocar um som, você tem que gravá-lo primeiro e, em seguida, executar o seu favorito music player com o arquivo de som gravado como um parâmetro de linha de comando. a maioria dos jogadores tem seus parâmetros de linha de comando em seu site em algum lugar, ou apenas pesquisam no Google.

se você quiser mostrar uma mensagem, você deve usar um arquivo windows * .bat.

    
por 20.06.2013 / 09:35
1

Karan está certo: não há garantia de que a tarefa será capaz de executar em sua totalidade. Testei o método de Diretiva de Grupo em minha própria máquina, mas com um SSD, um CPU respeitável e memória de 12GB, o pequeno reprodutor de áudio que eu estava tentando executar nunca teve a chance de iniciar!

A solução complicada - se existir - significaria ligar-se ao processo de desligamento e suspendê-lo temporariamente de uma forma ou de outra, para dar tempo ao seu arquivo de áudio para carregar antes de continuar com o procedimento.

Uma solução com menos overkill (apropriatelykill?) significaria escrever um lote ou arquivo de script que inicie seu arquivo de áudio, possivelmente com um timer configurado para corresponder ao comprimento do arquivo de áudio (mais um pouco para o programa player de áudio carregar na memória), ou alguma outra maneira de determinar que o processo de áudio foi concluído e, em seguida, disparar o processo de desligamento. Em seguida, você executaria esse lote ou arquivo de script em vez da execução do desligamento pelos seus meios usuais (como por meio do menu Iniciar).

Para sua sorte, aproveitei para escrever esse roteiro. Salve isso em um editor de texto e dê a ele uma extensão ".vbs". Atribua um atalho a ele e coloque-o no menu Iniciar ou na área de trabalho e configure-o com um ícone apropriado. (Nota: Eu estava com um humor peculiar quando nomeei minhas variáveis e funções, mas funciona.)

Option Explicit
Dim dudeWeNeedAWindow, beMyWordsYo, whatTheCrapDoWeCallIt, thereOnceWasADefaultNamedOne, imAChooseStuffIsThatAlright, imJustGoingToTellYouRightNowThatWasALowBall, dontMockMeIWasFeatherDustedAsAChild, thisIsWhereThePartyHappensSucka, thisCrapNeedsToShutItselfDown, bringItHonkyIllJustStartAllOverAgain, imSorryButYouNeedToSettleDownAndHibernateRightNow

beMyWordsYo = "How would you like to proceed?" & vbcr & vbcr & _ 
"1) Shutdown" & vbcr & _ 
"2) Restart" & vbcr & _ 
"3) Hibernate"

dontMockMeIWasFeatherDustedAsAChild = "Nonsense! What are you trying to pull?"
thisIsWhereThePartyHappensSucka = """C:\Program Files\MPC-HC\mpc-hc64.exe"" %USERPROFILE%\Music\Vermillion.mp3"

whatTheCrapDoWeCallIt = "Shutdown"
thereOnceWasADefaultNamedOne = "1"

thisCrapNeedsToShutItselfDown = """shutdown.exe"" /s /t 00"
bringItHonkyIllJustStartAllOverAgain = """shutdown.exe"" /r /t 00"
imSorryButYouNeedToSettleDownAndHibernateRightNow = """shutdown.exe"" /h"

Sub ShutdownThisGoober
    imAChooseStuffIsThatAlright = InputBox(beMyWordsYo,whatTheCrapDoWeCallIt,thereOnceWasADefaultNamedOne)

    Set dudeWeNeedAWindow = WScript.CreateObject("WScript.Shell")

    If imAChooseStuffIsThatAlright = "1" Then
        dudeWeNeedAWindow.Run(thisIsWhereThePartyHappensSucka)
        dudeWeNeedAWindow.Run(thisCrapNeedsToShutItselfDown)
        WScript.Quit
    ElseIf imAChooseStuffIsThatAlright = "2" Then
        dudeWeNeedAWindow.Run(thisIsWhereThePartyHappensSucka)
        dudeWeNeedAWindow.Run(bringItHonkyIllJustStartAllOverAgain)
        WScript.Quit
    ElseIf imAChooseStuffIsThatAlright = "3" Then
        dudeWeNeedAWindow.Run(thisIsWhereThePartyHappensSucka)
        dudeWeNeedAWindow.Run(imSorryButYouNeedToSettleDownAndHibernateRightNow)
        WScript.Quit
    ElseIf imAChooseStuffIsThatAlright = "0" Or imAChooseStuffIsThatAlright = "" Then
        WScript.Quit
    Else
        imJustGoingToTellYouRightNowThatWasALowBall = MsgBox(dontMockMeIWasFeatherDustedAsAChild,16)
        Set dudeWeNeedAWindow = Nothing
        ShutdownThisGoober
    End If
    Set dudeWeNeedAWindow = Nothing
End Sub
ShutdownThisGoober
    
por 21.06.2013 / 15:04