คุณจะเพิ่มรายการในเมนูบริบทของโฟลเดอร์ได้อย่างไร


8

ฉันรู้วิธีเพิ่มเมนูบริบทสำหรับเมื่อคุณคลิกที่โฟลเดอร์จริง:

[HKEY_CLASSES_ROOT\Directory\shell\commandNameHere]

แต่สิ่งที่เกี่ยวกับการคลิกที่ไม่มีอะไรในโฟลเดอร์ ?

เช่นฉันสร้างโฟลเดอร์ใหม่บนเดสก์ท็อปคลิกสองครั้งเพื่อเข้าสู่โฟลเดอร์จากนั้นคลิกขวาที่ไม่มีอะไร (โฟลเดอร์ว่างเปล่า) ตอนนี้ฉันต้องการให้เมนูบริบทของฉันปรากฏในสถานการณ์นี้


ฉันคิดว่ากุญแจที่คุณต้องการคือHKEY_CLASSES_ROOT\Directory\Background
แอนดรูแลมเบิร์ต

1
ขอบคุณ @Amazed ที่จริงใกล้ ... มันเป็นจริง: [HKEY_CLASSES_ROOT\Directory\Background\shell\commandNameHere]
Xero

5
แก้ไขสำหรับทุกคนที่สนใจนี่คือไฟล์. REG เพื่อเพิ่มฟังก์ชั่นนี้ในเมนูบริบทของ windows: 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
อนุญาตและสนับสนุนให้ตอบคำถามของคุณเอง หากคุณแก้ปัญหาของคุณโพสต์คำตอบและยอมรับมัน
Dennis

คำตอบ:


10

สำหรับผู้ที่สนใจนี่คือ.regไฟล์สำหรับเพิ่มฟังก์ชั่นนี้ในเมนูบริบทของ windows:

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 )

สิ่งนี้จะเพิ่มคำสั่งในเมนูบริบทชื่อ "git bash here" พร้อมไอคอนซึ่งเปิดคอนโซล

คำสั่งถูกเพิ่มภายใต้ทั้งสอง:

  • HKEY_CLASSES_ROOT\Directory\shellเมนูบริบทเมื่อคุณคลิกขวาที่โฟลเดอร์
  • HKEY_CLASSES_ROOT\Directory\backgroundเมนูบริบทเมื่อคุณคลิกขวาบนพื้นที่ว่าง "พื้นหลัง" ในขณะที่อยู่ในโฟลเดอร์

2
ระวังค่า "none" สำหรับการดำเนินการเริ่มต้น ('@ =') หากไม่มี 'none' นี้ Windows จะถือว่าการดำเนินการที่เพิ่มเข้ามาเป็นค่าเริ่มต้นดังนั้นการคลิกสองครั้งที่ไดเรกทอรีจะไม่เปิดไดเรกทอรีอีกต่อไป - ซึ่งทำให้ Windows ใช้งานไม่ได้เกือบ -> ตั้งค่า 'none' เป็นการกระทำเริ่มต้นอนุญาตให้เพิ่มรายการเมนูบริบทโดยไม่เปลี่ยนพฤติกรรมเริ่มต้นของ windows

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;}

นี้จะแสดงเมนูบริบทของคุณในโฟลเดอร์ทั้งหมด ... เมื่อคุณรวบรวมรหัสนี้เพื่อให้แน่ใจว่าคุณมีสิทธิ์ในการบริหาร .. หวังว่ารหัสนี้จะเป็นประโยชน์สำหรับคุณ
Kashif แม้ว

1
คุณสามารถแก้ไขคำตอบเพื่ออธิบายเพิ่มเติมว่ารหัสของคุณทำอะไรได้บ้าง
Burgi

แม้ว่าสิ่งนี้อาจตอบคำถามได้ แต่มันจะเป็นคำตอบที่ดีกว่าถ้าคุณสามารถให้คำอธิบายได้ว่าทำไมถึงเป็นเช่นนั้น
DavidPostill

จริงๆแล้วรหัสนี้จะทำเพียงสร้างคีย์ใหม่สำหรับเมนูบริบท คีย์และคีย์ย่อยยังมีค่าตามลำดับ เมื่อรหัสนี้รวบรวมและเรียกใช้จากนั้นในทุก ๆ โฟลเดอร์มันจะแสดงเมนูบริบท ...
Kashif Meo

แต่ฉันคิดว่าคำถาม req นั้นเปลี่ยนไป .. มันอาจช่วยเขาได้ แต่ไม่ใช่วิธีแก้ปัญหาที่แน่นอน ..
Kashif Meo

-2

นี่คือทางออกหนึ่งสำหรับเมนูบริบททั้งหมด

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

แต่วิธีการส่งผ่านหลายไดเรกทอรีหรือไฟล์ไปยังเมนูบริบทนี้เป็นอาร์กิวเมนต์เนื่องจาก% 1 ใช้เพียงครั้งเดียวและเมื่อเรา ctrl + คลิกไฟล์หลาย ๆ ไฟล์มันกำลังเปิดเวลาปฏิบัติการ mutliple แทนการส่งทั้งหมดเป็นอาร์กิวเมนต์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.