تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التعامل مع محددات سطر الأوامر CommandlineArgs
#1
كاتب الموضوع : samerselo

الخاصية CommandLineArgs
يمكننا التعامل مع محددات سطر الأوامر من خلال الخاصية CommandLineArgs التي تعيد مجموعة نصية للقراءة فقط ReadOnly Collection Of String تحتوي على محددات سطر الأوامر وتكون صيغتها العامة على الشكل

كود :
Public ReadOnly Property CommandLineArgs() As ReadOnlyCollection(Of String)
وهي متواجدة في المجمع Microsoft.VisualBasic.dll وضمن مجال الأسماء Microsoft.VisualBasic.ApplicationServices وهي بالنسبة لتطبيقات الكونسول ConsoleApplicationBase.CommandLineArgs وبالنسبة لتطبيقات الويندوز My.Application.CommandLineArgs
وتجدر ملاحظة أنه عند تشغيل عدة نسخ من التطبيق في آن واحد فإن هذه الخاصية تعيد القيم الخاصة بأول مرة تم تشغيل البرنامج فيها وللحصول على محددات سطر الأوامر للمرات التالية التي تم تشغيل البرنامج فيها علينا معالجة الحدث My.Application.StartupNextInstance وفحص الخاصية CommandLine العائدة لـ StartupEventArgs – وهنا أنصحك بمراجعة موضوعي أحداث التطبيق – وتجدر ملاحظة الاختلاف بين الخاصية CommandLineArgs التي تعيد محددات سطر الأوامر فقط والخاصية CommandLine التي تعيد سطر الأوامر التي تفذ من خلاله التطبيق كاملا بما فيه اسم الملف التنفيذي للتطبيق
وهذه الخاصية ليست متوفرة لجميع أنواع التطبيقات التي يمكنك إنشاؤها فهي متوفرة لأنواع التطبيقات التالية فقط Windows Application و Console Application و Windows Service فقط وقد تحتاج في بعض الحالات للفئة EnvironmentPermission من أجل الحصول على الصلاحيات الكافية لقراءة محددات سطر الأوامر من خلال هذه الخاصية وربما سأقوم مستقبلا بعمل موضوع مستقل عن الفئة EnvironmentPermission
أمثلة عن الاستخدام
إذا أردنا معالجة محدد ما المفترض أن يمرر عبر سطر الأوامر /input= مثلا يمكننا استخدام الكود التالي لإظهار بقية القيمة الممررة

كود :
Private Sub ParseCommandLineArgs()
Dim inputArgument As String = "/input="
Dim inputName As String = ""

For Each s As String In My.Application.CommandLineArgs
If s.ToLower.StartsWith(inputArgument) Then
inputName = s.Remove(0, inputArgument.Length)
End If
Next

If inputName = "" Then
MsgBox("No input name")
Else
MsgBox("Input name: " & inputName)
End If
End Sub
أو يمكننا عمل إجراء لمعالجة عدة محددات لسطر الأوامر

كود :
For Each cr In My.Application.CommandLineArgs
HandleArgs(cr.ToUpper)
Next

Private Sub HandleArgs(ByVal carg As String)
Select Case carg
Case "/S"
' معالجة المحدد /S

Case "/T"
' معالجة المحدد /T
Case Else
' معالجة أي محدد آخر

End Select
End Sub
وفي حالة تشغيل عدة نسخ من التطبيق في آن واحد هذا مثال عن معالجة الحدث StartupNextInstance حيث يمكننا الوصول للحدث من خلال فتح خصائص My Project ومن صفحة Application اضغط الزر View Application Events لينقلك لمحرر الكود المناسب

كود :
Private Sub MyApplication_StartupNextInstance( _
ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs _
) Handles Me.StartupNextInstance

Dim inputArgument As String = "/input="
Dim inputName As String = ""

For Each s As String In e.CommandLine
If s.ToLower.StartsWith(inputArgument) Then
inputName = s.Remove(0, inputArgument.Length)
End If
Next

If inputName = "" Then
MsgBox("No input name")
Else
MsgBox("Input name: " & inputName)
End If
End Sub
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  نظرة على DropBox SDK و التعامل معها +برنامج رفع و تحميل ملفات ابو ليلى 4 4,880 08-09-22, 11:54 AM
آخر رد: saif2023
  التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - مقدمة RaggiTech 3 5,865 30-07-21, 05:14 PM
آخر رد: kebboud
Lightbulb [مقال] التعامل مع ملفات اوفيس من خلال مكتبة NPOI ابو ليلى 2 4,196 01-07-21, 11:42 AM
آخر رد: kebboud
Lightbulb [مقال] التعامل مع اختصارات الملفات Shortcuts Magic Sword 2 4,419 01-10-20, 11:36 AM
آخر رد: abomo3ath
  [مقال] دوال التعامل مع النصوص Strings - VB.NET ابو ليلى 10 25,144 15-04-19, 07:09 PM
آخر رد: alsouf
Exclamation [VB.NET] التعامل مع ال CMD عن طريق ال TextBox YousefOkasha 5 5,021 02-06-18, 09:34 PM
آخر رد: YousefOkasha
  التعامل مع الملفات الصوتية ........دردشة برمجية RaggiTech 8 10,380 28-11-17, 11:23 PM
آخر رد: ahmed4240
  التعامل مع جهاز الكمبيوتر من Command Prompt silverlight 7 4,169 22-12-16, 06:07 PM
آخر رد: silverlight
Video [درس فيديو] هام مرة اخري تحذير للجميع في التعامل مع try والتكرار لعدد كبير ali.alfoly 1 2,537 13-12-16, 03:59 PM
آخر رد: Fantastico
  [درس فيديو] تحذير هام في التعامل مع For و Try ali.alfoly 3 3,119 07-12-16, 12:43 AM
آخر رد: silverlight

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


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