Uma abordagem alternativa para sua referência:
Salvar os seguintes itens *.reg
e importar para o registro (adaptado da Sully @ Wilders Security )
Editor do Registro do Windows versão 5.00
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu]
"Ícone" = "shell32.dll, 43"
"Subcomandos" = ""
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1]
"MUIVerb" = "Editor de texto"
"SubCommands" = ""
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item1]
"MUIVerb" = "Bloco de notas ++"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item1 \ command]
@ = "C: \ Arquivos de programas \\ npp \\ bloco de notas ++. Exe% 1"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item2]
"MUIVerb" = "Texto sublime"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item2 \ command]
@ = "C: \ Arquivos de programas \\ Sublime Text 3 \\ sublime_text.exe% 1"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu2]
"MUIVerb" = "Áudio"
"SubCommands" = ""
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu2 \ shell \ item1]
"MUIVerb" = "Audacity"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu2 \ shell \ item1 \ command]
@ = "audacity.exe% 1"
Referências
AskVG
Directory Opus Resource Center
Adendo: menu Pseudo-Pasta
Salvar como C:\copy.js
função fnCopyHereJ (src, dest) {
var objShell = novo ActiveXObject ("shell.application");
var objFolder = objShell.NameSpace (dest);
if (objFolder) {
objFolder.CopyHere (src);
} outro {
WScript.echo ("Pasta Inválida:" + dest);
}
}
args = WScript.Arguments;
fnCopyHereJ (args (0), args (1));
Importar para registro
Editor do Registro do Windows versão 5.00
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu]
"Ícone" = "shell32.dll, 43"
"Subcomandos" = ""
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1]
"Ícone" = "imageres.dll, -113"
"MUIVerb" = "Imagem"
"SubCommands" = ""
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item1]
"Ícone" = "shell32.dll, 3"
"MUIVerb" = "Pasta 1"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item1 \ command]
@ = "wscript C: \\ copy.js% 1 C: \\ Usuários \\ 01 \\ Imagens"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item2]
"Ícone" = "shell32.dll, 3"
"MUIVerb" = "Pasta 2"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu1 \ shell \ item2 \ command]
@ = "wscript C: \\ copy.js% 1 \" C: \\ Nova pasta \ ""
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu2]
"Ícone" = "imageres.dll, -108"
"MUIVerb" = "Música"
"SubCommands" = ""
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu2 \ shell \ item1]
"Ícone" = "shell32.dll, 3"
"MUIVerb" = "Pasta 1"
[HKEY_CLASSES_ROOT \ * \ shell \ Meu menu \ shell \ menu2 \ shell \ item1 \ command]
@ = "wscript C: \\ copy.js% 1 C: \\ Usuários \\ 01 \\ Música"
[HKEY_CLASSES_ROOT \ Directory \ shell \ Meu Menu]
"Ícone" = "shell32.dll, 43"
"ExtendedSubCommandsKey" = "* \\ shell \\ Meu Menu"
Referências
Invocar a cópia do Windows do
método PowerShell Folder.CopyHere (Windows)
Cascading menus de contexto por meio de entradas de registro estáticas e ExtendedSubCommandsKey