PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ساخت Setup هاي اتوماتيك با استفاده از برنامه سون زیپ (7zip)



Magsoud
06-27-2017, 05:21 PM
برنامه فشرده ساز رايگان 7zip داراي امكانات مختلفي هست كه يكي از آن ها ساخت فايل هاي نصب است.
در اين بحث با چند مثال عملي و ساده چگونگي كار را توضيح خواهم داد و خواهيد ديد كه فقط با دانستن چند
دستور ميتوان برنامه هاي نصب عادي و مخفي را بسرعت و بسادگي درست كرد.

با توجه به اينكه شارژ اينترنتم چند دقيقه ديگر تمام ميشود، لذا اگر عمري باقي باشد، ادامه مطلب را بعد از
تمديد شارژ عرض خواهم كرد.

Magsoud
07-01-2017, 01:30 PM
توضيح و عذر خواهي
===========
با اتمام زمان و شارژ اينترنتم ، براي تمديد شارژ به شركت مربوطه كه من واقعا" از كيفيت كارش راضي هستم
مراجعه كردم.
پس از واريز مبلغ شازژ و تمديد آن،بخانه كه برگشتم،نتوانستم به اينترنت وصل شوم و وقتي زنگ زده و علت را
جويا شدم، طوري جواب دادند كه اگر چند دقيقه بعد مودم خود را ري استارت كنم ، مشكل حل شده و وصل
خواهم شد.
متاسفانه اينگونه نشد و آن روز پس از هفت هشت مورد زنگ زدن نتوانستم نتيجه بگيرم و هر دفعه دليل ديگري
برايم تراشيدند كه واقعا" مسخره بود.

روز بعد كه زنگ زدم مسئله كلا" عوض شده بود ،من سال ها بود كه مشتري اين شركت بودم ولي طرف مقابل
از من پرسيد كه شما تازه عضو شده ايد؟
و تعجب كرد كه گفتم سال هاي زيادي هست كه مشتري آن ها هستم. و نهايت اينكه پس از 3 روز زنگ زدن
جواب دادند كه اين مشكل بحاطر اين است كه جائي ثبت نشده كه شما براي تمديد، پول واريز كرده باشيد ؟!!!

وقتي گفتم كه الان جلويم كپي قبض واريز بمبلغ 170 هزار تومان با شماره ..... موجود است، بيشتر تعجب كرد.
و تعجبش وقتي بيشتر تر هم شد كه فهميد درست در همان دفتري كه ايشان با من صحبت ميكند اين مبلغ
واريز و قبض دريافت شده است.

بهر حال روز چهار شنبه پول را واريز كرده و قبض گرفته بودم و الان كه ايشان اين جواب را داد، زمان روز جمعه بود
و كاري نميتوانستم بكنم و قرار شد كه مجددا" روز شنبه حضورا" به شركت مذكور مراجعه كنم!!!

و امروز که شنبه هست پس از چهار بار زنگ زدن دوباره کار درست نشد و بعد زنگ زده و گفتم که اجبارا" بایستی
شکایت کنم که مشکل حل شود. و بالاخره فعلا" بطور موقت مقداری از مشکل برطرف شد.
یعنی فعلا" بجای دو ماه فقط یک ماه اعمال شده تا بعدا" ببینیم چه خواهد شد.

و لذا اين دفعه مريضي نبود كه نتوانم بموقع در خدمت شما بوده و بحث را دنبال كنم
بلكه عدم رعايت وظيفه و قانون توسط عده اي نادان باعث گرديد
كه وجودشان از مريضي بدتر است.
از اين بابت عذر خواهي ميكنم.
======================================
======================
==========
=====


اما ادامه بحث:
----------------
براي راحت شدن كار شما من فايل هاي لازم براي ساخت فايل هاي setup را درون پوشه اي بنام Files قرار
داده و آن را پيوست كرده ام تا دانلود و استفاده نمائيد.
دستورات لازم كه در آموزش های مربوطه توضيح خواهم داد، همه بر اساس اين پوشه و فايل هاي داخل آن قابل
اجرا خواهند بود.

http://up.worldup.ir/do.php?filename=Files.rar

