C ++游戏培训师流程监控

时间:2010-09-04 03:02:45

标签: c++ winapi memory process

我将从我的教练应用程序打开游戏过程并将一些值写入内存。打开进程并将值写入内存没有问题。但我无法实现如何监控游戏进程的可用性。例如,我打开了一个正在运行的进程,用户将其关闭并再次打开。如何在我的代码中跟踪这个?即使在进程关闭之后,OpenProcess句柄也是有效的(直到调用CloseHandle)。谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用GetExitCodeProcess功能查看您所使用的句柄是否指向正在运行的进程。

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

MSDN link

答案 1 :(得分:1)

否则,如果它更适合您的应用程序向您发出进程终止事件(进程是一个可等待的对象):

::WaitForSingleObject(hProcess, dwTimeout);