Executando script com um exe no desligamento do computador

1

Eu fiz essa mesma pergunta no estouro de pilha por engano.

Eu tenho um computador que não liga se estiver no modo expandido conectado a uma TV. Apenas tela preta e sem sinais de vida.

A coisa que eu quero fazer é ter um script que muda o Display para interno antes de desligar. Eu tentei com um script que tem C: \ Windows \ System32 \ DisplaySwitch.exe / interno e sinal de desligamento. Isso não funcionará porque a pessoa que está operando o computador não consegue realmente clicar no script.

O que eu queria fazer é colocá-lo como um script de desligamento da máquina. Eu tentei estes: Script com C: \ Windows \ System32 \ DisplaySwitch.exe / interno e parâmetro / internal e também apenas adicionando um script com o nome C: \ Windows \ System32 \ DisplaySwitch.exe e o parâmetro /CC:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown\internal.bat mas ainda sem sorte.

Isso deve funcionar certo? ele só funciona quando termina a sessão do usuário, portanto, somente quando configurado pelo usuário e não pela máquina.

A máquina está no Windows 10.

Obrigado!

    
por João Santos 06.04.2017 / 15:52

1 resposta

1

Com um script em lote, você pode executar sendkeys criando um script VBS dinâmico e, em seguida, cscript execute-o quando necessário. A linha WshShell.SendKeys "{UP}" no script de lote de exemplo abaixo pressiona a seta para cima, mas substituindo isso como WshShell.SendKeys {"DOWN}" pressionará a seta para baixo.

Script em lote

@ECHO ON

DisplaySwitch

:VBSDynamicBuild
SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{UP}"                             >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{UP}"                             >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{ENTER}"                          >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"

EXIT /B

Mais recursos

por 06.04.2017 / 20:15