Skip to main content

エクスプローラのコンテキストメニュー登録したい

やりたいこと

  • エクスプローラのコンテキストメニューで [XX で開く] といった設定を自分で追加したい

結論

#出来ることやること
方法1右クリックメニューの「送る」に出すshell:sendto フォルダにショートカット保存
方法2右クリックメニュー直下に出すレジストリ登録

→ レジストリいじるぐらいなら、「送る」で済ませるのが手っ取り早い

方法1. shell:sendto を使う

できること

  • 右クリックメニューの「送る」に追加することで、ファイル/フォルダを指定のプログラムの引数に渡せるようになる

設定方法

  1. Windows ボタン右クリック > ファイル名を指定して実行 > shell:sendto
  2. 出てきたフォルダに、呼びたいプログラムのショートカットを配置する

おまけ

マウス操作が面倒なら・・

🤖 ショートカットのファイル名を先頭アルファベット(たとえば X とする)にしておけば、
右クリック → N → X でサクッと操作できますよ。

👴 あれ、前は N でなく S なので左手で完結して便利だったような・・?

🤖 Win 11 では S は PowerShell に取られたね。力関係的に、仕方ない

方法2. レジストリで右クリックメニューに追加する

👴 調べたから載せておくけど、SendTo で済ませることにしたから試してない。 やるときは自己責任でどうぞ > 未来の自分

ファイルを対象とする場合
右クリックで「ここでMyScriptを実行」を表示
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\MyScript]
@="ここでMyScriptを実行"

[HKEY_CLASSES_ROOT\*\shell\MyScript\command]
@="\"C:\\Path\\To\\MyScript.bat\" \"%1\""
  • * は「すべてのファイル」の意
  • %1 は選択中のファイルパスに展開される
  • .bat, .ps1, .exe など対応可能
フォルダを対象とする場合
フォルダの右クリックに追加
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\MyScript]
@="このフォルダでMyScriptを実行"

[HKEY_CLASSES_ROOT\Directory\shell\MyScript\command]
@="\"C:\\Path\\To\\MyScript.bat\" \"%1\""
おまけ: バリエーション
対象レジストリパス
任意のファイルHKEY_CLASSES_ROOT\*\shell\
特定の拡張子(例: .txtHKEY_CLASSES_ROOT\txtfile\shell\
フォルダHKEY_CLASSES_ROOT\Directory\shell\
ドライブHKEY_CLASSES_ROOT\Drive\shell\
空白部分(フォルダ内余白)HKEY_CLASSES_ROOT\Directory\Background\shell\