ابدأ شيئًا ما باستخدام العملية. ابدأ في VB.NET

click fraud protection

ال بداية طريقة معالجة ربما يكون هذا الكائن من أكثر الأدوات التي لا تحظى بالتقدير والمتوفرة للمبرمج. ك .شبكة طريقة، بداية لديها سلسلة من الأحمال الزائدة ، وهي مجموعات مختلفة من المعلمات التي تحدد بالضبط ما تفعله الطريقة. تتيح لك التحميلات الزائدة تحديد أي مجموعة من المعلمات قد ترغب في تمريرها إلى عملية أخرى عند بدء تشغيلها.

ما يمكنك القيام به معالجة. بداية في الحقيقة محدودة فقط بالعمليات التي يمكنك استخدامها معها. إذا كنت ترغب في عرض ملف ReadMe المستند إلى النص في المفكرة ، فمن السهل:

معالجة. ابدأ ("ReadMe.txt")
أو.
معالجة. ابدأ ("notepad" ، "ReadMe.txt")

يفترض هذا المثال أن الملف التمهيدي موجود في نفس المجلد مثل البرنامج وأن المفكرة هي التطبيق الافتراضي لأنواع ملفات .txt ، وأنه في مسار بيئة النظام.

معالجة. بدء تشغيل أمر القيادة في VB6

بالنسبة للمبرمجين المطلعين على Visual Basic 6 ، معالجة. بداية يشبه إلى حد ما VB 6 الصدف أمر. في VB 6 ، ستستخدم شيئًا مثل:

lngPID = Shell ("MyTextFile.txt" ، vbNormalFocus)

باستخدام العملية. بداية

يمكنك استخدام هذا الرمز لبدء المفكرة إلى أقصى حد وإنشاء ProcessStartInfo كائن يمكنك استخدامه للتحكم بشكل أكثر دقة:

instagram viewer
خافت ProcessProperties كـ ProcessStartInfo جديد
خصائص العملية. FileName = "المفكرة"
خصائص العملية. الوسيطات = "myTextFile.txt"
خصائص العملية. WindowStyle = ProcessWindowStyle. إلى أقصى حد
خففت myProcess As Process = Process. البدء (ProcessProperties)

بدء عملية مخفية

يمكنك حتى بدء عملية مخفية.

خصائص العملية. WindowStyle = ProcessWindowStyle. مخفي
لكن كن حريص. إذا لم تقم بإضافة المزيد من التعليمات البرمجية لإنهاء العملية ، فسيتعين عليك على الأرجح إنهاءها في إدارة المهام. عادةً ما يتم استخدام العمليات المخفية فقط مع العمليات التي لا تحتوي على أي نوع من واجهة المستخدم.

استرداد اسم العملية

أعمل مع معالجة. بداية ككائن .NET يمنحك الكثير من القدرات. على سبيل المثال ، يمكنك استرداد اسم العملية التي بدأت. سيعرض هذا الرمز "المفكرة" في نافذة الإخراج:

خففت myProcess As Process = Process. ابدأ تشغيل وحدة تحكم ("MyTextFile.txt"). اكتب خط (myProcess. اسم العملية)
كان هذا شيء يمكنك ليس تفعل مع VB6 الصدف الأمر لأنه أطلق التطبيق الجديد بشكل غير متزامن. باستخدام WaitForExit يمكن أن يسبب المشكلة العكسية في .NET لأنه يجب عليك بدء عملية في مؤشر ترابط جديد إذا كنت بحاجة إليها للتنفيذ بشكل غير متزامن. على سبيل المثال ، إذا كنت بحاجة إلى أن تظل المكونات نشطة في شكل تم فيه بدء العملية و WaitForExit تم اعدامه. عادة ، لن تكون هذه المكونات نشطة. قم بترميزها وشاهد بنفسك.

طريقة واحدة لإجبار العملية على التوقف هي استخدام قتل طريقة.

myProcess. قتل()

ينتظر هذا الرمز لمدة عشر ثوانٍ ثم ينتهي العملية.

ومع ذلك ، يكون التأخير القسري ضروريًا أحيانًا للسماح للعملية بإكمال الخروج لتجنب حدوث خطأ.

myProcess. انتظار (10000)
'إذا لم تكتمل العملية في غضون
10 ثواني ، اقتلها
إذا لم يكن myProcess. خرجت بعد ذلك
myProcess. قتل()
إنهاء إذا
خيوط. مسلك. النوم (1)
وحدة التحكم. كتابة خط ("انتهت المفكرة:" _
& myProcess. وقت الخروج و _
بيئة. خط جديد & _
"كود الخروج:" & _
myProcess. رمز ExitCode)

في معظم الحالات ، قد يكون من الأفضل وضع المعالجة في ملف باستخدام منع لضمان تحرير الموارد التي تستخدمها العملية.

استخدام myProcess As Process = عملية جديدة
"الكود الخاص بك يذهب هنا
استخدام نهاية

لجعل كل هذا أسهل للعمل معه ، هناك حتى معالجة مكون يمكنك إضافته إلى مشروعك حتى تتمكن من القيام بالكثير من الأشياء الموضحة أعلاه في وقت التصميم بدلاً من وقت التشغيل.

أحد الأشياء التي تجعل هذا أسهل بكثير هو ترميز الأحداث التي تثيرها العملية ، مثل الحدث الذي خرجت فيه العملية. يمكنك أيضًا إضافة معالج باستخدام رمز مثل هذا:

'السماح للعملية برفع الأحداث
myProcess. EnableRaisingEvents = True
'إضافة معالج حدث Exited
AddHandler myProcess. خرج ، _
العنوان تم الخروج من العملية
تم إخراج العملية الفرعية الخاصة (مرسل ByVal ككائن ، _
ByVal e كنظام. EventArgs)
"الكود الخاص بك يذهب هنا
نهاية فرعية

ولكن ببساطة اختيار الحدث للمكون أسهل بكثير.

instagram story viewer