2015-06-05 58 views
-4

我有問題createProcess函數。該過程已創建,但遊戲無法運行,遊戲不在「應用程序」選項卡中。沒有錯誤。我的代碼:CreateProcess創建過程,但遊戲不能正常工作

if(!CreateProcessA("D:\\GTASA\\GTASA\\gta_sa.exe", GetCommandLineA(), NULL, 
    NULL, false, CREATE_SUSPENDED, NULL, NULL, &si, &pi)) 
    { 
     printf("Could not create process. (%ld)", GetLastError()); 
     return 0; 
    } 

    // tutaj mozna sie wczepic w gta 
    ResumeThread (pi.hThread); 
    // tutaj juz nie 
    if(!pi.hThread){ 
    outputToConsole("Gra nie uruchomila się poprawnie."); 
    } 
    outputToConsole("Gra zostala uruchomiona!"); 

    WaitForSingleObject(pi.hProcess, INFINITE); 
    outputToConsole("Proces gry zostal wylaczony."); 
    CloseHandle(pi.hProcess); 
    CloseHandle(pi.hThread); 

感謝您的幫助。

回答

0

你應該開始遊戲在它自己的目錄,像這樣:

string strDir = game_path.substr(0, game_path.find_last_of("/\\")); //Get the process dir name 
     //STart the process in its dir 
     if (!CreateProcess(game_path.c_str(), NULL, NULL, NULL, FALSE, 
         CREATE_SUSPENDED, NULL, strDir.c_str(), &siLoadee, &m_piLoadee)) 
+0

謝謝!它的工作! :D – ThePiotrek

+0

然後您需要接受答案;) – izissise