आप किसी आइटम को किसी फ़ोल्डर के संदर्भ मेनू में कैसे जोड़ते हैं?


8

मुझे पता है कि जब आप वास्तविक फ़ोल्डर पर क्लिक करते हैं तो संदर्भ मेनू कैसे जोड़ें:

[HKEY_CLASSES_ROOT\Directory\shell\commandNameHere]

लेकिन एक फ़ोल्डर में कुछ भी नहीं पर क्लिक करने के बारे में क्या ?

जैसे मैं अपने डेस्कटॉप पर एक नया फ़ोल्डर बनाता हूं, फ़ोल्डर में प्रवेश करने के लिए डबल क्लिक करें, फिर कुछ भी नहीं (फ़ोल्डर खाली है) पर राइट क्लिक करें, अब मैं चाहता हूं कि मेरा संदर्भ मेनू इस स्थिति में दिखाई दे।


मुझे लगता है कि आपको जो कुंजी चाहिए वह हैHKEY_CLASSES_ROOT\Directory\Background
एंड्रयू लैम्बर्ट

1
thanx @ अचम्भा जो वास्तव में करीब था ... यह वास्तव में है: [HKEY_CLASSES_ROOT\Directory\Background\shell\commandNameHere]
xero

5
विंडोज़ के संदर्भ मेनू में इस कार्यक्षमता को जोड़ने के लिए .REG फ़ाइल में रुचि रखने वाले किसी भी व्यक्ति के लिए हल : Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Shell] @="none"`` [HKEY_CLASSES_ROOT\Directory\shell\gitBashHere] [HKEY_CLASSES_ROOT\Directory\Background\shell\gitBashHere] "Icon"="C:\\icons\\git-gui.ico" "MUIVerb"="git bash here" "Position"="bottom"``[HKEY_CLASSES_ROOT\Directory\shell\gitBashHere\command] [HKEY_CLASSES_ROOT\Directory\Background\shell\gitBashHere\command] @="C:\\Program Files\\Console2\\Console.exe -d %v"
xero

2
इसकी अनुमति दी जाती है और आपके अपने सवालों के जवाब देने के लिए प्रोत्साहित किया जाता है। यदि आपने अपनी समस्या हल कर ली है, तो एक उत्तर दें और उसे स्वीकार करें।
डेनिस

जवाबों:


10

रुचि रखने वाले किसी व्यक्ति के लिए, यहाँ .regइस संदर्भ को विंडोज़ संदर्भ मेनू में जोड़ने के लिए फ़ाइल है:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Shell]
@="none"
[HKEY_CLASSES_ROOT\Directory\shell\gitBashHere]
[HKEY_CLASSES_ROOT\Directory\Background\shell\gitBashHere]
"Icon"="C:\\icons\\git-gui.ico"
"MUIVerb"="git bash here"
"Position"="bottom" 
[HKEY_CLASSES_ROOT\Directory\shell\gitBashHere\command] 
[HKEY_CLASSES_ROOT\Directory\Background\shell\gitBashHere\command]
@="C:\\Program Files\\Console2\\Console.exe -d %v"

( जीरो की टिप्पणी से लिया गया )

यह एक आइकन के साथ "गिट बैश" नाम के संदर्भ मेनू में एक कमांड जोड़ता है, जो एक कंसोल खोलता है।

दोनों के तहत कमांड जोड़ी जाती है:

  • HKEY_CLASSES_ROOT\Directory\shellजब आप किसी फ़ोल्डर पर राइट-क्लिक करते हैं तो संदर्भ मेनू
  • HKEY_CLASSES_ROOT\Directory\backgroundजब आप फ़ोल्डर में "पृष्ठभूमि" खाली स्थान पर राइट-क्लिक करते हैं तो संदर्भ मेनू

