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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [درس فيديو] تحذير هام في التعامل مع For و Try ali.alfoly 3 104 أمس, 12:43 AM
آخر رد: silverlight
Wink [مقال] كفية التعامل مه الجملة الشرطية IF alims 8 3,519 19-11-16, 01:06 AM
آخر رد: LoveVb
Big Grin [مقال] كفية التعامل مع حلقة التكرار For , For Each alims 8 3,478 01-11-15, 11:51 PM
آخر رد: adel27
  [VB.NET] التعامل مع الصور في vb net أحمد النجار 2 1,008 03-06-15, 10:45 PM
آخر رد: أحمد النجار
  التعامل مع الملفات الصوتية ........دردشة برمجية RaggiTech 6 2,941 19-12-14, 11:11 PM
آخر رد: sniperjawadino
Lightbulb [مقال] التعامل مع اختصارات الملفات Shortcuts Magic Sword 1 628 03-11-14, 12:03 PM
آخر رد: alzahrani
  الكامل في VB.Net (التعامل مع الأقراص و المجلدات و الملفات) rinawi 3 1,256 25-05-13, 01:11 PM
آخر رد: shaker.soft
  معلومة ::: التعامل مع Registry RaggiTech 3 782 06-10-12, 07:55 PM
آخر رد: RaggiTech
  من الميزات القادمة مع vb2010 التعامل مع اللغات الديناميكية RaggiTech 0 339 05-10-12, 01:28 AM
آخر رد: RaggiTech
  دالة التعامل مع التاريخ الهجري senior 0 707 04-10-12, 04:40 PM
آخر رد: senior

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


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