ورود

View Full Version : پرتابل کردن برنامه ها (Portable)



Mehdi Naderi
سه شنبه 07 آذر 1391, 08:52 صبح
سلام
برنامه های حجیم کاربردی که بدون نیاز به نصب روی سیستم اجرا میگردند (غیر از دات نت) چگونه ساخته میشوند؟

و یک نرم افزار رو چگونه می توان پرتابل کرد

با تشکر

eshpilen
سه شنبه 07 آذر 1391, 13:55 عصر
حداقل یکی از چیزهای که مربوطه و میدونم: لینک استاتیک موقع کامپایل.

AMIBCT
سه شنبه 07 آذر 1391, 14:38 عصر
بهترین حالت این است که در سورس برنامه پیش‌بینی‌های لازم صورت بپذیرد و برنامه تنظیمات خود را در رجیستری ذخیره نکند
علاوه بر آن مسیر ثابتی را نیز برای خودش در نظر نگیرد

اگر سورس برنامه در دسترس نباشد دو روش دیگر وجود دارد

روش اول و ساده‌تر این است که یک برنامه‌ی کمکی قبل از اجرای برنامه‌ی اصلی
تنظیمات مورد نیاز برنامه را در رجیستری ذخیره کند، برنامه را اجرا کند و پس از پایان کار برنامه، رجیستری را پاکسازی کند و آن‌ها را برای دفعات بعدی روی دیسک ذخیره کند
این روش در مجموعه ابزارهای Portable Apps مورد استفاده قرار می‌گیرد. نرم‌افزاری نیز برای انجام این کار در سایتشان موجود است که با کمک NSIS توسعه پیدا کرده است

روش دوم و سخت‌، شبیه‌سازی محیط ویندوز با کمک Hookها است
به این صورت که تمامی توابع مربوط به رجیستری،‌ فایل‌ها، ورودی و خروجی، شبکه و ... باید طوری بازنویسی شوند که تغییرات انجام شده توسط برنامه عملکرد واقعی نداشته باشند
مثلا دستوری که می‌خواهد چیزی در رجیستری بنویسد، این کار را نکند و به جایش در یک فایل روی دیسک این کار را بکند
برای خواندن هم به جای مراجعه به رجیستری واقعی، مطالب نوشته‌شده‌ی قبلی از دیسک به برنامه برگشت داده شود

چند برنامه برای کار دوم توسعه پیدا کرده است
که مشهورترین آن‌ها ThinApp است
نمونه‌های دیگری مثل Enigma Virtual Box هم هستند که کارکرد ساده‌تری دارند
نمونه‌های قدیمی‌تر که فکر می‌کنم دیگر توسعه پیدا نکرده مثل MoleBox هم موجود هستند

با استفاده از ابزارهایی مثل Sandboxie می‌توانید هر برنامه‌ای را در قرنطینه اجرا کنید تا تغییراتی در سیستم‌عامل شما به وجود نیاید
می‌تونید مطلبی رو که در مورد Enigma Virtual Box نوشتم در این صفحه مطالعه کنید (http://amib.ir/weblog/?p=68)