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.