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

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

重要

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

 

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

注意

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は、次のスクリーン ショットに示されています。

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

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

Microsoft Windows

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

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

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

[Microsoft 以外]

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

注意

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

 

設定されたプログラム アクセスと既定の 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 スクリーン ショットに示すように、[コンピューターの製造元] オプションを選択することで、いつでも コンピューターの製造元 の既定の構成に戻ることができます。

注意

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

 

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

LastUserInitiatedDefaultChange レジストリ値

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

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         ClientTypeName
            LastUserInitiatedDefaultChange = FILETIME

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

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

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

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

注意

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

 

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

注意

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

 

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

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

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

  1. 親アプリケーションは、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ Uninstall サブキーの下のサブキーにそのアンインストール情報を追加する必要があります。 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 には チェック ボックスが含まれないので、登録された更新プログラムは常にフィルター処理されます。

注意

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

 

その他のリソース

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

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

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

既定のプログラム