2010-04-16 18 views

उत्तर

34

सेवाएं लॉग इन उपयोगकर्ता की तुलना में एक अलग विंडो स्टेशन में चलती हैं, इसलिए आपके पास सिस्टम ट्रे आइकन नहीं हो सकता है। https://docs.microsoft.com/en-us/dotnet/framework/windows-services/introduction-to-windows-service-applications से:

विंडोज सेवा अनुप्रयोग लॉग-ऑन उपयोगकर्ता के इंटरैक्टिव स्टेशन की तुलना में एक अलग विंडो स्टेशन में चलते हैं। एक विंडो स्टेशन एक सुरक्षित वस्तु है जिसमें क्लिपबोर्ड, वैश्विक परमाणुओं का एक सेट, और डेस्कटॉप ऑब्जेक्ट्स का एक समूह होता है। चूंकि विंडोज सेवा का स्टेशन एक इंटरैक्टिव स्टेशन नहीं है, इसलिए विंडोज सेवा अनुप्रयोग के भीतर से उठाए गए संवाद बॉक्स नहीं देखे जाएंगे और आपके प्रोग्राम को प्रतिक्रिया देना बंद कर सकता है। इसी तरह, उपयोगकर्ता इंटरफ़ेस में उठाए गए विंडोज इवेंट लॉग में त्रुटि संदेश लॉग किए जाने चाहिए।

.NET Framework द्वारा समर्थित विंडोज सेवा वर्ग इंटरैक्टिव स्टेशनों, यानी लॉग-ऑन उपयोगकर्ता के साथ बातचीत का समर्थन नहीं करते हैं। .NET Framework में उन वर्गों को भी शामिल नहीं किया गया है जो स्टेशनों और डेस्कटॉप का प्रतिनिधित्व करते हैं। यदि आपकी विंडोज सेवा को अन्य स्टेशनों के साथ बातचीत करनी है, तो आपको अप्रबंधित विंडोज एपीआई तक पहुंचने की आवश्यकता होगी। अधिक जानकारी के लिए, विंडोज एसडीके दस्तावेज देखें।

उपयोगकर्ता या अन्य स्टेशनों के साथ विंडोज सेवा की बातचीत सावधानी से डिजाइन करने के लिए डिज़ाइन की जानी चाहिए जैसे उपयोगकर्ता पर लॉग ऑन नहीं किया गया है, या उपयोगकर्ता को डेस्कटॉप ऑब्जेक्ट्स का अप्रत्याशित सेट है। कुछ मामलों में, उपयोगकर्ता के नियंत्रण में चलने वाले विंडोज एप्लिकेशन को लिखना अधिक उचित हो सकता है।

सिस्टम ट्रे को कैसे लिखना है इसके बारे में कुछ लिंक यहां दिए गए हैं। सेवा के साथ इंटरफ़ेस करने के लिए आपको एक और एप्लिकेशन की आवश्यकता होगी, क्योंकि सेवा में सिस्टम ट्रे में सीधे आइकन नहीं हो सकता है।

How can I make a .NET Windows Forms application that only runs in the System Tray?

और

http://msdotnetsupport.blogspot.com/2008/02/cnet-application-windows-system-tray.html

9

आप सीधे नहीं कर सकते हैं, क्योंकि मशीन सेवा तब होती है जब मशीन करता है, जब कोई उपयोगकर्ता लॉग इन नहीं करता है। सेवा एक अलग उपयोगकर्ता के रूप में एक अलग संदर्भ में भी चल रही है।

क्या आप कर सकते हैं एक अलग सिस्टम ट्रे आधारित "नियंत्रक" लिखना है जो सेवा के साथ बातचीत करता है।

संबंधित मुद्दे