2013-03-14 5 views
8

का उपयोग कर उपयोगकर्ताओं में ऐपडेटा फ़ोल्डर में फ़ाइल इंस्टॉल करना मैं इनो-सेटअप संस्करण 5.5.3 (ए) का उपयोग कर रहा हूं।inno-setup

[Files] 
Source: "C:\GPT\GPT.exe"; DestDir: "{app}"; Flags: ignoreversion 
Source: "C:\GPT\GPT.dat"; DestDir: "{app}"; Flags: ignoreversion 
; NOTE: Don't use "Flags: ignoreversion" on any shared system files 

मैं "GPT"

कहा जाता है जैसे एक कस्टम फ़ोल्डर में AppData फ़ोल्डर उपयोगकर्ताओं में "GPT.dat" फ़ाइल को स्थापित करना चाहते हैं ऐपडाटा \ जीपीटी \

उदाहरण के लिए, मेरे डेल्फी कोड में, मैं ऐपडेटा पथ उपयोगकर्ताओं में "जीपीटी" नामक फ़ोल्डर बना देता हूं। ये वह जगह है जहाँ मैं फ़ाइल चाहते हैं

var 
    path: array[0..MAX_PATH] of char; 

SHGetFolderPath(0, CSIDL_APPDATA, 0, SHGFP_TYPE_CURRENT, @path); 
userPath:= Path; 
UserPath:= UserPath + '\GPT\'; 
if not DirectoryExists(UserPath) then 
    CreateDir(UserPath); 

किसी को मुझे बताओ कि ऐसा करने के लिए अपने [फ़ाइलें] मेरे Inno स्क्रिप्ट की धारा संपादित करने के लिए कर सकते हैं?

धन्यवाद

+2

क्या आपने inno-setup दस्तावेज़ में देखा है? मेरा मानना ​​है कि आप ऐपडाटा फ़ोल्डर को मैक्रो के रूप में पा सकते हैं। http://www.jrsoftware.org/ishelp/index.php?topic=consts {localappdata} और {userappdata} और {commonappdata} तीन ऐपडेटा फ़ोल्डर्स हैं। –

उत्तर

11

आप {userappdata} निरंतर, जो सिर्फ CSIDL_APPDATA आइटम आईडी को मैप किया है उपयोग करने के लिए आपकी फ़ाइलों के लिए एक गंतव्य निर्देशिका के रूप में की जरूरत है:

[Files] 
Source: "C:\GPT\GPT.dat"; DestDir: "{userappdata}\GPT\"; Flags: ignoreversion createallsubdirs recursesubdirs comparetimestamp 

{userappdata} {& commonappdata} एप्लिकेशन डेटा फ़ोल्डर का मार्ग।

CSIDL_APPDATA = {userappdata} = C:\Documents and Settings\username\Application Data 
CSIDL_COMMON_APPDATA = {commonappdata} = C:\Documents and Settings\All Users\Application Data 
+0

तो ये दो पंक्तियां कहां जाती हैं? – JakeSays

+0

http://msdn.microsoft.com/en-us/library/windows/desktop/bb762494%28v=vs.85%29.aspx – Ravaut123

+4

पर जानकारी ध्यान दें कि जब यह संभव है * उपयोगकर्ता * फ़ोल्डर्स में फ़ाइलों को स्थापित करने के लिए एक व्यवस्थापक स्थापित के दौरान, यह बहुत दृढ़ता से निराश है। अधिकतर उपयोगकर्ता इस से प्रभावित होंगे, और जरूरी नहीं कि वह होना चाहिए। ऐसा करने के बजाय अपने डिजाइन पर पुनर्विचार करें। – Miral

0

यदि मैं मिरल्स टिप्पणी को सही तरीके से समझता हूं तो यह {programdata} का उपयोग करने के लिए अधिक उपयुक्त लगता है।

हालांकि, XP पर कोई {programdata} नहीं है, केवल {commonappdata} या {userappdata} है, इसलिए मुझे अपने इंस्टॉल को विविधता देना है। {programdata} बाद में आविष्कार है।

एक परेशान जाल तब होता है जब डेस्कटॉप और उपयोगकर्ताप्डडाटा सर्वर ("रोमिंग प्रोफाइल") में प्रतिबिंबित होता है, जो प्रोग्राम को आईएनआई फ़ाइल स्टोरेज के लिए उपयोगकर्ताappdata का उपयोग करने पर बहुत धीमा कर देता है, कम से कम यह मेरा अनुभव है।

+0

रोमिंग प्रोफाइल एप्लिकेशन को धीमा नहीं करेंगे क्योंकि वे स्थानीय रूप से संग्रहीत हैं और सर्वर के साथ समन्वयित हैं लॉग इन करें। हालांकि, उन्हें नेटरायोक शेयर पर रीडायरेक्ट किया जाता है (न कि घूमने वाली प्रोफाइल)। तो यह चीजों को धीमा कर देगा, लेकिन यह डिज़ाइन द्वारा है। – Deanna

+1

कोई भी निरंतर '{programdata}' नामक नहीं है, इसकी वास्तव में '{commonappdata}' है। यह 'सी: \ ProgramData' को संदर्भित करता है। –

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