मैं एक ऐप बनाने की कोशिश कर रहा हूं जो विशिष्ट समय पर कार्य करेगा (विंडोज़ टास्क शेड्यूलर की तरह)। मैं वर्तमान में कार्य द्वारा आवश्यक फ़ाइल (या exe) लॉन्च करने के लिए Process.Start() का उपयोग कर रहा हूं।सिस्टम के साथ शुरू की गई प्रक्रिया को मार डालें। डायग्नोस्टिक। प्रोसेस। स्टार्ट ("फ़ाइल नाम")
मैं एक फ़ाइल (an.mp3) को कॉल करके एक प्रक्रिया शुरू कर रहा हूं और प्रक्रिया WMP शुरू होती है (क्योंकि यह डिफ़ॉल्ट एप्लिकेशन है)। अब तक सब ठीक है। अब मैं उस प्रक्रिया को मारना चाहता हूं। मुझे पता है कि प्रक्रिया के लिए यह सामान्य व्यवहार है। इस मामले में कुछ भी (सी # में शून्य) वापस करने के लिए स्टार्ट (स्ट्रिंग, स्ट्रिंग)।
तो मैं पूछ रहा हूं कि जब मैं इसे प्रोसेस.स्टार्ट (स्ट्रिंग, स्ट्रिंग) के माध्यम से बुलाता हूं तो मैं डब्लूएमपी को कैसे बंद कर सकता हूं ??
संपादित करें:
कृपया ध्यान दें कि मैं) Process.Start (के साथ सीधे WMP खोलने नहीं कर रहा हूँ और इस लाइन जिसके साथ मैं प्रक्रिया को चलाने है:
वीबी: Me._procs.Add (Process.Start (Me._procInfo))सी #: this._procs.Add (Process.Start (this._procInfo))
_procInfo एक ProcessStartInfo उदाहरण है। _procInfo.FileName "सी: \ मार्ग \ myFile.mp3" है। यही कारण है कि डब्ल्यूएमपी खुलता है। किसी भी मामले में, सभी प्रारंभ() विधियों, उदाहरण के अलावा, जो एक बुलियन लौटाता है, कुछ भी नहीं लौटाता है (सी # में शून्य), क्योंकि डब्ल्यूएमपी ऐसी प्रक्रिया नहीं है जो सीधे बनाया गया था (कृपया ध्यान दें कि डब्ल्यूएमपी चलाया गया है और गीत खेलता है)।
मेरे ज्ञान के लिए, 'प्रक्रिया। स्टार्ट' केवल 'शून्य' वापस कर देगी यदि कोई प्रक्रिया वास्तव में शुरू नहीं हुई थी, उदा। दस्तावेज़ को लोड करने के लिए एक मौजूदा प्रक्रिया का पुन: उपयोग किया गया था (आपके मामले में, एक एमपी 3 फ़ाइल)। क्या आप वास्तव में एक प्रक्रिया को मारना चाहते हैं जो आपका कोड वास्तव में शुरू नहीं हुआ था? – Ani
@Ani - स्थैतिक स्टार्ट सभी रिटर्न प्रक्रिया को कॉल करता है लेकिन सदस्य फ़ंक्शन बूल –
@ स्टेव टाउनसेंड देता है: ठीक है, लेकिन मेरा मानना है कि ओपी स्थिर विधि के बारे में बात कर रहा है। यदि एक गैर-शून्य 'प्रक्रिया' ऑब्जेक्ट का संदर्भ पहले से ही उपलब्ध था, तो समस्या मौजूद नहीं होगी। – Ani