مثال (1)_ ساخت نصب اتوماتيك برنامه Notepad++ 7.3.2
================================
ميحواهيم با استفاده از برنامه zip 7 فايل نصبي بسازيم كه با اجراي آن برنامه Notepad++ 7.3.2 بطور اتوماتيك
و مخفي نصب گردد. براي انجام اين كار پوشه Files را كه دانلود كرديد در روت يكي از درايو ها قرار داده (مثلا"
D:\Files) و بعد بصورت زير عمل كنيد:

1. فايل Notepad++ 7.3.2.exe را به Npp_7.exe تغيير نام داده و آن را داخل پوشه D:\Files\Mcs قرار دهيد.
پوشه D:\Files\Mcs پوشه اي هست كه نه تنها در اين مثال بلكه در بقيه مثال هائيكه توضيح داده خواهند شد،
فايل هاي خود را داخل آن قرار خواهيم داد.

2. داحل پوشه D:\Files فايلي متني بنام config.txt وجود دارد. ما بايستي تمام دستورات مورد نيازمان را
داخل اين فايل بنويسيم.بنابر اين در هر مثالي كه گفته شود ما ناچاريم كه اين فايل را توسط notepad باز كرده
و دستورات داخل آن را عوض كنيم.
توضيح اينكه اين فايل يك فايل متني هست ولي با نوع UTF-8 ذخيره شده است.

بهر حال اين فايل را توسط notepad باز كرده و محتواي آن را با محتواي زير عوض نموده و ذخيره كنيد:


;!@Install@!UTF-8!
GUIMode="2"
Title="Mcs_Tool"
ExecuteFile="Npp_7.exe"
ExecuteParameters="/S"
;!@InstallEnd@!


در جلسه بعد دستورات استفاده شده در بالا را توضيح خواهم داد.

3. حال فايل Create.cmd را از داخل D:\Files توسط notepad باز كرده و در آن عبارت xxx.exe را پاك كرده و
بجايش نام فايل نهائي يعني "Notepad.exe" را بنويسيد.

4. حال فايل Create.cmd را اجرا كنيد. پس از چند لحظه فايلي بنام Notepad.exe در كنار آن درست خواهد
شد كه هر جا اجرايش كنيد برنامه Notepad++ 7.3.2 را بطور اتوماتيك و مخفی نصب خواهد نمود.

در مثال بالا با يك نمونه كار آشنا شديم، آن را امتحان كرده و فايل config.txt استفاده شده را هم نگاهي
بيندازيد تا در جلسه بعدي در مورد تك تك دستورات استفاده شده و نيز دستورات ديگر صحبت كنيم.

Magsoud
07-02-2017, 12:15 AM
در مثال بالا با استفاده از پوشه Files و محتويات آن، با نمونه اي از چگونگي درست كردن فايل نصب توسط برنامه
سون زيپ آشنا شديم .
در مثال فوق اصول كلي ساخت فايل هاي نصب توسط برنامه سون زيپ را ياد گرفتيم.در تمام مواردي كه منبعد
بخواهيم با اين برنامه فايل نصب و يا فايل پرتابل (كه در موردش صحبت خواهم كرد) درست كنيم، دقيقا" همان
مراحلي را انجام خواهيم داد كه در مثال مورد بحث انجام داديم. با اين تفاوت كه دستوراتي كه استفاده خواهيم
كرد متفاوت خواهند بود.

با داشتن پوشه Files و محتويات آن، اگر دستورات قابل استفاده در فايل config.txt را ياد بگيريم ،ساخت انواع
فايل براي موارد مختلف كار بسيار ساده اي خواهد بود.

من سعي خواهم كرد كه در طول بحث توسط مثال هاي مختلف،شما را با پاره اي از دستورات قابل استفاده و
بكار گيري آن ها آشنا كنم و البته ياد گيري بيشتر و كامل تر از عهده بنده خارج بوده و زماني محقق خواهد شد
كه خود شما هم مطالب مربوطه را جستجو كرده و مطالعه نمائيد.

در مثال قبلي از دستورات زير استفاده شد:

