2016-02-08 73 views
0

我讀:如何等待winapi的非子進程?

代碼片段:

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

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

我試過WaitForSingleObjectWaitForSingleObjectEx,無論是實際的等待。

例如,假設記事本正在運行,我想等待它被某個用戶關閉。我該怎麼辦 ?

+1

您所提供的代碼看起來是正確的(假設你通過'OpenProcess'打開正確的過程,並得到有效的'HANDLE')。 「不工作」是什麼意思? – lcs

+2

當您查看'WaitForSingleObject'聯機文檔時,它有一個列表顯示可以等待的所有對象,其中不包括快照.... – 0xFFFFFFFF

回答

5

從文檔OpenProcess

如果函數成功,返回值是一個開放的句柄 指定的進程。

如果函數失敗,則返回值爲NULL。要獲得擴展錯誤 信息,請調用GetLastError。

所以,你的if語句應該是:

if (NULL != hProcess) ...