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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تتعامل مع برنامج الإكسيل من برنامجك rinawi 7 6,647 12-11-22, 12:11 AM
آخر رد: خالد العصاوي
  [سلسلة تعليمية] شرح تفصيلي وكامل عن كيفية الاتصال بسيكوال وعمل اتاش برمجي وجلب اسماء السيرفرات ابو انس 3 3,638 25-02-22, 12:44 AM
آخر رد: atefkhalf2004
Bug خطورة ال Sql Injection ولماذا يجب عليك استخدام Parameters لبناء الاستعلامات Anas Mahmoud 12 10,727 28-05-21, 11:52 AM
آخر رد: samiralharbi
Photo كيفية اطهار جدول داخل الأخر alsouf 3 4,475 21-11-20, 09:15 AM
آخر رد: Anas Mahmoud
  لفهم كيفية الربط الذي يتم بين الجداول viv 4 5,003 03-10-20, 05:34 PM
آخر رد: Arfat007
  [VB.NET] كيفية استخدام اداوات ديف اكسبريس devexpressلادخال السجلات الى قاعدة بيانات نوع اكسس 13adam123 0 2,582 29-03-20, 12:50 PM
آخر رد: 13adam123
Star [مقال] كيفية تحويل اسعار العملات بإستخدام Yahoo Exchange Rates Web Service Programmation 9 8,965 22-02-20, 12:58 PM
آخر رد: دمعة المقهور
Exclamation كيفية تجاوز ظهور الخطا في Global.WindowsApplication1.My.Resources الرائد 0 2,551 13-08-19, 11:40 PM
آخر رد: الرائد
  طريقة استخدام مكتبة internet download manager في برنامجك kslawy 3 5,365 30-07-19, 07:06 AM
آخر رد: سعود
  [درس فيديو] كيفية استخدام الجملة الشرطية if alims 1 3,337 22-07-19, 06:38 AM
آخر رد: سعود

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


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