GUIMode براي مثال پس از اينكه در جلسه قبل فايل Notepad.exe را ساختيم، اگر بخواهيم اين فايل را در
كامپيوتري اجرا كنيم ، چون محتواي فايل مذكور از نوع فشرده شده مي باشد، لذا فايل مذكور اول محتواي
داخلش را از فشردگي درآورده و حائي كپي كرده (معمولا" پوشه Temp) و سپس آن را اجرا خواهد كرد.

اين عمل يعني از فشردگي درآوردن و بجائي كپي كردن مقداري زمان خواهد برد.حالا اگر ما بخواهيم
كه اين عمل مخفي باشد بايد دستور GUIMode را مساوي عدد 2 بگذاريم.
ولي اگر بخواهيم كه در حين اين عمل مثل شكل زير يك Progress bar نشان داده شود بايستي
اين دستور را مساوي 1 قرار دهيم.

http://www.worldup.ir/images/x2bttqkc28q8stqw57ls.png (http://www.worldup.ir/)

در مثال ما، چون حجم فايل خيلي پائين هست لذا اين عمل فقط يك لحظه طول مي كشد در نتيجه
در اين مثال بود و نبود اين دستور مهم نيست.

Title هر چيزي كه در جلوي اين دستور بعد از علامت = بنويسيم ، عبارتي هسب كه در قسمت بالاي صفخه
برنامه (عنوان برنامه) نشان داده خواهد شد.

ExecuteFile بايد در جلوي اين دستور بعد از علامت = نام فايل اجرائي داخل پوشه D:\Files\Mcs را بنويسيم كه
برنامه پس از درآوردن از فشردگي ، فورا" دنبال فايلي خواهد گشت كه نامش در جلوي اين دستور نوشته
شده، تا آن را اجرا كند.

ExecuteParameters ميدانيم كه مي توان بعضي از برنامه ها را با استفاده از سويچ هاي ويژه اي بصورت هاي مختلف
اجرا كرد.براي مثال اگر در جلوي دستور اجراي برنامه Notepad++ 7 عبارت S / را اضافه كنيم اين برنامه موقع
اجرا بصورت مخفي كار خواهد كرد.
در جلوي اين دستور بايد سويچ هاي مخصوص اجراي فايل ها را بنويسيم. فرضا" براي مثال بالا، چون ميخواهيم
برنامه بصورت مخفي اجرا شود،پس در اينجا عبارت S / را جلوي اين دستور نوشتيم.

توجه داشته باشيد كه مثل دستوري كه در مثال جلسه قبل ديديم بايستي دستورات را بين علايم " " بنويسيم.

مثال (2) درست كردن فايل نصب مخفي براي فايل هاي نوع MSI
===================================
فرض ميكنيم كه فايلي با نام xxx.MSI داريم و ميخواهيم آن را بطور مخفي و اتوماتيك اجرا كنيم.
1. فايل xxx.MSI و ملحقاتش (يعني اگر فايل هاي ديگري در كنارش وجود دارند) را داخل پوشه D:\Files\Mcs فرار دهيد.
2. فايل Create.cmd را باز كرده و بجاي عبارت xxx.exe نام مورد نظر را ترجيحا" مابين علايم "" وارد نمائيد (براي مثال
"ABC.EXE").
3. در داخل فايل config.txt دستورات زير را بنويسيد:


;!@Install@!UTF-8!
ExtractDialogText="Extracting files"
RunProgram="xxx.msi /qb /norestart"
;!@InstallEnd@!


حال اگر فايل Create.cmd را اجرا كنيد در انتها در اين مثال فايلي بنام ABC.EXE درست خواهد شد كه برنامه شما را
بصورت اتوماتيك و مخفي نصب خواهد كرد.

در اين مثال از دو تا دستور جديد استفاده كرديم كه عبارتند از:

