Làm thế nào để bạn thêm một mục vào menu ngữ cảnh của một thư mục?


8

Tôi biết cách thêm menu ngữ cảnh khi bạn nhấp vào thư mục thực tế:

[HKEY_CLASSES_ROOT\Directory\shell\commandNameHere]

Nhưng những gì về việc nhấp vào không có gì trong một thư mục ?

Giống như tôi tạo một thư mục mới trên máy tính để bàn của mình, nhấp đúp để vào thư mục, sau đó nhấp chuột phải vào không có gì (thư mục trống), bây giờ tôi muốn menu ngữ cảnh của mình xuất hiện trong tình huống này.


Tôi nghĩ chìa khóa bạn muốn làHKEY_CLASSES_ROOT\Directory\Background
Andrew Lambert

1
thanx @Amazed thật sự rất gần ... thực ra là: [HKEY_CLASSES_ROOT\Directory\Background\shell\commandNameHere]
xero

5
đã giải quyết cho bất kỳ ai quan tâm ở đây tệp .REG để thêm chức năng này vào menu ngữ cảnh của 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
Nó được cho phép và khuyến khích trả lời câu hỏi của riêng bạn. Nếu bạn đã giải quyết vấn đề của mình, hãy đăng câu trả lời và chấp nhận nó.
Dennis

Câu trả lời:


10

Đối với bất kỳ ai quan tâm, đây là .regtệp để thêm chức năng này vào menu ngữ cảnh của 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"

(Lấy từ nhận xét của xero )

Điều này thêm một lệnh vào menu ngữ cảnh có tên "git bash here" với một biểu tượng, mở ra một giao diện điều khiển.

Lệnh được thêm vào dưới cả hai:

  • HKEY_CLASSES_ROOT\Directory\shell, menu ngữ cảnh khi bạn nhấp chuột phải vào một thư mục
  • HKEY_CLASSES_ROOT\Directory\background, menu ngữ cảnh khi bạn nhấp chuột phải vào khoảng trống "nền" khi ở trong thư mục

2
Lưu ý giá trị "none" cho hành động mặc định ('@ =') Nếu không có 'none' này, Windows sẽ coi một trong các hành động được thêm làm mặc định, vì vậy, nhấp đúp vào thư mục sẽ không mở thư mục nữa mà kích hoạt hành động - điều này làm cho Windows gần như không thể sử dụng được. -> Đặt 'none' làm hành động mặc định cho phép thêm các mục ngữ cảnh mà không thay đổi hành vi mặc định của 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;}

điều này sẽ hiển thị menu ngữ cảnh của bạn trên tất cả các thư mục ... khi bạn biên dịch mã này để đảm bảo bạn có quyền quản trị .. Hy vọng mã này sẽ hữu ích cho bạn
Kashif Meo

1
Bạn có thể chỉnh sửa câu trả lời của mình để giải thích thêm một chút về mã của bạn không?
Burgi

Trong khi điều này có thể trả lời câu hỏi, nó sẽ là một câu trả lời tốt hơn nếu bạn có thể cung cấp một số lời giải thích tại sao nó làm như vậy.
DavidPostill

thực sự mã này sẽ chỉ tạo một khóa mới cho menu ngữ cảnh. khóa và khóa con cũng có giá trị tương ứng. Khi mã này được biên dịch và chạy sau đó trên mọi thư mục, nó sẽ hiển thị menu ngữ cảnh đó ...
Kashif Meo

nhưng tôi nghĩ rằng câu hỏi req đã thay đổi .. nó có thể giúp anh ta nhưng không phải là giải pháp chính xác ..
Kashif Meo

-2

Đây là một giải pháp cho tất cả các menu ngữ cảnh.

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

Nhưng, Làm thế nào để chuyển nhiều thư mục hoặc tệp vào menu ngữ cảnh này dưới dạng đối số vì% 1 chỉ lấy một và khi chúng tôi ctrl + nhấp vào nhiều tệp, nó sẽ mở thời gian biến đổi thực thi thay vì gửi tất cả chúng dưới dạng đối số.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.