PDA

View Full Version : سوال: اجرا کردن فایل resources



dady_jabery
پنج شنبه 23 خرداد 1387, 16:12 عصر
سلام به همگی
می خواستم بدونم من چه جوری می تونم که یک فایل که در resources برنامه با پسوند exe است را اجرا کنم؟

با دستوارات
shell(my.resources.myexe.exe.toString) و

procesess.start(my.resources.myexe.exe)
هم اجرا نمیشه ! :ناراحت:
لطفا یکی کمکم کنه !

Nima NT
پنج شنبه 23 خرداد 1387, 17:14 عصر
خوب برنامه EXE که نمیتونه از تو ریسورس برنامه همینطوری اجرا بشه ، یا باید مستقیم بنویسیش رو رم یا اینکه اول بریزیش تو هارد بعد اجراش کنی.

علیرضا مداح
پنج شنبه 23 خرداد 1387, 18:56 عصر
سلام دوست عزیز ،
همانطور که میدانید فایل مورد نظر شما در Resource به صورت باینری یعنی آرایه ای از بایت ذخیره میشود ، پس فایل مورد نظر را از Resource میخوانیم و در آرایه ای از بایت قرار میدهیم ، سپس یک نام رندوم توسط کلاس Guid ایجاد کرده و پسوند exe به آن میدهیم و در مسیر Temp ذخیره میکنیم و توسط کلاس Stream آرایه بایت مورد نظر را در آن مینویسم ، سپس Stream را میبندیم و فایل مورد نظر را اجرا میکنیم ، فرض کنید یک فایل با نام calc.exe در Resource ذخیره کرده اید ، برای اجرای آن باید بدینگونه عمل نمایید :



Private Sub RunCalc()
'Reading file
Dim bytes() As Byte = My.Resources.calc
'Creating a random string for file name
Dim randomName As String = IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".exe"
'Creating a stream
Dim stream As IO.Stream = IO.File.Create(randomName)
stream.Write(bytes, 0, bytes.Length)
stream.Flush()
stream.Close()
'Running the file
Process.Start(randomName)
End Sub