2

我用 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);

但它也没有工作!你能帮我吗?

4

2 回答 2

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

于 2013-08-10T08:23:17.937 回答
-1

你可以试试

cin.ignore();

也可能与 cin.get() 结合使用

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

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

于 2013-08-10T08:26:22.133 回答