السلام عليكم ورحمة الله وبركاته
كثير ما تكرر سؤال
كيف اشغل ملف تنفيذي أو أي ملف أخر من برنامجيسأقوم بشرح
بسيط مع وضع الكود اللازم الذي تستطيع من خلاله
فتح الملف على حسب نوعه مهما كان سواء تنفيذي أو ملف مساعدة أو مستند نصي أو وثيقة وورد أو ....
أفتح الفيجوال بيسك وضع على الفورم زرين كومند
Command2 ,
Command1سمي الأول فتح ملف من مسار البرنامج والثاني فتح ملف من مسار معين
الآن أنشأنا الواجهة البسيطة التي تحوي على زرين
الآن ننتقل لكتاب
الكودوهو بشكله الكامل كالتالي :
'قسم التصريحات
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'قسم الاكواد
Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", App.Path & "\prog\1.txt", "", "", 1
End Sub
Private Sub Form_Load()
ShellExecute Me.hwnd, "open", "C:\WINDOWS\NOTEPAD.EXE", "", "", 1
End Sub
وهو عبارة عن ثلاثة أقسام القسم
الأول يسمى قسم التصريحات Declaration وعند إضافة أي كود فهو يكون في الأعلى أي قبل كتابة أي كود مثلا كود ضغط على زر أو تحميل الفورم
وقد وضعنا فيه هذا الكود ولنسميه الكود رقم واحد وهو التالي
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
حيث هذا الكود يقوم بالتعريف بالدالة
ShellExecuteThe ShellExecute function opens or prints a specified file. The file can be an executable file or a document file.
هذا الدالة تقوم بفتح الملفات و المستندات بصيغة
التحرير فذالك يفيدنا عندما نريد فتح ملف نصي أو مستند وورد و كذلك فتح الملفات التنفيذية عكس التعليمة
Shell التي تقوم بفتح الملفات التنفيذية فقط
ألان ننسخ الكود رقم واحد إلى برنامجنا وهو كما قلنا سيكون مكتوب قبل أي كود في أعلا نافذة الكود ونقوم بلصقه و بذلك انتهينا من تعريف الدالة و الإعلان عنها يعني هذا الكود لا تجري فيه أي تغيير كما هو
الآن ننتقل إلى الأزرار
الزر الأول الفتح من مسار البرنامج
Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", App.Path &" \ww.txt", "", "", 1
End Sub
لاحظ أننا استخدمنا التعليمة
ShellExecute والكود بشرحه كلاميا بالتفصيل بثلاثة جمل
عند الضغط على الزر الاول قم بفتح الملف ShellExecute Me.hwnd, "open",
الموجود في مسار البرنامج App.Path حيث تعني مسار الملف التنفيذي أي البرنامج الذي تقوم بعمله
الملف صاحب الاسم ww و لاحقته txt أي مستند نصي
غير الاسم و اللاحقة حسب البرنامج فقد يكون ملف تنفيذي لاحقته exe
لاحظ الجملة " \ww.txt"حيث نضع الرمز \ قبل اسم الملف حيث الملف موجود مع برنامجك بنفس المسار أي المجلد
لان بفرض البرنامج الذي تريد فتحه داخل مجلد وهذا المجلد بجوار البرنامج الرئيسي
حسب الصورة السابقة الملف 1.txt موجود ضمن المجلد prog
فما عليك إلا كتابة نفس الكود السابق لكن أضف قبل اسم الملف اسم المجلد
فالكود كان
رمز:
ShellExecute Me.hwnd, "open", App.Path &" \ww.txt", "", "", 1
و أصبح
رمز:
ShellExecute Me.hwnd, "open", App.Path &" \prog\ww.txt", "", "", 1
إي الإضافة لم تتعدى اسم المجلد وهذه هي الإضافة
\prog
الزر الثاني الفتح من مسار معين
رمز:
Private Sub Form_Load()
ShellExecute Me.hwnd, "open", "C:\WINDOWS\NOTEPAD.EXE", "", "", 1
End Sub
حاول المقارنة بين الكودين ستجد أننا أزلنا عبارة App.Path أي من المسار لنضع المسار الكامل للبرنامج وهو مسار المفكرة مثلاً وهو معلوم لدى الجميع أنه في مجلد النظام فالكود الثاني عندما يكون المسار ثابت لا يتغير فمسار المفكرة و الآلة الحاسبة ومستعرض الملفات ثابتة و أغلبها تكون في القرص c في مجلد الويندوز
أي إن الكود سيكون ملزم بفتح الملف كما ورد مساره بالتحديد و غير قابل للتغيير و بذلك أنهينا الكود الثاني
وخلاصة القول بين الكودين :
الكود الأول أشمل حيث أين ما وضعت برنامجك داخل أي قرص أو مجلد فسيقوم بتشغيل الملفات المهم تكون بجواره أو داخل مجلد أو مجلدين بجواره أي في مساره وهو المفضل أن تستخدمه لأنك عندما تصمم برنامج وتوزعه فكل قد ينسخه على جهازه بمكان وبذلك تستوعب حالة اختلاف الأقراص لدى المستخدم
الكود الثاني كما ذكرنا عندما يتحدد المسار تحديدا
تستطيع إضافة المزيد من الأزرار وتضع الكود لكل زر نفسه مع التغيير بأسم البرنامج ولاحقته
الآن قد تسأل
ما معنى الرقم 1 الموجود في أخر الكود هذا الرقم يعطي الصيغة العادية لفتح الملف أي NORMAL أي كما تم تصميم البرنامج تستطيع تغيره إلى 2 لفتح الملف بصيغة مصغرة Minimized في شريط المهام وإذا غيرته إلى 3 فسيفتح البرنامج بحجم كامل الشاشة Maximized .
وعذرا على الإطالة في الشرح لعلها تفيد عددا أكبر
و السلام عليكم ورحمة الله وبركاته
__________________