Monday, 15 February 2010

How to send arguments to a running Process in C#? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 32 जवाब

मैंने एक संगीत बनाया है विजुअल स्टूडियो 2012 विंडोज फॉर्म सी # का उपयोग कर खिलाड़ी। अब मैं चाहता हूं कि उपयोगकर्ता अपने प्लेयर के साथ अन्य खिलाड़ियों (विंडोज मीडिया प्लेयर, विनम्प, आदि) जैसे विंडोज एक्सप्लोरर में गाने चला सकें। मुझे फ़ाइल एसोसिएशन के लिए पहले से ही रास्ता मिल गया है!

लेकिन मुझे अपने आवेदन को कई उदाहरण (जैसे डब्ल्यूएमपी और ... नहीं) चलाने से रोकने की जरूरत है और मुझे ये गाने मिलना चाहते हैं पथ भी उन्हें भेजने के लिए मेरे आवेदन के लिए (पहले से शुरू कर दिया गया है)।

उदाहरण के लिए उपयोगकर्ता विंडोज एक्सप्लोरर में एक निर्देशिका में 3 गाने का चयन करें; मेरा आवेदन दर्ज करें / और मेरे AddFiles फ़ंक्शन को निष्पादित करें (प्लेलिस्ट में समर्थित फ़ाइलों को जोड़ें और ...)

मैंने कोशिश की है कि यह पहले भाग को हल करता है (केवल एक उदाहरण), लेकिन इससे तर्क नहीं मिल सकता << p>

मैंने भी कोशिश की लेकिन कोई मौका नहीं :( यह त्रुटि दे दी है!

** मैंने पहले ही "मैट डेविस" उत्तर की कोशिश की है और यह मेरा आवेदन सिर्फ एक उदाहरण होने के लिए और लाता है सामने का भाग बहुत बढ़िया था लेकिन उसने मेरी चलने की प्रक्रिया में तर्क नहीं भेजा था, इसलिए यह मेरी समस्या का समाधान नहीं कर सका!

कोई भी मदद अग्रिम में होगी:)

अद्यतन: मैं डॉन 'मुझे समझ में नहीं आ रहा है कि मुझे समस्या क्यों हल हो गई है क्यों विशेषज्ञों ने सवाल बंद कर दिया!' : | : /

2 अद्यतन करें (समाधान प्राप्त करें):

ठीक है अंत में मुझे समाधान मिल गया है :)

इस लिंक ने मुझे चयनित के पथ प्राप्त करने में मदद की संदर्भ मेनू आइटम पर क्लिक करके एक्सप्लोरर में फाइलें:

असली आसान :) आशा है कि यह दूसरों की भी मदद करे!

मैं इसका उपयोग करता हूं:

यह एक उदाहरण है, और कमांड लाइन आरजी का समर्थन करता है। मेरा प्रोग्राम इस तरह शुरू हो गया है:

  [STAThread] स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {Application.EnableVisualStyles (); Application.SetCompatibleTextRenderingDefault (गलत); फॉर्म 1 एमएफ = नया फॉर्म 1 (); // आपका फॉर्म सिंगल इंस्टेंस ऐपस्टास्टार.स्टार्ट (एमएफ, स्टार्टन्यू इंस्टेंस); } ... निजी स्थिर शून्य प्रारंभनई इंटरस्टेंस (ऑब्जेक्ट प्रेषक, StartupNextInstanceEventArgs ई) {स्ट्रिंग सीएमडीएआरजी = ई। कॉमांडलाइन [1]; // हाँ, 1 को पाने के लिए पहले शून्य नहीं ...}  

आपको इसकी भी ज़रूरत होगी:

<पूर्व> वर्ग सिंगल इंस्टेंस ऐपस्टार्टर {स्टैटिक सिंगल इंस्टेंस ऐप एप = रिक्त; सार्वजनिक स्थैतिक शून्य प्रारंभ (फ़ॉर्म एफ, स्टार्टअप नेस्ट इंस्टेंस ईवेंटहैंडलर हैंडलर) {यदि (ऐप == रिक्त और amp; एफ! = नल) {ऐप = नया सिंगल इंस्टेंस ऐप (एफ); } ऐप। स्टार्टअपइनएस्टेंस + = हेन्डलर; app.Run (Environment.GetCommandLineArgs ()); }}

और यह:

  वर्ग सिंगल इन्सटेंस ऐप: विंडोजफ़ॉर्मअब्सक्रिप्शनबेश {सार्वजनिक सिंगलएन्स्टेंसएप () {} पब्लिक सिंगल इन्स्टेंस ऐप (फॉर्म एफ) {base.IsSingleInstance = true; This.MainForm = f; }}  

ध्यान दें कि उन दोनों वर्गों को Microsoft.VisualBasic.ApplicationServices विधानसभा (आपको इसका संदर्भ देना होगा) का उपयोग करें।


No comments:

Post a Comment