Windows エクスプローラーのコンテキスト メニューで「OneDrive に移動」のニーモニックを変更する

Windows エクスプローラーのコンテキスト メニューで「OneDrive に移動」のニーモニックを変更する

「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が、認識力のあるユーザーにとっては大した問題ではありません。

関連情報