こんにちは、阿久津です。Windows OSでは、ショートカットファイルを作成する際、「○○のショートカットファイル」(Windows XP)、「○○ - ショートカット」(Windows Vista、Windows 7)と、ショートカットファイルであることを表す接尾辞がファイル名に付加されます。本来はショートカットファイルを一目で把握できるため、ユーザビリティ的には歓迎すべき仕様ですが、リネーム操作を行うユーザーには煩雑な手続きになりかねません。
そのように考えるユーザー向けとして、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorerキーのバイナリ値「link」の数値を変更することで、同仕様を無効にする定番チューニングが使われてきました。同エントリ自体はWindows 7でも使用可能です。
しかし、もっと簡単なチューニングで「 - ショートカット」を取り除く方法が存在するのをご存じでしょうか。今回はショートカットファイルおよびコピーしたファイルの接頭辞と接尾辞を変更するチューニングをお送りします。
1.管理者権限で「regedit」を実行します。
2.レジストリエディターが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorerキーを開きます。
3.新たにNamingTemplatesキーを作成します。
4.文字列値「ShortcutNameTemplate」を作成し、データ値を「%s.lnk」に変更します。
5.文字列値「CopyNameTemplate」を作成し、データ値を「%s」に変更します。
6.[F5]キーを押して変更内容をシステムに反映させてから、レジストリエディターを終了させます。
これでチューニングが終了しました(図01~11)。
図02: レジストリエディターが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorerキーを開きます |
それでは結果を確認してみましょう。任意のファイルを用意し、コンテキストメニューから<ショートカットの作成>を選択するなどしてショートカットファイルを作成します。続いて対象となるファイルを選択した状態で[Ctrl]+[C]キー→[Ctrl]+[V]キーと押してファイルのコピーを作成してください。
すると、本来であれば「○○ - ショートカット」「○○ - コピー」となりますが、チューニング後は「○○」というショートカットファイル名が作成され、コピーしたファイルは同一フォルダー内であれば「○○ (2)」、異なるフォルダーであれば「○○」と元のファイル名がそのまま付けられます(図12~13)。
図12: こちらはチューニング前の状態。ショートカットファイルおよびコピーしたファイル名は見慣れたものです |
図13: こちらはチューニング後の状態。ショートカットファイルの接尾辞は取り除かれました。コピーしたファイルは同一フォルダーのため、丸括弧付き数値が付きます |
本チューニングで興味深いのが、NamingTemplatesキーの存在。すべてのシステムファイルから文字列を取り出したデータベースに対して検索を行いますと、%SystemRoot% \ System32 \ Shell32.dllが同キーを参照していていました。しかし、Windows VistaやWindows XPの同ファイルはNamingTemplatesキーに関するエントリが見つかりません。
では、Windows Vistaに本チューニングは適用できないのかと言えば、結果は適用可能です。筆者が作成したデータベースに漏れがあった可能性は拭いきれません。同様にWindows XPでもNamingTemplatesキーの存在は見つけられず、本チューニングも適用されませんでした(図14~15)。
ところでチューニングに慣れた方ならピンと来るように、文字列値「ShortcutNameTemplate」および「CopyNameTemplate」は値名が示すようにファイル名の接頭辞、接尾辞を変更するテンプレートです。例えば文字列値「ShortcutNameTemplate 」のデータ値を「%s へのショートカット.lnk」、文字列値「CopyNameTemplate」のデータ値を「コピー ~ %s」に変更することで、Windows XPと同じような接頭辞、接尾辞が付くようになります(図16~17)。
図16: 文字列値「ShortcutNameTemplate」のデータ値を「%s へのショートカット.lnk」、文字列値「CopyNameTemplate」のデータ値を「コピー ~ %s」に変更します |
NamingTemplatesキーは下位互換性を維持するために用意されたものですが、使い方によっては、より面白い規則性を持たせることが可能ではないでしょうか。一例を挙げれば文字列値「CopyNameTemplate」のデータ値を「%s()」とすることで、常に丸括弧付き数値が接尾辞として付くようになります。
ただ残念なのは、変数として使えるのがベースとなるファイル名である「%s」以外わかっていません。%aから%zまで試してみましたが、意味をなさない数値やExplorer.exeがハングアップするような結果になり、有用な情報を得ることができませんでした。このあたりは読者が楽しむチューニングということで、そのままにしておきます。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)