このページの本文へ

前へ 1 2 次へ

Windows Info 第67回

Windows 8方式のファイル関連付けを分析する

2016年08月07日 10時00分更新

文● 塩田紳二 編集● ASCII.jp

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

 前回紹介したWindows Vistaでは、セキュリティを高めるために、関連付けは、インストール時に管理者権限でアプリ自身を登録し、アプリがユーザー権限で関連付け情報をAPI経由で登録とかなり面倒なものになった。

Windows 8方式での関連付けは登録が簡略化されている

 その反省か、Windows 8方式の関連付けでは、登録方法が簡略化されている。ただし、互換性の維持という点から、Windows 8でもVista方式の利用は可能。また、エクスプローラーからデータファイルに対しての関連付けを「プログラムから開く」で変更した場合、ユーザーが実行ファイルを直接指定すると、XP/Vista方式での設定も同時に行われる。

 Windows 8でも、既定のアプリとして登録するプログラムは「ProgID」に登録し、HKEY_CLASSES_ROOTで、拡張子とProgIDを直接関連づけるか、拡張子とファイルタイプを関連付けしたあと、ファイルタイプとアプリを関連づけるといった基本的な方法は同じ。ただし、Windows 8では、ストアアプリを割り当て可能になっている。ストアアプリは、デスクトップ環境の実行ファイルとは実行のメカニズムが違う。

 Windows 8以降で、エクスプローラーを使い、データファイルに対して、関連付けを変更すると、Windows 8方式で、拡張子と既定のプログラムの関連付けを記録する。ユーザーが変更をしなければ、アプリが登録した関連付け方式が使われる。

 Windows 8では、新たに関連付けをレジストリにある

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Roaming\OpenWith\FileExts\[拡張子]

で行なう(以下このキーをローミング拡張子キーと呼ぶ)。Windows 8以降での優先順位を順位は、下の図のようになり、より優先順位の高いキーが設定されているなら、低い優先順位のキーがあっても無視される。このローミング拡張子キーが最も優先度が高い。

Windowsの関連付けの優先順位。優先順位の高いものが存在すれば、その設定が有効になり、低い優先順位の設定は無視され

 また、Windows 8では、関連付けは、原則、ユーザーごとに管理されるものとなった。HKCR(HKEY_CLASSES_ROOT)は、実際には、

HKEY_CURRENT_USER\SOFTWARE\Classes
HKEY_LOCAL_MACHINE\SOFTWARE\Classes

の2つのキーを合成したもので、HKCU(HKEY_CURRENT_USER)のほうが優先される。また、書き込みもHKCU側に行われる。関連付け関係のAPIなども原則HKCU側を設定する。このため、通常は、HKCRのみを扱えばよい。

 Windows 8のローミング拡張子キーには、UserChoiceキーがあり、ここに「Hash」と「ProgId」の2つのアイテムがある。ProgIdが拡張子に対するデフォルトのプログラムを指定するアイテムで、ここにProgIDまたは、ファイルタイプのキー名(HKCRは省略される)が記録されている。

 Hashは、セキュリティ用の情報で、書き込んだProgId値が正しいものかどうかを確認するための値で、WindowsがProgIdアイテムを書き換えたときに設定する。Hash値の計算方法は公開されていない(解析したという話はあるようだが)。しかし、API経由で関連付けを行えば、Windowsが正しく設定してくれる。

 つまり、Windows 8では、実際にはVistaからだが、関連付けは、アプリケーションがレジストリを操作して行なうことは想定しておらず、API経由で設定することになっている。ただし、デスクトップ環境では、Windows 8以前を前提に開発されたアプリケーションがあるため、互換性を維持するため、レジストリの操作による関連付けを行なっても動作する。

 しかし、ユーザーが、エクスプローラーから関連付けを変更すると、Windows 8のローミング拡張子キーが有効になり、以後は、以前の方式に従ってレジストリを変更しても有効にはならない。

 ハッシュ値を簡単に計算する方法がないため、ユーザーが関連付けを変更する場合に、レジストリを操作する場合、このキーを書き換えても無効になる。しかし、ローミング拡張子キー以下を削除することで、該当の拡張子の設定は、他のキーで指定できるようになる。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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