Como executar o programa em segundo plano e atender ao cenário em que a janela está fechada?

Como executar o programa em segundo plano e atender ao cenário em que a janela está fechada?

Para executar o programa em segundo plano eu uso:

START /B my.exe

Mas quando fecho a linha de comando, o processo para de ser executado. Como posso executar o programa em segundo plano a partir da linha de comando e continuar a execução se a janela de comando estiver fechada?

Responder1

Há uma diferença:

  • se my.exefor uma ferramenta de linha de comando, então START /B my.exeé equivalente a, my.exeportanto, my.exeserá eliminado se cmda janela correspondente for fechada;
  • se my.exefor um aplicativo de interface gráfica do usuário (GUI), my.exedeverá continuar em execução independentemente da cmdjanela correspondente estar fechada.

Você pode verificar a diferença usando o próximo exemplo (observe que cscript.exeé uma ferramenta de linha de comando enquanto wscript.exeé um aplicativo GUI):

start "" /B cscript 923692.vbs

em oposição a

start "" /B wscript 923692.vbs

Crie um 923692.vbsscript de amostra da seguinte maneira (ou use outro semi-infinito):

Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
  BtnCode = WshShell.Popup( _
    WScript.ScriptName & vbNewLine & "Exit script?" _
    , 5 _
    , WScript.FullName _
    , vbOKCancel + vbQuestion)
  If BtnCode = vbOK Then Exit Do 
  Wscript.Sleep 15000
Loop

Lerstart referência de comandopara o /Bsignificado da mudança.

informação relacionada