السلام عليكم اخواني المبرمجين
اريد تضمين ملف 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(file, 0, file.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(file, 0, file.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_Location) Then 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"
وشكرا لتعاونك ياسيدي الفاضل