Come si aggiunge un elemento al menu di scelta rapida di una cartella?


8

So come aggiungere un menu di scelta rapida per quando si fa clic su una cartella effettiva:

[HKEY_CLASSES_ROOT\Directory\shell\commandNameHere]

ma che dire di fare clic su nulla in una cartella ?

come se creassi una nuova cartella sul desktop, fai doppio clic per accedere alla cartella, quindi fai clic con il pulsante destro del mouse su nulla (la cartella è vuota), ora voglio che il mio menu di scelta rapida appaia in questa situazione.


Penso che la chiave che vuoi siaHKEY_CLASSES_ROOT\Directory\Background
— Andrew Lambert,

1
Grazie @ Stupito che era davvero vicino ... in realtà lo è: [HKEY_CLASSES_ROOT\Directory\Background\shell\commandNameHere]
— xero

5
risolto per chiunque sia interessato ecco il file .REG per aggiungere questa funzionalità al menu contestuale di 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
È consentito e incoraggiato a rispondere alle tue domande. Se hai risolto il problema, pubblica una risposta e accettala.
— Dennis,

Risposte:


10

Per chiunque sia interessato, ecco il .regfile per aggiungere questa funzionalità al menu contestuale di 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"

(Tratto dal commento di xero )

Questo aggiunge un comando al menu contestuale chiamato "git bash qui" con un'icona, che apre una console.

Il comando viene aggiunto in entrambi:

  • HKEY_CLASSES_ROOT\Directory\shell, il menu di scelta rapida quando si fa clic con il pulsante destro del mouse su una cartella
  • HKEY_CLASSES_ROOT\Directory\background, il menu contestuale quando si fa clic con il pulsante destro del mouse sullo spazio vuoto "sfondo" mentre ci si trova in una cartella

2
Tenere presente il valore "none" per l'azione predefinita ('@ =') Senza questo 'none', Windows considera come predefinita una delle azioni aggiunte, quindi il doppio clic su una directory non apre più la directory ma attiva l'azione - il che rende Windows quasi inutilizzabile. -> Imposta 'nessuno' come azione predefinita consente di aggiungere elementi del menu contestuale senza modificare il comportamento predefinito di 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;}

questo mostrerà il tuo menu contestuale su tutte le cartelle ... quando compili questo codice, quindi assicurati di avere i privilegi di amministratore .. Spero che questo codice ti sia utile
— Kashif Meo,

1
Potresti modificare la tua risposta per spiegare un po 'di più cosa fa il tuo codice?
— Burgi,

Sebbene ciò possa rispondere alla domanda, sarebbe una risposta migliore se tu potessi fornire qualche spiegazione sul perché lo faccia.
— David Post

in realtà questo codice creerà semplicemente una nuova chiave per il menu di scelta rapida. chiave e sottochiave anche i loro valori rispettivamente. quando questo codice viene compilato ed eseguito quindi su ogni cartella mostrerà quel menu contestuale ...
— Kashif Meo

ma penso che la domanda req sia cambiata .. potrebbe aiutarlo ma non la soluzione esatta ..
— Kashif Meo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.