如何在c ++的windows窗体应用程序中继续打开命令提示符?

时间:2013-08-10 08:13:23

标签: c++ winforms command-prompt

我在Visual Studio 2010中用C ++在Windows窗体应用程序中编写了一个项目。我需要打开cmd,然后输入特殊命令并运行其他程序。

我使用这个功能:

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

但是通过这个功能我只看了cmd一秒钟然后就消失了。 然后我添加这一行:

cin.get();

但它不起作用。

我也使用这个功能:

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

但它也不起作用!你能帮帮我吗?

2 个答案:

答案 0 :(得分:3)

您是否尝试过以下操作?

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

/k在执行进程终止后保持cmd提示窗口打开。

但是,说实话,如果您愿意,最好使用Windows终端服务API进行更好的控制。但是,取决于你想做什么 - 这可能有点矫枉过正。

关于你的第二个问题:不要忘记逃避你的反斜杠:

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

答案 1 :(得分:-1)

你可以尝试

cin.ignore();

也许还与cin.get()

结合使用
cin.get();
cin.ignore();

我认为通常cin.get()在我的程序中运行良好。