2
डिफ़ॉल्ट कार्रवाई के लिए "कोई नहीं" मूल्य से अवगत रहें ('@ =') इस 'कोई नहीं' के बिना, विंडोज जोड़े गए कार्यों में से एक को डिफ़ॉल्ट मानता है, इसलिए एक निर्देशिका पर डबल क्लिक करने से निर्देशिका नहीं खुलती है, लेकिन कार्रवाई को ट्रिगर करता है - जो विंडोज को लगभग अनुपयोगी बनाता है। -> डिफ़ॉल्ट कार्रवाई के रूप में 'कोई नहीं' सेट करें विंडो डिफॉल्ट व्यवहार को बदलने के बिना संदर्भमेन आइटम जोड़ने की अनुमति देता है।

0
void WriteContextMenu(LPSTR key, LPSTR value) {

HKEY hkey=0; DWORD disp;

if(RegCreateKeyEx(HKEY_CLASSES_ROOT, key, 0, NULL, REP_OPTION_NON_VOLATILE, KEY_WRITE,NULL, &hkey, &disp)!=ERROR_SUCCESS) 

{

     if(RegOpenKey(HKEY_CLASSES_ROOT,key,&hkey)!=ERROR_SUCCESS)
    {   

      cout<<"Unable to open Registry"<<key;

        }

}if(RegSetValueEx(hkey,TEXT(""),0,REG_SZ,(LPBYTE)value, strlen(value)*sizeof(char))!=ERROR_SUCCESS)

{

   RegCloseKey(hkey);

       cout<<"Unable to set Registry Value ";

} else{

   cout<<value<<" value has set"<<endl;
}
}int main(){LPSTR key="Folder\\shell\\Testing_App"; 

 LPSTR valueKey="Menu_Title";

 LPSTR Subkey="Folder\\shell\\Testing_App\\command";


/*Here put the path or action you want to perform like you want to
    open cmd  on your context menu so the value id */

    LPSTR valueSubKey="cmd.exe";

    WriteContextMenu(key, ValueKey); 
    WriteContextMenu(Subkey, ValueSubKey);

return 0;}

यह सभी फ़ोल्डरों पर आपके संदर्भ मेनू को दिखाएगा ... जब आप इस कोड को संकलित करते हैं तो सुनिश्चित करें कि आपके पास प्रशासनिक विशेषाधिकार हैं .. आशा है कि यह कोड आपके लिए उपयोगी होगा
काशिफ मेओ

1
क्या आप अपना जवाब कुछ और समझाने के लिए संपादित कर सकते हैं कि आपका कोड क्या करता है?
बरगी

हालांकि यह प्रश्न का उत्तर दे सकता है, यह एक बेहतर उत्तर होगा यदि आप कुछ स्पष्टीकरण प्रदान कर सकते हैं कि ऐसा क्यों होता है।
DavidPostill

वास्तव में यह कोड केवल संदर्भ मेनू के लिए एक नई कुंजी बनाएगा। कुंजी और उपकुंजी भी क्रमशः उनके मान हैं। जब यह कोड संकलित होता है और तब प्रत्येक फ़ोल्डर पर चलता है, तो यह उस संदर्भ मेनू को दिखाएगा ...
काशिफ मेओ

लेकिन मुझे लगता है कि सवाल बदला हुआ है .. यह उसकी मदद कर सकता है लेकिन सटीक समाधान नहीं ..
काशिफ मेओ

-2

यहाँ सभी संदर्भ मेनू के लिए एक समाधान है।

/programming/20449316/how-add-context-menu-item-to-windows-explorer-for-folders/20458056#20458056

लेकिन, इस संदर्भ मेनू में कई निर्देशिकाओं या फ़ाइलों को कैसे पास किया जाए क्योंकि तर्क 1 के रूप में केवल एक ही ले रहा है और जब हम कई फ़ाइलों को ctrl + क्लिक करते हैं, तो यह उन सभी को तर्क के रूप में भेजने के बजाय निष्पादन योग्य उत्परिवर्ती बार खोल रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.