在 Windows 资源管理器上下文菜单中更改“移动到 OneDrive”的助记符

在 Windows 资源管理器上下文菜单中更改“移动到 OneDrive”的助记符

我不想删除“移动到 onedrive”,只想删除用于“重命名”的助记符 M。

可以通过编辑设置上下文条目的注册表项中的 & 符号的位置来更改其他上下文项助记符,但我在注册表搜索中找不到包含该文本的任何键,并且上下文菜单中有关 Onedrive 的所有提示似乎只包含程序 ID 号。

(当我想重命名时,这会导致文件被意外移动到 onedrive - 必须拖曳并将文件移回,这非常烦人。)

答案1

Move to OneDrive我找到了添加到文件项上下文菜单的 注册表项:HKEY_CURRENT_USER\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\ FileSyncEx 其默认值为: {CB3D0F55-BC2C-4C1A-85ED-23ED75B5106B}

由于菜单文本是硬编码的.dll,因此无法修改。

因此,为了实现您想要的行为,请通过在前面添加任何随机字符来Move to OneDrive编辑上述键的数据,以禁用“内置” 。我使用:(Default)
XXX {CB3D0F55-BC2C-4C1A-85ED-23ED75B5106B}

在此处输入图片描述

然后通过具有不同助记符的自定义上下文菜单项重新创建它。将以下内容保存为.reg文件并合并。

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()\""


你将获得蓝色闪光电源外壳窗口,这让一些人感到困扰,但可以通过一些我从不费心的技巧来消除。蓝色闪光让你知道它正在工作!:D

不如内置版本那么智能,因为它会出现在OneDrive层次结构中的文件中,但对于有认知的用户来说这没什么大不了的。

相关内容