こんにちは、阿久津です。Windows OSでは、関連付けされていない拡張子を持つファイルをダブルクリックしますと、「このファイルを開けません」というダイアログが起動し、導入済みアプリケーションから開くか、インターネット上で対応するプログラムの検索を行うか、操作をうながされます。
このインターネット上の検索を抑制し、直接アプリケーションリストを表示するチューニングは、以前の記事で紹介しました。しかし、関連付けされていない拡張子を持つファイルを任意のアプリケーションで開く場合、内容を一時的に確認するアプリケーションを起動した方がスマートでしょう。
そもそも同ファイルをダブルクリックしますと、HKEY_CLASSES_ROOT\Unknownキーが参照されます。Windows 7では、HKEY_CLASSES_ROOT\Unknown\shellの「(既定)」で指定しているHKEY_CLASSES_ROOT\Unknown\shell\openasキーを参照し、HKEY_CLASSES_ROOT\Unknown\shell\openas\commandの「(既定)」で指定した「%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1」が実行されるという仕組み。
このロジックを利用して、ダブルクリック時に参照するキーを変更することで、ダイアログではなく、任意のアプリケーションで開くことが可能になるのです。そこで今回は、関連付けのないファイルを特定のアプリケーションで開くチューニングをお送りしましょう。
1.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力してから<OK>ボタンをクリックします。
2.レジストリエディターが起動したら、HKEY_CLASSES_ROOT\Unknown\shellキーまでたどって開きます。
3.shellキーを選択した状態で、<編集>メニューから<新規>→<キー>と選択し、キー名を「open」とします。
4.ステップ03で作成したキーを選択し、<編集>メニューから<新規>→<キー>と選択して、キー名を「command」とします。
5.commandキーの「(既定)」をダブルクリックで開き、値のデータに「notepad %1」と入力して<OK>ボタンをクリックします。
6.HKEY_CLASSES_ROOT\Unknown\shellキーを開き、「(既定)」をダブルクリックします。
7.値のデータを「open」に変更してから、<OK>ボタンをクリックします。
8.HKEY_CLASSES_ROOT\Unknown\shell\openasキーを開き、右ペインの何もないところを右クリックして、メニューから<新規>→<文字列値>と選択してください。
9.値名を「新しい値 #1」から「LegacyDisable」に変更します。
10.[F5]キーを押して変更内容をシステムに反映させます。
11.<×>ボタンをクリックしてレジストリエディターを終了させます。
これでチューニングが終了しました(図01~11)。
図09: HKEY_CLASSES_ROOT \ Unknown \ shell \ openasキーを開き、右ペインの何もないところを右クリックします。メニューから<新規>→<文字列値>と選択してください |
早速、結果を確認にしてみましょう。適当なファイルを用意し、拡張子をユニークなものに変更してから、同ファイルをダブルクリックしてください。今回の手順ではメモ帳が起動します(図12~13)。
上記手順のステップ05で指定したアプリケーションが起動しますので、ほかのテキストエディターを使うのであれば、データ値にフルパス、および実行ファイル名を記述してください。
また、前述した操作をうながすダイアログも残しておきたいという方は、ステップ08~09で作成した文字列値「LegacyDisable」を削除し、同キーの「(既定値)」をダブルクリックします。値のデータを「ダイアログ起動」などに変更してください。これで関連付けのないファイルを右クリックしますと、同名の項目が追加され、前述のダイアログを起動することが可能になります(図14~15)。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)