プログラム アクセスとコンピューターの既定値の設定 (SPAD)

このトピックでは、コントロール パネルで見つかったプログラム アクセスとコンピューターの既定値 (SPAD) の設定機能について説明します。 SPAD は、Windows Vista 以降のバージョンの Windows の既定のプログラム コントロール パネル項目の下にあります。 Windows XP では、[プログラムの追加と削除] 項目にあり、[プログラム のアクセスと既定値の設定] というタイトルが付いています

重要

このトピックは、Windows 10 には適用されません。 Windows 10 で既定のファイルの関連付けが機能する方法が変更されました。 詳細については、この記事の 「Windows 10 で既定のアプリ を処理する方法の変更」セクションを 参照してください。

 

プログラム アクセスとコンピューターの既定の設定ツールの使用

Note

Windows 8 の時点で、SPAD は現在のユーザーに対してユーザーごとに既定値を構成します。 Windows 8 より前では、SPAD はコンピューターごとに既定値を設定します。 ユーザーごとの既定値がまだユーザーによって構成されていない場合、システムは、コンピューターごとの既定値にフォールバックするのではなく、ユーザーごとの既定値を設定するように求められます。 以前にユーザーごとの既定値を設定していた場合、コンピューターごとの既定値が Windows Vista および Windows 7 のユーザーに表示されなかった可能性があります。これは、ユーザーごとの既定値がそれらのオペレーティング システムのコンピューターごとの既定値をオーバーライドするためです。

 

Windows XP では、[プログラム アクセスの設定] と [既定値] は、コントロール パネルの [プログラムの追加と削除] 項目のオプションとして見つかったツールです。 Windows Vista 以降では、[既定のプログラム] コントロール パネル項目の下にあります。 登録済みプログラムの場合は、次の機能を実行します。

  • クライアントの種類ごとに既定のプログラムを選択できるようにします (最大 Windows 7 のみ)。
  • プログラムのアイコン、ショートカット、およびメニュー エントリの表示を制御できるようにします。
  • プリセットの既定のプログラムの選択肢のセットを提供します。 (Windows XP Service Pack 1 (SP1) のみ)

このツールは、次の 5 種類のクライアントに使用されます。

  • Browser
  • メール
  • インスタント メッセージング プログラム
  • メディア プレーヤー
  • Java 用の仮想マシン

プログラム アクセスとコンピューターの既定値の設定の概要

[Windows 8 Set Program Access and Computer Defaults] (Windows 8 Set Program Access と Computer Defaults) ページが次のスクリーン ショットに表示されます。

設定されたプログラム アクセスとコンピューターの既定のエントリ ビューのスクリーン ショット

3 つの構成オプションがユーザーに表示され、OEM が "Computer Manufacturer" というタイトルの 4 番目のオプションを提示するオプションが表示されます。

Microsoft Windows

Microsoft Windows の構成は、次のスクリーン ショットに示すように、Windows で提供される既定のプログラムのセットで構成されます。

設定されたプログラム アクセスと既定の Microsoft オプションのスクリーン ショット

Microsoft Windows 構成を選択すると、5 種類のクライアントのいずれかに登録されている各プログラムのアイコン、ショートカット、またはメニュー エントリを表示することもできます。 これらのアイコン、ショートカット、およびメニュー エントリは、スタート メニューまたはスタート画面、デスクトップ、および追加されたその他すべての場所でユーザーが使用できます。

Microsoft 以外

次のスクリーン ショットに示す Microsoft 以外の構成は、Microsoft によって生成されないユーザーのシステム上の登録済みアプリケーションに使用されます。 これらのアプリケーションは、ユーザーのシステムにプレインストールすることも、ユーザーがインストールした Microsoft 以外のアプリケーションにすることもできます。

Note

このページに表示するには、アプリケーションを登録する必要があります。 アプリケーションの登録手順については、「クライアントの種類を使用したプログラムの登録」を参照してください

 

