Windows 10における関連付けの変更点
Windows 10では、基本的な仕組みは同一なのだが、挙動が違っている。まず、アプリが特定の拡張子に対する既定のプログラムを変更することができなくなった。これまで登録されていなかった拡張子(基本的には、そのアプリ固有の拡張子になる)に対しては、従来通り、アプリが拡張子やファイルタイプに対して自身を既定のプログラムとして登録することはできる。
しかし、すでに拡張子が登録されていて、既定のプログラムが定義されている場合アプリは、既定のプログラムを変更することはできない。インストール時点でアプリができることは、自分自身がすでに登録されている拡張子を扱うことができることだけが登録できる。
エクスプローラーで該当拡張子を「開く」場合に、既定のプログラムを変更するかどうかのダイアログボックスが表示される。ユーザーは、ここで元からある既定のプログラムを利用するか、インストールしたアプリかを指定することができる。つまり、常にユーザーが明示的に既定のアプリケーションを選択するようになっている。
また、アプリが起動時に、APIなどで、既定のプログラムを変更使用とした場合、それは実行されず、ユーザーに対して必要ならば、「設定」→「システム」「既定のプログラム」を使って既定のプログラムを変更するようにメッセージを表示する。これは、ユーザーに操作を強いているようだが、実際には、アプリが既定のアプリとして自分自身を登録しようとしているのが阻止され、ユーザーが既定のアプリを変更する必要を感じるなら「手動でしろ」という意味なのである。
アプリがWindows 8以前の方法でレジストリを書き換えても、Windows 8方式の関連付けが最も優先度が高く、これは、データファイルをダブルクリックしたときに強制的に設定されるため、アプリがWindows 8以前の方式でレジストリを操作して関連付けを定義しても、有効にならない。また、ハッシュ値が計算できないため、ローミング拡張子キーを直接変更することもできない。
つまり、GUIで操作している間は、レジストリは正しくWindows 8方式に保たれ、Windows 10では、ユーザーが明示的に関連付けを変更できることになる。
データファイルを扱う「既定のプログラム」に関しては、このように過去、何回も変更があった。このため、手動でレジストリを扱うことはかなり面倒になっている。ただし、前述の優先順位を理解すれば、レジストリのどのキーが有効なのかは判断が可能になる。
それがわかれば、既定のプログラムになっているアプリのProgIDを編集することで、たとえばデータファイルのアイコンなどを変更することが可能だ。

この連載の記事
-
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない - この連載の一覧へ