मैं अपने पिड से एक प्रक्रिया नाम प्राप्त करने की कोशिश कर रहा हूं। उपयोगकर्ता प्रशासक के रूप में चल रहा है, यूएसी सक्षम, ऊंचा नहीं।ओपनप्रोसेस() ACCESS_DENIED के साथ विफल होने पर, प्रक्रिया से फ़ाइल फ़ाइल नाम कैसे प्राप्त करें?
कुछ सिस्टम प्रक्रियाएं, जैसे services.exe
, उनकी सुरक्षा इस तरह से स्थापित है कि OpenProcess(PROCESS_QUERY_INFORMATION ...
ERROR_ACCESS_DENIED
के साथ विफल रहता है। PROCESS_QUERY_LIMITED_INFORMATION
के साथ वही परिणाम सही है। हालांकि, मैं देख सकता हूं कि Process Explorer कम से कम इन सभी प्रक्रियाओं को उनके पिड और फ़ाइल नाम के साथ सूचीबद्ध कर सकता है (जब गैर-उन्नत प्रशासक के रूप में चल रहा हो)।
मेरा सवाल है, मैं यह कैसे कर सकता हूं (पिड से फ़ाइल नाम प्राप्त करें), यह देखते हुए कि गैर-उन्नत व्यवस्थापक OpenProcess() + GetProcessImageFileName() के सामान्य मार्ग का पालन नहीं कर सकता है?
धन्यवाद जिम - वह शानदार सुझाव था। अगर किसी को उदाहरण की आवश्यकता है, तो यहां एक [एमएसडीएन वन] है (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686701%28v=vs.85%29.aspx) – baderman