このページの本文へ

前へ 1 2 次へ

Windows Info 第396回

Windows 11における新規作成コンテキストメニュー

2023年09月10日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 エクスプローラーのコンテキストメニューに「新規作成」という項目があり、フォルダの何もないところで開くと、ここにいくつかのファイルを新規に作成するサブ項目が表示される。

Windows 11における新規作成コンテキストメニュー

Windows 11 Ver.22H2ではコンテキストメニュー、初期状態の新規作成サブ項目はあまり多くない。これはLibreOfficeをインストールして4つの項目が追加された状態

 この機能はWindowsには以前からあって、レジストリ設定で簡単にサブ項目を追加できた。しかし、Windows 11で新規作成にサブ項目を登録するには、単なる拡張子キーの登録だけではダメで、正しく関連付けされたプログラムと拡張子を登録し、そこにShellNewキーを配置する必要があるようだ。

 このため、以前のように適当な拡張子を登録して、ShellNewで項目を「新規作成」に登録するという方法は使えない。しかし現時点では、表示されている項目を書き換えることはできる。そこで、今回は基本編として、すでに登録されているファイル形式やフォルダーの新規作成処理を書き換えることを考える。なお、確認にはWindows 11 Ver.22H2を用いている。

条件を満たした拡張子のみが新規作成に登録される

 レジストリの「HKEY_CLASSES_ROOT」(以下HKCRとする)に登録されている拡張子のうち、ShellNewキーを持つものは、以下のコマンドで探すことができる。

reg.exe query HKCR /s /f ShellNew /k

Windows 11における新規作成コンテキストメニュー

レジストリのHKEY_CLASSES_ROOTを検索するとShellNewキーを持つ拡張子は少なくないが、すべてが新規作成に登録されているわけではなく、なんらかの条件があるようだ。また、ShellNewを持たないファイルでも新規作成に登録されているものがある

 しかし、Windows 11ではこのコマンドで列挙される拡張子の一部だけしかコンテキストメニューの「新規作成」に表示されない。msiファイルなどでインストールされたアプリケーションでは、拡張子登録のShellNewが有効になっているところを見ると、実行ファイルと関連付けが正しくされている場合のみにShellNewキーが有効になるようだ。

 逆に、新規作成のサブ項目があるのに、HKCRの拡張子登録には、ShellNewがないもの(たとえばビットマップファイルなど)もある。これは、登録されたプログラムがコンテキストメニューなどにサブ項目を登録していると考えられる。

 Windows 11の拡張子と実行ファイルの関連付けは、これまでの経緯から複数の方法があり、互換性のために、過去の方法でもファイルの拡張子から実行ファイルを見つけて起動することはできるが、おそらくは最新のProgIDを使う登録方法のもののみ、ShellNewが有効になるのだと考えられる。

 なお、HKCRのDirectoryキーやDirectory\Backgroundキーにshellキーを作って、コンテキストメニューを登録しても、ShellNewとほぼ同等の処理が実現できる。これらは、エクスプローラーでフォルダアイコンやファイルウィンドウの何もないところでの右クリックに対応したコンテキストメニューを定義するものだ。これについては過去記事(「エクスプローラーの右クリックメニューをカスタマイズする」)を参照してほしい。

 違いは、ShellNewを使う場合「新規作成」のサブ項目として登録され、デフォルトの新規ファイル名が提供されることである。また新規作成メニューは、Windows 11の簡略化されたコンテキストメニューに常に表示され、そのサブメニューから選択できる。

 しかし、実行時のディレクトリパスは、Directory\Backgroundキーに定義したコンテキストメニュー項目でも得られ、「その他のオプションを確認」を選択して表示させる手間はあるものの、手数的には新規作成とほとんど違いがない。

 ただ、Windows 11 Ver.22H2では、古い形式のコンテキストメニューを直接表示する方法だった「Shift+F10」や「Appキー」も、新しいコンテキストメニューを表示してしまうため、少し使いにくくなっている。

レジストリ設定と新規作成サブ項目

 新規作成に登録されている拡張子で、ShellNewキーを持つ場合、そこに以下の表の名前/値ペアを設定できる。新規作成時の動作を決める基本的な名前/値ペアは、「NullFile」「FileName」「Command」「Data」「Directory」の5つ。まずは、このうちどれか1つを指定する。

Windows 11における新規作成コンテキストメニュー

 「NullFile」は、中身のないサイズが0のファイルを作り、デフォルトの名前「新規<ファイルタイプ名>」を作る。これに対して「FileName」は、値で指定されたファイルをコピーして名前を「新規<ファイルタイプ名>」とする。

 「Data」は、「新規<ファイルタイプ名>」を作り、その中身を値で指定されたバイナリ値にする。「Directory」は、「新しいフォルダー」を作る。これら4つの指定は、非常に簡易なもので、ほとんどカスタマイズの余地がない。特に、新規ファイル名を特定のパターンにしたいような場合には、「Command」を使って、新規ファイルを作成するコマンドを指定する。

 「Command」は、値で指定されたコマンドを実行する。指定されたコマンドを直接実行するが、このとき、「%1」で作成されるファイルのフルパスが与えられる。

 そのほかの項目は、おもにエクスプローラーで使うことを想定した名前/値ペアなので、あまり使い道がない。なお、新規作成のサブ項目の表示名やアイコンには、実行ファイル側の設定や拡張子の表示名などが使われるため、基本的にはShellNew側で指定する必要はない。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン