regeditのコマンドラインオプションでは指定のレジストリキーを開けない
登録とか削除とかはできるが、目的のキーを一発で開くということができない
regjumpとかいう神アプリ(×2)
ちょっと混乱したのだが、regjumpという名前のソフトウェアは2つある。
ひとつは、Microsoft謹製、RegJump。こちらは純然たるコマンドラインツールであり、GUIは用意されていない。
もうひとつは、fenrirの作者として有名なforia氏の手になる、regjump。こちらはコマンドラインオプションこそあれGUIツールであり、基本的に起動して入力フィールドにレジストリキーを入力する形で利用する。
いずれも、引数としてレジストリキーを与えることで、レジストリエディタで指定のキーを即座に開くことができる。
今回の用途では前者で充分であるし、後者は今後のメンテが見込めないことから前者を利用するつもりだったのだが、なぜかプロトコルハンドラとして登録するとうまくいなかった。
よって、今回は後者を利用する。
regjumpのコマンドラインオプション
/c クリップボードに格納されているレジストリキーにジャンプ
/s="RegistryKey" RegistryKeyにジャンプ
/t ジャンプしたら終了
/h 非アクティブになったら終了
/v バージョン情報
/t
について、「ジャンプしたら終了」とあるが、/s
と併用した場合、実際の挙動は「GUIを表示せず実行してそのまま終了」という感じになる。
(実はこの点、必ずコンソールが表示されるMicrosoft RegJumpより目立たずクールである)
例えば、コマンドプロンプト等で指定のレジストリキーを開くには、以下のようなコマンドを実行する。
<regjump.exeのフルパス> /t /s=<対象レジストリキー>
URLプロトコルハンドラの登録
今回、スキーム名はreg
とし、regjumpはC:\apps\RegJump\regjump.exeに配置するものとする。
キーHKEY_CLASSES_ROOT\reg\shell\open\command
を作成し、規定のコマンドを"C:\apps\regjump\regjump.exe" /t /s="%1"
とする。
エクスポートしたものが以下。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\reg\shell\open\command]
@="\"C:\\apps\\regjump\\regjump.exe\" /t /s=\"%1\""
例えば、「ファイル名を指定して実行」等でreg://HKEY_CLASSES_ROOT\reg\shell\open\command
を実行すると、先程登録したキーを開くことができる。
ただ、どちらかと言えば、regjump.exe /c
をランチャかなにかに登録しておいて、コピーしたキーを開けるようにしたほうが使える機会は多いと思う。