منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تضمين ملف exe داخل مشروعك
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اخواني المبرمجين
اريد تضمين ملف exe داخل المشروع بحيث اقدر اشغله من زرار على الفورم وكمان في ملف Dll  اريد تضمينه داخل المشروع واقوم بعمليه نسخه من داخل البرنامج الى مكان معين

الفكره اني اريد ملف exe  داخله عده ملفات exe  واقدر اشغل كل واحد على حسب الزرار اللي انا عايزه

وشكرا
اتبع الخطوات التالية:

1- تضيف الملف أو الملفات الي Resources المشروع و تجعلها Embeded
2- تقوم بتعريف متغير يعبر عن الملف و في حالتك هنا المتغير سيكون My.Resources.YourFileName
المتغير هذا سيكون عبارة عن مصفوفة Byte
3- تقوم بتعريف متغير يعبر عن اسم الملف شاملا المسار و الإمتداد الخاص بالملف و في حالتك هنا الملف سيكون امتداده Exe او dlll
4- تقوم بإستخدام IO.FileStream = IO.File.Create و تمرر لها اسم الملف من الخطوة 3

المثال التالي سيوضج لك الفكرة
وهنا أنا أفترض ان لديك ملف تنفيذي اسمه cairo.exe موجود في Resources
و الملف هذا سيتم نسخه الي فهرس المشروع بالطبع يمكنك ان تحدد المسار كيفما شئت


PHP كود :
      Dim file As Byte() = My.Resources.Cairo
       Dim filePath 
As String ".\cairo.exe"
 
      Using fs As IO.FileStream IO.File.Create(filePath)
 
           fs.Write(file0file.Length)
 
      End Using 

أخيرا .... لتضع في اعتبارك أن أسلوب تشغيل ملف امتداده exe يختلف تماما عن تشغيل ملف امتداده dll
(13-12-16, 04:14 AM)silverlight كتب : [ -> ]اتبع الخطوات التالية:

1- تضيف الملف أو الملفات الي Resources المشروع و تجعلها Embeded
2- تقوم بتعريف متغير يعبر عن الملف و في حالتك هنا المتغير سيكون My.Resources.YourFileName
المتغير هذا سيكون عبارة عن مصفوفة Byte
3- تقوم بتعريف متغير يعبر عن اسم الملف شاملا المسار و الإمتداد الخاص بالملف و في حالتك هنا الملف سيكون امتداده Exe او dlll
4- تقوم بإستخدام IO.FileStream = IO.File.Create و تمرر لها اسم الملف من الخطوة 3

المثال التالي سيوضج لك الفكرة
وهنا أنا أفترض ان لديك ملف تنفيذي اسمه cairo.exe موجود في Resources
و الملف هذا سيتم نسخه الي فهرس المشروع بالطبع يمكنك ان تحدد المسار كيفما شئت


PHP كود :
      Dim file As Byte() = My.Resources.Cairo
       Dim filePath 
As String ".\cairo.exe"
 
      Using fs As IO.FileStream IO.File.Create(filePath)
 
           fs.Write(file0file.Length)
 
      End Using 

أخيرا .... لتضع في اعتبارك أن أسلوب تشغيل ملف امتداده exe يختلف تماما عن تشغيل ملف امتداده dll
 الف شكر يا استاذي الفاضل
جعله الله في ميزان حسناتك

سؤال اخر ان امكن
اريد نقل ملف dll  من مكان الى داخل فولدر syswow64 الموجود داخل windows  ولكن الكود يطلع رساله خطاء access denied  بسبب ان الفولدر محمي
مع العلم اني اريد نقل الملف اثناء التشغيل
فيقوم بعمليه فحص هل الملف موجود ، اذا وجد يتم مسحه
واذا لم يوجد يتم نقله
هذا نموذج من الكود
PHP كود :
If Not GetDirectoryInfo(Win8_BKDLL_Location).Exists Then
                GetFileInfo
(Win8_BKDLL_Location).Delete()
 
           End If 
وكذلك

PHP كود :
If IO.File.Exists(Win8_BKDLL_LocationThen IO.File.Delete(Win8_BKDLL_Location

ثم :-
PHP كود :
My.Computer.FileSystem.CopyFile(
 
                       "file1.dll",
 
                       Win8_BKDLL_Location,
 
                       Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
 
                       Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException
حيث
win8_bkdll_location ="c:\windows\syswow64\file2.exe"

وشكرا لتعاونك ياسيدي الفاضل