それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

vs code が右クリックメニューをスパム行為するので消す。

vs code が右クリックメニューが嫌い。

  • Drive
  • Directory
  • Background
  • all file(*)

これらにメニューをスパム行為のように登録してくる。とても使いにくい。

レジストリを操作する。

UAC昇格した、PowerShellで、次のコマンドを実行する。

## VS Code がうるさいので消す。
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Drive\shell\VSCode' -Name 'LegacyDisable' -PropertyType 'String' -Value ''
Move-Item -LiteralPath 'HKLM:\SOFTWARE\Classes\Drive\shell\VSCode'  -Destination 'HKLM:\SOFTWARE\Classes\Drive\shellex\VSCode'

New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\shell\VSCode' -Name 'LegacyDisable' -PropertyType 'String' -Value ''
Move-Item -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\shell\VSCode'  -Destination 'HKLM:\SOFTWARE\Classes\Directory\shellex\VSCode'

Move-Item -LiteralPath 'HKLM:\SOFTWARE\Classes\*\shell\VSCode'  -Destination 'HKLM:\SOFTWARE\Classes\*\shellex\VSCode'

きれいに消える。Shift押したときのEXメニューにはちゃんと残るので良い。

完全に無効化する場合

次の方法で、LegacyDisableという、空文字のエントリを作成する。

$path='HKLM:\SOFTWARE\Classes\Drive\shell\VSCode'
New-ItemProperty -LiteralPath $path  -Name 'LegacyDisable' -PropertyType 'String' -Value ''

直接削除するか、別名に変更でも構わないが、LegacyDisable をつかって無効化しておくのが無難だと思う。

shell ex ( shift 押したときのメニュー)に変える場合

shellshellex に変えればいい 。

$src='HKLM:\SOFTWARE\Classes\Drive\shell\VSCode'
$dst='HKLM:\SOFTWARE\Classes\Drive\shellex\VSCode'
Move-Item -LiteralPath $src  -Destination $dst

これらの方法は、ほかの右クリックメニューを排除するけど、たまに使うってときに便利です。