इसका संक्षिप्त उत्तर नहीं है।
हालांकि, लंबा जवाब यह है कि विभिन्न एपीआई कॉल और डब्लूएमआई विधियां हैं जिनका उपयोग आप इस जानकारी को खोजने के लिए कर सकते हैं, लेकिन यह अपेक्षाकृत तेज़ और सरल नहीं होने की उम्मीद है।
यदि आप एपीआई कॉल का उपयोग करना चाहते हैं, तो NtQuerySystemInformation फ़ंक्शन को SYSTEM_PROCESS_INFORMATION पैरामीटर के साथ देखें। यह उन सुंदर "गैर-दस्तावेजी" तरीकों कि अद्भुत त्याग के साथ आता है में से एक है:
NtQuerySystemInformation जा बदल या Windows के भविष्य संस्करणों में उपलब्ध नहीं हो सकता है। अनुप्रयोग को इस विषय में सूचीबद्ध वैकल्पिक कार्यों का उपयोग करना चाहिए।
तो मैं डब्लूएमआई का उपयोग करने के पक्ष में से बचने का सुझाव दूंगा।
आप WMI Win32_Process कक्षा का उपयोग वर्तमान में मशीन पर चल रही सभी प्रक्रियाओं को गिनने के लिए कर सकते हैं, और उसके बाद प्रत्येक प्रक्रिया को तब तक संभाल लें जब तक कि आप जिस फ़ाइल को ढूंढ रहे हैं उसे प्राप्त न करें। दुर्भाग्यवश, "हे, कौन सी प्रक्रिया इस फाइल को लॉक कर रही है" जाने का कोई आसान तरीका नहीं है, यह केवल उस प्रक्रिया को खोजने के लिए आपको दूसरी तरफ काम करता है जब तक आप उस फ़ाइल को लॉक नहीं कर लेते जो आपकी रुचि रखते हैं।
मैं कोडप्रोजेक्ट पर How To: (Almost) Everything In WMI via C# Part 2: Processes शीर्षक पर एक अच्छा छोटा लेख अनुशंसा करता हूं। (यदि आप उस तरह की चीज पसंद करते हैं तो भाग 1 भी एक अच्छा पढ़ा जाता है)
स्रोत
2010-03-19 19:01:28
जानकारी बेकार होगी, क्योंकि जब तक आप इसके साथ कुछ करते हैं, तो यह अब सटीक नहीं हो सकता है। –
वास्तव में जोश? आप इसके बारे में निश्चित रूप से ... – SpaceghostAli
@ स्पेसघोस्टएली फ़ाइलें हमेशा अनिश्चित काल तक बंद कर दी जाती हैं, नहीं? –