运行exe形成另一个exe并传递参数

时间:2017-12-18 16:59:09

标签: c++ automated-tests dosbox

我正在尝试创建一个调用另一个.exe并将参数传递给它的程序。我的情况是创建一个程序来打开两个(dosbox.exe)并将命令传递给它来运行可执行文件。我正在尝试自动化测试过程。 我尝试过这样的代码

ShellExecute(NULL, "open", "C:\chat\DOSBox 0.74.lnk.exe", NULL, NULL, SW_SHOWDEFAULT);

但它甚至没有奏效。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

如何:std::system( "dosbox -c myCommand" );(假设dosbox.exe和您的自定义myCommand.exe在您的路径中)?

要在后台开始两个,请执行:

std::system( "start dosbox -c myCommand1" );
std::system( "start dosbox -c myCommand2" );
// Program has launched these in the background
// and continues execution here.

或者,您可以为每个std::system()调用启动一个主题:

auto cmd1 = std::async( [] { std::system( "dosbox -c myCommand1" ); } );
auto cmd2 = std::async( [] { std::system( "dosbox -c myCommand2" ); } );
// Program is launching these in the background
// and continues execution here.

您可能还想检查每次std::system()来电的返回值,以确保其成功。

更新:您询问如何在单个dosbox中的前台运行两个命令,该dosbox位于另一个文件夹中。你可以像这样嵌入完整的路径:

std::system( "c:\\MyDosBox\\dosbox.exe -c c:\\My\\Progams\\myCommand1.exe p1 p2 && c:\\Other\\myCommand2.exe p3 p4" );`