मुझे पता है कि यह क्यों हो रहा है और मुझे पता है कि मुझे विंडोज 7/8 को समायोजित करने के लिए अपने प्रोग्राम को संशोधित करने की आवश्यकता है।
अच्छा, तो मैं एक मृत घोड़े को मारने की कोशिश नहीं करूंगा (हालांकि यह एक है जिसे मैं नियमित रूप से अच्छा झुकाव देना पसंद करता हूं क्योंकि बहुत से लोग इसे गलत समझते हैं)। मैं केवल यह इंगित करूंगा कि आपके प्रोग्राम ने कभी भी विंडोज़ के पुराने संस्करणों पर भी सही तरीके से काम किया है, यह एक गुप्त बग का सौभाग्यपूर्ण परिणाम था। "प्रोग्राम फ़ाइलें" फ़ोल्डर कभी भी लिखने योग्य नहीं था। आप विंडोज के नए संस्करणों के कुछ मूर्ख "मुद्दे" के आसपास काम नहीं कर रहे हैं। यह ऐसा कुछ है जो शुरुआत से ही किया जाना चाहिए था।
मुझे पता है कि "उपयोगकर्ता" के तहत एपडाटा फ़ोल्डर डेटाबेस/शब्द फ़ाइलों/बैकअप को संग्रहीत करने के लिए अनुशंसित स्थान है। हालांकि, मेरे सिस्टम पर जो छुपा हुआ है और मैं इसे उपयोगकर्ता (आसानी से छुपा नहीं) के लिए आसानी से सुलभ करना चाहता हूं, इसलिए मैं MyDocuments फ़ोल्डर सोच रहा था?
मुझे पता है कि यह जटिल है, तो मुझे देखने दो कि क्या मैं इसे यथासंभव सरल और नरक बनाने की कोशिश कर सकता हूं;
"एप्लिकेशन डेटा" फ़ोल्डर हैं अपने आवेदन और से आंतरिक उपयोग के लिए डेटा के लिए नहीं या देखा जाना चाहिए उपयोगकर्ता द्वारा सीधे चालाकी से करना है।
"मेरे दस्तावेज़" फ़ोल्डर वह सब कुछ है जो उपयोगकर्ता को देखने और सीधे उपयोग करने में सक्षम होना चाहिए; दूसरे शब्दों में, उपयोगकर्ताआवेदन डेटा के बजाय डेटा।
और फिर इन दो फ़ोल्डर प्रकारों में से प्रत्येक के प्रति उपयोगकर्ता और वैश्विक रूप भी हैं। "ऐप डेटा" के मामले में, प्रति-उपयोगकर्ता संस्करण को स्थानीय में विभाजित किया जाता है (जो केवल स्थानीय मशीन पर रहता है) और रोमिंग (जो उस उपयोगकर्ता के नेटवर्क पर किसी भी मशीन पर उपयोगकर्ता खाते का अनुसरण करता है)।
तो यदि आप फ़ाइलों को "उपयोगकर्ता के लिए आसानी से सुलभ" होना चाहते हैं, तो आपको निश्चित रूप से "मेरे दस्तावेज़" फ़ोल्डर का उपयोग करना चाहिए। यह उपयोगकर्ता के लिए दस्तावेज है।
कारण ये सभी जटिल नियम मौजूद हैं क्योंकि माइक्रोसॉफ्ट और एडोब के रूप में ऐसे लोकप्रिय विक्रेताओं द्वारा दुर्व्यवहार किए गए अनुप्रयोगों में उपयोगकर्ता के "माय डॉक्यूमेंट्स" फ़ोल्डर में जंक डंप करने की प्रवृत्ति थी, जो कि उपयोगकर्ता कभी नहीं था सीधे साथ बातचीत करने का इरादा है। उपयोगकर्ता तब अपने दस्तावेज़ फ़ोल्डर खोलेंगे और सामानों का एक समूह देखेंगे जो उन्होंने कभी नहीं रखा था। "ये सभी चीजें क्या हैं? ये मेरी नहीं हैं। मेरे दस्तावेज़ कहां हैं?" मेरी मां ने मुझे पिछले हफ्ते मुझसे पूछा जब मैंने अपने पीसी को अपडेट किया।
यह स्पष्ट नहीं है कि MyDocuments कैसे ढूंढें। क्या कोई मदद कर सकता है?
वीबी 6 से? आपके द्वारा देखे गए प्रश्न में Bob और Mark द्वारा सुझाए गए एक आसान तरीका है। इसमें शेल ऑब्जेक्ट बनाना और उस फ़ोल्डर के स्थान के लिए पूछताछ करना शामिल है जिसमें आप रुचि रखते हैं।
जो भाग गुम है वह स्थिर है जो "मेरे दस्तावेज़" फ़ोल्डर से मेल खाता है। आपको स्थिरांक here की पूरी सूची मिल जाएगी। जिसे आप चाहते हैं उसे ssfPERSONAL
नाम दिया गया है (क्योंकि पुराने दिनों में जब यह एपीआई बनाया गया था, विंडोज़ मित्रवत नहीं था और "मेरे दस्तावेज़" नाम का आविष्कार नहीं किया गया था), जिसका मूल्य &H05
है। तो कोड लगता है:
Const ssfPERSONAL = &H05
Dim strMyDocsPath As String
strMyDocsPath = CreateObject("Shell.Application").NameSpace(ssfPERSONAL).Self.Path
अगर मैं, मैं कैसे पैकेज/तैनाती जादूगर बताऊँ mdb फ़ाइलें स्थापित करने के लिए MyDocuments \ CompanyName या यहाँ तक कि AppData फ़ोल्डर ऊपर के लिंक में वर्णित की तरह कुछ प्रयोग करना चाहते थे और ऊपर निर्दिष्ट फ़ोल्डर इस विशिष्ट फ़ोल्डर में? क्या पीडीडब्ल्यू में एपडाटा या माइडवर्ड्स फ़ोल्डर्स के लिए कोई मैक्रो है जिसका मैं उपयोग कर सकता हूं?
वहाँ है कि मैं इस है कि राहुल के पास पहले his answer में शामिल नहीं थीं, अन्य की सिफारिश करने से करने के लिए जोड़ सकते हैं कि जब आप इस वीबी आवेदन आधुनिकीकरण कर रहे हैं, तो आप भी एक के पक्ष में प्राचीन PDW खुदाई पर विचार काफी नहीं है बेहतर इंस्टॉलर।
व्यक्तिगत रूप से, मैं Inno Setup के विशाल प्रशंसक है, जो Windows अनुप्रयोग है कि और अधिक सुविधाओं की तुलना में आप पर एक छड़ी हिला कर सकते हैं प्रदान करता है के लिए एक नि: शुल्क संस्थापक उपयोगिता है हूँ। यह वीबी 6 अनुप्रयोगों के साथ बहुत अच्छी तरह से काम करता है। मैंने इसे अपने लिए कई बार इस्तेमाल किया है। मुझे लगता है कि कम से कम मूल बातें के लिए उपयोग करना काफी आसान है। यह सभी प्रकार के उन्नत अनुकूलन का समर्थन करता है, और यदि आप दस्तावेज़ीकरण पढ़कर अच्छी तरह से नहीं सीखते हैं, तो उनमें से कुछ मुश्किल हो सकते हैं, लेकिन यह सब बहुत ही कामयाब है। मैंने इनो सेटअप परियोजनाओं को अनुकूलित करने के लिए डेल्फी कोड लिखकर भी अपना रास्ता ठोकर खाया है!
इनो सेटअप में, आप pre-defined constants में से किसी एक का उपयोग कर सिस्टम फ़ोल्डरों के पथ तक पहुंच सकते हैं। उदाहरण के लिए, {userdocs}
और {commondocs}
। ये काम बहुत पसंद करते हैं (यदि बिल्कुल ठीक नहीं है, तो यह लंबे समय से रहा है) पीडीडब्ल्यू में मैक्रोज़।
बेशक, यह अभी भी समस्या को ठीक नहीं करता है बॉब सही मायने में बताता है: किसी उपयोगकर्ता के "मेरे दस्तावेज़" फ़ोल्डर की अवधारणा वास्तव में इंस्टॉलर को अधिक समझ नहीं देती है। निश्चित रूप से आप वैश्विक (सार्वजनिक) "मेरे दस्तावेज़" फ़ोल्डर तक पहुंच सकते हैं क्योंकि यह सभी उपयोगकर्ताओं के बीच साझा किया जाता है, लेकिन शायद यह वह नहीं है जिसे आप चाहते हैं। इंस्टॉलर को पर्याप्त विशेषाधिकार वाले किसी भी उपयोगकर्ता द्वारा चलाने में सक्षम होना चाहिए, और वास्तव में यह अक्सर एक प्रशासक खाता होगा जो आपके आवेदन को चलाने के लिए उपयोग किए जाने वाले नियमित उपयोगकर्ता खाते से अलग होता है। सेटअप के दौरान आप किसी विशेष उपयोगकर्ता खाते को नहीं मान सकते हैं, और आपके डिज़ाइन के लिए इसका खाता होना चाहिए।
ऐसा लगता है कि एक "टेम्पलेट" दृष्टिकोण आपके लिए एक अच्छा होगा। एक नया उपयोगकर्ता खाता सेट करने के लिए उपयोग की जाने वाली फ़ाइलों का पूरा सेट "प्रोग्राम फ़ाइलें" फ़ोल्डर में संग्रहीत किया जा सकता है। यह वास्तव में इसके लिए एक अच्छी जगह है क्योंकि यह गलत संशोधन से अच्छी तरह से संरक्षित है, और चूंकि आप केवल पढ़ रहे हैं, तो आपको आवश्यक अनुमतियां प्राप्त करने की गारंटी दी जा सकती है। जब एप्लिकेशन को नए उपयोगकर्ता खाते के तहत पहली बार लॉन्च किया जाता है, तो यह इस तथ्य का पता लगा सकता है और एप्लिकेशन के उपयोग के लिए नए उपयोगकर्ता खाते को स्थापित करने की पेशकश कर सकता है। इस बिंदु पर, आप जानते हैं कि आप सही उपयोगकर्ता खाते के अंतर्गत चल रहे हैं, इसलिए आप उस उपयोगकर्ता के "मेरे दस्तावेज़" फ़ोल्डर के स्थान की क्वेरी करने के लिए उपरोक्त कोड का उपयोग कर सकते हैं। "प्रोग्राम फ़ाइलें" में आपके एप्लिकेशन के फ़ोल्डर की उपनिर्देशिका में स्थापित वांछित फ़ोल्डर संरचना के साथ, एक नया उपयोगकर्ता खाता सेट करना उतना आसान हो सकता है जितना कि उस फ़ोल्डर पर प्रतिलिपि बनाना। यदि आपको उपयोगकर्ता से जानकारी इकट्ठा करने या अनुकूलन विकल्पों की पेशकश करने की आवश्यकता है, तो आप थोड़ा "पहला रन विज़ार्ड" लिख सकते हैं।
सिस्टम ड्राइव रूट के तहत निर्देशिका जैसे मजाकिया स्थानों में डंपिंग और सभी उपयोगकर्ताओं को एपकोम्पेट शिम्स के साथ प्रशासक या पावर उपयोगकर्ता होने दें ताकि बहुत से लोगों को यह दिखाया जा सके कि WinXP Win9x मशीन थी। दुनिया कहीं अधिक जटिल है और क्योंकि इस तकनीक ने सुरक्षा में अंतर छेद छोड़ा है, पीडीडब्ल्यू अब सरल अनुप्रयोगों के लिए उपयोगी है। – Bob77
तो क्या आप कह रहे हैं कि पीडीडब्ल्यू का उपयोग करने से एमडीबी फाइल/फ़ोल्डर्स को उपयोगकर्ता MyDocument फ़ोल्डर या ऐपडाटा फ़ोल्डर में स्थापित करने का कोई आसान तरीका नहीं है? क्या Inno इसे आसान बना देगा? –
व्यक्तिगत रूप से मैं प्लेो की तरह इनो से बचूंगा। यह शक्तिशाली हो सकता है लेकिन आप आसानी से उसी पीसी पर अन्य अनुप्रयोगों को "ब्रेक" करने वाले फ्लैकी सेटअप भी बना सकते हैं। कोई इंस्टॉलर उपयोगकर्ता के फ़ोल्डर में स्थापित नहीं हो सकता है क्योंकि इसका कोई तरीका नहीं है कि उपयोगकर्ता या उपयोगकर्ता लॉग ऑन करेंगे और आपके एप्लिकेशन का उपयोग करने की उम्मीद करेंगे। – Bob77