Мониторинг процессов в C ++ - PullRequest
       2

Мониторинг процессов в C ++

1 голос
/ 04 сентября 2010

Я собираюсь открыть игровой процесс из моего приложения для тренера и записать некоторые значения в память. У меня нет проблем с открытием процесса и записью значения в память. Но я не могу понять, как контролировать доступность игрового процесса. Например, я открыл запущенный процесс, пользователь закрыл его и снова открыл. Как я могу отследить это в моем коде? Дескриптор OpenProcess действителен даже после закрытия процесса (до вызова CloseHandle). Спасибо.

Ответы [ 2 ]

2 голосов
/ 04 сентября 2010

Вы можете использовать функцию GetExitCodeProcess, чтобы увидеть, указывает ли ваш дескриптор на запущенный процесс.

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

MSDN-ссылка

1 голос
/ 06 сентября 2010

Или же, если для вашего приложения более подходящим является оповещение о событии завершения процесса (процесс является ожидаемым объектом):

::WaitForSingleObject(hProcess, dwTimeout);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...