我将从我的教练应用程序打开游戏过程并将一些值写入内存。打开进程并将值写入内存没有问题。但我无法实现如何监控游戏进程的可用性。例如,我打开了一个正在运行的进程,用户将其关闭并再次打开。如何在我的代码中跟踪这个?即使在进程关闭之后,OpenProcess句柄也是有效的(直到调用CloseHandle)。谢谢。
答案 0 :(得分:2)
您可以使用GetExitCodeProcess
功能查看您所使用的句柄是否指向正在运行的进程。
DWORD exitCode=0;
::GetExitCodeProcess(hProcess, &exitCode);
if (exitCode==STILL_ACTIVE)
; //process is alive
答案 1 :(得分:1)
否则,如果它更适合您的应用程序向您发出进程终止事件(进程是一个可等待的对象):
::WaitForSingleObject(hProcess, dwTimeout);