CreateProcess创建过程,但游戏不起作用

时间:2015-06-05 09:12:33

标签: c++ process game-engine

我的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 );

感谢您的帮助。

1 个答案:

答案 0 :(得分: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))