۱۳۸۸/۰۲/۲۷

آموزش ساخت پرتابل - قسمت دوم: Portable Ready ها



تو این قسمت قراره اولین برنامه پرتابلمون رو بسازیم و از اونجایی که بهتر اینه که پله پله بریم سراغ پروژه های سخت تر ، بهتر دونستم که از چند برنامه Portable Ready شروع کنیم.


به این نرم افزارها ،Green Installerو Natural Portable یا خیلی چیزهای دیگه که چنین معنی ای رو میده هم ممکنه بگن و منظور از این اصطلاح، اینه که برنامه (حداقل تا قسمتی) پرتابل نوشته شده.



یک سری که کاملاً پرتابل هستن و ما کاری به اونها نداریم و میتونید خودتون اونها رو از سایت سازنده شون دانلود و استفاده کنید، مثل نسخه پرتابل نرم افزار CCleaner و Avant Browser.


اما دسته دوم اونهایی هستند که پرتابل نیستند ولی فاصله کمی بایک پرتابل واقعی و کامل( مراجعه کنید به تعریف پرتابل در قسمت اول) فاصله کمی دارند. حالا ما باید بیایم و هنگام اجرای نرم افزار اون رو کاملاً زیر نظر بگیریم و یا به اصطلاح Monitor کنیم تا ببینیم که حین اجراش چه تغییراتی رو روی سیستم عامل ما ایجاد میکنه.


Monitoring یکی از مهمترین بخش های ساخت هر نوع پرتابلی هست، از ساده ترین اون بگیرید تا پیچیده ترین اون ها.



چطور مانیتور کنیم؟

نرم افزار های بسیار زیاد و مفیدی با چند جستجوی ساده توی اینترنت پیدا میشن که میتونید از اونها استفاده کنید، مثل Regmonitor, Reg from app, file monitor و غیره که هر کدوم میتونن فایل سیستم و یا رجیستری شما رو مانیتور کنن. اما من خودم به شما نرم افزار بسیار قدرتمند Total Uninstall رو به شما پیشنهاد میکنم چون در آن واحد هم رجیستری و هم فایل سیستم و هم حتی سرویس ها نصب شده روی سیستم رو به شما نشون میده. این برنامه همونطور که از اسمش پیداست یک برنامه برای Uninstall کردن نرم افزار های شماست ولی فرقش با بقیه اینه که بر پایه Snapshot کار میکنه، یعنی وضعیت کنونی سیستم شمارو قبل از نصب برنامه ثبت میکنه، بعد شما نرم افزار رو نصب میکنید و دوباره یک Snapshot با اون میگیرید. سپس نرم افزار به شما نشون میده که چه تغییراتی حین نصب این نرم افزار بر روی سیستم شما ایجاد شد. برای مانیتورینگ برای پرتابل سازی هم ما همین کار رو میکنیم، با این فرق که به جای اینکه نصب برنامه رو تحت نظر بگیریم، اجرای اونو تحت نظر میگیریم.
نرم افزار Total Uninstall 4.1 رو میتونید از این لینک دانلود کنید:

توصیه میکنم ورژن 4.1 رو استفاده کنید و نه جدیدترش رو.



مثال Utorrent Portable :

اول به سایت http://www.utorrent.com/ برید و برنامه رو که حجمش زیر 200 کیلوبایت هست رو دانلود کنید.


اگه داخل سایتش دقت کرده باشید کنارش نوشته شده Stand alone و این یعنی اینکه اماده برای پرتابله. من روی اینسالر این برنامه کمی تحقیق کردم و فهمیدم که فایل exe ای رو که شما از سایتش دانلود میکنید در حقیقت خود برنامه هست، نه اینستالر اون، با این تفاوت که قبل از اجرا چک میکنه و میبینه که آیا آثاری از utorrent روی سیستم شما هست یا نه.
اگر نبود پیغام تایید نصب و ساختن میانبر رو نشون میده و اگر فایلهای لازم رو پیدا گرد که بصورت عادی بالا میاد.
با یک بار مانیتور کردن برنامه متوجه میشید که utorrent هیچ کاری به رجیستری سیستم نداره و این خودش کلی کار ما رو راحت تر میکنه. اما فایل سیستم چی؟
در حالت پیشفرض utorrent یک پوشه به اسم خودش توی Application Data ی کاربری که توش هستید میسازه.(یعنی در آدرس C:\Documents and Settings\Username\Application Data) و تمام تنضیماتش رو توی اون میریزه.

