ファイル名拡張子のファイル ハンドラーを指定する

特定のファイル拡張子を持つファイルを処理するアプリケーションを特定する方法は、数多くあります。 OpenWithList 動詞と OpenWithProgids 動詞は、ファイル拡張子のレジストリ エントリの下でファイルハンドラーを指定する 2 つの方法です。

OpenWithList 動詞

Windows エクスプローラーでファイルを右クリックすると、[開く] コマンドが表示されます。 複数の製品が拡張子に関連付けられている場合は、 [プログラムから開く] サブメニューが表示されます。

HKEY_CLASSES_ROOT でファイル拡張子の OpenWithList キーを設定することによって、特定の拡張子のファイルを開くさまざまなアプリケーションを登録できます。 このキーの下に、ファイル拡張子に対して一覧表示されるアプリケーションが、[プログラムから開く] ダイアログ ボックスの [推奨されたプログラム] 見出しの下に表示されます。 次の例は、.vcproj ファイル拡張子を開くように登録されているアプリケーションを示しています。

HKEY_CLASSES_ROOT\
   .vcproj\
      (default)="VisualStudio.vcproj.14.0"
      OpenWithList\
         devenv.exe

Note

アプリケーションを指定するキーは、HKEY_CLASSES_ROOT\Applications の下の一覧にあります。

OpenWithList キーを追加することにより、別のアプリケーションに拡張子の所有権がある場合でも、アプリケーションがファイル拡張子をサポートすることが宣言されます。 これは、このアプリケーションまたは別のアプリケーションの将来のバージョンとなる可能性があります。

OpenWithProgIDs

プログラム識別子 (ProgID) は、アプリケーションまたは COM オブジェクトのバージョンを識別する、ClassID のフレンドリ バージョンです。 共同作成可能なすべてのオブジェクトは、それ自体の ProgID を持つ必要があります。 たとえば、VisualStudio.DTE.7.1 は、VisualStudio.DTE.10.0 が Visual Studio を起動している間に Visual Studio .NET 2003 を起動します。 プロジェクト タイプまたはプロジェクト項目タイプの所有者は、ファイル拡張子のバージョン固有の ProgID を作成する必要があります。 これらの ProgID は、複数の ProgID が同じアプリケーションを起動する場合があるため、冗長である可能性があります。 詳細については、「ファイル名拡張子の動詞を登録する」を参照してください。

他のベンダーからの登録と重複しないように、バージョン管理されたファイルの ProgID には、次の名前付け規則を使用します。

ファイル拡張子 バージョン管理された ProgID
.extension ProductName. extension.versionMajor.versionMinor

バージョン管理された ProgID を HKEY_CLASSES_ROOT\<拡張子>\OpenWithProgids キーに値として追加して、特定の拡張子のファイルを開くことができるさまざまなアプリケーションを登録することができます。 このレジストリ キーには、ファイル拡張子に関連付けられている代替 ProgID の一覧が含まれています。 一覧にある ProgID に関連付けられているアプリケーションは、[製品名から開く] サブメニューに表示されます。 OpenWithList キーと OpenWithProgids キーの両方に同じアプリケーションが指定されている場合は、オペレーティング システムにより重複部分がマージされます。

Note

OpenWithProgids キーは、Windows XP でのみサポートされています。 このキーは他のオペレーティング システムでは無視されるため、ファイル ハンドラーの唯一の登録としては使用しないでください。 このキーは、Windows XP でのユーザー エクスペリエンスを向上させるために使用します。

必要な ProgID を、REG_NONE 型の値として追加します。 次のコードは、ファイル拡張子 (.ext) の ProgID を登録する例を示しています。

HKEY_CLASSES_ROOT\
   .ext\
      (default)="MyProduct.ext.14.0"
      OpenWithProgids
         progid        REG_NONE (zero-length binary value)
         otherprogid   REG_NONE (zero-length binary value)

ファイル拡張子の既定値として指定された ProgID が、既定のファイル ハンドラーです。 以前のバージョンの Visual Studio で提供されていたか、他のアプリケーションで開くように設定できるファイル拡張子の ProgID を変更する場合は、ファイル拡張子の OpenWithProgids キーを登録し、一覧にある新しい ProgID を、サポートする古い ProgID と共に指定する必要があります。 次に例を示します。

HKEY_CLASSES_ROOT\
   .vcproj\
      (default)="VisualStudio.vcproj.14.0"
      OpenWithProgids
         vcprojfile              //old progid
         VisualStudio.vcproj.12.0 //old progid
         VisualStudio.vcproj.14.0 //new progid

古い ProgID に動詞が関連付けられている場合は、これらの動詞が、ショートカット メニューの [<製品名> から開く] にも表示されます。