PDA

View Full Version : سوال: اجرای یه فایل EXE از Resource برنامه



EhsanAvr
دوشنبه 16 آذر 1388, 19:05 عصر
سلام. اگه خواسته باشیم یه فایل EXE یا ... که در Resource برنامه قرار داره رو اجر کنیم،باید چیکار کنیم؟

AliRezaPro
دوشنبه 16 آذر 1388, 19:54 عصر
بالای پروژه اینو using کن
using System.Diagnostics;

تو پروژه ی برنامه ی خودتون ، برید بهProperties/Resources .

روی Add Resource کلیک کنید


Add Existing File را از بقل دکمه ی بالا انتخاب کنید


.exe را که میخواهید تو resource قرار دهید با browse انتخاب کنید و دکمه ی Open را کلیک کنید

اگر شما میخواهید نام Resource را عوض کنید :

در Editore ریسورس ،روی Exe راست کلیک کنید و rename را انتخاب کنبد

بطور مثال من میگم MyTestExe

جایی که میخواهید extract و اجرا کنید ،کد زیر رو بنویسید (مثلا در رویداد باتن)
private void button_Click(object sender, EventArgs e)
{
byte[] exeBytes = Properties.Resources.MyTestExe;
string exeToRun = @"C:\TEST\MyTestExe.exe";

using (FileStream exeFile = new FileStream(exeToRun, FileMode.CreateNew))
{
exeFile.Write(exeBytes, 0, exeBytes.Length);
}

using (Process exeProcess = Process.Start(exeToRun))
{
exeProcess.WaitForExit();
}
}



مشکلی داشتید بگید

BANKER
سه شنبه 17 آذر 1388, 09:18 صبح
بالای پروژه اینو using کن
using System.Diagnostics;

تو پروژه ی برنامه ی خودتون ، برید بهProperties/Resources .

روی Add Resource کلیک کنید


Add Existing File را از بقل دکمه ی بالا انتخاب کنید


.exe را که میخواهید تو resource قرار دهید با browse انتخاب کنید و دکمه ی Open را کلیک کنید

اگر شما میخواهید نام Resource را عوض کنید :

در Editore ریسورس ،روی Exe راست کلیک کنید و rename را انتخاب کنبد

بطور مثال من میگم MyTestExe

جایی که میخواهید extract و اجرا کنید ،کد زیر رو بنویسید (مثلا در رویداد باتن)
private void button_Click(object sender, EventArgs e)
{
byte[] exeBytes = Properties.Resources.MyTestExe;
string exeToRun = @"C:\TEST\MyTestExe.exe";

using (FileStream exeFile = new FileStream(exeToRun, FileMode.CreateNew))
{
exeFile.Write(exeBytes, 0, exeBytes.Length);
}

using (Process exeProcess = Process.Start(exeToRun))
{
exeProcess.WaitForExit();
}
}



مشکلی داشتید بگید

من Banker هستم سوالم اين است كه چرا اين قسمت را ب

using (FileStream exeFile = new FileStream(exeToRun, FileMode.CreateNew))رنامه با داشتن using كه داديد پشتيباني نمي كنهوخطاي Error 1 The type or namespace name 'FileStream' could not be found (are you missing a using directive or an assembly reference?) را ميدهد؟

BANKER
سه شنبه 17 آذر 1388, 09:20 صبح
من Banker هستم سوالم اين است كه چرا اين قسمت را برنامه

using (FileStream exeFile = new FileStream(exeToRun, FileMode.CreateNew)) با داشتن using كه داديد پشتيباني نمي كنهوخطاي Error 1 The type or namespace name 'FileStream' could not be found (are you missing a using directive or an assembly reference?) را ميدهد؟

Reza_Yarahmadi
سه شنبه 17 آذر 1388, 10:17 صبح
با داشتن using كه داديد پشتيباني نمي كنهوخطاي Error 1 The type or namespace name 'FileStream' could not be found (are you missing a using directive or an assembly reference?) را ميدهد؟این خطا مربوط به using استفاده شده نیست ، به این خاطره که فضای نام System.IO رو اضافه نکردید.
using استفاده شده در کد دوستمون برای اینه که هر وقت کار شئ مورد نظرش (exeFile)تموم شد سریعا از حافظه خارج بشه.

AliRezaPro
سه شنبه 17 آذر 1388, 10:40 صبح
بانکر جان شما موقع همچین ارور هایی ببینید چه کلاس هایی دارید استفاده میکنید و کلاس مورد نظر رو تو MSDN یا اینترنت سرچ بفرمائید تا NameSpace رو متوجه بشید و Using کنید
همچین ارور هایی که خیلی واضح هستند

skflower
چهارشنبه 08 اردیبهشت 1389, 03:38 صبح
بالای پروژه اینو using کن
using System.Diagnostics;

تو پروژه ی برنامه ی خودتون ، برید بهProperties/Resources .

روی Add Resource کلیک کنید


Add Existing File را از بقل دکمه ی بالا انتخاب کنید


.exe را که میخواهید تو resource قرار دهید با browse انتخاب کنید و دکمه ی Open را کلیک کنید

اگر شما میخواهید نام Resource را عوض کنید :

در Editore ریسورس ،روی Exe راست کلیک کنید و rename را انتخاب کنبد

بطور مثال من میگم MyTestExe

جایی که میخواهید extract و اجرا کنید ،کد زیر رو بنویسید (مثلا در رویداد باتن)
private void button_Click(object sender, EventArgs e)
{
byte[] exeBytes = Properties.Resources.MyTestExe;
string exeToRun = @"C:\TEST\MyTestExe.exe";

using (FileStream exeFile = new FileStream(exeToRun, FileMode.CreateNew))
{
exeFile.Write(exeBytes, 0, exeBytes.Length);
}

using (Process exeProcess = Process.Start(exeToRun))
{
exeProcess.WaitForExit();
}
}



مشکلی داشتید بگید


اینطوری که فایل مورد نظر یه جا کپی میشه و بعد اجرا میشه. آیا راهی وجود داره که بشه فایل رو بصورت مستقیم اجرا کرد؟

gwbasic
چهارشنبه 08 اردیبهشت 1389, 07:39 صبح
فایل Exe را در پروژتون Embed کنید

skflower
چهارشنبه 08 اردیبهشت 1389, 11:41 صبح
فایل Exe را در پروژتون Embed کنید

اینو خیلی ها میگ.و چطوریش مهمه.
اگه میشه لطف کنید و یه مثال کوچولو بذارید. البته من یه فایل mpg رو میخوام از توی ریسورس اجرا کنم. فکر کنم طرز اجراشون یکی باشه. درسته؟