शुरू की विधि प्रक्रिया ऑब्जेक्ट संभवतः किसी प्रोग्रामर के लिए उपलब्ध सबसे कम मूल्य के उपकरण में से एक है। के तौर पर ।नेट तरीका, शुरू ओवरलोड की एक श्रृंखला है, जो मापदंडों के विभिन्न सेट हैं जो यह निर्धारित करते हैं कि विधि क्या करती है। अधिभार आपको उन मापदंडों के किसी भी सेट के बारे में बताता है जिसे आप शुरू होने पर किसी अन्य प्रक्रिया में पारित करना चाहते हैं।
आप क्या कर सकते हैं प्रक्रिया। शुरू वास्तव में केवल उन प्रक्रियाओं द्वारा सीमित है जो आप इसके साथ उपयोग कर सकते हैं। यदि आप नोटपैड में अपनी पाठ-आधारित रीडमी फ़ाइल प्रदर्शित करना चाहते हैं, तो यह उतना आसान है:
प्रक्रिया। शुरू ( "Readme.txt")या।
प्रक्रिया। प्रारंभ ("नोटपैड", "ReadMe.txt")
यह उदाहरण मानता है कि रीडमे फ़ाइल प्रोग्राम के समान फ़ोल्डर में है और नोटपैड फ़ाइल प्रकारों के लिए डिफ़ॉल्ट अनुप्रयोग है, और यह सिस्टम वातावरण पथ में है।
प्रक्रिया। VB6 में शेल कमांड के समान प्रारंभ करें
Visual Basic 6 से परिचित प्रोग्रामर के लिए, प्रक्रिया। शुरू कुछ हद तक VB 6 जैसा है खोल आदेश। VB 6 में, आप कुछ इस तरह का उपयोग करेंगे:
lngPID = Shell ("MyTextFile.txt", vbNormalFocus)
प्रक्रिया का उपयोग करना। शुरू
नोटपैड को अधिकतम करने और बनाने के लिए आप इस कोड का उपयोग कर सकते हैं ProcessStartInfo ऑब्जेक्ट जिसे आप अधिक सटीक नियंत्रण के लिए उपयोग कर सकते हैं:
नई ProcessStartInfo के रूप में मंद प्रक्रियाप्रक्रियाएं
ProcessProperties। फ़ाइलनाम = "नोटपैड"
ProcessProperties। तर्क = "myTextFile.txt"
ProcessProperties। WindowStyle = ProcessWindowStyle। अधिकतम
प्रक्रिया के रूप में मंद myProcess = प्रक्रिया। प्रारंभ (ProcessProperties)
एक हिडन प्रोसेस शुरू करना
आप एक छुपी हुई प्रक्रिया भी शुरू कर सकते हैं।
ProcessProperties। WindowStyle = ProcessWindowStyle। छिपा हुआलेकिन सावधान रहना। जब तक आप प्रक्रिया को समाप्त करने के लिए अधिक कोड नहीं जोड़ते हैं, आपको संभवतः टास्क मैनेजर में इसे समाप्त करना होगा। छिपी हुई प्रक्रियाएं आमतौर पर केवल उन प्रक्रियाओं के साथ उपयोग की जाती हैं जिनमें किसी भी प्रकार का उपयोगकर्ता इंटरफ़ेस नहीं होता है।
एक प्रक्रिया का नाम वापस लेना
के साथ काम करना प्रक्रिया। शुरू .NET ऑब्जेक्ट के रूप में आपको बहुत अधिक क्षमता देता है। उदाहरण के लिए, आप उस प्रक्रिया का नाम पुनः प्राप्त कर सकते हैं जिसे शुरू किया गया था। यह कोड आउटपुट विंडो में "नोटपैड" प्रदर्शित करेगा:
प्रक्रिया के रूप में मंद myProcess = प्रक्रिया। प्रारंभ ("MyTextFile.txt") कंसोल। राइटलाइन (myProcess)। प्रक्रिया का नाम)यह कुछ ऐसा था जो आप कर सकते हैं नहीं VB6 के साथ करते हैं खोल कमांड क्योंकि इसने नए एप्लिकेशन को एसिंक्रोनस रूप से लॉन्च किया है। का उपयोग करते हुए WaitForExit .NET में उलटी समस्या पैदा कर सकता है क्योंकि आपको एक प्रक्रिया को एक नए सूत्र में लॉन्च करना होगा यदि आपको इसे एसिंक्रोनस रूप से निष्पादित करने की आवश्यकता है। उदाहरण के लिए, यदि आपको ऐसे घटकों के रूप में सक्रिय रहने की आवश्यकता है जहां एक प्रक्रिया शुरू की गई थी और WaitForExit किया गया था। आमतौर पर, वे घटक सक्रिय नहीं होंगे। इसे कोड करें और अपने लिए देखें।
प्रक्रिया को रोकने के लिए मजबूर करने का एक तरीका उपयोग करना है को मार डालो तरीका।
myProcess। मार डालो ()
यह कोड दस सेकंड तक प्रतीक्षा करता है और फिर प्रक्रिया समाप्त करता है।
हालाँकि, किसी प्रक्रिया में त्रुटि से बचने के लिए प्रक्रिया को पूरा करने की अनुमति देने के लिए एक मजबूर विलंब कभी-कभी आवश्यक होता है।
myProcess। WaitForExit (10000)
'अगर प्रक्रिया पूरी नहीं होती है
'10 सेकंड, इसे मार डालो
यदि नहीं मेरे फिर से उत्तीर्ण हुआ
myProcess। मार डालो ()
अगर अंत
थ्रेडिंग। थ्रेड। नींद (1)
कंसोल। लिक्लाइन ("नोटपैड समाप्त:" _
और मायप्रोसेस बाहर निकलें और _
वातावरण। नई पंक्ति & _
"बाहर निकलें कोड:" और _
myProcess। ExitCode)
ज्यादातर मामलों में, यह संभव है कि आपके प्रसंस्करण को एक में रखा जाए का उपयोग करते हुए यह सुनिश्चित करने के लिए ब्लॉक करें कि प्रक्रिया द्वारा उपयोग किए गए संसाधन जारी किए गए हैं।
प्रक्रिया के रूप में myProcess का उपयोग करना = नई प्रक्रिया
'आपका कोड यहाँ जाता है
अंत का उपयोग करना
यह सब काम करने के लिए आसान बनाने के लिए, यहां तक कि एक भी है प्रक्रिया घटक जिसे आप अपनी परियोजना में जोड़ सकते हैं ताकि आप रन टाइम के बजाय डिज़ाइन समय पर ऊपर दिखाए गए बहुत सारे काम कर सकें।
चीजों में से एक यह बहुत आसान बनाता है प्रक्रिया द्वारा उठाए गए घटनाओं को कोड करना, जैसे कि घटना जब प्रक्रिया से बाहर निकल गया है। आप इस तरह कोड का उपयोग करके एक हैंडलर भी जोड़ सकते हैं:
'घटनाओं को बढ़ाने के लिए प्रक्रिया की अनुमति दें
myProcess। EnableRaisingEvents = सत्य
'एक ईवेंटेड ईवेंट हैंडलर जोड़ें
AddHandler myProcess। बाहर, _
मुझे पता है। ProcessExited
निजी उप प्रक्रिया (वस्तु के रूप में बयाल प्रेषक, _
ByVal e As System। EventArgs)
'आपका कोड यहाँ जाता है
अंत उप
लेकिन बस घटक के लिए घटना का चयन करना बहुत आसान है।