मेरे पास एक सी # एप्लिकेशन है जो ट्रे आइकन चलाता है और प्रदर्शित करता है। मेरे पास मेरे ट्रे एप्लिकेशन के लिए एक इंस्टॉलर है जो इंस्टॉलेशन के बाद एप्लिकेशन लॉन्च करता है। इंस्टॉलर को व्यवस्थापक अनुमतियों की आवश्यकता होती है जबकि ट्रे आइकन सामान्य अनुमतियों के साथ चलाना आवश्यक है। मेरा इंस्टॉलर वर्तमान में इसे तोड़ता है - जब स्थापित ट्रे एप्लिकेशन लॉन्च किया जाता है तो यह इंस्टॉलर प्रक्रिया से व्यवस्थापक अनुमतियां प्राप्त करता है।सक्रिय अनुमतियों के बजाय उपयोगकर्ता अनुमतियों के साथ प्रोग्राम कैसे लॉन्च करें
मेरे इंस्टॉलर के हिस्से के रूप में मैं कुछ कस्टम काम करने के लिए एक सी # एप्लिकेशन लॉन्च कर रहा हूं। इस छोटे से आवेदन वर्तमान में फोन करके ट्रे आवेदन की शुरूआत:
Process.Start(@"path/to/my/tray/app.exe");
वहाँ के बजाय संस्थापक को दिया ऊंचा अनुमतियाँ वर्तमान उपयोगकर्ता के अनुमति के साथ ट्रे ऐप्लिकेशन का इस्तेमाल करने कोई तरीका है?
मैंने सुना है कि ऐसा करने का अनुशंसित तरीका इंस्टॉलर के चारों ओर एक रैपर EXE रखना है जो इंस्टॉलर लॉन्च करता है और फिर स्थापित प्रोग्राम लॉन्च करता है। यदि संभव हो तो मैं इससे बचना चाहूंगा।
मैं एक एमएसआई इंस्टॉलर बनाने के लिए वाईएक्स का उपयोग कर रहा हूं, इसलिए मैं उन समाधानों को भी स्वीकार करूंगा जो सीधे वाईएक्स/एमएसआई से काम करते हैं।
UseShellExecute स्पष्ट रूप से सत्य के लिए डिफ़ॉल्ट रूप से डिफॉल्ट किया गया है, ऐसा लगता है कि यह मदद नहीं करेगा हालांकि मैंने अभी तक इसे आजमाया है। आपके उत्तर के लिए धन्यवाद लेकिन मुझे संदेह है कि रैपर एक्सई एकमात्र "साफ" समाधान होगा। – mchr
मैंने अब इसका परीक्षण किया है और यह काम नहीं करता है। मैंने http://msdn.microsoft.com/en-us/library/aa446583%28v=vs.85%29.aspx पर कॉल करने और नई सुरक्षा टोकन का उपयोग करके लॉन्च करने वाले सी ++ डीएल को भी आजमाया है। हालांकि, यह उस उपयोगकर्ता को बदल नहीं सकता है जो लॉन्च प्रक्रिया का मालिक है - केवल लॉन्च की गई प्रक्रिया की अनुमतियां ही हैं। – mchr