2014-12-05 2 views
-1

У меня есть caller.EXE, из которого я делаю 2 вызова API-интерфейсов CreateProcess(), как это. Оба API CReateProcess() пытаются запуск консоли EXEs приложений.Как открыть отдельные консоли командной строки для двух отдельных вызовов CreateProcess() API

Caller.cpp (Caller.EXE) has teh following code in it:: 
................... 
.................. 
CReateProcess(Callee_1) // For launching a console EXE which starts running in the same CMD prompt window where I've the main "CAller.EXE" running. 
.............. 
<Few lines of C++ logic> 
........ 
CReateProcess(Callee_2) // For launching another console EXE . 

Теперь проблема заключается в том, что я хочу, чтобы второй CreateProcess(Callee_2) вызов на самом деле запустить другую командную строку, но то, что происходит здесь в том, что второй CreateProcess(Callee_2) вызов не запускается anotehr CMD строки. То же Приглашение CMD исполняет Callee_1 в нем.

Я вижу, что в моем кодовом номере CreateProcess() является успешным для обоих времен.

Я хочу, чтобы второй CreateProcess(Callee_2) вызывал на самом деле запускал другую командную строку. Как мне это достичь? Я думаю, что должен указывать его как часть входных параметров на CreatyeProcess(Callee_2) звонок.

+0

Как это обозначено 'c'? –

+0

Мне не совсем ясно, чего вы хотите достичь, хотите ли вы запустить 'cmd.exe'? Или вы просто хотите, чтобы система открывала вам окно для стандартного вывода нового процесса? –

+0

Оба вызова API CReateProcess() пытаются запустить консольные приложения EXE. Поэтому я хочу, чтобы 2 разных CMD-фильтра были открыты, когда bothe «Callee_1 & Callee_2» сбросил свои консольные выходы в 2 отдельных CMD-сообщениях (консолях). – codeLover

ответ

2

Я не очень хорошо осведомлен о Windows, или MSDN, но, насколько я помню,

CReateProcess(Callee_1) 

, который должен быть на самом деле CreateProcess(), взятый один параметр DWORD fdwCreate, где,

CREATE_NEW_CONSOLE 

может чтобы указать, что новый процесс должен иметь новую консоль вместо наследования родительской консоли.

Возможно, ссылка this полезна для вас.

+0

Я наблюдаю противоречивое поведение с CREATE_NEW_CONSOLE. Если я использую его в 1st CreateProcess (Callee_1), он создает новую консоль, но не во втором вызове CreateProcess (CAllee_2)? Есть ли ограничение на no: консолей, которые можно открыть? – codeLover

+0

@codeLover, как я уже сказал, я не очень хорошо разбираюсь в этом, поэтому я не уверен, но [это] (http://stackoverflow.com/q/20692490/3137699) может вам помочь. –

Смежные вопросы