हो सकता है कि मैं उपयोगकर्ता खाता नाम प्राप्त कर सकूं, जो निर्दिष्ट आईडी के साथ प्रक्रिया चलाता है। क्या इसके लिए कोई एपीआई फ़ंक्शन है?प्रक्रिया आईडी से उपयोगकर्ता नाम का पता लगाना
मैं विंडोज़, सी ++ का उपयोग कर रहा हूं।
हो सकता है कि मैं उपयोगकर्ता खाता नाम प्राप्त कर सकूं, जो निर्दिष्ट आईडी के साथ प्रक्रिया चलाता है। क्या इसके लिए कोई एपीआई फ़ंक्शन है?प्रक्रिया आईडी से उपयोगकर्ता नाम का पता लगाना
मैं विंडोज़, सी ++ का उपयोग कर रहा हूं।
कोई एपीआई फ़ंक्शन नहीं है जो यह सीधे करता है, हालांकि आप इसे करने के लिए कुछ एपीआई कॉल जोड़ सकते हैं। बेशक आपके कार्यक्रम को किसी भी एसीएल को संतुष्ट करने की आवश्यकता होगी जो उस प्रक्रिया पर लागू होती है जिसे आप जांच में रूचि रखते हैं।
सबसे पहले, प्रक्रिया आईडी को देखते हुए, आपको प्रक्रिया में एक हैंडल खोलने की आवश्यकता होगी। इसके लिए आप OpenProcess
का उपयोग कर सकते हैं, PROCESS_QUERY_INFORMATION
पहुंच का अनुरोध कर रहे हैं।
एक बार आपके पास यह संभाल हो जाने के बाद, TOKEN_QUERY
पहुंच का अनुरोध करने के लिए आप OpenProcessToken
पर कॉल कर सकते हैं।
अंत में, आप GetTokenInformation
पर कॉल कर सकते हैं, TokenUser
सूचना वर्ग का अनुरोध करते हुए, जो आपको टोकन का उपयोगकर्ता खाता देगा। यह जानकारी आपको SID
के रूप में प्रदान की जाती है। खाते के वास्तविक नाम पर SID
को परिवर्तित करने के लिए, आप LookupAccountSid
पर कॉल कर सकते हैं।
एक बार जब आप उनके साथ समाप्त हो जाते हैं तो दोनों प्रक्रिया संभाल और टोकन हैंडल पर CloseHandle
पर कॉल करना न भूलें।