2011-08-10 14 views
5

मैं संदर्भ मेनू में प्रविष्टियों का क्रम कैसे बदल सकता हूं? (उदा। निर्देशिकाओं के लिए) मुझे यह जानने की ज़रूरत है कि विंडोज़ इसे दिखाते समय ऑर्डर कैसे निर्धारित करता है ताकि मैं इसे नियंत्रित कर सकूं। उदाहरण के लिए, मैं संदर्भ मेनू सूचीविंडोज एक्सप्लोरर संदर्भ मेनू में आदेश

के अंत में अपनी कस्टम कार्रवाई करना चाहता हूं अग्रिम धन्यवाद!

+0

@ क्रिस्टोफ ग्रिमर-डायट्रिच, और क्या? क्या आपको Google में कोई जवाब मिला? ठीक है, बस मुझे लिंक दो। – ixSci

+0

मुझे पून के लिए खेद है। हालांकि मैं दूसरा लिंक (http://windowsxp.mvps.org/context_folders.htm) आपको साथ में मदद करेगा। –

उत्तर

7

मेरा गूगल फू मुझे this को जन्म दिया:

तो छंटाई निर्णय के क्रम में निम्नलिखित तत्वों पर आधारित है:

  1. कुंजी प्राथमिकता (जैसे, txtfile, *, AFSO)
  2. शैक्षिक क्रियाओं के लिए एक विशेष मामले के साथ शेलेक्स \ contextmenuhandlers के रजिस्ट्री गणना आदेश हमेशा पहले
  3. आईसीएन्टेक्स्टमेनू कार्यान्वयन आदेश

इसलिए यदि स्थिति के लिए कोई विवाद है, तो एक्सटेंशन के लिए मेनू के भीतर उनकी सापेक्ष स्थिति की गारंटी देने के लिए कोई लगातार तरीका नहीं है।

स्पष्ट रूप से आप चरण 1 के बारे में कुछ भी नहीं कर सकते हैं। चरण 3 केवल आपके हैंडलर में लागू क्रियाओं पर लागू होता है। यह चरण 2 छोड़ देता है। केवल एक चीज जो आप कर सकते हैं वह है कॉन्टेक्स्टमेनू हैंडलर के तहत अपनी प्रविष्टि का नाम दें, जैसे कि इसे पहले समझा जाएगा, लेकिन कुछ भी ऐसा करने से किसी और को रोक नहीं रहा है।

1

This Q&A संदर्भ मेनू में किसी आइटम को बनाने (स्थानांतरित करने) का एक आसान तरीका दिखाता है। मैं एक मौजूदा आइटम को डुप्लिकेट करने में कामयाब रहा। फिर मैंने "एमीटिम" या "0 माइटिम" से शुरू करने के लिए कुंजी का नाम बदलकर, संदर्भ मेनू के भीतर अपने आइटम को उच्च और अधिक सुलभ स्थिति में स्थानांतरित कर दिया।

2

यह विंडोज 7, हो सकता है नए संस्करणों के लिए उसी के लिए है की स्थापना। यह अन्य उत्तरों से प्रेरित था, सभी आदेश को प्रभावित कर रहे हैं।

मैं "*" (सभी फाइलों) के लिए प्रविष्टियों की व्याख्या कर रहा हूं, लेकिन यह विशेष एक्सटेंशन के लिए भी जाता है।

रजिस्ट्री में किए गए किसी भी बदलाव के लिए मुझे कोई ज़िम्मेदारी नहीं है!

, संदर्भ मेनू में तीन वर्गों रहे हैं के रूप में यह कहते हैं में How to Change the Order of Options in Context Menu (answer by @Anonymouse से)

वे उन्हें फोन:

2 - Default menu position (at the top). 
1 - Send to, copy to folder and move to folder menu part (in the middle). 
0 - Rename menu part (at the bottom). 

इन वर्गों स्थिति answer by @Luke में नियमों द्वारा निर्धारित किया जाता के भीतर
"सेक्शन" के भीतर ऑर्डर बदलने का सबसे आसान तरीका HKCR-*-shell या HKCR-*-shellex के तहत रजिस्ट्री कुंजी का नाम बदलना है। उपकुंजी shell के तहत सभी shellex के तहत उनके सामने होंगे। कुंजी नाम के रूप में CLSID कुंजी कुंजी अंतिम प्रविष्टि के रूप में होगी क्योंकि वे उपयोग किए गए क्रम में आखिरी हैं।

उदाहरण के तौर पर, मैं sample from MSDN to build a Context Menu Handler का पालन कर रहा था। यह CLSID का उपयोग shellex के अंतर्गत कुंजी के लिए और डिफ़ॉल्ट मान के रूप में "मित्रवत नाम" के रूप में कर रहा है। यह "खंड" 2 (शीर्ष खंड) के तल पर रखा गया था। मैंने कुंजी नाम को Asample जैसे कुछ में बदल दिया और इसके बजाय डिफ़ॉल्ट मान को CLSID के रूप में बदल दिया। अब यह shell के तहत प्रविष्टियों के बाद सीधे था।

ऑर्डर बदलने के कुछ और तरीके हैं।

shell के तहत कुंजी के लिए आप स्ट्रिंग डेटा Top या Bottom के साथ Position मान जोड़ सकते हैं। "सेक्शन" में फैसला करना संभव नहीं है।

shellex के तहत कुंजी के लिए Position का कोई प्रभाव नहीं है। इसके बजाय यह तय करना संभव है कि प्रविष्टि "अनुभाग" flags, described in the link उपरोक्त का उपयोग करेगी।

  1. shellext आप ले जाना चाहते के लिए CLSID का प्रयोग करें। यह
    {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} जैसा है। इसे या तो कुंजी नाम या डिफ़ॉल्ट मान से प्राप्त करें, यह इस बात पर निर्भर करता है कि प्रविष्टि कैसे की जाती है।
  2. HKCR-CLSID के तहत प्रविष्टि खोजें, कुंजी का नाम CLSID है।
  3. flags नाम और DWORD के साथ एक मूल्य जोड़ें CLSID के नीचे वर्णित "सेक्शन" संख्या के साथ।
संबंधित मुद्दे