ExtractDialogText اگر جائي اين دستور را استفاده كنيم برنامه در زماني كه دارد محتواي داخلش را از فشردگي
درآورده و جائي (معمولا" پوشه Temp) كپي ميكند،عبارت نوشته شده در جلوي اين دستور را پيوسته نشان خواهد
داد.يعني در مثال ما برنامه در حين اين كار، عبارت Extracting files را نشان حواهد داد.
كه اگر نميخواهيم ميتوانيم اين سطر از دستور را ننويسيم.

RunProgram در جلوي اين دستور مثل مثال بالا بايد نام فايل اجرائي را بهمراه سويچ هاي مربوطه بنويسيم.



مثال (3) ساخت فايل نصبي كه داراي محتواي زياد است
=================================
گاهي ميخواهيم كاري كنيم كه تعداد زيادي برنامه هاي مختلف بترتيب و پشت سر هم اجرا و مخفي و اتوماتيك
نصب شوند.
و فرضا" براي اين كار تمام فايل هاي لازم را داخل يك پوشه قرار داده و بين آن ها يك فايل Batch قرار مي دهيد كه
با اجراي اين فايل Batch برنامه ها بترتيب و به روش خواسته شده نصب مي شوند.

و ميخواهيد يك فايل نصب بسازيد كه داخلس تمام فايل هاي لازم گفته شده در بالا و نيز فايل Batch وجود داشته
باشد كه بشرح زير عمل مي كنيد:

1. تمام فايل هاي بالا را داخل پوشه D:\Files\Mcs كپي كنيد.(من فرض ميكنم كه نام فايل Batch شما در بين اين
فايل ها isntall.bat نام دارد.

2. فايل Create.cmd را باز كرده و در داخل آن بجاي نام xxx.exe نام مورد نظر خود را بنويسيد.

درون فايل config.txt دستورات زير را بنويسيد:


;!@Install@!UTF-8!
GUIMode="2"
Title="Program"
RunProgram="isntall.bat"
;!@InstallEnd@!



اگر عمري باشد يك يا دو جلسه ديگر هم در رابطه با بحثمان توضيح خواهم داد.
موفق باشيد.

Magsoud
07-03-2017, 08:17 PM
در جلسات قبل با بكار گيري چند مثال ساده ، ديديم كه چگونه مي توان با استفاده از يكي از قابليت هاي برنامه
فشرده ساز رايگان zip 7 ،بسادگي فايل هاي نصب اتوماتيك ساخت.

در حقيقت در اين مثال ها، ما از قابليتي بنام SFX استفاده كرديم. اين قابليت در فشرده ساز هاي ديگر مثل
winrar و غيره هم وجود دارد ولي قابليت هاي zip 7 در اين رابطه خيلي وسيع تر و بهتر است.

امروزه برنامه هاي زيادي هم وجود دارند كه مي توانند تمام كار هائي را كه ما در مثال هاي بالا انجام داديم را
بصورت اتوماتيك انجام دهند.
از نظر بنده اگر شما روشي را كه بنده شرح دادم (با استفاده از فايل هائيكه براي دانلود گذاشتم) راانجام بدهيد
بهتر است. چون بنده عملا" با اكثزيت برنامه هاي مختلف كار كرده و محاسن و معايب آن ها را ديده و در نهايت
به اين نتيجه رسيدم كه با روشي كه توضيح دادم ، در اكثر موارد بي درد سر جواب حواهيد گرفت.

دليل بنده براي گفتار بالا اين است كه:
همه برنامه هائي كه براي ساحت فايل هاي نصب اتوماتيك با استفاده از SFX درست شده اند، از يك يا چند تا
از فايل هاي SFX ساخته شده توسط سازنده هاي مختلف، بهره مي گيرند.

فايل هاي مختلف موجود براي SFX ، هر كدام براي منظور خاصي ساحته شده اند و لذا فقط در حالت هاي
مخصوصي درست كار كرده و در ديگر موارد كار نخواهند كرد.

براي مثال ممكن است با يكي از اين برنامه كار كنيد و فايل لازم را درست كنيد ولي موقع اجرا مي بينيد كار
نكرده و پيغام دهد كه اين روش قابل اجرا نيست.
در اين مواد همه چيز و همه دستورات درست است ولي سيستم با فايل SFX استفاده شده در اين برنامه مشكل
دارد.

بخاطر همين است كه عرض كردم كه از فايل هائيكه بنده براي دانلود گذاشته ام استفاده نمائيد چون فايل SFX
كه بنده در بين آن ها قرار داده ام در تمام موارد كار خواهد كرد.

مثال (3) تغيير دادن آيكن فايل نهائي
====================
در سطور بالا عرض كردم كه فايل هاي SFX محتلفي وجود دارند.هر فايل SFX در داحلش يك آيكن وجود دارد.

برنامه موقع ساخت فايل نهائي ، در انتهاي كار ، آيكن موجود در داخل فايل SFX استفاده شده را براي فايل
نهائي استفاده ميكند.

فايل SFX مورد استفاده ما در اين مثال ها عبارت از فايل D:\Files\7zSD.sfx است.لذا اگر ميخواهيد كه فايل
نهائي داراي آيكن دلخواه شما باشد بايستي با استفاده از برنامه اي مثل Resource Hacker آيكن داحل اين
فايل را با آيكن مورد نظر خود عوض كنيد.

توجه داشته باشيد كه بايستي آيكني كه استفاده ميكنيد بايد دقيقا" داراي مشخصات آيكن موجود در اين فايل
باشد.

مثال (4) ساخت فايل Portable (تبديل محتواي يك پوشه به يك فايل اجرائي)
========================================
در سطور زير ترجمه خلاصه و تغيير يافته از مقاله اي را مشاهده مي كنيد كه بنده در سال 2008 در يك سايت
پرتقالي انگليسي زبان (كه در آن زمان نامش BootLand بود والان فرق كرده) بنا به درخواست كاربران تحت
عنوان Creating A Self Extracting EXE archive from our Files and Directories نوشته بودم.

البته در اين جا من مطلب را مقداري تغيير داده ام تا با روشي كه در مثال هاي بالا گفتم قابل اجرا باشد.

تذكر اينكه در مثال زير چگونگي تبديل كزدن برنامه پرتابل شده DriveImage XML 2.01 را به يك فايل اجرائي
مشاهده مي كنيد.ولي عين كار هائي كه در اين مثال انجام مي شود را مي توانيد با اكثريت برنامه هاي پرتابلي
كه داريد، عينا" انجام دهيد.

با فرض اينكه تمام فايل ها و پوشه هاي برنامه پرتابل DriveImage XML 2.01 داخل پوشه اي بهمين نام قرار دارند
بشرح زير عمل نمائيد:

1. كليه محتواي پوشه DriveImage XML 2.01 را به داخل پوشه D:\Files\Mcs كپي كنيد.

2. فايل Create.cmd را باز كرده و در آن عبارت xxx.exe با عبارت "DriveImage.exe" عوض كنيد (توجه كنيد كه
علايم " هم باشند).

3. فايل config.txt زا باز كرده و محتواي آن را پاك نموده و بجايش عبارات زير را وارد نموده و ذخيره كنيد:


;!@Install@!UTF-8!
RunProgram="dixml.exe"
Progress="no"
;!@InstallEnd@!



4. فايل Create.cmd را اجرا نمائيد. چند لحظه بعد فايل DriveImage.exe در همان محل درست خواهد شد كه
اگر اجرا كنيد برنامه پرتابل شما اجرا خواهد شد.

اميدوارم مطالبي كه در چند جلسه توضيح دادم مفيد باشند
موفق باشيد.

سهند
07-03-2017, 08:57 PM
استاد با روشهایی که در بالا توضیح دادید خیلی کارها میشد کرد که من چندتایی برای تمرین انجام دادم
ولی مشکل اینجاست اون کاری که من میخوام رو نتونستم با این فایلها انجام بدم یعنی انتظار من از برنامه اینه :
1- تعدادی فایل یا فولدر رو در جاهای مختلف سیستم و درمسیرهای مشخصی کپی کنه ((با ادرسهایی که ما بهش میگیم))
2 - یه فایل رجیستری رو بعد کپی کردن فایلها وفولدرها اجرا کنه
3 -شورتکاتهایی که ما معرفی میکنیم در مسیرهای مشخصی کپی کنه
در اصل منظور من از ستاپ ساز این بود
با اینکار هایی که در بالا 3مورد گفتم میخوام یه نرم افزار رو repack کنم

Magsoud
07-03-2017, 09:14 PM
چشم، اجازه بده فکری بکنم تا ببینیم چکار می شود کرد.

Magsoud
07-04-2017, 03:11 PM
با استفاده ار دستورات NSIS بشرح مثال زير ميتوان خواسته شما را برآورده كرد.توضيح اينكه در اين مثال فرض
بر اين است كه:

1. سه تا پوشه با نام هاي AAA و BBB و CCC داريم كه هر كدام حاوي تعدادي فايل و پوشه هاي مختلف هستند.

2. ميخواهيم درون پوشه Program Files پوشه اي بنام AAA درست شده و كليه محتواي پوشه AAA داخل
پوشه Program Files\AAA كپي شوند.

2. ميخواهيم درون پوشه Windows پوشه اي بنام BBB درست شده و كليه محتواي پوشه BBB داخل پوشه
Windows\BBB كپي شوند

4. ميخواهيم درون پوشه Application Data مخصوص كاربر استفاده كننده ، پوشه اي بنام CCC درست شده
و كليه محتواي پوشه CCC داخل آن (يعني داخل C:\Users\User_Name\Application Data\CCC) كپي شوند.

5. ميخواهيم شورت كات هاي زير درست شوند:

_ داخل پوشه Start پوشه اي بنام Sahand درست شود و داخل آن شورت كاتي با نام AAA براي فايلي بنام
aaa.exe كه درون پوشه AAA قرار دارد گذاشته شود.
_ شورت كاتي با نام AAA براي فايل Program Files\AAA\aaa.exe در دسكتاپ درست شود.

_ شورت كات هائي با نام BBB براي فايل bbb.exe كه در محل Windows\BBB\bbb.exe قرار دارد در دسكتاپ
و نيز در منوي استارت پوشه Sahand درست شود.

6. مي خواهيم در انتهاي كار يك فايل رجستري با نام xxx.reg اجرا شود.

تصميم داشتم كه امروز اين كد ها را هم نوشته و خيال شما را راحت كنم كه صداي تلفن شنيده شد و چند
لحظه بعد عيال فرمودند كه مهمان دارد مي آيد

لذا با شرمندگي ادامه را در زمان ديگزي عرض خواهم كرد.

Magsoud
07-05-2017, 12:12 PM
notepad را باز نموده و كد هاي زير را در داخل آن كپي و سپس آن زا يا هر نامي ولي با پسوند nsi فرضا" با
نام Sahand.nsi ذخيره كنيد:


!include registry.nsh
SetCompressor ZLIB

OutFile "Sahand.exe"
Icon "mcs.ico"
SilentInstall silent
CRCCheck off
AutoCloseWindow true
WindowIcon off
XPStyle on

ShowInstDetails hide
ShowUninstDetails hide

Section Main

CreateDirectory "$PROGRAMFILES\AAA"
SetOutPath "$PROGRAMFILES\AAA"
SetOverwrite on
File /nonfatal /a /r "AAA\"

CreateDirectory "$SMPROGRAMS\Sahand"
CreateShortCut "$SMPROGRAMS\Sahand\AAA.lnk" "$PROGRAMFILES\AAA\aaa.exe"
CreateShortCut "$DESKTOP\AAA.lnk" "$PROGRAMFILES\AAA\aaa.exe"

CreateDirectory "$WINDIR\BBB"
SetOutPath "$WINDIR\BBB"
SetOverwrite on
File /nonfatal /a /r "BBB\"

CreateShortCut "$SMPROGRAMS\Sahand\BBB.lnk" "$WINDIR\BBB\bbb.EXE"
CreateShortCut "$DESKTOP\BBB.lnk" "$WINDIR\BBB\bbb.EXE"

CreateDirectory "$APPDATA\CCC"
SetOutPath "$APPDATA\CCC"
SetOverwrite on
File /nonfatal /a /r "CCC\"

SetOverwrite on
InitPluginsDir
File /oname=$PLUGINSDIR\xxx.reg "xxx.reg"

Execwait 'regedit.exe /s "$PLUGINSDIR\xxx.reg"'

SectionEnd



اگر فايل هاي مورد نظر مطابق آنچه در پست قبلي توضيح دادم در كنار فايل Sahand.nsi موجود باشند، در صورتيكه
روي فايل Sahand.nsi كليك راست كرده و بعد روي گزينه Compile كليك كنيد ، برنامه شروع بكار كزده و در پايان
فايلي بنام Sahand.exe درست خواهد شد كه با اجراي آن خواسته شما برآورده خواهد شد.

توجه داشته باشيد كه:
_ در اين مثال پوشه هاي AAA و BBB و CCC و فايل هاي xxx.reg و Sahand.nsi و mcs.ico بايد همه در كنار هم
قرار داشته باشند.

_ فايل mcs.ico آيكني هست كه فايل نهائي با اين آيكن ساخته خواهد شد.

_ شما بايستي كد ها را بسته به نياز هاي خودتان تغيير دهيد

كد ها را دقيقا" مطالعه فرمائيد تا چگونگي كار را بهتر متوجه شويد و در صورت نياز سوالاتتان را مطرح فرمائيد.

موفق باشيد.

سهند
07-06-2017, 09:04 PM
استاد اگه بخواهیم دوتا فایل رو به پوشه مثلا system32 کپی کنیم ودوتا فایل هم به پوشه installer کپی بشه این دستورات چطور به اسکریپت اضافه خواهد شد

در اصل من میخوام چندتا فایل رو به پوشه system32 کپی کنم که در پوشه x در کنار Sahand.nsi و تعدادی فایل رو به پوشه system کپی کنم که درپوشه z در کنار Sahand.nsi هست
یعنی
فقط خود فایلهای پوشه x به system32
فقط خود فایلهای پوشه z به system
وهردو پوشه کنار فایل Sahand.nsi

Magsoud
07-07-2017, 08:51 PM
سهند عزيز، در روشي كه شرح داده شد، شما فقط ميتوانيد از برنامه بخواهيد كه فايلي را اجرا كند.

اگر بخواهيد كه عوض اجراي يك فايل، عمل ديگري مثلا" كپي كردن انجام شود، بايستي دستور لازم را در يك
فايل Batch نوشته و سپس از برنامه بخواهيد كه فايل Batch را اجرا نمايد براي مثال دستور زير:


RunProgram="Isntall.bat"

سهند
07-08-2017, 12:57 AM
استاد مگه ما نمیتونیم توی دستورات درست کردن پوشه رو حذف کنیم وفقط مسیر رو بهش بدیم که فایلهای موجود در پوشه رو به مقصدشون کپی کنه؟؟؟؟؟

Magsoud
07-08-2017, 01:44 AM
با روش توضیح داده شده فقط یک کار قابل اجراست که آن هم اجرای یک فایل است
من جائی دستوری برای کپی کردن ندیده ام یعنی در حقیقت ، شاید دستوری باشد ولی من نمیدانم.
البته می شود کاری کرده که فایل نهائی فقط عمل کپی کردن فایل یا فایل هائی را فقط به یک مقصد انجام دهد.

سهند
07-08-2017, 09:35 AM
استادپس در این صورت در یک پروژه کسی بخواد تعدادی dll رو در پروژه اش در system32 بذاره دستورشو چطوری مینویسه باتوجه به گفته شما nsis فقط میتونه پوشه درست کنه بعد طبق دستور کل پوشه و محتویات پوشه رو کپی میکنه
پس بخواد تعدادی مثلا 10تاdll رو به system32 بذاره تکلیف چیه چون سیستم 32 خودش موجود ولازم نیس این پوشه ایجاد بشه

Magsoud
07-08-2017, 06:59 PM
سهند عزیز، این تاپیک مربوط به سون زیپ است و من عرض کردم که سون زیپ نمیتواند این کار را انجام دهد.

اگر منظورتان برنامه nsis هست ، مسئله براحتی قابل انجام است.اگر سوالتان در رابطه با nsis است بفرمائید
تا چگونگی را توضیح دهم.

سهند
07-08-2017, 10:42 PM
دقیقا استاد چون شما دراین تاپیک nsis رو توضیح دادید واسه این اینجا سوال کردم
منظور من nsis هست

Magsoud
07-08-2017, 11:18 PM
فرض ميكنيم كه دو تا فايل با نام هاي abc.dll و zzz.ocx داريم كه ميخواهيم اين دو تا فايل به درون پوشه Windows
كپي شوند.
براي انجام اينكار در NSIS دو تا فايل مذكور را در كنار فايل كد قرار داده و از كد هاي زير استفاده ميكنيم:


SetOutPath "$WINDIR"
SetOverwrite on
File "abc.dll"
File "zzz.ocx"



اگر بحواهيم دو تا فايل بالا درون پوشه Program Files\Common Files كپي شوند در دستورات بالا فقط سطر
اول را بصورت زير تغيير مي دهيم:


SetOutPath "$COMMONFILES"
SetOverwrite on
File "abc.dll"
File "zzz.ocx"


موفق باشيد.