PDA

View Full Version : اجرای فایل در Resources



m.doostdar
شنبه 22 اسفند 1388, 22:33 عصر
سلام
من یک فایل exe یا فلش در قسمت Resources اضافه کردم
برای اجراش تنها کاری که تونستم بکنم این بود که فایل رو به صورت بایت بخونم و توی یه مسیر ذخیره کنم بعد اجراش کنم
ولی من میخوام وقتی از توی Resources خوندم و ریختم توی یه متغیر بایت , همونجا اجراش کنم تا کسی نتونه فایل من رو کپی کنه
فایل من که توی Resources ذخیرش میکنم فلش هست که میتونم به صورت exe هم درش بیارم
ممنون میشم اگه کمکم کنید

Sajjad.Aghapour
یک شنبه 23 اسفند 1388, 00:41 صبح
با Reflection میتونید این کار رو انجام بدید...

http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=39464
http://www.eggheadcafe.com/community/aspnet/2/10124459/executing-fileexe-from-r.aspx

چند وقت پیش هم یکی از دوستان زحمت آموزش Reflection رو کشیده بودن که اگه جستجو کنید میتونید پیداش کنید...

m.doostdar
یک شنبه 23 اسفند 1388, 23:41 عصر
سلام
اقا ممنون
اتفاقا کلی از پست ها رو زیر و رو کردم ولی چیزی پیدا نکردم!!!
ولی همه اونها میخواستن فایل متنی و یا عکس رو بخونن که من با اون مشکلی نداشتم
مسئله من اینه که فایل exe رو میخوام اجرا کنم
از این لینکی هم که لطف کردید دادید به اینجا رسیدم که:



byte[] bin = Properties.Resources.NEW;

Assembly a = Assembly.Load(bin);


که NEW اسم همون فایل اجرایی من هست
موقع اجرا وقتی به خط دوم یعنی اسمبلی و لودش میرسه این پیغام خطا رو میده
.
Could not load file or assembly '6421499 bytes loaded from WindowsApplication2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.
.
اگه میشه کمکم کنید
2 روزه دارم میگردم!!!
همه مطلب ها در باره عکس هست و فایل متنی
ولی در باره فایل exe .....
بازم ممنون

gwbasic
دوشنبه 24 اسفند 1388, 13:49 عصر
یک روش ساده:
ابتدا یک پروژه به Solution ات اضافه کن و تمام فایلهای مورد نظر خود را در به آن اضافه کن مثلا فایل Flash.swf
هر کدام از فایلها رو به صورت زیر embed کن:
روی فایل مورد نظر کلیک کرده و در پنجره Properties ، آیتم Build Action را روی Embedded Resource قرار بده
حال به صورت زیر به این فایلها در پروژه مورد نظر می توان دسترسی پیدا کرد:


Assembly asm=Assembly.LoadFile("ResourceFiles.dll");
Stream st=asm.GetManifestResourceStream("ResourceFiles.Flash.swf");

موفق باشی

m.doostdar
دوشنبه 24 اسفند 1388, 16:57 عصر
ممنون داداش
ولی این دفعه از خط اول ایراد گرفت!!!:گریه:
فکر کنم ResourceFiles.dll رو اشتباه نوشتم!!!
میگه که:
Absolute path information is required.
بعد این "لود فایل" یه مسیر میگیره , این که مسیر نیست!!!

gwbasic
سه شنبه 25 اسفند 1388, 07:57 صبح
Reference ، فایل Dll رو به پروژه ات Add کن و یا آن فایل را در شاخه bin کنار Exe برنامه قرار بده

m.doostdar
سه شنبه 25 اسفند 1388, 12:12 عصر
من رفرنسا رو گشتم ولی ResourceFiles پیدا نکردم!!!
مطمئنی که اسم فایل dll همینه؟؟؟
میشه یه لطف کنی یه پروژه ساده با یه فایل exe کوچولو رو بگذاری اینجا؟؟
ممنون

gwbasic
دوشنبه 02 فروردین 1389, 05:40 صبح
سلام دوست عزیز ببخشید که دیر شد
این سورس در یکی از تاپیکها در همین مورد بود که متاسفانه لینکشو پیدا نکردم که برات بذارم ولی خود سورس رو برات میزام
به Dll ای که برای اجرای فایل swf استفاده شده دقت کن و همینطور فایل فلشی که در پروژه اصلی Embed شده

امیدوارم که دیگه مشکلت حل شه

m.doostdar
جمعه 03 اردیبهشت 1389, 23:44 عصر
داداش خیلی ممنون لطف کردی
کارم راه افتاد
خیلی ممنون :)
خدا خیرت بده
حالا یه سوال اضافی اگه زحمتی نیست
اگه من فایل exe داشته باشم چی؟؟ اون موقع چجوری میشه یه استریم رو اجرا کرد بدون این که توی هارد کپیش کنم؟؟
و یه سوال تحصصی
اگه من کلی فایل فلش (مثلا 400 مگ) رو اینجوری بریزم توی فایل برنامم مشکلی پیش نمیاد؟؟
انشاالله همین طور که کار من رو راه انداختی خدا هم کارت رو را بندازه :)