آموزش مهم » پكيج هاي نرم افزاري MRT چگونه ساخته شده اند؟

پكيج هاي نرم افزاري " نصب خودكار " MRT چگونه ساخته شده اند ؟
يا
چگونه يك ساعته تبديل به محمدرضا توكلي شويم !


تقديم به دوستاني كه راههاي زيادي را در اين رابطه طي كرده اند.

پس از چندي تلاش روي پروژه MRT كه من هم مثل شما فهميده بودم آقاي محمدرضا توكلي خودش اين نرم افزار پك كننده رو نوشته موفق شدم روش پك كردن اون رو بفهمم و اون رو در اين مقاله آموزش ميدم.

نرم افزارهاي مورد نياز :
1- Universal Extractor
Inno Setup -2
3- يكي از محصولات MRT براي تست !

نرم افزارها را نصب كنيد. و فايل نصب پك شده رو توي يه پوشه بذاريد.
روي نرم افزار آقاي توكلي راست كليك كرده و گزينه ي UniExtract To Subdir رو كليك كنيد تا فايلهاي باز شده پروژه ي آقاي محمدرضا توكلي رو ببينيد.

در اكستركت كردن هر نرم افزار دو پوشه و يك فايل بدست مياد
فايل ما همون اسكريپت ماست!
پوشه اول فايل نصب نرم افزار يا به اصطلاح Setup و ...
پوشه دوم شكل و شمايل MRT!!!
كه به راحتي ميتونيد پوشه دوم رو ويرايش كنيد و شما هم مخترع بشيد!!!
اما بحث ما روي فايل هست . اين فايل با نرم افزار Inno Setup باز ميشه . پس بازش كنيد :
نمونه كد VCDCut Pro اين نرم افزار :
توضيح هر خط كنار اون نوشته شده :


کد:
[Setup]
AppName=VCDCutter		نام نرم افزار
AppVerName=MRT Magic Pack 	نام ورژن نرم افزار
DefaultDirName={pf}\VCDCutter 	نام پوشه فايلهاي نصب نرم افزار
OutputBaseFilename=VCDCutter	نام فايل اصلي خروجي
Compression=lzma			نوع فشرده ساز
WizardImageFile=embedded\WizardImage.bmp		MRT !!!!فايلهاي 
WizardSmallImageFile=embedded\WizardSmallImage.bmp		MRT !!!!فايلهاي

[Files]
Source: "{pf}\VCDCutter\auth.dll"; DestDir: "{pf}\VCDCutter"; Flags: ignoreversion 	فايلهاي درون پوشه نصب
Source: "{pf}\VCDCutter\License.txt"; DestDir: "{pf}\VCDCutter"; Flags: ignoreversion	فايلهاي درون پوشه نصب	
Source: "{pf}\VCDCutter\Readme.txt"; DestDir: "{pf}\VCDCutter"; Flags: ignoreversion 	فايلهاي درون پوشه نصب
Source: "{pf}\VCDCutter\VCDCut.exe"; DestDir: "{pf}\VCDCutter"; Flags: ignoreversion 	فايلهاي درون پوشه نصب
Source: "{pf}\VCDCutter\VCDCut.MPG"; DestDir: "{pf}\VCDCutter"; Flags: ignoreversion 	فايلهاي درون پوشه نصب
Source: "{pf}\VCDCutter\_VCDCut.exe"; DestDir: "{pf}\VCDCutter"; Flags: ignoreversion 	فايلهاي درون پوشه نصب

[Registry]   قسمت مهم بدون سريال كردن نصب
Root: HKCU; Subkey: "Software\Jiao System,Ltd.\VCDCut\Settings"; ValueName: "UserData"; ValueType: String; ValueData: "42342545456547567658678678"; 
در اينجا ايشون با اين دستور ساده تعريف كرده كه توي رجيستري و فلان آدرس مقدار سريال ... نوشته بشه

Root: HKCU; Subkey: "Software\Jiao System,Ltd.\VCDCut\Settings"; ValueName: "UserName"; ValueType: String; ValueData: "MRT www.Win2Farsi.com"; 
در اينجا هم در رجيستري دستور نوشتن مقدار نام كاربري داده
[Run]
Filename: "{pf}\VCDCutter\VCDCUT.exe"; Description: "{cm:LaunchProgram,VCDCutter (MRT)}";	فايل اجرايي رو مشخص كرده

 [Icons]
Name: "{group}\VCDCutter"; Filename: "{pf}\VCDCutter\VCDCUT.exe"; Comment: "MRT www.Win2Farsi.com"; 		آيكن اجرايي
Name: "{group}\{cm:UninstallProgram,}"; Filename: "{uninstallexe}"; Comment: "MRT www.Win2Farsi.com"; 		آيكن آنيستال
Name: "{userdesktop}\VCDCutter"; Filename: "{pf}\VCDCutter\VCDCUT.exe"; Comment: "--------------------------"; Tasks: "desktopicon";       آيكن دسكتاپ
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\VCDCutter"; Filename: "{pf}\VCDCutter\VCDCUT.exe"; Comment: "MRT www.Win2Farsi.com"; Tasks: "quicklaunchicon";     					    آيكن كويك لانچ

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";  	افزودن ايكنها
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; 	افزودن ايكنها

[CustomMessages]	دستورات درون فايل زبان / دستورات دلخواه
eng.NameAndVersion=%1 version %2		ورژن نرم افزار
eng.AdditionalIcons=Additional icons:		آيكن اضافه شده
eng.CreateDesktopIcon=Create a &desktop icon		ايجاد شورتكات روي دسكتاپ
eng.CreateQuickLaunchIcon=Create a &Quick Launch icon		ايچاد شورتكات روي كويك لانچ
eng.ProgramOnTheWeb=%1 on the Web	ايجاد روي وب
eng.UninstallProgram=Uninstall %1	آنيستال
eng.LaunchProgram=Run %1		اجراي نرم افزار
eng.AssocFileExtension=&Associate %1 with the %2 file extension	مرتبط كردن فايلهاي يك و دو
eng.AssocingFileExtension=Associating %1 with the %2 file extension...	مرتبط كردن فايلهاي يك و دو

[Languages] زبان
; These files are stubs 
; To achieve better results after recompilation, use the real language files
Name: "eng"; MessagesFile: "embedded\eng.isl";

خوب اين هم از اسكريپت آقاي توكلي! ياد گرفتيد يه نظري هم بديد !

درنهايت ما كليد F9 رو ميزنيم تا اسكريپت ما تبديل به فايل ستاپ نهايي بشه! به همين راحتي شما هم توكلي شديد!

بعد از اين كار چيكار ميكنيم!؟ ميايم فايل Exe مون رو پك ميكنيم تا كسي نتونه به سورس دست پيدا كنه و آبروريزي بشه!