「move to onedrive」を削除したくはありません。「rename」のニーモニックをトロールするニーモニック 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
が、認識力のあるユーザーにとっては大した問題ではありません。