Czy mogę uruchomić program GUI w tle w wierszu poleceń systemu Windows?

13

Na przykład w Bash mogę to zrobić:

emacs foo.txt &

Czy jest jakiś odpowiednik w systemie Windows? Nie mogę znaleźć sposobu, aby to zrobić za pomocą emacsa w wersji dla systemu Windows.

Jason Baker
źródło

Odpowiedzi:

21

Poleceniem do uruchamiania programów z wiersza polecenia w systemie Windows jest „start”

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/AFFINITY <hex affinity>] [/WAIT] [/B] [command/program]
      [parameters]

    "title"     Title to display in  window title bar.
    path        Starting directory
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application
    I           The new environment will be the original environment passed
                to the cmd.exe and not the current environment.
    MIN         Start window minimized
    MAX         Start window maximized
    SEPARATE    Start 16-bit Windows program in separate memory space
    SHARED      Start 16-bit Windows program in shared memory space
    LOW         Start application in the IDLE priority class
    NORMAL      Start application in the NORMAL priority class
    HIGH        Start application in the HIGH priority class
    REALTIME    Start application in the REALTIME priority class
    ABOVENORMAL Start application in the ABOVENORMAL priority class
    BELOWNORMAL Start application in the BELOWNORMAL priority class
    AFFINITY    The new application will have the specified processor
                affinity mask, expressed as a hexadecimal number.
    WAIT        Start application and wait for it to terminate

Możesz użyć opcji MIN, aby uruchomić zminimalizowany program

Kevin Kuphal
źródło
2
Do Twojej wiadomości poprawne polecenie w tym przypadku to „start / B emacs foo.txt”. W przeciwnym razie działa we własnym oknie konsoli, co jest dopuszczalne, ale irytujące. :-)
Jason Baker,
3

Nie wiem, czy to wystarczy, ale spróbuj

start emacs foo.txt

Nie przejdzie w tło, ale raczej uruchomi osobne okno cmd.exe dla polecenia.

kubańczyk
źródło
2

HaHa, udało mi się. Aby użyć wzniosłego tekstu3 jako serwera podglądu przecen jest moją propozycją, po zamknięciu okna wzniosłego tekstu nie będę działać. Wypróbowałbym wiele metod, w końcu to działa. najpierw powinieneś stworzyć nietoperza, aby uruchomić ten program.

start  /B "" "D:\dev\sublime3\Sublime Text 3\subl.exe" "-s" "%USERPROFILE%\Dropbox\dev\apis\*.markdown" 

sencond, uruchom tego nietoperza zgodnie z harmonogramem.

run window+R->taskschd.msc->add a task

dodaj wyzwalacz, aby uruchomić tego nietoperza zgodnie z tym harmonogramem

dodaj tego nietoperza jako operację do wykonania

Rezultat jest taki, że działa tak, aby nie wyświetlać wysublimowanego okna tekstowego. I działa w konflikcie z wysublimowanym tekstem normalnie otwartym.

Być może zgadłeś, że używam OmniMarkupPreviewerwtyczki do podglądu Markdown. Naprawiłem ten błąd (lub nie idealną funkcję), że za każdym razem używa innego identyfikatora widoku.

Vincent
źródło
1

Zależy od używanej wersji systemu Windows.

W systemie Vista powinieneś być w stanie wpisać nazwę pliku exe na swojej ścieżce i uruchomić ją po zamknięciu wiersza polecenia.

MathewC
źródło
1

Niestety nie sądzę, że jest to możliwe.

Możesz to zrobić w skrypcie hosta skryptów systemu Windows za pomocą:

Set oShell = WScript.CreateObject("WScript.Shell")
Set oProc = oShell.Run "<your command here>",0,True

Gdzie „0” oznacza, że ​​okno wynikowe powinno być ukryte (inne opcje, patrz dokumentacja pod adresem http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx ) i „ true ”oznacza, że ​​chcesz poczekać na wykonanie polecenia przed kontynuowaniem skryptu.

Byłoby to proste ćwiczenie, aby zakończyć to ogólnym skryptem „uruchom to ukryte polecenie”, którego można użyć z wiersza poleceń.

Jeśli masz zainstalowany nowy program Microsoft PowerShell, może to być łatwiejszy sposób (jeszcze nie pracowałem z PowerShell).

Jeśli z przyjemnością zminimalizujesz okno, możesz to zrobić za pomocą polecenia „start”, o którym wspomniała inna osoba. Niestety opcja „/ B” (która brzmi tak, jakbyś tego chciał) dotyczy tylko poleceń i nie zatrzymuje aplikacji okienkowych na ekranie.

Uwaga: którekolwiek z powyższych elementów uruchamiasz program z ukrytym / zminimalizowanym oknem głównym, nic nie stoi na przeszkodzie, aby tworzył nowe okna, które są widoczne, lub zwiększał ostrość okna, gdy jest uruchomione.

David Spillett
źródło
1

sc create service i uruchom to ma na przykład specjalne znaki w pliku i parametrach

sc create ngrok "cmd /c \"c:\tmp\ngrok.exe\" http 80" type=own type=interactive
Lalo
źródło
1
sc create nrgok binpath = "cmd / c \" c: \ tmp \ ngrok.exe \ "http 80" type = własny typ = interakcja
Lalo