2009-12-03 17 views
33

में घालमेल मैं एक छोटा सा उपकरण है, जो निम्न करता लिखना चाहते हैं।Windows Explorer संदर्भ मेनू

जब आप इस प्रविष्टि पर क्लिक करते हैं तो इस फ़ाइल के साथ एक निश्चित EXE लॉन्च किया जाता है।

मैं इसके लिए सी #/.NET 2.0 का उपयोग करना चाहता हूं। यदि यह संभव नहीं है तो मैं इसे C++/Win32 के साथ भी कर सकता हूं।

मेरे प्रश्न हैं:

  1. यह सी # .NET 2.0 के साथ संभव है?
  2. विंडोज एक्सप्लोरर संदर्भ मेनू में एकीकृत करने के लिए आवश्यक फ़ंक्शन क्या हैं?
  3. मैं इसे स्थायी कैसे बना सकता हूं? (मैं प्रत्येक बूट के बाद इस उपकरण को फिर से लॉन्च नहीं करना चाहता)
  4. मुझे विशेष देखभाल करने के लिए क्या करना है? (विभिन्न ओएस, सुरक्षा अनुमतियां, आदि)

उत्तर

4

आपको बस इतना करना है कि रजिस्ट्री में कुछ सामान जोड़ें। तो हाँ आप इसे .NET 2.0 के साथ कर सकते हैं। यहां एक example of how to add Edit with Notepad है।

% 1 चयनित फ़ाइल है यदि मुझे सही याद है।

+2

यह Vista और Win7 के तहत काम नहीं करेगा। केवल एक्सपी और 2000 के तहत। मुझे पता नहीं क्यों। –

+1

मुझे लगता है कि रजिस्ट्री पथ अलग हैं, लेकिन यह अभी भी काम करना चाहिए: http://www.vistax64.com/tutorials/89829-start-menu-customize-context-menu.html –

22

आपको रजिस्ट्री तक पहुंचने और root\\File\\shell या root\Folder\\shell के तहत एक कुंजी जोड़ने की आवश्यकता होगी, इस पर निर्भर करता है कि आप किस आइटम को मेनू आइटम पर दिखाना चाहते हैं।

this article at CodeProject आज़माएं, यह काफी उपयोगी है।

संपादित करें: another article here है जो मदद की हो सकती है।

+0

http://www.codeproject.com महान 'सरल खोल संदर्भ मेनू' प्रोजेक्ट के लिंक के लिए /KB/cs/dateparser.aspx – Kiquenet

+0

+1। –

+0

अभी भी उपयोगी, धन्यवाद मार्क –

3

यह आकस्मिक रूप से, समान एक्सटेंशन में एकाधिक रनटाइम संस्करणों को होस्ट करने की वर्तमान अक्षमता के कारण, खोल एक्सटेंशन के लिए .NET का उपयोग करने के लिए समर्थित नहीं है (.NET 4 इस प्रतिबंध को उठाएगा)।

उस मामले पर विचार करें जहां आपके पास दो खोल एक्सटेंशन हैं; एक .NET 3.5 के लिए, एक .NET के लिए 1. कौन सा रनटाइम आपकी प्रक्रिया में लोड हो जाएगा? खैर, यह कम या ज्यादा यादृच्छिक है - यह निर्भर करता है कि कौन सा खोल एक्सटेंशन पहले लोड हो जाता है। कभी-कभी यह 2.0 रनटाइम हो सकता है, कभी-कभी यह 1.1 रनटाइम हो सकता है।

यह भी एक मुद्दा है यदि .NET प्रोग्राम सामान्य फ़ाइल संवाद बनाता है; आपका खोल एक्सटेंशन लोड हो सकता है या नहीं हो सकता है, और सही रनटाइम संस्करण के साथ चलाया जा सकता है या नहीं।

इस तरह, यदि आप Shell extension route पर जाते हैं तो आपको देशी सी ++/COM/Win32 का उपयोग करना चाहिए।

+0

नवीनतम .Net 4.0 रनटाइम .NET 4.0 रनटाइम (और सभी भावी रनटाइम्स) की प्रक्रिया के साथ-साथ .NET रनटाइम के साथ-साथ प्रक्रिया में समर्थन करता है। http://msdn.microsoft.com/en-us/magazine/ee819091.aspx से निम्नलिखित अंश देखें "किसी अन्य रनटाइम के साथ प्रक्रिया में एकाधिक रनटाइम रखने की क्षमता के साथ, अब हम प्रबंधित लेखन के लिए सामान्य समर्थन प्रदान कर सकते हैं खोल एक्सटेंशन-यहां तक ​​कि जो मशीन पर मनमानी अनुप्रयोगों के साथ प्रक्रिया में चलते हैं। " – logicnp

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