PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نمونه ساخت فايل نصب بر اساس Inno setup



Magsoud
10-28-2016, 12:56 PM
دوست بسيار ارجمندم عضو محنرم انجمن (سهند) درخواسبت بحث در مورد برنامه ست آپ ساز Inno setup را داشتند.

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

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

در اين مثال بسيار ابتدائي، من فرمول شروع كار با برنامه ست آپ ساز Inno setup را بصورت يك فايل اسكريپت داده
و شما ميتوانيد با استقاده از اين فايل و فقط با تغيير دادن نام ها در اين اسكريپت از آن در برنامه هاي خود استفاده نمائيد.
و بديهي است كه بعد از مقداري مطالعه برنامه Inno Setup مي توانيد با اضافه كردن سطور ديگر به اين اسكريپت
از آن در بقيه پروژه هاي خود بهره ببريد.

من در اين مثال 4 عدد فايل زير را دارم:
RegConvert.exe
RegConvert.ini
USB Port Locked.exe
USBFormatTool.exe

اين فايل ها سه تا برنامه پرتابل ذاتي هستند كه:
_ فايل RegConvert.exe ميتواند فايل هاي رجستري را به فايل Batch يا اسكريپت ويژوال بيسيك و يا autoit تبديل كند.
_ فايل USB Port Locked.exe ميتواند پورت USB كامپيوتر را عملياتي و يا غير عملياتي نمايد.
_ فايل USBFormatTool.exe ميتواند USB شما را بصورت FAT يا 32 FAT يا NTFS و يا EXFAT فرمت نمايد.

من در اين مثال ميخواهم فايل هاي بالا را داخل يك فايل نصب داشته باشم. يعني ميخواهم يك فايل نصب داشته باشم كه
با اجراي آن ، فايل هاي بالا در محل بخصوصي از كامپيوتر نصب شده و شورت كات هاي آن ها براي استفاده در دسترس
باشند.چون ميخواهيم از برنامه Inno setup براي اينكار استفاده كنيم، لذا اول بايستي برنامه Inno setup
در كامپيوترمان نصب باشد.
و بعد بافرض اينكه ميخواهيم اعمال لازم را در روت درايو E انجام دهيم ،بصورت زير عمل ميكنيم:

