このページの本文へ

Windows Info 第66回

Windows Vista/7で用いられたファイル関連付けの仕組みを知る

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

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

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

 さて今回は、Windows Vistaで導入された関連付けの方法をみていくことにする。この方式は、VistaおよびWindows 7で利用されており、基本的には、XP方式を拡張した方式だ。

 なお、Vistaのドキュメントによると、関連付けをアプリから行なうには、インストーラー内で管理者権限を使ってレジストリにアプリを登録し、その後、アプリがユーザー権限でAPIを呼び出して登録を行うとされている。

 このため、以下の方法とは別に「プログラムから開く」→「規定のプログラムの選択」にアプリを「推奨されたプログラム」として表示させるレジストリ設定などが別途定義されている。これはセキュリティを高め、勝手にアプリを実行させる悪意のあるプログラムへの対策と思われる。

 ただし、今回は、データファイルからアプリを起動することに関わる部分のみを解説する。また確認は、Windows 7で行なっているため、オリジナルのVistaと少し違う部分があるかもしれない。

 以下の説明では、以下のファイルを登録する場合を考える

datafile.[拡張子]

 ファイルの関連付けは、アプリ自身がレジストリに登録を行なうのが通常だが、ファイルをダウンロードしてきたなどでユーザーが未登録の拡張子を開こうとすることも考えられる。WindowsVista/7で未登録の拡張子を持つファイルは白紙のアイコンで表示される。

Windows 7では、未定義の拡張子のファイルは、白紙のアイコンで表示される

 このファイルを開こうとすると、対応するアプリが不明であるとダイアログボックスが表示される。

未定義の拡張子のファイルを開こうとすると、アプリが登録されていないため、検索するか、自分で指定するかの選択肢があるダイアログボックスが表示される

 ここで「インストールされたプログラムの一覧からプログラムを選択する」を選ぶと、「ファイルを開くプログラムの選択」ダイアログが表示される。

自分で指定する場合、アプリを選択し、説明を入力できる

 ここで、適当なプログラムを選択して、「このファイルの種類の説明の入力」に説明文を入れることができる。このダイアログをOKで閉じると、エクスプローラーのファイル表示が変わる。このときのアイコンは、白紙のアイコンに指定されたアプリのアイコンが乗ったものになる。

拡張子に対してアプリケーションを定義してやると、白紙アイコンの上にアプリアイコンが乗ったものに変更になる

 この操作でレジストリが以下のように設定される

HKEY_CLASSES_ROOT\.[拡張子]
    @=[拡張子]_auto_file
HKEY_CLASSES_ROOT\[拡張子]_auto_file\
    @=[説明文字列]
    shell\
        edit\command\
            @="[実行プログラム] %1"
        open\command\
            @="[実行プログラム] %1"

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.[拡張子]
    OpenWithList
        a="[実行プログラム]"
        MRUList="a"
    OpenWithProgids
        [拡張子]_auto_file=

 このVista方式は、XP方式を含んでいるので、拡張子キー(HKEY_CLASSES_ROOT\.[拡張子]形式のキー)やファイルタイプキー(同HKEY_CLASSES_ROOT\[拡張子]_auto_file\)しか見ないアプリがあったとしても、問題は起きない。また、この方法で登録した場合にassoc/ftypeコマンドは関連付けを認識する。

 なお、古いやり方、つまり拡張子キーとファイルタイプキー(あるいはPorgIDキー)しか設定しない場合、拡張子は認識されるが、GUIでデフォルトアプリケーションを見ると、アプリケーションは不明なままになり、データファイルからデフォルトアプリケーションを起動することはできない。

 つまり、Windows Vista/7でデータファイルから起動する場合には、「HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.[拡張子]」(以下エクスプローラー拡張子キーと呼ぶ)の設定は必須となる。XP形式のレジストリは、互換性のために作られ、最初にGUI設定で作られたあと、GUI側で他のアプリに変更しても、XP形式側にあったshellサブキー以下の指定方法は、変更されず、最初に設定したままになるようだ。

 エクスプローラー拡張子キーには、以下の3つのサブキーがある。

OpenWithList
OpenWithProgids
UserChoice

 「UserChoice」は、拡張子に対するデフォルトアプリを指定する。指定はprogidアイテムに対して、文字列(REG_SZ)でファイルタイプ/ProgIDのキーを指定する。ただし、手動で最初に拡張子を登録した場合、このUserChoiceは作られず、登録後に、GUIで起動プログラムを変更した場合に作られるようだ。

 このProgIDの指定では、「HKEY_CLASSES_ROOT\」は省略される。ProgIDの一部には、「HKEY_CLASSES_ROOT」の下にある「Applications」サブキー以下に実行ファイル名の形、つまり

