2017-01-24 5 views
0

Вы можете мне помочь? Мне нужно запустить файл типа .exe. У меня два test1.txt и test2.txt файлов и в этих файлах есть два трактов к pr1.exe и pr2.exe. Но в первом текстовом файле я бегу pr1.exe и pr2.exe, в другой есть pr2.exe и pr1.exe.Запустить .exe после взятия 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; 
} 

Например: я пишу путь test1.txt и печатает две трактов pr1.exe и pr2.exe это как:

«C: \ Users \ N \ \ процесс Desktop \ 2D-файл \ Debug \ The 2d file.exe»

"C: \ Users \ N \ Desktop \ процесс \ 1-ый файл \ Debug \ 1 file.exe"

Можете ли вы посоветовать мне, как я должен их запускать?

ответ

0

Что вы ищете является CreateProcess функция, подробнее можно узнать на msdn:

// 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); 

Примечание: Если вы не посылать никаких командной строки Счетчики с вашей программой, вы можете также поменять первый и второй аргументы.

+0

Вы можете помочь мне построить его? –

+1

Помогите вам построить его как? код для него находится в вопросе. Я отредактирую его, чтобы включить 'windows.h', но это действительно все, что вам нужно –