Как использовать GetExitCodeProcess() вместо IsTask()
В Windows 3.1, API функция IsTask() можно было
использовать для определения запущен-ли всё ещё
процесс или уже завершён. В Win32 API эта функция
считается устаревшей.
В Win32 API для этих целей используется API функция
GetExitCodeProcess(). Эта функция получает в качестве
первого параметра дескриптор и возвращает код
выхода либо STILL_ACTIVE во втором параметре:
BOOL GetExitCodeProcess(hProcess, lpdwExitCode)
HANDLE hProcess;
LPDWORD lpdwExitCode;
Как альтернативу, можно так же использовать
WaitForSingleObject(). Передаём дескриптор процесса в
качестве первого параметра и значение таймаута в
качестве второго:
DWORD WaitForSingleObject(hObject, dwTimeout)
HANDLE hObject;
DWORD dwTimeout;
Дескриптор процесса сообщает, когда процесс
завершён. Если мы хотим просто опросить, то в
качестве таймаута надо передать 0 (ноль) либо
запустить другой поток со значением таймаута
INFINITE, чтобы ждать его завершения.
|