2016-02-08 3 views
0

Я читаю:как ждать не-дочернего процесса с winapi?

Фрагмент кода:

HANDLE hProcess = OpenProcess(SYNCHRONIZE, TRUE, inProcessID); 

if (NULL == hProcess) 
{ 
    WaitForSingleObject(hProcess,INFINITE); 
} 

Я пытался WaitForSingleObject и WaitForSingleObjectEx, ни на самом деле ждут.

Например, предположим, что блокнот запущен, и я хочу дождаться его закрытия кем-либо из пользователей. Что мне делать ?

+1

код вы предоставили выглядит правильно (при условии, вы открываете правильный процесс с помощью 'OpenProcess', и получить правильный' HANDLE'). Что значит «не работает»? – lcs

+2

Когда вы смотрите на онлайн-документ 'WaitForSingleObject', у него есть список, который показывает, что все объекты можно ждать, что не включает Snapshot .... – 0xFFFFFFFF

ответ

5

Из документации для OpenProcess:

Если функция завершается успешно, возвращаемое значение является открытым дескриптор указанного процесса .

Если функция не работает, возвращаемое значение равно NULL. Чтобы получить расширенную ошибку информацию, вызовите GetLastError.

Так ваш, если заявление должно быть:

if (NULL != hProcess) ... 
Смежные вопросы