التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 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)
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
شرح كيفية استخدام Command Line في برنامجك - بواسطة مبرمج أوتار_mybb_import4635 - 27-09-12, 02:38 PM

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

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


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