Edit With Notepad++が表示されない事がある


32-bit アプリケーションとレジストリ shellex

64-bit WindowsにNotepad++ 64-bitをインストールしている時、32-bitアプリケーションのコモン ダイアログ(開く、保存、等)でファイルを右クリックするとEdit With Notepad++が表示されません。
このメニューはレジストリのHKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\ANotepad++64に記述されておりNppShell_06.dllからシェルへのメニューが返されますが、x86アプリケーションからx64のDLLは呼び出せないためです。
WinMerge等も同様の仕組みです。

レジストリ shell

WinMergeでは拡張メニュー等複雑な機能があるためDLLによるシェル拡張が必要ですが、Edit With Notepad++は単純にNotepad++でファイルを開くだけです(多分)。
であれば、notepad++.exeのコマンドライン引数に渡すだけでも実現可能です。

EditWithNotepad++.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Notepad++]
@="Edit with &Notepad++"
"Icon"="\"C:\\Program Files\\Notepad++\\notepad++.exe\""

[HKEY_CLASSES_ROOT\*\shell\Notepad++\command]
@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked]
"{B298D29A-A6ED-11DE-BA8C-A68E55D89593}"=""

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked{B298D29A-A6ED-11DE-BA8C-A68E55D89593}を追加し(無効化)、
代わりにHKEY_CLASSES_ROOT\*\shell\Notepad++にアイコンとコマンドを設定します。
レジストリを設定したら、一旦サインアウトしてもう一度サインインします。
(又はExplorer.exeを再起動)

注意

複数のファイルを選択した時、マルチインスタンスの設定をしている時等、異なる挙動になる可能性があります(未確認)。

元に戻す

-EditWithNotepad++.reg
Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\Notepad++]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked]
"{B298D29A-A6ED-11DE-BA8C-A68E55D89593}"=-

レジストリを設定したら、一旦サインアウトしてもう一度サインインします。
(又はExplorer.exeを再起動)