2017-12-18 13 views
0

다른 .exe를 호출하고 매개 변수를 전달하는 프로그램을 만들려고합니다. 제 경우는 두 개 (dosbox.exe)를 열고 실행 파일을 실행하기위한 명령을 전달하는 프로그램을 만드는 것입니다. 테스트 프로세스를 자동화하려고합니다. 나는이exe를 다른 exe 형식으로 실행하고 매개 변수를 전달하십시오.

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

과 같은 코드를 시도했지만 그것도 작동하지 않았다. 어떤 도움이 필요합니까?

+0

태그 –

+0

그래, 혼란을 드려 죄송합니다, 나는 assemblyx86로 작성된 코드를 실행하는 도스 박스를 사용하고 어셈블리 태그 원인을 사용하지만, obliviously 문제는 아무것도가 없습니다 제거 조립 어셈블리로해라. 죄송합니다. –

답변

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()을 호출하여 성공했는지 확인하십시오.


업데이트 : 다른 폴더에있는 하나의 도스 박스에서 전경이 명령을 실행하는 방법을 부탁드립니다. 이 같은 전체 경로를 포함 할 수 있습니다 :

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

예를 들어 Visual Studio를 사용하여 C++ 코드를 실행하고 dosbox.exe가 다른 디렉토리에 있다고 가정 해 봅시다. dosbox (cmd와 같음)를 열고 실행을위한 2 개의 명령을 전달하는 코드를 작성해야하며, 백그라운드에서 실행중인 dosbox를 갖고 싶습니다. 실례 합니다만 전에 비슷한 일을하지 않았습니다. 당신의 도움을 주셔서 감사합니다. –

+0

@SayedAlesawy 업데이트를 추가했습니다. – metal