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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  التعامل مع الملفات الصوتية ........دردشة برمجية RaggiTech 7 3,355 26-12-16, 02:40 AM
آخر رد: sayed fox
  التعامل مع جهاز الكمبيوتر من Command Prompt silverlight 7 253 22-12-16, 06:07 PM
آخر رد: silverlight
Video [درس فيديو] هام مرة اخري تحذير للجميع في التعامل مع try والتكرار لعدد كبير ali.alfoly 1 129 13-12-16, 03:59 PM
آخر رد: Fantastico
  [مقال] دوال التعامل مع النصوص Strings - VB.NET ابو ليلى 5 348 12-12-16, 10:32 PM
آخر رد: ابو ليلى
  [درس فيديو] تحذير هام في التعامل مع For و Try ali.alfoly 3 231 07-12-16, 12:43 AM
آخر رد: silverlight
Wink [مقال] كفية التعامل مه الجملة الشرطية IF alims 8 3,838 19-11-16, 01:06 AM
آخر رد: LoveVb
Big Grin [مقال] كفية التعامل مع حلقة التكرار For , For Each alims 8 3,759 01-11-15, 11:51 PM
آخر رد: adel27
  [VB.NET] التعامل مع الصور في vb net أحمد النجار 2 1,175 03-06-15, 10:45 PM
آخر رد: أحمد النجار
Lightbulb [مقال] التعامل مع اختصارات الملفات Shortcuts Magic Sword 1 686 03-11-14, 12:03 PM
آخر رد: alzahrani
  الكامل في VB.Net (التعامل مع الأقراص و المجلدات و الملفات) rinawi 3 1,360 25-05-13, 01:11 PM
آخر رد: shaker.soft

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


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