Как позвонить в CMD, не открывая окно - PullRequest
18 голосов
/ 25 ноября 2010

У меня есть метод C ++ (с использованием Visual Studio, если он помогает), который вызывает cmd следующим образом:

start \B example.exe arg1 arg2 arg3

Проблема в том, что этот вызов открывает окно (cmd). Если у меня открыт другой cmd, \ B работает, но если нет, то открывается новое окно.

Я тоже пробовал без запуска \ B, но это тоже самое ...

Я хочу избежать этого нового окна, но я не знаю как. Есть идеи?

Ответы [ 5 ]

11 голосов
/ 01 декабря 2010

Я не знаю, как это сделать в C ++, но чтобы открыть новое окно командной строки, которое также свернуто (или «скрыто») с помощью командного файла, который я использовал бы:

start /min cmd

Или, если вы запустите командную строку, вы можете набрать:

@echo off
cls && start /b cmd

Это перезапускает текущее окно командной строки, не закрывая его, однако все ранее установленные переменные среды сбрасываются. Надеюсь это поможет!

(PS. Это было проверено и успешно на Windows 7 Ultimate OS)

6 голосов
/ 13 февраля 2015

Вы можете использовать переключатель /C

    cmd.exe /c dir/b

, при этом будет запущена команда dir/b, и выход не будет отображаться, но если вы хотите установить ECHOвыключите /q переключатель

    cmd.exe /c/q dir
3 голосов
/ 25 ноября 2010

Попробуйте ShellExecuteEx , настройка nПоказать = SW_HIDE.

2 голосов
/ 25 ноября 2010

Как насчет использования WSH вместо CMD Prompt?

. Вы можете использовать .Run, 0, чтобы скрыть окно, например:

Set objShell = WScript.CreateObject("WScript.Shell")
isHidden = 0 'change 0 to 1 to show the CMD prompt
objShell.Run "%comspec% /c myfile.bat", isHidden
0 голосов
/ 25 ноября 2010

Просто позвоните без запуска:

example.exe arg1 arg2 arg3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...