Verifica automaticamente se um programa está (ainda) em execução. Se não, inicie

5

Existe uma ferramenta que verifica constantemente, se outro processo está sendo executado, e se não, inicia? Para o Windows 7-10.

Eu tenho um processo em segundo plano em execução, um software livre que preciso. Mesmo que funcione muito bem na maior parte do tempo, às vezes ele simplesmente falha e desaparece sem aviso prévio. Apenas reiniciar este software resolveria meu problema.

    
por bortran 26.02.2016 / 10:14

2 respostas

3

Usando informações de esta pergunta no Stack Overflow, você poderia criar um arquivo .bat assim (usei o Powerpoint como exemplo):

tasklist /FI "IMAGENAME eq POWERPNT.EXE" 2>NUL | find /I /N "POWERPNT.EXE">NUL
if NOT "%ERRORLEVEL%" == "0" start "" "C:\Program Files\Microsoft Office\root\Office16\POWERPNT.EXE"

Você pode então criar uma tarefa agendada para executar isso a cada minuto ou por quanto tempo puder ir sem o processo ser executado

Como alternativa, você pode iniciar o aplicativo em um loop infinito:

@echo off
:1
"C:\Program Files\Microsoft Office\root\Office16\POWERPNT.EXE"
goto :1

Isso reabriria o programa assim que ele fosse fechado.

    
por 26.02.2016 / 10:40
4

Esta é uma das coisas que você pode fazer com AutoIt .

Crie um script pequeno que realize uma verificação periodicamente. Algo tão simples como ...

While True  
  If (ProcessExists("prog.exe") = 0) Then  
    Run("prog.exe")  
  EndIf  
  Sleep(1000)  
Wend

... ou até mesmo ...

While True  
  RunWait("prog.exe")  
Wend

... ou mais complexo, se desejar.

O script pode ser compilado para um exe e executado silenciosamente em segundo plano.

    
por 26.02.2016 / 10:54