نکته: اگر محتویات این پوشه کنار utorrent باشه، نرم افزار اونها رو شناسایی میکنه و دیگه با Application Data ی ویندوز کاری نداره. یعنی بدون هیچ زحمت زیادی پرتابل میشه.


حالا که تمام وابستگی های utorrent رو شناختیم روی دسکتاپتون یک پوشه بسازید و اسمشو بذارید Utorrent Portable ، بعد فایل utorrent.exe رو از داخل Program Files به داخل این پوشه کپی کنید(حداقل باید یک بار اجراش کرده باشید). حالا به آدرسی در بالا گفتم برید و پوشه utorrent رو پیدا کنید.تمام محتویات این پوشه رو هم داخل همون پوشه که روی دسکتاپ ساختید و در کنار utorrent.exe کپی کنید. اگر مایلید میتونید حالا برنامه utorrent رو از Add/Remove Programs پاک کنید.

حالا پرتابل شما آماده است. بدون بجا گذاشتن کوچکترین اثری بر روی سیستم عامل.


از کجا باید میفهمیدیم که...؟

یکی از مهمترین چیزهایی که برای ساختن یک پرتابل عالی با عملکرد خوب باید بدونیم اینه که به تمام زیر و بم ها و تنضیمات و Option های نرم افزاری که داریم روش کار میکنیم آشنا باشیم تا بتونیم برای پرتابل کردنش ازشون به نحو احسن استفاده کنیم.البته ببدون دونستنش هم میشه ولی به خوبی اولی در نمیاد. مثلاً اگر در مورد utorrent این موضوع رو نمیدونستیم با ید برای نرم افزار یک فایل اجرا کننیده (Launcher) میساختیم تا اول فایلهای لازم رو از داخل یک پوشه در کنار نرم افزار( توجه کنید که اگر داخل پوشه ای باشه توسط utorrent شناسایی نمیشه) داخل Application Data بریزه، بعدش برنامه رو اجرا کنه. تازه بعد از این هم باید کد هایی در Launcher اضافه میکریم تا تنضیمات برنامه رو بعد از بسته شدنش روی قبلی ها ونویسی کنه و در نهایت هم سیستم رو از فایلهایی رو روش ریخته پاک کنه.(ضمناً پیچیدگی های دیگه رو هم در حالت های خاص به این کد نویسی اضافه کنید، مثل خاموشی ناگهانی سیستم در حین اجرای پرتابلتون!)

یک سری از برنامه ها هم مثل KMPlayer و Turbo Launch هستن که در حالت عادی در رجیستری سیستم تنضیمات خودشون رو میریزن ولی در تنضیمات خودشون گزینه ای دارن که با فعال کردنش میشه اونها رو از رجیستری ایزوله کرد که دیگه کاری به رجیستری نداشته باشن و تنضیماتشون رو توی یک فایل ini یا چیزی مثل اون ذخیره کنن.

در نهایت باید بگم که شما باید برای هر برنامه ای که حدس میزنید رفتاری مثل utorrent داره باید این موضوع رو آزمایش کنید. یعنی در آدرس های زیر دقت کنید و ببینید اگر برنامه پوشه یا فایلی ساخت، اونو با پوشه و یا بی پوشه خودش در کنارش بذارید تا شاید توسطش شناسایی و استفاده شه که کلی کار رو راحت میکنه.

C:\Documents and Settings\User\Application Data
C:\Documents and Settings\User\Local Settings\Application
C:\Documents and Settings\All Users\Application Data

توجه کنید که Hide های سیستمتون باز باشن.(در ویستا آدرس این دایکتوری ها کمی متفاوت هست ولی همین خواص رو دارن)

البته لازم نیست که همش توی این پوشه ها سرک بکشید و ببینید که برنامه چیزی توشون ریخته یا نه، بلکه با یک بار مانیتور کردن همه رو متوجه میشید. به دلیل اهمیت زیادش در جلسه بعد مانیتورینگ رو بیشتر توضیح میدم.

برای تمرین بیشتر میتونید روی برنامه IcoFX هم کار کنید که تقریباً همین ویژگیها رو داره.

اگر با هر نکته مبهمی مواجه شدید در نظرات بیان کنید.