2013-08-10 1 views
2

Я написал проект в приложении Windows Forms в C++ Visual Studio 2010. Мне нужно открыть cmd, а затем ввести специальную команду и запустить другую программу.Как я могу открыть командную строку в приложении Windows Forms в C++?

Я использую эту функцию:

system("cmd.exe /c dir c:\\"); 

, но с помощью этой функции я только видел CMD для второго, а затем он исчез. затем добавить эту строку:

cin.get(); 

, но это не сработало.

также я использую эту функцию:

char program[] = "C:\Windows\System32\cmd.exe"; 
WinExec((LPCSTR)program, SW_SHOWMINIMIZED); 

но это не сработало! Не могли бы вы мне помочь?

+0

Явное литье массива символов в 'const char *' абсолютно бессмысленно, и любой хороший компилятор должен предупредить об этих escape-последовательностях. – chris

ответ

3

Вы пробовали следующее?

system("cmd /k dir c:\\");

/k сохраняет CMD окно командной строки открытым после того, как процесс выполнения окончилась.

Но, если честно, может быть лучше использовать API терминалов Windows для более тонкого управления, если вы этого желаете. Но, в зависимости от того, что вы хотите сделать - это может быть излишним.

И, что касается вашего второго вопроса: не забудьте, чтобы избежать вашего слеша:

const char program[] = "C:\\Windows\\System32\\cmd.exe"; 
WinExec((LPCSTR)program, SW_SHOWMINIMIZED); 

Ссылки: https://superuser.com/questions/306167/how-to-prevent-the-command-prompt-from-closing-after-execution

+0

нет друга! в чем разница? –

+0

@GolnazSaraji: Отредактировано – jrd1

+0

Большое вам спасибо jrd1 :-) хорошо работает: -bd –

-1

Вы можете попробовать

cin.ignore(); 

возможно также в комбинации с cin.get()

cin.get(); 
cin.ignore(); 

Я думаю, что обычно cin.get() отлично работал в моих программах.

+0

поблагодарить u за помощь ур. Но это не достаточно в случае моей проблемы;) –