درود
دوستان براي اينكه بتوانيم برنامه ها را بطريق PortableApps.com پرتابل كنيم بايستي سه كار را بترتيب
انجام دهيم :
1. فايل هائيكه براي پرتابل كار كردن برنامه لازم است تهيه گردد.
2. براي هر برنامه تعداد چهار عدد پوشه با شرح زير درست شود:
_ پوشه اي با نام خود برنامه . فرضا" اگر ميخواهيم برنامه WinRAR را پرتابل كنيم نام اين پوشه را WinRAR
تعيين مي كنيم.
_ سه تا پوشه با نام های Appdata و portable و Source كه بايد داخل پوشه بالا قرار داده شوند.
توضيحا" عرض كنم كه بعدا" در اين پوشه ها فايل هاي زير را خواهيم گذاشت:
__ در پوشه Appdata ، فایل های لازم برای اجرای برنامه گذاشته مي شوند.
__ در پوشه portable ، فایل های رجستری و يا نظائر آن كه براي اجراي برنامه لازمند ، قرار داده ميشوند.
__ در پوشه Source ، فایل کد برنامه NSIS و یک آیکن برای برنامه گذاشته ميشود.که برنامه NSIS از این
کد و آیکن برای ساخت فایل اجرایی هر برنامه پرتابل استفاده خواهد کرد.
3. بعد از اينكه مراحل بالا انجام شد بايد همه برنامه ها را به يك pack نرم افزاري تبديل كنيم.
حالا برويم سراغ پرتابل كردن اولين برنامه.
اولين برنامه اي كه ميخواهيم پرتابل كنيم Starter نام دارد . اين برنامه كه يكي از نرم افزار هاي مورد علاقه
من است ، ليست برنامه هاي در حال اجرا و ليست برنامه هائي را كه در حين Logon اجرا ميشوند و نيز
چند مشخصه ديگر از سيستم را با شروح مربوطه مشخص كرده و اجازه دستكاري هم مي دهد.
برنامه را در لينك زير آپلود كردم كه ميتوانيد دانلود فرمائيد.
http://www.mediafire.com/download/yt...16/Starter.rar
پرتابل كردن اين برنامه هيچ زحمتي ندارد. چون اين فايل ذاتا" توسط سازنده پرتابل ساخته شده. يعني اگر
روي اين فايل دابل كليك كنيد كار خواهد كرد.اجراي اين برنامه هيچ چيزي را به سيستم اضافه نكرده و هيچ
تغييري هم در سيستم ايجاد نميكند. يعني يك برنامه ايده آل براي استفاده و پرتابل كردن است
در كل اين برنامه نياز به پرتابل كردن ندارد ولي چون ما ميخواهيم يك Pack نرم افزاري بسازيم كه اين برنامه
هم عضوي از آن هست لذا بايد اعمال زير را انجام داد:
1. گفتم كه براي هر برنامه پرتابل بايد چهار تا پوشه بسازيم.بنابر اين برابر شرح داده شده اول پوشه اي بنام
خود برنامه پرتابل (Starter ) ساخته و بعد سه تا پوشه بنام هاي Appdata و portable و Source داخل آن
درست مي كنيم.
2. داخل پوشه Appdata بايد فايل هاي لازم برنامه پرتابل را قرار دهيم كه دز اين مثال ما فقط فايل Starter
را داريم لذا فايل Starter.exe را داخل اين پوشه قرار مي دهيم.
3. گفتيم كه در داخل پوشه portable ، فایل های رجستری و يا نظائر آن كه براي اجراي برنامه لازمند ، قرار
داده ميشوند. ولي اين برنامه براي كار كردن، نياز به هيچ تغييري در رجستري يا سيستم ندارد. لذا اين پوشه
را براي اين برنامه خالي مي گذاريم.
4.توضيح دادم كه در پوشه Source ، فایل کد برنامه NSIS و یک آیکن برای برنامه گذاشته ميشود. لذا اول يك
آيكن براي برنامه Starter.exe تهيه كرده و نام آن را دقيقا" به نام برنامه تغيير داده (در اين مثال Starter.ico)
و آن را داخل پوشه Source مي گذاريم حال بايد فايل کد برنامه NSIS را براي اين برنامه تهيه كرده و آن را
هم داخل اين پوشه قرار دهيم.كه بشرح زير كد برنامه را مي نويسيم.
من در اينجا شكلي از كد را قرار ميدهم كه عمومي است يعني شما ميتوانيد دقيقا" همين كد را بعنوان الگو
تقريبا" در اكثر برنامه هايتان فقط با تغيير نام ها بكار ببريد:
کد HTML:
!define SNAME "XXX"
!include "Registry.nsh"
CRCCheck off
AutoCloseWindow True
SilentInstall silent
WindowIcon off
XPSTYLE on
Name "${SNAME}"
Icon "${SNAME}.ico"
Caption "${SNAME} Launcher"
OutFile "..\${SNAME}.exe"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
Section "Main"
;Needed settings to apply to registry
${registry::RestoreKey} "$EXEDIR\portable\AAA.reg" $R0
Sleep 300
;File to run after applying registry settings
ExecWait "$EXEDIR\Appdata\xxx.exe"
;Cleaning up when we close the application
${registry::RestoreKey} "$EXEDIR\portable\RegClean.reg" $R0
SectionEnd
كد هاي بالا را در notepad تايپ كرده و سپس آن را با نام general.nsi جائي نگهداري كنيد.شرح سطور اين
كد را در ادامه بحث توضيح خواهم داد.
حالا يك كپي از اين فايل را داخل پوشه Source در كنار Starter.ico قرار دهيد.
نام اين فايل general.nsi را به Starter.nsi تغيير دهيد.
فايلStarter.nsi را با notepad باز كرده و تغييرات زير را در آن اعمال نمائيد:
__ بجاي عبارت XXX در سطر اول كد ، بايد نام برنامه را بنويسيم لذا در اين جا عبارت XXX را به Starter
تغيير دهيد.
__ در سطور كد پائين برويد تا به قسمت Section "Main برسيد.اگر به اين قسمت توجه كنيد مي بينيد كه
بعد از عبارت Section "Main چند سطر كد نوشته شده و بعد عبارت SectionEnd وجود دارد.
برنامه NSIS وقتي به قسمتSection "Main برسد دستورات مابين اين عبارت تا عبارت SectionEnd را
بترتيب و سطر به سطر اجرا خواهد كرد.
در كدي كه بعد از قسمتSection "Main مي بينيد سطر اول كه با علامت ; شده يك توضيح است و
كاري انجام نميدهد. سطر بعدي دستوري است كه يك فايل رجستري بنام AAA.reg را اجرا كرده تنظيمات
سيستم را عوض ميكند. و سطر بعدي دستور باعث مي شود كه برنامه بعد از اجراي فايل رجستري مدت
300 ميلي ثانيه ساكت بماند و هيچ كاري نكند.
خوب ، گفتيم كه برنامه ما در اينجا (Starter.exe) نياز به اعمال هيچگونه تغييري براي اجرا ندارد. لذا ما نيازي
به سه سطري كه كارشان را در بالا توضيح دادم ندارد. بنابراين اين سه سطر را از داخل فايل Starter.nsi
حذف ميكنيم.
سطر بعدي كد كه با علامت ; شروع شده فقط يك توضيح است و نيازي به آن نداريم پس اين سطر را هم
پاك مي كنيم.
سطر بعدي دستور بايد فايل مورد نظر ما را ( يعني Starter.exe ) را اجرا كند لذا در اين سطر بجاي عبارت
xxx.exe عبارت Starter.exe را مي نويسيم. اين دستور باعث خواهد شد كه برنامه فايل Starter.exe را اجرا
كرده و بعد منتظر اين باشد كه ما برنامه را خاموش كنيم.
سطر بعدي كد كه با علامت ; شروع شده يك توضيح است كه نيازي به آن نداريم
سطر بعدي دستور زماني اجرا ميشود كه ما فايل Starter.exe را خاموش كنيم. بمحض خاموش كردن ،برنامه
در اين سطر فايل رجستري بنام RegClean.reg را اجرا خواهد كرد.
ما براي برنامه Starter چون هيچ تغييري در سيستم لازم ندارد، اين سطور بعدي را هم نياز نداريم و آن ها را
هم پاك ميكنيم ولي چون ممكن است مطلب مقداري گيج كننده شده باشد به شرح زير توجه كنيد.
ما داريم فايل پرتابلي را درست ميكنيم كه ميخواهيم استاندارد باشد.با اين كد ها در قسمتSection "Main"
اول تغييرات رجستري مورد نياز اجراي برنامه را فرستاده يعني تنظيمات رجستري سيستم را تغيير مي دهيم.
سپس فايلمان را اجرا مي كنيم ولي به برنامه ميگوئيم منتظر باش و بمحض خاموش شدن ، تغييراتي را كه
در اول كار داديم پاك كن
بهر حال براي برنامه مورد بحث فايل Starter.nsi در حال حاضر به صورت زير در آمده است كه ذخيره ميكنيم.
کد HTML:
!define SNAME "Starter"
!include "Registry.nsh"
CRCCheck off
AutoCloseWindow True
SilentInstall silent
WindowIcon off
XPSTYLE on
Name "${SNAME}"
Icon "${SNAME}.ico"
Caption "${SNAME} Launcher"
OutFile "..\${SNAME}.exe"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
Section "Main"
ExecWait "$EXEDIR\Appdata\Starter.exe"
SectionEnd
ادامه بحث در جلسه بعدي.
علاقه مندی ها (بوک مارک ها)