HKEY_CLASSES_ROOT\Applications\[実行ファイル名」
(例:HKEY_CLASSES_ROOT\Applications\notepad.exe)

として作られるものがある。標準添付のデスクトップアプリなどは、ほとんどここに定義してある。この場合、「UserChoice」サブキーのprogidアイテムには、「Applications\netepad.exe」などとして登録される。

 「OpenWithList」サブキーは、エクスプローラーの右クリックメニューにある「プログラムから開く」で利用されるキーで、過去にデフォルト起動プログラムとして登録されたアプリが登録されていく。登録は、アルファベット1文字のサブキーと、その順番を示すMRUListサブキーの組み合わせからなる。

 アルファベット1文字の名前を持つ文字列値(REG_SZ)アイテムは、個々のアプリに対応し、データとして起動コマンドラインが定義される。MRUListは、アイテムの名前を最近の利用順に並べたものだ。具体的には、以下のような感じになる。

OpenWithList\
    a=プログラム名1
    b=プログラム名2
    c=プログラム名3
        :
    e=プログラム名n
    MRUList=adecb

 ユーザーが「プログラムから開く」でアプリを選択すると、そのアプリに対応するアルファベットがMRUListアイテム内で先頭に来るようになる。こうしていくと、MRUListは、先頭から最近の実行順序を記録するようになる。MRUListとは「Most Recent Used List」(最も最近使われた項目のリスト)という意味だと思われる。ここは、Windowsが管理する領域となるため、通常は触る必要はない。

 「OpenWithProgids」は、既定値でファイルタイプまたはProgIDキーを指定している。ただし、この部分が使われるかどうかは、UserChoiceの指定の有無と内容で変化するようだ。ある意味、互換性を保つための機構のようだ。

 UserChoiceサブキーがない場合、このキーによる指定が有効になる。また、UserChoiceサブキーがある場合、UserChoiceで指定されたProgIDとOpenWithProgidsで指定されたProgidキーが指定する実行プログラムが同一である場合(キーとしては別でもかまわないようだ)、OpenWithProgidsサブキーの既定値で指定しているProgID内の指定が有効になる。

 ただし、OpenWithProgidsで指定されたProgIDキー側には、shellサブキーで実行プログラムが指定されていなければ、同一判定ができないため、OpenWithProgids側の指定は無効になる。Vista方式の具体的な登録例が以下のリストだ。

[HKEY_CLASSES_ROOT\.genko]
@="genko_auto_file"

[HKEY_CLASSES_ROOT\genko_auto_file]
@="説明を追加するとレジストリにはいる"
[HKEY_CLASSES_ROOT\genko_auto_file\shell]
[HKEY_CLASSES_ROOT\genko_auto_file\shell\edit]
[HKEY_CLASSES_ROOT\genko_auto_file\shell\edit\command]
@="%SystemRoot%\system32\NOTEPAD.EXE %1"

[HKEY_CLASSES_ROOT\genko_auto_file\shell\open]
[HKEY_CLASSES_ROOT\genko_auto_file\shell\open\command]
@="%SystemRoot%\system32\NOTEPAD.EXE %1"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.genko\OpenWithList]
"a"="NOTEPAD.EXE"
"MRUList"="ab"
"b"="WORDPAD.EXE"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.genko\OpenWithProgids]
"genko_auto_file"=hex(0):

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.genko\UserChoice]
"Progid"="Applications\\NOTEPAD.EXE"

注:リスト中「=hex(0):」は、アイテムの種類がREG_NONEであることを表す

 次回は、Windows 8方式を解説し、Windows10での具体的な動作(各方式の優先順位など)を解説する予定だ。

カテゴリートップへ

この連載の記事
1
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥19,800
2
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
¥26,880
3
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,979
4
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
¥134,377
5
Apple 2025 MacBook Pro 10 コアCPU、10 コアGPU のM5 チップ搭載ノートパソコン:Apple Intelligence のために設計、14.2 インチLiquid Retina XDR ディスプレイ、16GB ユニファイドメモリ、512GBのSSD ストレージ - スペースブラック
Apple 2025 MacBook Pro 10 コアCPU、10 コアGPU のM5 チップ搭載ノートパソコン:Apple Intelligence のために設計、14.2 インチLiquid Retina XDR ディスプレイ、16GB ユニファイドメモリ、512GBのSSD ストレージ - スペースブラック
¥238,747

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
¥980
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,545
9
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
¥1,980
10
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
¥880

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

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