یک پرسش
این هفته قصد داریم نرمافزار پیشنهادی خود را با یک سوال به شما معرفی کنیم. به نظر شما آیا نرمافزارهای پرتابل واقعا برای اجرا به هیچ فایلی نیاز ندارند و تمام فایلهای مورد نیاز آنها در همان فایل اجرایی خود نرمافزار گنجانده شده است؟ اگر از تعداد کمی از این نرمافزارها استفاده کرده باشید شاید پاسخ بله را برای سوال فوق انتخاب کنید. اما اگر جزو افرادی باشید که مدام با این برنامهها سر و کار دارند احتمالا پاسخ خیر را انتخاب میکنید چرا که برخی از این برنامهها روی برخی از رایانهها اجرا نمیشوند! فکر میکنید علت این اجرا نشدن در چیست؟
واقعیت چیست؟
زمانی که از ویندوز 98 استفاده میکردید را به یاد دارید؟ برخی نرمافزارها یا ابزارهای کمکی فقط یک فایل اجرایی داشتند اما گاهی اوقات برای اجرای آنها روی برخی از رایانهها با پیامهای خطایی مواجه میشدید که نیاز به فایلهای خاصی همچون .dll60winsck.ocx,msvbvm و ... را نشان میداد. همچنین برخی نرمافزارها که توسط .NET نوشته شدهاند بهظاهر برای اجرا نیاز به فایلهای خاصی ندارند اما در باطن نیازمند برنامه .NET Framework هستند که این ابزار نیز بهطور پیشفرض روی ویندوز اکسپی وجود ندارد. اما با نصب نرمافزارهایی همچون Office این ابزار روی ویندوز شما نصب میشود و تمام نرمافزارهایی که به این ابزار وابستهاند بهراحتی روی سیستم شما اجرا میشوند.
همانطور که گفتیم این ابزار بهطور پیشفرض روی ویندوز اکسپی نصب نشده است پس نمیتوان نرمافزارهای نوشته شده توسط .NET را پرتابل به حساب آورد. این نرمافزارها نمونههایی از نرمافزارهایی بودند که بهظاهر پرتابل بهنظر میرسند اما در شرایط خاص که بهطور اتفاقی فایلهای مورد نیاز آنها روی رایانه نصب نشده باشد مشخص میشود که نرمافزار کاملا پرتابل نیست.
مواد لازم ...
برای رفع این مشکل اگر بدانیم هر فایل اجرایی هنگام اجرا از چه فایلهایی استفاده میکند، میتوانیم این فایلها را در کنار فایل اصلی قرار دهیم تا در صورت نیاز وقتی برنامه مورد نظر روی یک رایانه قادر به اجرا نبود با اضافه کردن فایلهای کمکی بهراحتی آن را اجرا کنیم، و اما برای اطلاع از فایلهای کمکی مورد نیاز برنامه چه روشی را پیشنهاد میکنید؟
در مجموع پیشنهاد ما به شما استفاده از نرمافزار Dependency Walker است. این نرمافزار که ابزاری کاملا رایگان است، میتواند انواع فایلهای 32 و 64بیتی (exe، dll، ocx و(sys) شما را بررسی نموده و به شما نشان دهد که این فایلها برای اجرا شدن از چه فایلهایی کمک گرفتهاند.
برای استفاده از این برنامه تنها کاری که باید انجام دهید، اجرای فایل depends.exe و فراخوانی فایل مورد نظر (نرمافزار پرتابل) در برنامه است. در عرض چند ثانیه نرمافزار بهطور خودکار فایلهای برنامه مورد نظر شما را بررسی کرده و اطلاعات دقیقی از آنها را در اختیار شما قرار میدهد. در نهایت با کمی دقت و استفاده از تجربه خود میتوانید تشخیص دهید که کدام فایلها در تمام رایانهها وجود دارد و کدام فایلها را باید در کنار نرمافزار قرار دهید. بهعنوان مثال اگر برنامهای برای اجرا از دو فایل .dll32kernel و .dll60msvbvm کمک گرفت میتوانید فایل .dll32kernel را در نظر نگیرید چرا که این فایل در تمام نسخههای سیستمعامل ویندوز وجود دارد و تنها فایل مورد نیاز شما در این مثال فایل .dll60msvbvm خواهد بود که میتوانید بهراحتی با قرار دادن این فایل در کنار فایل اجرایی برنامه مورد نظرتان، آن را به یک برنامه کاملا پرتابل تبدیل کنید.
برای دانلود نسخهای از این نرمافزار میتوانید به سایت زیر مراجعه کنید:
http://www.dependencywalker.com
امیر عصاری