جاسازی یک فایل exe درون یک پروژه ویندوز فرم و اجرای آن

پنجشنبه 30 خرداد 1392

جاسازی یک فایل exe درون یک پروژه ویندوز فرم و اجرای آن <br/> قبلاً هنگام نوشتن یک utility ساده برای انجام کاری، احتیاج به استفاده از اپلیکیشن تحت ویندوز دیگری در پروژه داشتم به این صورت که اپلیکیشن من باید یک سری پارامتر به اپلیکیشن تحت ویندوز دیگه ای ارسال میکرد تا کار خاصی را انجام دهد

قبلاً هنگام نوشتن یک utility ساده برای انجام کاری، احتیاج به استفاده از اپلیکیشن تحت ویندوز دیگری در پروژه داشتم به این صورت که اپلیکیشن من باید یک سری پارامتر به اپلیکیشن تحت ویندوز دیگه ای ارسال میکرد تا کار خاصی را انجام دهد اما خروجی کار من در آخر باید یک فایل exe تنها می بود. در اون زمان من با جستجو فهمیدم که میشه فایل exe مورد نظر رو در ریسورس های پروژه قرار داد و هنگام نیاز به اجرای آن، فایل را از ریسورس ها استخراج و با پارامترهای مورد نیاز اجرا نمود.

امروز یکی از بچه های همکار احتیاج به انجام چنین کاری داشت که بهتر دیدم روش کار در این وبلاگ مستند شود بهتر است تا هر بار در سایت های خارجی دنبالش بگردیم. برای انجام این کار یک فایل Resource به پروژه خودتون اضافه کنید و از دکمه منو شکل Add resource گزینه File را انتخاب کنید و فایل اجرایی مورد نظر را به پروژه اضافه کنید. سپس روی فایل کلیک کنید و وقتی به مشخصات آن دسترسی پیدا کردید، مشخصه Build action آن را بر روی Embedded Resource تنظیم کنید. حالا کلاسی شبیه به کلاس زیر را برای استخراج و اجرای فایل exe مورد نظر احتیاج خواهید داشت :

با استفاده از کلاس بالا براحتی می تونید یک فایل exe رو از ریسورس های پروژه بیرون بکشید و اجرا کنید و با استفاده از Id اون، مثلاً در هنگام خروج از برنامه خودتون، اون برنامه رو هم ببندید. یک مثال از استفاده این کلاس :

درمثال فوق به جای Farasun از فضای نام پروژه خودتون استفاده کنید. هنگام بسته شدن برنامه خودتون ، با استفاده از procId و متد Kill کلاس فوق می تونید برنامه ای که باز کردید را از حافظه خارج کنید و بعد از اون هم اگر نیاز هست، فایل مورد نظر را از پوشه ویندوز حذف کنید.

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 4k بازدید
  • 4 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید