2011-06-15 13 views
5

मुझे विंडोज 7 (सी: \ उपयोगकर्ता \ CurUser) में वर्तमान उपयोगकर्ता की निर्देशिका में एक आईएनआई फ़ाइल लिखनी है। CurUser एक व्यवस्थापक नहीं है। मेरे इंस्टॉलर को व्यवस्थापकीय विशेषाधिकारों की आवश्यकता है। तो मेरा सेटअप इस तरह दिखता है:इनो सेटअप: व्यवस्थापक के रूप में इंस्टॉलर चलाते समय वर्तमान उपयोगकर्ता निर्देशिका कैसे प्राप्त करें?

[Setup] 
PrivilegesRequired=admin 

जब मैं इंस्टॉलर चलाता हूं तो यह व्यवस्थापक को लॉगिन करने के लिए संकेत देता है। उस बिंदु से, सभी उपयोगकर्ता स्थिरांक, userappdata, आदि सी: \ उपयोगकर्ता \ AdminUser हैं ... इसलिए मुझे AdminUser के रूप में स्थापित करते समय CurUser खोजने का कोई तरीका चाहिए।

कोड उदाहरणों की सराहना की जाती है। धन्यवाद।

+0

पता नहीं है कि यह संभव है, क्योंकि अब आप व्यवस्थापक उपयोगकर्ता के तहत setup.exe चला रहे हैं, और मुझे नहीं लगता कि यह विशेषाधिकार का अनुरोध करने वाले उपयोगकर्ता का कोई ज्ञान है। –

+0

क्या आईआईओ के साथ देख रहे डीआईआर की तलाश करना संभव है? मुझे पता है कि डीआईआर * \ abc \ xyz \ है। – PM2

+0

आप निर्देशिका ढूंढने के लिए 'FindFirst', 'FindNext', और' FindClose' दिनचर्या का उपयोग कर सकते हैं। –

उत्तर

3

आपको अपने सेटअप को दो भागों में विभाजित करना चाहिए। पहला गैर-व्यवस्थापक भाग वर्तमान उपयोगकर्ता निर्देशिका में आईएनआई फ़ाइल लिखता है और यह दूसरा सेटअप भाग कहता है जिसके लिए व्यवस्थापक निजीकरण की आवश्यकता होती है।

2

ऐप द्वारा आवश्यक सभी उपयोगकर्ता विशिष्ट फ़ाइलों/सेटिंग्स को ऐप द्वारा लिखा जाना चाहिए यदि वे मौजूद नहीं हैं। यदि इसे सेटअप से आने की आवश्यकता है, तो आप ऐप के प्रतिलिपि बनाने या उपयोग करने के लिए इसे "डिफ़ॉल्ट" के रूप में वैश्विक स्थान पर लिख सकते हैं।

इसका यह भी अर्थ है कि आपका ऐप सेटअप पर चलने वाले उपयोगकर्ता की बजाय सिस्टम पर सभी उपयोगकर्ताओं के लिए काम करेगा।

0

मेरे मामले में, मैंने {appdata} के बजाय {commonappdata} पर स्विच किया, क्योंकि मेरा डेटा सभी उपयोगकर्ताओं के लिए समान था।

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