2013-04-12 6 views
9

मुझे एक ऐसा एप्लिकेशन बनाने की आवश्यकता है जिसे "सी: \ प्रोग्राम फ़ाइलें", "उपयोगकर्ता [उपयोगकर्ता नाम]" और Sys32 में फ़ाइलें/फ़ोल्डर्स बनाने की आवश्यकता हो। इसके अलावा एप्लिकेशन को कुछ रजिस्ट्री प्रविष्टि बनाने की आवश्यकता है।विजुअल स्टूडियो 2005 में मैनिफेस्ट फ़ाइल का उपयोग कर व्यवस्थापक विशेषाधिकारों के साथ एप्लिकेशन कैसे चलाएं?

इस एप्लिकेशन को Vista और उच्चतर पर काम करने की आवश्यकता है। साथ ही, विंडोज सर्वर 2003 और उच्चतर पर।

उपर्युक्त ऑपरेटिंग सिस्टम में उपयोगकर्ता खाता नियंत्रण (यूएसी) की अवधारणा है, जहां प्रोग्राम फ़ाइलों तक पहुंचने और रजिस्ट्री में लिखने के लिए व्यवस्थापकीय विशेषाधिकारों की आवश्यकता होती है।

मैंने कई मंचों में देखा और पाया कि माइक्रोसॉफ्ट एसडीके का उपयोग करके हम जांच सकते हैं कि वर्तमान उपयोगकर्ता के पास व्यवस्थापकीय विशेषाधिकार हैं या नहीं। लेकिन "चेकटोकनमेम्बरशिप" फ़ंक्शन विस्टा और ओएस के उच्च संस्करण के लिए विफल रहता है।

मुझे एक समाधान भी मिला जहां ओएस को यह बताने के लिए मैनिफेस्ट फ़ाइल का उपयोग किया जा सकता है कि वर्तमान एप्लिकेशन को व्यवस्थापकीय विशेषाधिकारों की आवश्यकता है। यह "requestExecutionLevel" टैग का उपयोग करके किया जाता है।

मैं एप्लिकेशन बनाने के लिए विजुअल स्टूडियो 2005 का उपयोग कर रहा हूं। जब हम विजुअल स्टूडियो में कोई एप्लिकेशन बनाते हैं तो एक डिफ़ॉल्ट मैनिफेस्ट फ़ाइल बनाई जाती है। क्या मैं इस अनुरोधित फ़ाइल को "requestExecutionLevel" टैग को शामिल करने के लिए बदल सकता हूं, ताकि मेरा एप्लिकेशन हमेशा व्यवस्थापकीय विशेषाधिकारों के साथ चलता है?

क्या कोई अन्य तरीका है जिसके माध्यम से मेरा एप्लिकेशन प्रशासक विशेषाधिकारों के साथ चलता है बिना उपयोगकर्ता (व्यवस्थापक या मानक) को मेरे एप्लिकेशन को "व्यवस्थापक के रूप में चलाने" के रूप में चलाने के बिना?

धन्यवाद!

+2

यह आपको http://stackoverflow.com/questions/8139480/c-console-application-prompt-run-as-admin-to-run-as-administrator और इस http करने में मदद कर सकते हैं: //msdn.microsoft.com/en-us/library/bb756929.aspx –

+1

सुनिश्चित नहीं है कि आपका प्रश्न क्या है/था। लेकिन आपको यूएसी के तहत अपने टोकन को व्यवस्थापक को बढ़ाने की जरूरत है। यदि आपने माइक्रोसॉफ्ट एसडीके और नमूना कोड के माध्यम से पढ़ने के लिए समय निकाला है तो आपको यह कैसे करना है इसका एक आदर्श उदाहरण होगा। – Dan

उत्तर

22

आपको परियोजना गुणों में इसके लिए एक विकल्प मिलना चाहिए लिंकर -> मैनिफेस्ट फ़ाइल -> यूएसी निष्पादन स्तर। इसे requireAdminstrator पर सेट करें।

इससे आपको डिफॉल्ट जेनरेट किए गए मेनिफेस्ट को requestedExecutionlevel शामिल करने का कारण होगा, ताकि आपके उपयोगकर्ताओं को अपने विशेषाधिकारों को ऊपर उठाने के लिए स्वचालित रूप से संकेत दिया जा सके यदि वे पहले से ऊपर नहीं हैं।

screenshot of visual studio UAC options

संबंधित मुद्दे