Як ви додаєте елемент у контекстне меню папки?


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
Відповідати на власні запитання дозволяється і рекомендується. Якщо ви вирішили свою проблему, опублікуйте відповідь та прийміть її.
Денніс

Відповіді:


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
Будьте в курсі значення "немає" для дії за замовчуванням ("@ =") Без цього "жодного" Windows розглядає одну з доданих дій як за замовчуванням, тому подвійне клацання по каталогу більше не відкриває каталог, але запускає дію. - що робить Windows майже непридатним. -> Встановити "немає" як дію за замовчуванням дозволяє додавати елементи контекстного меню без зміни поведінки за замовчуванням 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 Meo

1
Чи можете ви відредагувати свою відповідь, щоб трохи більше пояснити, що робить ваш код?
Бургі

Хоча це може відповісти на питання, було б кращою відповіддю, якщо ви могли б дати пояснення, чому це так.
DavidPostill

насправді цей код просто створить новий ключ для контекстного меню. ключ і підрозділ також їх значення відповідно. коли цей код складений та запущений, то у кожній папці він покаже це контекстне меню ...
Kashif Meo

але я думаю, що питання req змінено .. це може допомогти йому, але не точне рішення ..
Kashif Meo

-2

Ось одне рішення для всіх контекстних меню.

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

Але, як передавати декілька каталогів або файлів у це контекстне меню як аргументи, оскільки% 1 бере лише один, і коли ми ctrl + клацнемо декілька файлів, це відкриває виконувані кілька разів замість того, щоб надсилати їх усі як аргументи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.