Jak uruchomić program w tle i obsłużyć scenariusz, w którym okno jest zamknięte?

0

Aby uruchomić program w tle, używam:

START /B my.exe

Ale po zamknięciu linii poleceń proces przestaje działać. Jak uruchomić program w tle z linii poleceń i kontynuować pracę, jeśli okno poleceń jest zamknięte?

blue-sky
źródło
Nie możesz. Dlaczego po prostu nie uciekniesz my.exe bezpośrednio z linii poleceń, zamiast używać start?
DavidPostill

Odpowiedzi:

0

Jest różnica:

  • jeśli my.exe to narzędzie wiersza poleceń START /B my.exe jest równa my.exe w związku z tym my.exe zostanie zabity, jeśli odpowiada cmd okno jest zamknięte;
  • jeśli my.exe to aplikacja graficznego interfejsu użytkownika (GUI) my.exe powinien działać bez względu na odpowiednie cmd okno jest zamknięte.

Możesz sprawdzić różnicę za pomocą następnego przykładu (zwróć uwagę na to cscript.exe jest narzędziem linii poleceń podczas wscript.exe to aplikacja GUI):

start "" /B cscript 923692.vbs

w przeciwieństwie do

start "" /B wscript 923692.vbs

Utwórz próbkę 923692.vbs skrypt w następujący sposób (lub użyj innego pół-nieskończonego):

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

Czytać start odwołanie do polecenia dla /B zmienić znaczenie.

JosefZ
źródło