No quiero eliminar "mover a onedrive", simplemente eliminar el mnemotécnico M que controla el mnemotécnico para "cambiar nombre".
Se pueden cambiar otros mnemotécnicos de elementos de contexto editando dónde está el signo comercial en la clave de registro configurando la entrada de contexto, pero no pude encontrar ninguna clave que contenga ese texto en una búsqueda en el Registro, y todos los consejos sobre Onedrive en el menú contextual parecen contener sólo el número de identificación del programa.
(Esto provoca que los archivos se muevan accidentalmente a OneDrive cuando quiero cambiarles el nombre; es extremadamente molesto tener que rastrear y mover el archivo hacia atrás).
Respuesta1
Encontré la clave de Registro que agrega Move to OneDrive
al menú contextual para elementos de archivo:
HKEY_CURRENT_USER\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\ FileSyncEx
con un valor predeterminado de:
{CB3D0F55-BC2C-4C1A-85ED-23ED75B5106B}
Como el texto del menú está codificado en el archivo .dll
, no se puede modificar.
Entonces, para lograr el comportamiento que desea, desactive el "integrado" Move to OneDrive
editando los (Default)
datos de la clave anterior anteponiendo cualquier carácter aleatorio. Yo suelo:
XXX {CB3D0F55-BC2C-4C1A-85ED-23ED75B5106B}
y luego recrearlo a través de un elemento del menú contextual personalizado con un mnemotécnico diferente. Guarde lo siguiente como un .reg
archivo y combínelo.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\MoveToOneDrive]
@="Move to OneDrive"
"Icon"=hex(2):25,00,4c,00,6f,00,63,00,61,00,6c,00,41,00,70,00,70,00,44,00,61,\
00,74,00,61,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,\
74,00,5c,00,4f,00,6e,00,65,00,44,00,72,00,69,00,76,00,65,00,5c,00,4f,00,6e,\
00,65,00,44,00,72,00,69,00,76,00,65,00,2e,00,65,00,78,00,65,00,2c,00,30,00,\
00,00
; Icon=%LocalAppData%\Microsoft\OneDrive\OneDrive.exe,0
; pure com objects
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\MoveToOneDrive\Command]
@="PowerShell.exe -WindowStyle Hidden -Command \"gi -LiteralPath '%1' | sv 'File' ; ($comFolder = ($shell = New-Object -com shell.application).NameSpace('shell:OneDrive')).MoveHere($file.FullName) ; $comFolder.Self.InvokeVerb() ; (@($shell.windows()).Where({$_.LocationName -eq $comFolder.Title}))[0].Document.SelectItem($comFolder.ParseName($File.Name),17)\""
; String construction
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\MoveToOneDrive\xxCommand]
@="PowerShell.exe -WindowStyle Hidden -Command \"($comFolder = $shell.NameSpace('shell:OneDrive')).MoveHere('%1') ; Invoke-Expression ('explorer /select,{0}{1}{0}' -f [char]34 , ( Join-Path $comFolder.Self.Path ( '%1'.Split('\\')[-1] )))\""
; First draft
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\MoveToOneDrive\xCommand]
@="PowerShell.exe -WindowStyle Hidden -Command \"($comFolder = (New-Object -com shell.application).NameSpace('shell:OneDrive')).MoveHere('%1') ; $comFolder.Self.InvokeVerb()\""
Obtendrá el destello azul delPotencia Shellventana, que molesta a algunos y que puede eliminarse mediante algún truco que nunca hago. ¡El flash azul te permite saber que está funcionando! :D
No es tan inteligente como la versión integrada, ya que aparecerá para archivos que ya están dentro de la OneDrive
jerarquía, pero eso no es gran cosa para un usuario informado.