設定されたプログラム アクセスと既定の microsoft 以外のオプションのスクリーン ショット

[Microsoft 以外] オプションを選択すると、Microsoft Windows 構成にリストされている Microsoft プログラムのアイコン、ショートカット、およびメニュー エントリへのアクセスも削除されます。これらのアイコンを持つすべてのクライアントの種類に対して表示されます。 これらの Microsoft のアイコン、ショートカット、およびメニュー エントリは、[スタート] メニュー、デスクトップ、および追加されたその他の場所から削除されます。

Custom

次のスクリーン ショットに示すカスタム構成を使用すると、ユーザーは、5 つのクライアントの種類の既定の可能性として登録されている Microsoft と Microsoft 以外のプログラムを任意の組み合わせでシステムをカスタマイズできます。 これは、Windows 2000 Service Pack 3 (SP3) で使用できる 4 つのオプションのうちの 1 つだけです。

設定されたプログラム アクセスと既定のカスタム オプションのスクリーン ショット

Microsoft Windows および Microsoft 以外の構成に表示されるすべてのオプションは、[カスタム] セクションのユーザーと、Windows に含まれていない追加でインストールされた Microsoft アプリケーションで使用できます。 前の スクリーン ショットに示すように、[現在の Web ブラウザー を使用する] ラジオ ボタンが事前に選択されています。 UI から現在の既定のブラウザーを特定する方法はありません。 Windows での Web リンクまたはファイルの呼び出しは、現在の既定のブラウザーを検出する唯一の方法です。

ユーザーがプログラムの [このプログラムへのアクセスを有効にする] チェック ボックスをオンにすると、そのプログラムのアイコン、ショートカット、およびメニュー エントリが、スタート メニューまたはスタート画面、デスクトップ、またはインストールされたその他の場所に表示されます。 このオプションをオフにすると、これらのアイコン、ショートカット、およびメニュー エントリが削除されますが、これらのオプションの動作はアプリケーション ベンダーによって完全に行われます。 Windows では、UI 全体でアクセスを有効または削除する方法は制御されません。 また、アプリケーションがプログラム アクセスの設定とコンピューターの既定値に登録 する必要はないことを理解することも重要です

[コンピュータの製造元]

"Computer Manufacturer" というタイトルの 4 番目のカテゴリは、一部のシステムの SPAD ウィンドウに表示されます。 コンピューターの製造元は、カスタム構成で使用できるのと同じ選択から選択して、既定のカスタム セットでコンピューターを事前構成することを選択できます。 (説明を目的として、LitWare と呼ばれる架空のアプリケーション のセットは、すべてのクライアントの種類で使用するために登録されています)。ユーザーは、次の Windows XP スクリーン ショットに示すように、[コンピューターの製造元] オプションを選択することで、いつでもコンピューターの製造元 の既定の構成に戻ることができます。

Note

この構成は、すべてのシステムに表示されるわけではありません。 詳細については、OEM プレインストール キット (OPK) を参照してください。

 

設定されたプログラムアクセスとデフォルトのコンピュータメーカーオプションのスクリーンショット

LastUserInitiatedDefaultChange レジストリ値

LastUserInitiatedDefaultChange 値がレジストリに追加され、アプリケーションがユーザーの既定の選択肢を認識して尊重するのを支援します。 この値は、REG_BINARYデータを FILETIME 構造体の形式で保持します。この構造体には、ユーザーがプログラム アクセスの設定とコンピューターの既定値の設定ツールを使用して既定の選択を最後に変更した日時 (UTC) が含まれます。 この値は、次のサブキーの下にあります。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         ClientTypeName
            LastUserInitiatedDefaultChange = FILETIME

