Запустите exe из другого exe и передайте параметры

Я пытаюсь создать программу, которая вызывает другой .exe и передает ему параметры. Мой случай заключается в создании программы для открытия двух (dosbox.exe) и передачи ей команд для запуска исполняемых файлов. Я пытаюсь автоматизировать процесс тестирования.
Я пробовал такой код

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

Но это даже не сработало. Любая помощь?

0

Решение

Как насчет: 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() позвоните, чтобы убедиться, что это удалось.


Обновить: Вы спрашиваете, как запустить две команды на переднем плане в одном доске, который находится в другой папке. Вы можете встроить полный путь следующим образом:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]