なげやりろぐ

フテイキコウシン

Windows7のレジストリを弄って遊ぶ♪

Windows7、とっても快適です♪
もうね、Vistaはいらない子(笑)
でも今回紹介する手段は多分Vistaでも有効だとおもいますよ、試したわけではないのであくまで多分…ですけど。


ただ、そんな7にもちと気にくわない部分があったりなかったり…って、どっちやねん!
まぁVistaの頃からですけどExplorerのシェル右クリメニュー左側にアイコンが表示できるようになっていますよね。
ただ、シェルに登録するアプリによってはアイコンまで登録してくれないものが結構あるわけです。もっともそれらのほとんどがXPでの使用を前提として開発されたものだったりしますのでしょうがないって言えばそれまでなんですけど・・・(´・ω・`)

でも気になり出すとやっぱりなんとかしたいなーとおもっちゃうのがワタシ。イロイロとググったりしてヒントを探し求めましたよ。
で、今回のネタはファイルを右クリしたときに現れるメニューに自分でアプリとアイコンを追加しちゃおうというもの。


まぁお約束ですけど追試される方は事前にレジストリのバックアップを取っておくのはモチロンのこと、あくまで自己責任でお願いしますよ。
でもワリと再現性は高いとおもうので、初めてレジストリを弄る方でも迷わないようにワンステップずつの画像を使って説明してみることにしますね。

ファイルタイプに関係なく常時右クリメニューからお気に入りアプリで開くことができるようにしてみる

小見出しがちと長いですけどまぁヒトコトで言えばそんな感じです。
ここでは登録する一例として、ワタシのお気に入りでWin95時代から使い続けている秀丸というテキストエディタを登録する手順を画像付きで紹介してみます。*1
レジストリエディタはファイル名を指定して実行からregeditと入力して呼び出します。Win7だとスタートメニューの下にある検索からでも一瞬でregedit.exeを呼び出せます。便利ですねぇ♪

画像ではテキストファイルを例にしていますが今回の方法ではすべてのファイルタイプに対してお気に入りアプリでのアクセスができるようになります。しかしもともと開けないヤツは自分で判断する必要がありますのであしからず。
それでも拡張子がtxtじゃなくても実体はテキストファイルというものは結構あります(xmlとかiniとかイロイロね)ので以外と重宝しますよ♪*2

前置きはこのくらいにして、通常の右クリメニューだと画像のような感じで表示されます。アイコンが出現しているのはAvast! 5とASUS WebStrageだけですね。

  • レジストリに手を加えていないノーマルな右クリメニュー


さて、いよいよレジストリに手を加えてみたいとおもいます。*3
レジストリエディタを開くと左ペイン上部にコンピューターというのがあって、その下にハイブファイル群の親ディレクトリが5つ存在します。
今回はこの中の一番上にあるHKEY_CLASSES_ROOTという部分を弄ります。
HKEY_CLASSES_ROOTを展開すると、上の方には各ファイルタイプに関連したキーがずらーっと並んでいるのがわかります。*4
一番上に『*』(アスタリスク)だけのキーが存在しているはずです。アスタリスクは正規表現で言うところのなんでもアリみたいな感じで、今回の場合はすべての拡張子に対して有効になるキーだとおもえば良さそうです。
このキーを展開すると以下のようになっています。

  • アスタリスクのキーを展開したところ。初期状態ではこんな感じになっているとおもいます。
    今回はここのサブキーにあるshellというところを弄ります。


では、いよいよアプリの登録を始めてみましょう。別に秀丸でなくてもいいのでお好きなアプリで試してみてくださいね。

  • shellキー上で右クリックして新規→キーをクリックします。


shellキーの下に『新しいキー #1』というのが作成されるはずです。名前が変更可能な状態になっているハズなので実際にメニューに現れて欲しい名前に変更します。

  • 秀丸で開く』という名前にして確定したところ


次にたった今作成したキーの上で再度右クリック。今度は新規→文字列値をクリックします。

  • ここで作成した文字列値は右ペインへセットされます。


こんどは『新しい値 #1』というのが右ペインに作成されますので、この名前を『Icon』とし、さらに右クリックして修正をクリック。

  • ここでは練習もかねてあえて新しい文字列値(REG_SZ)を作成していますが、最初からある『既定』という部分を修正しても結果は同じです


修正をクリックすることでダイアログがでますが、そこに入力するのはアイコンファイルへのフルパスになります。
目的のファイルまでのフルパスを取得するにはアイコンファイルをおいてあるディレクトリをExplorerで表示し、利用するアイコンファイルをShift+右クリックして『パスとしてコピー』をクリックします。
今回の場合、秀丸のインストールフォルダを開いてあらかじめ用意しておいたアイコンファイルを指定していますが、特にアイコンを用意していない場合は実行ファイルそのもののフルパスを記述するとアプリが内部に持っている本来のアイコンが利用されます。

  • Windows7ならではの機能、Shift+右クリックで『パスとしてコピー』を利用します。便利♪*5


クリップボードにフルパスが格納されていますので、先ほど開いたダイアログの入力エリアへペーストします。
ここで気をつけたいのがこのときのフルパスはダブルクォーティションマークで括られているということ。
これはそのままで問題ありませんが、括りを外しても普通に動作してくれるようです。
実際にレジストリを眺めてみると、括ってあるエントリもあれば括りのないエントリもありますのでワリとそのあたりはアバウトなのかなとおもいました。
いままでWindowsではパスにスペースが含まれている場合、必ず括るというのがお約束だったんですけどね(笑)


ダイアログをOKを押して閉じるとIconというエントリに文字列値として先ほどのフルパスがセットされています。
実はこの時点でもう右クリメニューにはアイコン付きのメニューが反映されていたりします。ただしクリックしても何も起こりませんけど(笑)

  • Iconエントリの編集完了!


つぎは再び左ペインへ戻り、先ほど作成したキーを右クリしてその下にさらにサブキーを作成します。
このサブキーの名前は『command』とします。

  • 秀丸で開く』キーの下へサブキーを作成


今度は実行ファイルまでのフルパスをあらかじめクリップボードへ取り込んでおきます。

  • 実行ファイル(ここではHidemaru.exe)の上でShift+右クリックしてフルパスを取得


commandキーをクリックしてアクティブにし、右ペインにある既定エントリ上で右クリック。
修正を選択してダイアログを出します。
先ほどはあえて新規文字列値を作成して編集しましたが、今回はすでにある既定エントリの編集というアプローチです。
もちろん新規にエントリを作っても結果は変わりません。
ダイアログの値のデータにはクリップボードから実行ファイルまでのフルパスをペーストします。

次にペーストしたフルパスの末尾に半角スペースを空けて%1』を追加します。コレはファイル上での右クリ時に現在選択されているファイルを渡すという意味があるらしいです。*6
ワタシの場合だとこんな感じになります。

C:\Program Files\Hidemaru\Hidemaru.exe %1

あるいは

"C:\Program Files\Hidemaru\Hidemaru.exe" "%1"

これでも動作します。

  • ダイアログにフルパスと半角スペース空けて『%1』をセット


OKを押して値がセットされたことを確認します。
もうこの時点で右クリメニューに追加された機能は有効になっていますし、システム関係に手を加えたわけではないので再起動やログオフなどしなくてもすぐに利用可能です。

  • コレで設定は完了です♪


後は適当なファイル(フォルダではない)を右クリックしてみましょう。
どのようなファイルタイプであっても『秀丸で開く』というメニューが出現してくれます。

  • ちゃんと指定したアイコンが表示されています


今回アクセラレーターキーは設定しませんでしたが、キーボード派の方は名前の後に(&x)とか(&y)みたいに他のメニューとバッティングしないようなキーを指定してやればイイとおもいます。
それとこのやり方を応用してファイルタイプごとに設定することもできますが長くなるのでヤメときます♪

右クリメニューをアプリケーションランチャーにする。

基本的なやり方は上記と同様なのですが、設定を書き込むキーが今度は別の場所になります。
ランチャーとして使うということはファイルやフォルダの右クリメニューではなく、デスクトップ上の何もないところをクリックして出現するメニューに手を加えるということになります。
このときに利用するキーはHKEY_CLASSES_ROOT\Directory\Background\shellという部分。
秀丸を登録したときと同様にshellキーへサブキーを作成し、その名前をメニューへ出したい名前にしてそのキーへ文字列値を追加してアイコンファイル、あるいは実行ファイルを指定。
さらにサブキーをcommandという名前で作成し、そのキーの既定を編集して実行ファイルまでのパスを書き込むだけです。ファイルを渡すわけではないので『%1』はいりません。

  • こんな感じでインストール済みのブラウザをセットしてみました

  • デスクトップの何もないところで右クリックすると登録したアプリが表示されます。クリックで即実行できます♪


このランチャとしての使い方、それなりに便利ですけど登録作業がメンドクサイですよね。
世の中良くしたものでこの登録作業に特化したアプリを配布してくれている方がいます♪

Windows 7 Context Menu Editor


やっていることは同じなのですが、値の扱いがちょっと違うようです。まぁどちらでも同じように動作するのでいいのですがある方の環境ではアイコンが出現しなかったということです。環境依存なのかはたまた…???


アプリは名前順でソートされちゃうのでそれが気に入らない場合はサブメニュー化するという手があります。ただ今回そこまでは説明しませんのであしからず。
どうしてもやってみたい方は適宜ググって調べてみてくださいね。


今回紹介した方法は単純にアプリケーションまでのフルパスを記述するだけで可能なのでワリと再現性は高いと思われます。
ただ、ツールを使った方の中にはアイコンが表示されなかったという事例もあるようですが、残念ながら自分のところでは再現しなかったので対処法が思いつきません。
それともうヒトツ、レジストリを利用する既存のアプリケーションの中には、GUIDというランダムに生成されたコードを使ってパスやその他の動作を登録しているものがあります。
これらのアプリへ後からアイコンを追加する方法を解説するのは容易ではないので今回は割愛します。ただし、決して不可能ではないのでこれも興味ある方は調べてみてください。

*1:もともと秀丸エディタにはシェルへ『秀丸で開く』というメニューの追加機能がありますが、ここではあえて俺様スタイルでやっています。デフォの追加方法だとメニューの中程に追加されるのも気にくわないのです…

*2:まぁなんというか単純に関連づけしとけばいいやんみたいな意見もあるかとはおもいますけど今回はアイコン付きっていうのがミソ醤油なので。

*3:プログラムの開発に携わっている方ならあたりまえすぎることで失笑してしまうかもしれませんが、ふつーのユーザーレベルではなかなかそこまで踏み込めないと思うのですよ。

*4:個別のファイルタイプに関しては目的の拡張子のキーを編集することで設定を変更することが可能ですが今回はすべてのファイルタイプに対応した操作を設定しますので、ここでのやり方を理解したなら個別の設定にチャレンジしてみるのもイイかもしれません。

*5:すでに右クリメニューへ先ほど加えた変更が反映されていることに気づいた人はいるかしらw

*6:ちなみに『%2』はプリンタ関連らしいです、自分はプリンタ持ってないので試す気すらないですがw