2017-01-24 7 views
0

Können Sie mir helfen? Ich muss einen Dateityp von .exe ausführen. Ich habe zwei test1.txt und test2.txt Dateien bekam und in diesen Dateien gibt es zwei pathes zu pr1.exe und pr2.exe. Aber in der ersten txt-Datei ausführen ich pr1.exe und pr2.exe, in einem anderen gibt es pr2.exe und pr1.exe.Ausführen von .exe nach dem PATH C++

#include <iostream> 
#include <fstream> 
#include <process.h> 

using namespace std; 
int main(int argc, char *argv[]) { 

    cout << "argc = " << argc << endl; 
    for (int i = 0; i < argc; i++) { 
     cout << "Argument: " << i << " = " << argv[i] << endl; 
    } 

    if (argc != 2) { 
     cout << "Error" << endl; 
     exit(-1); 
    } 
    char ch; 
    ifstream infile; 
    infile.open(argv[1]); 
    if (!infile) { 
     cout << "errrrror: cant open a file" << argv[1]; 
     exit(-1); 
    } 
    while (infile) { 
     infile.get(ch); 
     cout << ch; 
    } 
    cout << endl; 
    system("pause"); 

    return 0; 
} 

Zum Beispiel: Ich schreibe Pfad der test1.txt und druckt es zwei Pfade von pr1.exe und pr2.exe es ist wie:

„C: \ Benutzer \ N \ Desktop \ Prozess \ die 2D-Datei \ Debug \ The 2d file.exe“

"C: \ Benutzer \ N \ Desktop \ Prozess \ die erste Datei \ Debug \ 1. file.exe"

Können Sie mir raten, wie ich sie ausführen soll?

Antwort

0

Was Sie suchen ist die CreateProcess Funktion können Sie weitere Informationen über msdn finden:

// start the program up 
    #include "windows.h" 

    std::wstring("pr1.exe"); 
    STARTUPINFO si;  
    PROCESS_INFORMATION pi; 

    ZeroMemory(&si, sizeof(si)); 
    si.cb = sizeof(si); 
    ZeroMemory(&pi, sizeof(pi)); 
    if(!CreateProcess(NULL, (LPWSTR)wstr.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) 
    { 
      //error 
    } 

    CloseHandle(pi.hProcess); 
    CloseHandle(pi.hThread); 

Hinweis: Wenn Sie keine Befehlszeile Paramater mit Ihrem Programm zu senden, können Sie auch tauschen das erste und zweite Argument.

+0

können Sie mir helfen, es zu bauen? –

+1

Helfen Sie es zu bauen, wie? Der Code dafür steht in der Frage. Ich bearbeite es mit 'windows.h', aber das ist wirklich alles was du brauchst –

Verwandte Themen