次のシナリオでは、ファイルの関連付けを監視するアプリケーションにこの値を使用します。

  1. アプリケーションは、クライアントの種類 (インストール時または後で) の既定のプログラムとして最後に設定された時刻を内部的に記録します。
  2. アプリケーションは、クライアントの種類の既定のプログラムが、それ自体またはそれが表すアプリケーション以外のプログラム (バックグラウンド ヘルパー プログラムの場合) に変更されたことを検出します。 Windows 8 ではサポートされていません。
  3. アプリケーションは LastUserInitiatedDefaultChange (ユーザーが開始した最後の既定の変更のタイム スタンプ) の値を読み取り、既定として独自に選択するために保存したタイム スタンプ値と比較します。
  4. LastUserInitiatedDefaultChange がアプリケーションの格納された値より後の場合は、プログラムのアクセスと既定値の設定ツールを使用してユーザーによって変更が明示的に要求されたため、そのアプリケーションでアクションを実行する必要はありません。
  5. アプリケーションは、既定として再び選択されるまで、そのファイルの関連付けを監視しなくなりました。 Windows 8 ではサポートされていません。

このようなスキームに従うことで、ユーザーの希望が尊重され、システムの最終的な所有権が維持されます。

[プログラムの追加と削除] リストのフィルター処理

Note

このセクションは、Windows XP Service Pack 2 (SP2) 以降および Windows Server 2003 以降に適用されます。

 

Windows XP および Windows Server 2003 では、[プログラムの追加と削除] の [プログラムの変更または削除] タブに表示されるアプリケーションの一覧をユーザーがフィルター処理して、アプリケーション更新プログラムのエントリを除外できます。 これらのバージョンの Windows では、これはウィンドウの上部にある [更新プログラム表示] チェック ボックスを使用して実現されます。 [更新プログラム表示] オプションは既定では選択されていないため、ユーザーが表示を選択しない限り、更新プログラムは表示されません。 [プログラムの追加と削除] が閉じられると、チェック ボックスの状態に対する変更は保持されます。ユーザーが更新プログラムを表示することを選択した場合は、ユーザーがチェック ボックスをオフにするまで引き続き表示されます。

Note

Windows XP SP2 更新プログラム自体は、フィルター処理の例外です。 チェック ボックスの状態に関係なく、常に表示されます。

 

Windows Vista 以降では、アプリケーションの更新プログラムは、更新プログラム専用のコントロール パネル別のページに表示されます。 このページは、ユーザーが [インストールされている更新プログラムの表示] タスク リンクをクリックしたときに表示されます。 インストールされているプログラムと同じページに更新プログラムを表示するユーザーが選択できるオプションはありません。 UI の変更にもかかわらず、インストールされているプログラムの更新プログラムとして登録するメカニズムは、以前のバージョンの Windows と同じままです。

Windows インストーラーを使用する Microsoft および Microsoft 以外のアプリケーションでは、更新プログラムを更新プログラムとして認識するために、それ以上何もする必要はありません。 Windows インストーラーを使用しない Microsoft 以外のアプリケーションでは、既存のプログラムの更新プログラムとして認識されるように、インストールの一部としてレジストリ内の特定の値を宣言する必要があります。

