Posso eseguire un programma GUI in background sulla riga di comando di Windows?


13

Ad esempio, in Bash, posso fare questo:

emacs foo.txt &

C'è qualche equivalente in Windows? Non riesco a capire un modo per farlo con la versione Windows di Emacs.

Risposte:


21

Il comando per avviare i programmi dalla riga di comando in Windows è "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

È possibile che si desideri utilizzare l'opzione MIN per avviare un programma ridotto a icona


2
Cordiali saluti, il comando corretto in questo caso è "start / B emacs foo.txt". Altrimenti, viene eseguito nella propria finestra della console, il che è accettabile, ma fastidioso. :-)
Jason Baker,

3

Non so se sarà sufficiente, ma prova

start emacs foo.txt

Non andrà in background ma avvierà piuttosto una finestra cmd.exe separata per il comando.


2

HaHa, ci sono riuscito, Usare il sublime text3 come server di anteprima del markdown è la mia proposta, dopo aver chiuso la finestra del sublime text, non funzionerò. Proverei molti metodi, finalmente funziona. per prima cosa, dovresti creare una mazza per avviare questo programma.

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

prima, esegui questa mazza in base all'attività pianificata.

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

aggiungere un grilletto per eseguire questa mazza secondo questo programma

aggiungi questa mazza come operazione da eseguire

Questo risultato è che funziona per evitare di mostrare una finestra di testo sublime e funziona in conflitto con un testo sublime normalmente aperto.

Forse hai indovinato, io uso il OmniMarkupPreviewerplug-in per visualizzare l'anteprima del markdown. Ho corretto questo bug (o non la funzionalità perfetta) che utilizza ogni volta un ID di visualizzazione diverso.


1

Dipende dalla versione di Windows in uso.

In Vista dovresti essere in grado di digitare il nome dell'exe nel tuo percorso e averlo attivo dopo la chiusura del prompt dei comandi.



1

Purtroppo non penso che ciò sia possibile.

Puoi farlo in uno script di Windows Scripting Host, con qualcosa del tipo:

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

Dove lo "0" indica che la finestra risultante deve essere nascosta (per altre opzioni, consultare la documentazione all'indirizzo http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx ) e il " true "indica che si desidera attendere il completamento del comando prima che lo script prosegua.

Sarebbe un semplice esercizio racchiuderlo in uno script generico "esegui questo comando nascosto" che potresti usare dalla riga di comando.

Se hai installato il nuovo nuovo PowerShell di Microsoft, potrebbe esserci un modo più semplice per farlo (non ho ancora lavorato con PowerShell).

Se sei felice di avere la finestra ridotta a icona, puoi farlo con il comando "start" dell'altra menzione. Sfortunatamente l'opzione "/ B" (che suona come è quello che vuoi) è solo per i comandi e non impedisce alle applicazioni con finestre di apparire sullo schermo.

Nota: quale delle opzioni precedenti utilizzate per avviare un programma con una finestra principale nascosta / minimizzata, non c'è nulla che possa impedirgli di creare nuove finestre visibili o di mettere in primo piano la finestra principale una volta che è in esecuzione.


1

sc create service ed eseguirlo ha caratteri speciali sul file e sui parametri, ad esempio

sc create ngrok "cmd /c \"c:\tmp\ngrok.exe\" http 80" type=own type=interactive

1
sc create nrgok binpath = "cmd / c \" c: \ tmp \ ngrok.exe \ "http 80" type = own type = interact
Lalo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.