我在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);
但它也不起作用!你能帮帮我吗?
答案 0 :(得分:3)
您是否尝试过以下操作?
system("cmd /k dir c:\\");
/k
在执行进程终止后保持cmd提示窗口打开。
但是,说实话,如果您愿意,最好使用Windows终端服务API进行更好的控制。但是,取决于你想做什么 - 这可能有点矫枉过正。
关于你的第二个问题:不要忘记逃避你的反斜杠:
const char program[] = "C:\\Windows\\System32\\cmd.exe";
WinExec((LPCSTR)program, SW_SHOWMINIMIZED);
答案 1 :(得分:-1)
你可以尝试
cin.ignore();
也许还与cin.get()
结合使用cin.get();
cin.ignore();
我认为通常cin.get()在我的程序中运行良好。