2010-09-04 50 views
1

我打算從我的教練應用程序中打開遊戲過程並將一些值寫入內存。我在打開一個進程併爲內存寫入值方面沒有問題。但我無法意識到如何監控遊戲過程的可用性。例如,我打開一個正在運行的進程,用戶關閉它並再次打開。我如何在我的代碼中跟蹤這個?即使在進程關閉後(直到CloseHandle調用),OpenProcess句柄仍然有效。謝謝。C++遊戲教練過程監控

回答

2

您可以使用GetExitCodeProcess函數來查看您擁有的句柄是否指向正在運行的進程。

DWORD exitCode=0; 
::GetExitCodeProcess(hProcess, &exitCode); 
if (exitCode==STILL_ACTIVE) 
    ; //process is alive 

MSDN link

1

否則,如果它是更適合你的應用有過程終止事件通知給您(過程是一個可等待的對象):

::WaitForSingleObject(hProcess, dwTimeout);