1. پوشه اي با نام xxx در روت درايو E درست ميكنيم (E:\xxx).
2. پوشه ديگري بنام Files درون E:\xxx درست كرده و چهار تا فايل گفته شده در بالا را درون آن قرار مي دهيم.
3. ميخواهيم كه فايل ست آپ نهائي ساخته شده داراي آيكني باشد كه ما ميخواهيم، لذا آيكن مورد نظرمان را تهيه كرده
و آن را با نام فرضا" mcs.ico درون پوشه E:\xxx قرار مي دهيم.
4. حال برنامه Notepad را اجرا كرده و كد هاي زير را داخل آن كپي نموده و سپس آن را با هر نامي ولي با پسوند
iss (مثلا" با نام My_Tools.iss) در داخل پوشه E:\xxx ذخيره مي كنيم:


[Setup]
AppName=My Tools
AppVersion=1
DefaultDirName={pf}\My Tools
DisableDirPage=yes
DefaultGroupName=My Tools
DisableProgramGroupPage=yes
OutputDir=E:\xxx
OutputBaseFilename=My Tools
SetupIconFile=E:\xxx\mcs.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "E:\xxx\Files\RegConvert.exe"; DestDir: "{app}";
Source: "E:\xxx\Files\RegConvert.ini"; DestDir: "{app}";
Source: "E:\xxx\Files\USB Port Locked.exe"; DestDir: "{app}";
Source: "E:\xxx\Files\USBFormatTool.exe"; DestDir: "{app}";

[Icons]
Name: "{group}\Reg Converter"; Filename: "{app}\RegConvert.exe"
Name: "{group}\USB Format Tool "; Filename: "{app}\USBFormatTool.exe"
Name: "{group}\USB Port Locked"; Filename: "{app}\USB Port Locked.exe"
Name: "{group}\{cm:UninstallProgram,My Tools}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Reg Converter"; Filename: "{app}\RegConvert.exe";



5. روي فايل My_Tools.iss كليك راست كزده و سپس روي گزينه Compile كليك مي كنيم.
بعد از چند لحظه فايلي بنام My Tools.exe در داخل پوشه E:\xxx درست خواهد شد كه
اگر آن را اجرا كنيم خواسته ما را عمل خواهد كرد.

نمونه ساخته شده را ميتوانيد از لينك رير دانلود نمائيد.

My Tools.exe (http://www.mediafire.com/file/ipean8a2pse7f4k/Drive_Icon.rar)

و اما شرح كد هاي بالا:
=============
اسكريپتي كه ديديد، خلاصه ترين و ساده ترين نوع است كه با مطالعه برنامه Inno Setup مي توانيد آن را به نسبت نياز هايتان
تكميل تر نمائيد.
مشخصات فايل نصبي كه ساخته خواهد شد،در اول اسكزيپت بالا در زير قسمت [Setup] بشرح زير وارد مي شود:

AppName در جلوي اين عبارت بعد از علامت = نام برنامه نوشته ميشود. در اين مثال ما نام برنامه را My Tools گذاشته ايم.
در سطر بعدي (AppVersion) ورژ‍ن برنامه وارد مي شود.
در قسمت DefaultDirName بعد از عبارت {pf} نام پوشه اي وارد ميشود كه ميخواهيم در داخل پوشه Program Files ساخته
شده و فايل هاي ما داخل اين پوشه نصب خواهند شد.در اين مثال نام پوشه My Tools انتحاب شده است.

در سطر DefaultGroupName نام پوسه اي را وارد ميكنيم كه براي برنامه ما در داخل منوي استارت ساخته خواهد شد كه
بعد از نصب ،شورت كات هاي برنامه درون آن قرار خوهند داشت.

در سطر OutputDir آدرس محلي را وارد مي كنيم كه برنامه فايل نهائي ساخته شده را در آن جا خواهد گذاشت.
در سطر OutputBaseFilename نام فايل ساخته شده نهائي (بدون پسوند) نوشته مي شود.
در سطر SetupIconFile نام و آدرس آيكني تايپ ميشود كه ميخواهيم برنامه فايل نهائي را با اين آيكن بسازد.

در قسمت [Files] بايد بطريقي كه مشاهده ميكنيد، نام و آدرس تك تك فايل هاي مورد استفاده براي ست آپ وارد شود.

در قسمت [Icons] نام و محل شورت كات هاي مورد نظر وارد مي شود.

موفق باشيد

سهند
05-11-2017, 07:05 AM
با سلام
استاد اگه بخواهیم تعدادی فایل رجیستری به این فایل اضافه کنیم باید تک تک اونا رو وارد کنیم اگه اونا رو بخواهیم وارد کنیم چطوری؟؟؟
ایا میشود تمام فایل رجیستری رو یکباره وارد کنیم ونه خط به خط؟؟؟

Magsoud
05-12-2017, 10:08 PM
اگر بخواهيد فايل نصبي كه با برنامه Inno setup درست مي كنيد ، در حين نصب يك يا چند تغيير را در رجستري
ويندوز اعمال نمايد، بايد اول در داخل كد هاي مربوطه ، قسمتي بنام Registry درست كرده و سپس در زير آن
مطابق مثال زير اطلاعات لازم را وارد نمائيد.

توجه داشته باشيد كه مثال زير و همچنين مطالب از راهنماي خود برنامه Inno setup انتخاب شده است:


[Registry]
Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"


همانگونه كه مشاهده مي كنيد ، همه سطور با عبارت Root شروع شده و سپس نام كلي شاخه رجستري
مشخص گرديده و بعد ديگر مشخصه ها نوشته شده اند.
نام شاخه رجستري ميتواند يكي از نام هاي زير باشد:


HKCR (HKEY_CLASSES_ROOT)
HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)


پيشنهاد ميكنم كه راهنماي حود برنامه را (فايل ISetup.chm در دايركتوري نصب برنامه Inno setup)، مطالعه
فرمائيد.

اگر منظورتان از طرح اين سوال مطلب ديگري بوده، لطفا" موضوع را با شرح بيشتري مشخص فزمائيد.

سهند
05-21-2017, 08:57 PM
استاد من یه فایل رجیستری دارم که تقریبا زیاد هست منظورم حجمش هست
ونمیشه تک به تک کلیدها ومقدار ها رو وارد کرد ایا راهی وجود داره که بشه دستوری نوشت که کل فایل رجیستری رو اضافه کنه
منظور من از این سوال وسوال بالایی اینه
من یه نرم افزار رو مونیتور کردم وفایلها وفولدرهاشو دراوردم
حالا تونستم توسط اموزشهای شما این نرم افزار رو دوباره با Inno setup پک کنم ولی به مشکلی برخوردم تعداد تغییراتی که توی رجیستری اعمال میشه زیاد ونمیشه تک تک اونا رو وارد کرد من همشونو بصورت یه فایل رجیستری دراوردم حالا میخوام اگه بشه این فایل با یه خط به قسمت رجیستری اضافه کنم ایا امکان چنین چیزی هست خودم گشتم ولی چیزی پیدا نکردم که بشه؟؟؟؟

Magsoud
05-22-2017, 03:25 AM
سهند عزيز، راحت ترين روشي كه مجبور نشوي تك تك سطر هاي فايل رجستري را با دست وارد كني اين
است كه بطريق زير عمل كني.

فرض ميكنيم كه شما يك اسكريپت Inno detup بنام مثلا" xxx.iss داري و ميخواهي تمام محتواي يك فايل
رجستري بنام فرضا" aaa.reg را به آن اضافه كني

1. برنامه اي بنام Inno script studio وجود دارد كه براحتي ميتواني از سايت هاي ايراني هم دانلود كني.اين
برنامه را دانلود و نصب كن.
2. حالا برنامه Inno script studio را اجرا كرده و توسط آن فايل اسكريپت xxx.iss را باز كن.
3. اكنون يك پنجره شبيه شكل زير خواهي ديد كه در سمت چپ آن عناوين مختلفي وجود دارند. در بين اين
عناوين روي عنوان Registry كليك كن. اكنون توسط ماوس فايل رجستري aaa.reg را كشانده و در محل خالي
سمت راست صفحه بينداز. در عرض چند لحظه تمام فايل رجستري درون كد نوشته خواهد شد، اكنون Save
كرده و برنامه Inno script studio را ببند.

http://www.worldup.ir/images/47u5zusyosr0z7am00wc.png (http://www.worldup.ir/)


اكنون اگر فايل اسكريپت را باز كني خواهي ديد كه تمام محتواي فايل رجستري به كد ها اضافه شده است.

امتحان كن و نتيجه را خبر بده كه ببينيم مشكل حل شد يا نه.

سهند
05-22-2017, 08:04 AM
استاد اگه ممکنه کمی در مورد این برنامه توضیح میدید کمی گیج شدم اگه فقط در مورد ویزارد برنامه توضیح بدید ممنون میشم که چطوری فولدرها وفایلها رو اضافه کنم البته کمی باهاش کار کردم ولی توبعضی صقسمتها مشکل داشتم
اگه توضیحاتتون اینطوری باشه ممنون میشم
-1تعدادی فولدر وفایل در درایو ویندوز در داخل پوشه ای به نام new folder داریم
2-یه فایل رجیستری داریم
3-میخواهیم بعد نصب این نرم افزار پوشه بانام خودش در استارت منو ایجاد ودوتا گزینه یکی فایل اجرایی ودومی فایل انیستال داشته باشه

البته خودم درست کردم ولی متاسفانه موقع نصب توی جای خودش در پروگرام فولدر نصب نشد

Magsoud
05-23-2017, 10:31 PM
سهند عزيز، در سطور زير مثالي از چگونگي اسفاده از برنامه Inno Script Studio را بطور مختصر ملاحظه
خواهيد كرد.
فرض ميكنيم كه برنامه اي بنام xxx v1.0 داريم و ميخواهيم با استفاده از برنامه Inno Script Studio يك فايل
نصب درست كنيم كه با اجراي آن برنامه ما نصب شده و شورت كات هاي لازم ايجاد شود.

مرحله (1): آماده سازي نياز هاي اوليه
=====================
1. در روت يكي از درايو ها پوشه اي بنام فرضا" 00 درست كنيد (مثلا" F:\00).

