تقييم الموضوع :
  • 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 ك ب / التحميلات : 53)
.zip   مثال لاستخدام Command Li.zip (الحجم : 13.66 ك ب / التحميلات : 53)
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  لفهم كيفية الربط الذي يتم بين الجداول viv 2 106 12-05-18, 08:24 AM
آخر رد: princelovelorn
  حصرياً ( إطبع على الوورد من خلال برنامجك ) ( شرح بالصور ) m.sami.ak 21 3,351 23-02-18, 11:04 AM
آخر رد: احمد نعمة عبد السلام
  شرح بالصور لطريقة استخدام و كتابة قصاصات الكود Code Snippet المرفقة مع VB.Net Mohamad Anan 3 421 11-02-18, 04:22 AM
آخر رد: وعد مولود
  درس: كيفية حساب عدد الأسطر في نص المبرمج الطموح vb6 5 2,517 26-12-17, 09:46 PM
آخر رد: abo.alaa315
  كيفية عمل برنامج للأذان + قاعدة بيانات لـ 252 دولة و 9512 مدينة ! : مبرمج أوتار 2 10,176 25-11-17, 01:21 PM
آخر رد: محمد خالد
  موضوع الاستاذ رامي مثال \ لطريقة تفعيل برنامجك عند العميل وتغيير كلمة مرور اRamilove سعود 8 3,012 06-10-17, 01:43 AM
آخر رد: حمادة دراز
  كيفية قراءة ملف باستخدام IntPtr الخاص بالملف silverlight 3 690 24-12-16, 03:13 AM
آخر رد: silverlight
  التعامل مع جهاز الكمبيوتر من Command Prompt silverlight 7 854 22-12-16, 06:07 PM
آخر رد: silverlight
  [مقال] دمج كل ملفات برنامجك الى ملف تنفيذى واحد ali.alfoly 25 10,460 02-12-16, 04:04 PM
آخر رد: ali.alfoly
Star [مقال] كيفية تحويل اسعار العملات بإستخدام Yahoo Exchange Rates Web Service Programmation 8 3,525 26-08-16, 10:21 AM
آخر رد: tryold

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


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