我的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 :(得分: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))