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

نسخة كاملة : شرح كيفية استخدام Command Line في برنامجك
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
ملاحظة منقول من المنتدي السابق للعضو : Motaz...

السلام عليكم

سوف أقوم بشرح كيفية استخدام Command Line في برنامج لجعله يفتح ملف مثلاً من خلال "فتح باستخدام" في الويندوز أو من خلال cmd... مع إدراج مثال بالفيجوال بيسك 2010.

أوالاً: قم بإنشاء مشروع جديد في الفيجوال بيسك دوت نت.
ثانياً: إذهب لخيارات المشروع، تجدها في نافذة Solution Explorer.
ثالثاً: من قائمة الخيارات للبرنامج اختر قائمة Application وبعدها إضغط على زر View Application Events سوف تظهر نافذة تحتوي على بعض تعليمات البرنامج.

[ATTACH=CONFIG]296[/ATTACH]
رابعاً: سوف تظهر لك نافذة تحتوي على بعض الأكواد البرمجية، في أعلى هذه النافذة سوف تجد مربعي خيارات، إذهب للمربع الذي على جهة اليسار واختر منه (MyApplication Events).
[ATTACH=CONFIG]297[/ATTACH]
الآن إذهب إلى المربع الذي على جهة اليمين واختر منه Startup و StartupNextInstance.
[ATTACH=CONFIG]298[/ATTACH]
بعدها سوف يقوم الفيجوال بيسك بإدراج أكواد بشكل تلقائي.

PHP كود :
'الاكواد التي أدرجها فيجوال بيسك بشكل تلقائي
'
هذا الكود يعمل عندما يشتغل البرنامج
PrivateSub MyApplication_Startup
(sender AsObjectAs Microsoft.VisualBasic.ApplicationServices.StartupEventArgsHandlesMe.Startup
EndSub
'هذا الكود يعمل عندما تشغل البرنامج مرة أخرى دون إغلاق الأول البرنامج
PrivateSub MyApplication_StartupNextInstance(sender AsObject, e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs) HandlesMe.StartupNextInstance
EndSub 

خامساً: قمت بإنشاء Class باسم CommandLine داخل النافذة السابقة ووضعت داخلها حدث باسم Read، مع باقي الاعدادات والأوامر.

PHP كود :
'Class تعريف
PublicClassCommandLines
'
Read الحدث
'Read تابع للحدث Lines المتغير
PublicSharedSub Read(ByVal Lines As ObjectModel.ReadOnlyCollection(OfString))
Command Line هنا عرفنا المتغيرات المستخدمة في
Dim InputArgument
(1AsString'مصفوفة نصية ذات عنصرين
'
متغير لإظهار نافذة المساعدة
InputArgument
(0) = "-?"
'متغير لإظهار الاسم الذي بعده
InputArgument(1) = "-showname="
'
-shownameهنا عرفنا الاسم المدخل بعد
Dim InputName AsString 
String.Empty
'المدخلة من المستخدم Command Line هنا يتم قراءة أسطر
ForEach GetLines AsStringIn Lines
'
هنا يتم البحث عن متغير المساعدة
If GetLines.ToLower.StartsWith(InputArgument(0)) Then
'إظهار نافذة المساعدة
MainForm.ComHelpShow = True
ComHelpDialog.ShowDialog()
Exit For
EndIf
'
هنا يتم البحث عن متغير إظهار الاسم
If GetLines.ToLower.StartsWith(InputArgument(1)) Then
'هنا يتم إزالة المتغير المستخدم لإظهار الاسم وقراءة ما بعده
InputName = GetLines.Remove(0, InputArgument(1).Length)
'
التأكد من وجود اسم
If InputName.Length 0 Then
'هنا يتم إظهار رسالة تنبيه تفيد بعدم وجود اسم
MessageBox.Show("لا يوجد اسم.", "تنبيه", MessageBoxButtons.OK, _
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, _
MessageBoxOptions.RightAlign OrMessageBoxOptions.RtlReading)
Else
'
هنا يتم إظهار الاسم في رسالة
MessageBox
.Show(String.Format("اسمك هو: {0}"InputName), "الاسم"MessageBoxButtons.OK_
MessageBoxIcon
.InformationMessageBoxDefaultButton.Button1_
MessageBoxOptions
.RightAlign OrMessageBoxOptions.RtlReading)
EndIf
Else
'في حالة إذا لم تدخل متغير المساعدة ومتغير الاسم والاسم بعده
'
للبرنامج فسيضع مسار الملف في القائمة exe وقمت بسحب ملف وألقيته على ملف
'أو قمت بفتح الملف عن طريق "فتح باستخدام" واخترت البرنامج
MainForm.ListBox1.Items.Add(GetLines)
MainForm.AddItems = True
EndIf
Next
EndSub
EndClass 



ملاحظة: بعد الضغط على زر View Application Events يقوم الفيجوال بيسك بإنشاء ملف اسمه ApplicationEvents.vb تابع للمشروع تجده في نافذة Solution Explorer وهذا الملف هو ما نقوم بالتعديل فيه وادراج الأكواد والشرح السابق والتالي كان وسيكون على هذا الملف.

سادساً: الآن نقوم بإستدعاء حدث Read داخل Class CommandLines من خلال الأكواد التي أنشأها الفيجوال بيسك بشكل تلقائي داخل ملف ApplicationEvents.vb.

PHP كود :
'الاكواد التي أدرجها فيجوال بيسك بشكل تلقائي
'
هذا الكود يعمل عندما يشتغل البرنامج
PrivateSub MyApplication_Startup
(sender AsObjectAs Microsoft.VisualBasic.ApplicationServices.StartupEventArgsHandlesMe.Startup
' Class CommandLines في Read من خلال حدث تشغيل البرنامج إلى حدث Command Line هنا يتم تحميل أسطر
CommandLines.Read(e.CommandLine)
EndSub
'
هذا الكود يعمل عند تشغل البرنامج مرة أخرى دون إغلاق الأول
PrivateSub MyApplication_StartupNextInstance
(sender AsObjectAs Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgsHandlesMe.StartupNextInstance
' Class CommandLines في Read للبرنامج وهو شغال إلى حدث Command Line هنا يتم تحميل أسطر
CommandLines.Read(e.CommandLine)
EndSub 

سابعاً: أصبحنا قريبين من جعل البرنامج يستخدم Commamd Line ويقرأها بشكل سليم، بل انتهينا من ذلك. طبعاً الباقي يعود لك ولخبرتك في البرمجة لتستفيد من هذا إن شاء الله.

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

جميع الحقوق محفوظة © 2011 معتز النويري

أنتظر ردودكم واستفساركم على هذا الشرح...