यह डिफ़ॉल्ट व्यवहार मुझे बहुत परेशान करता है। मैं माइक्रोसॉफ्ट से सहमत हूं कि अधिकांश उपयोगकर्ताओं के लिए "केवल शो अधिसूचना" को डिफ़ॉल्ट करने के लिए शायद यह एक अच्छा विचार था। "अधिसूचना क्षेत्र" का उद्देश्य अपने उपयोगकर्ताओं को सूचनाएं दिखाने के लिए (जैसा कि यह नाम का अर्थ है) है। यह ऐसी जगह नहीं होनी चाहिए जहां कंपनियां अपने कार्यक्रमों को "विज्ञापन" देने वाले बेकार आइकन डालती हैं, लेकिन कुछ भी नहीं करती हैं।
कहा जा रहा है कि, एक पॉवर-यूजर के रूप में, मुझे इस बात का अच्छा अंदाजा है कि मेरे लिए कौन से ट्रे आइकन महत्वपूर्ण हैं और जिन्हें मैं छिपाना पसंद करूंगा। मेरे पास बहुत अधिक आइकॉन हैं जो हमेशा डिफ़ॉल्ट रूप से दिखाते हैं, लेकिन व्यक्तिगत रूप से व्यक्तिगत रूप से छिपाने की क्षमता के साथ, जैसा कि ओपी ने अनुरोध किया है। कई ट्रे आइकन न केवल सूचनाएं प्रदान करते हैं, बल्कि वास्तविक समय की स्थिति और सेटिंग्स और नियंत्रणों के लिए त्वरित पहुंच आदि भी हैं, इसलिए मैं एक सेटिंग की कमी (यहां तक कि रजिस्ट्री में) से निराश हूं जो नए अधिसूचना आइकन के लिए व्यवहार की अनुमति देगा डिफ़ॉल्ट रूप से "आइकॉन और सूचनाएं दिखाएं"।
मुझे इस तरह की सेटिंग नहीं मिल पाई है। जेम्स द्वारा ऊपर उल्लिखित रजिस्ट्री कुंजी शायद उपयोगी नहीं है। एक बात के लिए, यह अंडर है HKLM
, जो एक मशीन-चौड़ा सेटिंग है। लेकिन ट्रे आइकन का व्यवहार उपयोगकर्ता-विशिष्ट है, हालांकि HKCU
उस कुंजी के बराबर नहीं है ।
प्रासंगिक रजिस्ट्री कुंजी वास्तव HKCU\Software\Classes\Local Settings\Microsoft\Windows\CurrentVersion\TrayNotify
में IconStreams
मूल्य में है। यह कुंजी एक बाइनरी रजिस्ट्री कुंजी है। इसमें डेटा के कई ब्लॉक होते हैं जो निष्पादक पथों को पूर्ण पथ संग्रहीत करते हैं, जिसमें अधिसूचना आइकन और साथ ही प्रत्येक आइकन द्वारा प्रदर्शित अंतिम टूल-टिप और प्रत्येक के लिए "शो" सेटिंग होती है।
इसलिए यद्यपि मुझे नए आइकन के लिए डिफ़ॉल्ट व्यवहार को बदलने का कोई तरीका नहीं मिला है , मैं उपरोक्त रजिस्ट्री कुंजी के द्विआधारी प्रारूप को समझने या उसी जानकारी का उपयोग करने के तरीके के लिए कुछ अच्छे संदर्भ खोजने में सक्षम था ) ITrayIcon
इंटरफ़ेस। इन विधियों का उपयोग उपयोगिता का उत्पादन करने के लिए किया गया था जो व्यक्तिगत ट्रे आइकन के व्यवहार को प्रोग्रामेटिक रूप से पहचान और बदल सकते हैं।
चूंकि इस जानकारी तक प्रोग्रामेटिक पहुंच उपलब्ध है, इसलिए एक छोटे उपयोगिता कार्यक्रम को लिखना कठिन नहीं होना चाहिए जो समय-समय पर ट्रे आइकन की सूची की निगरानी करता है और किसी भी नए आइकन के व्यवहार को बदलता है। उसके बाद, यह आइकन का नाम रिकॉर्ड करेगा और इसे फिर से नहीं बदलेगा, ताकि उपयोगकर्ता द्वारा मैन्युअल रूप से किए गए किसी भी परिवर्तन को ओवरराइट नहीं किया जाएगा।
व्यक्तिगत ट्रे आइकन के व्यवहार का पता लगाने और संशोधित करने के लिए कुछ कोड उदाहरण हैं:
ये दोनों एक छोटी उपयोगिता बनाने के लिए आवश्यक कार्यों को करने के बहुत अच्छे उदाहरण देते हैं जो नए अधिसूचना आइकन के व्यवहार को मॉनिटर और बदलते हैं। अगर किसी बिंदु पर मुझे उस उपयोगिता को लिखने के लिए चारों ओर मिलता है, तो मैं इसे यहाँ वापस पोस्ट करूँगा।