इसका उपयोग न करने के विरोध में WaitForSingleObject
का उपयोग करने का क्या फायदा है? कोड का पहला ब्लॉक previous answer से है। दूसरा ब्लॉक यह है कि मैं इसे कैसे कर रहा हूं।प्रतीक्षा आईडी की जांच करते समय प्रतीक्षा करें
BOOL IsProcessRunning(DWORD pid)
{
HANDLE process = OpenProcess(SYNCHRONIZE, FALSE, pid);
DWORD ret = WaitForSingleObject(process, 0);
CloseHandle(process);
return (ret == WAIT_TIMEOUT);
}
बनाम
BOOL IsProcessRunning(DWORD pid)
{
HANDLE process = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid);
const bool exists = (process != NULL);
CloseHandle(process);
return exists;
}
यह SYNCHRONIZE का उपयोग कर की तरह लगता है उच्च विशेषाधिकारों की आवश्यकता है और मैं केवल वर्तमान उपयोगकर्ता की पीआईडी जाँच करना चाहते हैं।
आपको कुछ तुलनात्मक कार्य जोड़ने के लिए - आप प्रक्रिया पूर्ण होने की स्थिति निर्धारित करने के लिए 'WaitForSingleObject' के विरुद्ध' GetExitCodeProcess' की तुलना करना चाहेंगे। –