2. مي خواهيم فايل نصبي كه در انتها درست خواهد شد داراي آيكني باشد كه ما مي خواهيم.لذا در اين
مرحله آيكن مورد علاقه خود را تهيه و آن را درون پوشه بالا قرار مي دهيم (مثلا" F:\00\mcs.ico).

3. گفتيم كه برنامه اي بنام xxx v1.0 داريم، مسلما" اين برنامه داراي فايل هاي محتلفي هست. در اين
مرحله پوشه اي بنام Files در پوشه F:\00 درست كرده و تمام محتواي برنامه خود را داخل اين پوشه كپي
مي كنيم (F:\00\Files).

حالا كه مقدمات كار فراهم شد مي رويم كه فايل نصبي مورد نظر را بسازيم.

مرحله (2): ساخت فايل نصب
================
برنامه Inno Script Studio را اجرا كرده و در صفحات Wizard آن بصورت زير عمل كنيد:

_ در صفحه اول پنجره اي مثل شكل زير خواهيد ديد.در قسمت بالاي صفحه مطابق شكل نام برنامه را كه در
اين مثال xxx است را نوشته و در سطر بعدي هم ورژن برنامه (در اين مثال 1.0 ) وارد كرده و سپس روي دگمه
Next كليك كنيد:

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

_ در پنجره بعدي اطلاعات را مطابق شكل زير وارد نمائيد:

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

همانطور كه مي بينيد در سطر اول عبارت Program Files folder انتخاب شده است. اين انتخاب بدين معني
است كه ما مي خواهيم برنامه ما داخل پوشه Program Files نصب شود.
اگر بخواهيم برنامه ما بجاي پوشه Program Files در محل ديگري نصب شود بايستي در اين جا بجاي گزينه
Program Files folder گزينه (Custom) را انتخاب كنيم و بعد محل مورد نظر را به برنامه بشناسانيم.

در تصوير بالا در سطر بعدي عبارت xxx نوشته شده. اين بدان معني است كه ما به برنامه ميگوئيم كه درون
پوشه Program Files پوشه اي بنام xxx درست كرده و فايل هاي برنامه ما را درون آن قرار دهد.
اكنون روي دگمه Next كليك كنيد.

_در پنجرخ بعدي بصورت شكل زير عمل مي كنيم:

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

همانطور كه در شكل بالا مشاهده مي كنيد، من در قسمت بالاي پنجره عبارت F:\00\Files\xxx.exe را انتخاب
كرده ام. در اين مكان بايستي با كليك روي دگمه Browse به محلي برويم كه فايل اصلي برنامه ما قرار دارد و
آن فايل زا انتخاب كنيم.
در اين مثال تمام فايل هاي برنامه ما درون پوشه F:\00\Files قرار دارند و چون نام اجرائي فايل ما درون اين
پوشه xxx.exe نام دارد لذا آن را انتخاب كرده ايم.

در قسمت پائين پنجره بالا بايد محل همه فابل هاي برنامه را به برنامه Inno Script Studio مشخص كنيم.
براي اين كار من روي دگمه Add folder كليك كرده و چون تمام فايل هاي ما درون پوشه F:\00\Files فرار
دارند لذا اين پوشه را انتخاب كردم.
توجه داشته باشيد كه بعد از انتخاب پوشه مورد نظر برنامه خواهد پزسيد كه آيا فايل هاي موجود در پوشه
هاي داخل اين پوشه را هم اضافه كنم يا نه كه بايد بگوئيم بلي.

اكنون روي دگمه Next كليك كنيد.

_ د صفحه بعد مطابق شكل زير اقدام كنيد:

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

مطابق شكل بالا در قسمت بالاي پنجره عبارت xxx نوشته شده. اين بدان معني است كه به برنامه ميگويئم
كه در منوي استارت پوشه اي بنام xxx درست كرده و شورت كات هاي برنامه را درون آن قرار دهد.

_ صفحات بعدي زياد مهم نيستند همه را ميتوانيد هرگونه كه هستند بگذاريد
مي توانيد در پنجره مربوط به نام فايل نهائي و محل ذخيره آن (به نمونه زير توجه كنيد) مشخصات مورد نياز از
جمله آيكن برنامه و نام و محل ذخيره فايل نهائي را انتخاب كنيد.

http://www.worldup.ir/images/41pfjtddcn4u6g8yoqv1.png (http://www.worldup.ir/)

و در انتها روي دگمه Finish كليك كنيد و قبول كنيد كه كامپايل كند برنامه شروع بكار كرده و در انتها شما در
محل تعيين شده يك فايل كد ( در اين مثال بنام (xxx.nsi و نيز فايل نهائي را داخل خواهيد داشت.

بعد از مرور مطالب نمونه اي را امتحان نموده و در صورت نياز به شرح بيشتر اعلام نمائيد.

سهند
05-24-2017, 08:00 AM
خیلی ممنون که توضیح دادید استاد
من دوجا مشکل داشتم
1- فرق اون دوتا چیه من داخل اون پوشه برنامه چندین فایل و چندین فولدر هم دارم چرا از add folder استفاده کردیم
وگزینه دوم اونجا برای چیه

http://up.worldup.ir/do.php?imgf=Screenshot-1_d3459.jpg (http://up.worldup.ir/)

2 -این گزینه برای چی هستند

http://up.worldup.ir/do.php?imgf=Screenshot-2_363e4.jpg (http://up.worldup.ir/)

Magsoud
05-24-2017, 10:22 AM
جواب سوال 1 :
=========
در پنجره نشان داده شده ، اگر برنامه ما دارای تعدادی فایل و پوشه های مختلف باشد زوی دگمه Add Folder
کلیک کرده و محل پوشه حاوی فایل ها و پوشه ها را مشخص می کنیم. ولی اگر برنامه فقط دارای یک یا چند
فایل باشد می توانیم روی دگمه Add File کلیک کرده و فایل ها را مشخص نمائیم.

البته اگر برنامه بغیر از پوشه Program files در جا یا جا های دیگر هم فایل هائی داشته باشد در اینصورت پس
از انجام اعمال بالا باید روی دگمه Add File کلیک کرده و آن ها را هم مشخص می نمائیم.

یعنی ممکن است لازم باشد برای مشخص کردن همه محتویات برنامه ، مجبور باشیم چند بار از دگمه های
Add File و Add Folder استفاده کنیم.

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

جواب سوال 2
========
محل هائیکه نشان داده اید مشخصه های مختلف برنامه را نشان می دهند. برای درک بهتر این گزینه ها بهتز
است یک کد کامل را با این برنامه باز کرده (نه آنی که خودمان دزست می کنیم) و بعد محل های فوق را نگاه
کنی
در کل افرادی مثل بنده و شما اکثرا" فقط مواردی را لازم داریم که در پست قبلی شرح دادم.

موفق باشید.