2011-01-06 8 views
7

मैंने एक छोटा WPF ऐप लिखा था कि जब 'बंद' सिस्टम ट्रे (ग्राहक आवश्यकता) को कम करता है। डबल क्लिक इसे बैक अप करता है, या राइट क्लिक से बाहर निकलने के लिए एक संदर्भ मेनू देता है।सिस्टम ट्रे में आवेदन को अधिकतम करें?

लेकिन यदि ऐप को कम किया गया है, और उपयोगकर्ता स्टार्ट-> सभी प्रोग्राम्स-> एप्लिकेशन पर नेविगेट करते हैं तो यह एक नया उदाहरण शुरू करता है।

क्या (सी # में) मुझे एप प्राप्त करने के लिए ऐप प्राप्त करने की आवश्यकता है यदि उपयोगकर्ता एक नया उदाहरण आग लगाने के बजाए ऐसा करता है?

धन्यवाद!

+2

पर देखें म्यूटेक्स ऑब्जेक्ट्स को देखें और एक सक्रिय विंडो को पकड़ें। मेरे सामने कोड नहीं है, लेकिन यह वह दिशा है जिसे आपको लेने की आवश्यकता है। - मैंने झूठ बोला, [इस आलेख को .NET अनुप्रयोगों के एकल उदाहरणों पर आजमाएं] (http://www.ai.uga.edu/mc/SingleInstance.html) –

उत्तर

7

जॉन स्कीट से इस answer एक म्युटेक्स का उपयोग कर चर्चा यह

Mutex करने के लिए जाने का रास्ता है। यह एक बहुत कम प्रक्रिया नाम का उपयोग आदि

हालांकि तुलना में कमजोर है, तो आप यकीन है कि Mutex कचरा एकत्र नहीं है बनाने की जरूरत है। एक सेवा के मामले (जो घटना एक "मुख्य" तरीका है जिसके पूरा होने से चलाता होने के बजाय संचालित है) में, ऐसा करने का सबसे समझदार रास्ता एक स्थिर चर में यह डाल करने के लिए शायद है।

म्युटेक्स के निपटान जब सेवा , बंद हो जाता है तो आप अंतिम रूप दिए जाने या ऐसा कुछ के लिए प्रतीक्षा करने की जरूरत नहीं है।

मैथ्यू Brindley के लिए his answer

[STAThread] 
static void Main() 
{ 
    using(Mutex mutex = new Mutex(false, "Global\\" + appGuid)) 
    { 
     if(!mutex.WaitOne(0, false)) 
     { 
     MessageBox.Show("Instance already running"); 
     return; 
     } 

     Application.Run(new Form1()); 
    } 
} 

अन्य अनुप्रयोग आप इसे अधिकतम करने के लिए संदेश भेजने के लिए की आवश्यकता होगी अधिकतम करने के लिए एक ही प्रश्न में इस उदाहरण देता है। इस आलेख को message sending

+0

बिल्कुल सही, धन्यवाद! – Nicros

+0

मेरा परफेक्ट वापस लेना है! कथन- यह उदाहरण के लिए जांचता है और एक नया शुरू नहीं करता है- लेकिन इस सवाल का जवाब नहीं देता कि इस प्रणाली को नया उदाहरण शुरू किए बिना इस प्रणाली को अधिकतम करने के लिए कैसे करें। – Nicros

+0

पीएफटी। मुझे अपने पीछे हटने का प्रयास करें- संदेश के लिए नीचे दिए गए लिंक को याद किया .. इसे जांच लेंगे। – Nicros