関連付けられていないファイルの種類の [開く] ダイアログ ボックスからアプリケーションを除外する方法

ユーザーが、登録されているファイルの種類 (不明なファイルの種類) のメンバーではないファイルを開こうとしたとき、またはユーザーが [プログラム で開く ] または [ プログラムで開く ]> を選択 すると、シェルにサブメニューまたはダイアログ ボックスが表示され、ユーザーはファイルを開くために使用するプログラムを指定できます。

既定では、HKEY_CLASSES_ROOT\ アプリケーションのサブキーとして登録されているアプリケーションは、[プログラムから開く] ダイアログ ボックスに表示されます。 これらのアプリケーションは、ファイルの種類を処理するためにアプリケーションが登録されているかどうかに関係なく、 Open で 表示されます。

アプリケーションを使用して特定のファイルの種類を開く必要がない場合、または使用できない場合にアプリケーションが [プログラムから 開く ] ダイアログ ボックスに表示されないようにするには、このトピックで説明する 2 つの方法のいずれかを使用します。

Instructions

手順 1:

NoOpenWith エントリをアプリケーションのサブキーに追加します。 アプリケーションでファイルの種類が使用されている場合、Windows はその情報を記録して [推奨プログラム] リストを作成します。 この一覧は、次のスクリーン ショットに示すように、[ Open with]\(プログラムで開く \) サブメニューに表示されます。

サブメニューが表示された状態で開いたショートカット メニューのスクリーン ショット

これらの推奨アプリケーションは、次のスクリーン ショットに示すように、[プログラムで開く] ダイアログ ボックスの [推奨プログラム] 部分にも表示されます。

推奨されるプログラムを含む [開く] ダイアログ ボックスのスクリーン ショット

注意

アプリケーションがファイルの種類の OpenWithList または OpenWithProgIDs に自身を登録している場合は、NoOpenWith エントリが設定されている場合でも、 推奨されるプログラム の一覧に表示されます。 また、アプリケーションが推奨プログラムの一覧で提供されているかどうかに関係なく、ユーザーは任意の実行可能ファイルを手動で参照できることに注意してください。

 

アプリケーションでは、アプリケーションのサブキーの下に NoOpenWith 値を指定することで、この追跡を無効にすることができます。

NoOpenWith エントリは、次の例に示すように、空の REG_SZ 値です。

HKEY_CLASSES_ROOT
   Applications
      MyProgram.exe
         NoOpenWith

NoOpenWith エントリを設定すると、次の効果もあります。

  • アプリケーションがそのファイルの種類を処理するために特に登録されていない限り、ドラッグ アンド ドロップでアプリケーションのジャンプ リストにファイルをピン留めできないようにします。
  • アプリケーションがそのファイルの種類を処理するために特に登録されていない限り、共通ファイル ダイアログ ボックスと SHAddToRecentDocs 関数の呼び出しによって、アプリケーションのジャンプ リストにファイルが追加されないようにします。

手順 2:

[プログラム で開く ] ダイアログ ボックスにアプリケーションが表示されないようにする 2 つ目の方法は、 SupportedTypes サブキーを使用して、アプリケーションで開くことができるファイルの種類の拡張子を明示的に一覧表示することです。 これにより、開くことができないファイルの種類の [プログラム で開く ] ダイアログ ボックスにアプリケーションが表示されなくなります。 また、前に説明したように、アプリケーションが [推奨プログラム ] の一覧に表示されます。

この方法は、アプリケーションが特定のファイルの種類としてファイルを保存できるが、そのファイルの種類を開くことができない場合に特に便利です。 アプリケーションでは、[保存] ダイアログ ボックスを呼び出すときに IFileDialog::SetOptions を使用してFOS_DONTADDTORECENT フラグを設定する必要もあります。 これにより、アイテムがジャンプ リストの [最近 ] または [ 頻繁 ] の部分に追加されなくなります。 また、 OpenWithList でアプリケーションが追跡されるのもブロックされます。

サポートされている各拡張機能は、次の例に示すように 、SupportedTypes サブキーの下にエントリとして追加されます。 エントリの種類は REG_SZ または REG_NULLで、関連付けられた値はありません。

HKEY_CLASSES_ROOT
   Applications
      ApplicationName
         SupportedTypes
            .ext1
            .ext2
            .ext3

SupportedTypes サブキーが指定されている場合、これらの拡張子を持つファイルのみが、アプリケーションのジャンプ リストにピン留めしたり、アプリケーションの最近または頻繁な宛先リストで追跡したりできます。

NoOpenWith エントリは SupportedTypes サブキーをオーバーライドし、[プログラムから 開く ] ダイアログ ボックスでアプリケーションを非表示にします。