تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
شرح كيفية استخدام Command Line في برنامجك
#1
ملاحظة منقول من المنتدي السابق للعضو : 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 معتز النويري

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


الملفات المرفقة صورة/صور
           

.zip   النص المصدر لـ م&#.zip (الحجم : 154.85 ك ب / التحميلات : 33)
.zip   مثال لاستخدام Command Li.zip (الحجم : 13.66 ك ب / التحميلات : 27)
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مقال] دمج كل ملفات برنامجك الى ملف تنفيذى واحد ali.alfoly 25 7,916 02-12-16, 04:04 PM
آخر رد: ali.alfoly
Star [مقال] كيفية تحويل اسعار العملات بإستخدام Yahoo Exchange Rates Web Service Programmation 8 2,487 26-08-16, 10:21 AM
آخر رد: tryold
  حصرياً ( إطبع على الوورد من خلال برنامجك ) ( شرح بالصور ) m.sami.ak 20 1,994 20-08-16, 11:53 PM
آخر رد: الوادي
  الاستفادة من بارمترات الاخراج من SQL Server داخل برنامجك ابو ليلى 1 204 20-08-16, 02:16 AM
آخر رد: الوادي
Star [VB.NET] شرح عمل امتداد خاص لبرامجك وجعل برنامجك يقرأ هذة الملفات mohammed_gamal381 22 7,422 01-06-16, 02:55 PM
آخر رد: ابراهيم كركوكي
  طريقة مميزة لعمل إعدادات Setting لحفظ اعدادات برنامجك بدون أكواد kslawy 6 1,667 26-05-16, 12:07 PM
آخر رد: CLARO
  حصرياً على اليوتوب,,, إطبع على الوورد من خلال برنامجك ( شرح بالفيديو ) مبرمج أوتار 5 1,823 15-05-16, 05:06 PM
آخر رد: CLARO
  كيف تجعل برنامجك عالميا و يدعم أكثر من لغة silverlight 5 744 15-05-16, 05:03 PM
آخر رد: CLARO
  موضوع الاستاذ رامي مثال \ لطريقة تفعيل برنامجك عند العميل وتغيير كلمة مرور اRamilove سعود 7 2,060 26-01-16, 08:07 PM
آخر رد: سعود
  [كود] Line Control silverlight 0 195 14-01-16, 03:03 PM
آخر رد: silverlight

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم