Могу ли я запустить программу с графическим интерфейсом в фоновом режиме в командной строке Windows?

13

Например, в Bash я могу сделать это:

emacs foo.txt &

Есть ли эквивалент в Windows? Я не могу найти способ сделать это с Windows-версией Emacs.

Джейсон Бейкер
источник

Ответы:

21

Команда для запуска программ из командной строки в Windows - «Пуск»

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

Вы можете использовать опцию MIN для запуска свернутой программы

Кевин Куфал
источник
2
К вашему сведению, правильной командой в этом случае является «start / B emacs foo.txt». В противном случае он запускается в собственном консольном окне, что приемлемо, но раздражает. :-)
Джейсон Бейкер
3

Я не знаю, будет ли этого достаточно, но попробуйте

start emacs foo.txt

Он не будет переходить в фоновый режим, а скорее запустит отдельное окно cmd.exe для команды.

kubanczyk
источник
2

Ха-ха, у меня получилось, использовать возвышенный текст3 в качестве сервера предварительного просмотра уценки - мое предложение, после того, как я закрыл окно возвышенного текста, я не буду работать. Я бы попробовал много методов, в конце концов это работает. Во-первых, вы должны создать летучую мышь, чтобы запустить эту программу.

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

во-вторых, запустить эту летучую мышь по расписанию задачи.

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

добавить триггер для запуска этой битой в соответствии с этим графиком

добавить эту летучую мышь как операцию для выполнения

Это приводит к тому, что он работает, чтобы не показывать окно возвышенного текста. И это работает в конфликте с возвышенным текстом, обычно открытым.

Возможно, вы уже догадались, я использую OmniMarkupPreviewerплагин для предварительного просмотра уценки. Я исправил эту ошибку (или не идеальную функцию), что она каждый раз использует разные идентификаторы представления.

Винсент
источник
1

Зависит от того, какую версию Windows вы используете.

В Vista вы должны иметь возможность ввести имя исполняемого файла в вашем пути и запустить его после закрытия командной строки.

MathewC
источник
1

К сожалению, я не думаю, что это возможно.

Вы можете сделать это в скрипте Windows Scripting Host, например:

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

Где "0" означает, что полученное окно должно быть скрыто (другие параметры см. В документации по адресу http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx ) и " true "означает, что вы хотите дождаться завершения команды, прежде чем ваш скрипт продолжит работу.

Это было бы простым упражнением, чтобы обернуть это в общий сценарий «Запустить эту команду скрытый», который вы могли бы использовать из командной строки.

Если у вас установлен новый Microsoft PowerShell, возможно, существует более простой способ сделать это (я еще не работал с PowerShell).

Если вы счастливы, что окно свернуто, вы можете сделать это с помощью команды «Пуск», которую упоминают другие. К сожалению, опция "/ B" (которая звучит так, как будто вы хотите) предназначена только для команд и не останавливает появление оконных приложений на экране.

Примечание: что бы из вышеперечисленного вы не использовали для запуска программы со скрытым / свернутым основным окном, ничто не мешает ему создавать новые видимые окна или поднимать главное окно и фокусировать его после запуска.

Дэвид Спиллетт
источник
1

sc create service и запустить его имеет специальные символы на файл и параметры, например,

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 = взаимодействовать
Lalo