次の例は、インストールを既存のプログラムの更新プログラムとして認識するために宣言するレジストリ値を示しています。

  1. 親アプリケーションは、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion Uninstall サブキーの下のサブキーにそのアンインストール情報を\追加する必要があります。 アンインストール サブキーの使用の詳細については、「インストール」トピックを参照してください。
  2. その親アプリケーションに対する各更新では、その情報を Uninstall サブキーのサブキーとして追加する必要もあります。 他のプログラムとの潜在的な競合を回避するために、選択した特定の名前付け規則を使用する必要があります。 次の規則は、Windows 更新プログラムで使用するために Microsoft によってサブキー名として予約されています。
    • IEUpdate
    • OEUpdate
    • "KB" の後に 6 桁の数字 (例: "KB123456"
    • "Q" の後に 6 桁の数字 (例: "Q123456"
    • 6 桁の数字 (例: "123456"
  3. 親アプリケーションに追加される標準のアンインストール情報に加えて、各更新プログラムのサブキーには、次の 3 つのエントリのうち 2 つを追加する必要があります。 値はREG_SZ型です。
    • ParentKeyName。 この値は必須です。 これは、手順 1 で宣言された親のサブキーの名前です。 これにより、更新プログラムがプログラムに関連付けられます。
    • ParentDisplayName。 この値は必須です。 ParentKeyName で指定されたサブキーと一致しない場合、この値は、[プログラムの追加と削除] に表示されるプレースホルダーの親プログラムとして使用されます。
    • InstallDate。 この値は省略可能です。 フォーム yyyymmdd を使用して日付を指定する必要があります。 この日付は、UI の更新プログラムのエントリの横に表示される [インストール済み] 情報に使用されます。 InstallDate エントリがない場合、または存在するが値が割り当てられていない場合は、次の処理が行われます。
      • Windows Vista および Windows 7 以外のオペレーティング システムのバージョン: [インストールされていません] 情報 が表示されます。
      • Windows Vista 以降: 既定の日付が使用されます。 これは、その更新プログラムのサブキーの下にあるエントリの "最終更新日" です。 これは通常、更新プログラムがレジストリに追加された日です。 ただし、これは "最終変更日" であるため、サブキーのエントリをそれ以降変更すると、InstallDate 値がその変更日に変更されます。

次の例は、LitWare Deluxe アプリケーションの更新に関連するレジストリ エントリを示しています。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Uninstall
                  LitWare
                     DisplayName = LitWare Deluxe
                     UninstallString = "C:\Program Files\LitWare\LitWare Deluxe\litware.exe" /uninstall
                  LitWare_Update123456
                     DisplayName = LitWare Deluxe Update 123456. Fixes printing problems.
                     UninstallString = "C:\Program Files\LitWare\LitWare Deluxe\Updates\123456.exe" /uninstall
                     ParentKeyName = LitWare
                     ParentDisplayName = LitWare Deluxe
                     InstallDate = 20050513

このオプションが使用可能になる前に生成された更新プログラムなど、適切なレジストリ情報を提供しない Microsoft 以外のアプリケーションは、インストールされているプログラムの一覧に引き続き通常どおり表示され、除外されません。

Windows Vista および Windows 7 以外のオペレーティング システム バージョンでの更新プログラムのフィルター処理は、通常、ユーザーが制御する設定であり、アプリケーションによって考慮される必要があります。 ただし、エンタープライズ環境では、管理者は、次の例に示すように、DontGroupPatches レジストリ値を使用して更新プログラムをフィルター処理するオプションをユーザーに付与するかどうかを制御できます。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               policies
                  Uninstall
                     DontGroupPatches = 0 or 1

この値はREG_DWORD型であり、次のように解釈されます。

DontGroupPatches 値 意味
0 [更新プログラム表示] チェック ボックスがユーザーに表示されます。 フィルター処理は、ユーザーがこのボックスをオンにしているかどうかによって異なります。
1 [更新プログラム表示] チェック ボックスが UI から削除されます。 更新プログラムは一覧からフィルター処理されません。 この値は、更新プログラムの表示機能が導入される前に、基本的に Windows XP SP1 の動作に戻ります。
DontGroupPatches エントリが存在しません これは、値を 0 に設定することと同じです。

 

DontGroupPatches は Windows Vista および Windows 7 では効果がありません。UI にはチェック ボックスが含まれており、登録されている更新プログラムは常にフィルター処理されます。

Note

ポリシーは管理者のみが設定します。 アプリケーションでは、この値を変更しないでください。 レジストリ ベースのグループ ポリシーを設定する方法の詳細については、「グループ ポリシー」または「Windows Server グループ ポリシー」を参照してください

 

その他のリソース

ファイルの関連付けのベスト プラクティス

ファイルの関連付けのサンプル シナリオ

Windows Vista 以降で既定のアプリケーションを管理するためのガイドライン

既定のプログラム