次の方法で共有


動詞とファイルの関連付け

ユーザーがファイルなどのシェル オブジェクトを右クリックすると、シェルにショートカット (コンテキスト) メニューが表示されます。 このメニューには、ユーザーが項目に対してさまざまなアクションを実行するために選択できるコマンドの一覧が含まれています。 これらのコマンドは、ショートカット メニュー項目または動詞とも呼ばれます。 ショートカット メニューはカスタマイズできます。

このトピックは次のように構成されています。

ファイル システム オブジェクトのショートカット メニューの概要

ショートカット メニューはファイル管理によく使用されるため、シェルには、ファイルやフォルダーなどのファイル システム オブジェクトのショートカット メニューに表示される、切り取りコピーなどの一連の既定のコマンドが用意されています。

次の例は、MyFile.xyz-ms を右クリックして表示される既定のショートカット メニュー示しています。

既定 ショートカット メニューのスクリーン ショット

myFile.xyz-ms 既定のショートカット メニューが表示される理由は、.xyz-ms が登録済みのファイルの種類のメンバーではないためです。 これに対し、.txt は登録済みのファイルの種類です。 .txt ファイルを右クリックすると、ショートカット メニューが表示され、上部のセクションに 3 つのコマンドが表示されます。印刷編集で開く

ファイルの種類が登録されているファイルのショートカット メニューのスクリーン ショット

ファイルの種類のショートカット メニューを拡張するには、各コマンドのレジストリ エントリを作成する必要があります。 より高度な方法は、ショートカット メニュー (動詞) ハンドラーを実装することです。これにより、ファイルごとにファイルの種類のショートカット メニューを拡張できます。 詳細については、「コンテキスト メニュー ハンドラーの作成」および「コンテキスト メニューリファレンス する」を参照してください。

ショートカット メニューにコマンドを追加する

ショートカット メニュー ハンドラーは、既存のショートカット メニューにコマンドを追加するファイルの種類のハンドラーです。 ショートカット メニュー ハンドラーはファイルの種類に関連付けられます。クラスのメンバーに対してショートカット メニューが表示されるたびに呼び出されます。 シェルはレジストリをチェックして、ファイルの種類がショートカット メニュー ハンドラーに関連付けられているかどうかを確認します。 その場合、シェルはハンドラーに対して追加のショートカット メニュー項目を照会します。

ショートカット メニューの動詞

ショートカット メニューの各コマンドは、その動詞によってレジストリで識別されます。 これらの動詞は、アプリケーションをプログラムで起動するときに ShellExecuteEx で使用されるものと同じです。

動詞は、関連付けられたコマンドを識別するためにシェルによって使用される単純なテキスト文字列です。 各動詞は、コンソール ウィンドウまたはバッチ (.bat) ファイルでコマンドを起動するために使用されるコマンド文字列に対応します。

たとえば、開いている動詞は通常、ファイルを開くプログラムを起動します。 通常、コマンド文字列は次のようになります。

"My Program.exe" "%1"

コマンド文字列のいずれかの要素にスペースが含まれている場合、またはスペースを含む可能性がある場合は、引用符で囲む必要があります。 それ以外の場合、要素にスペースが含まれている場合、正しく解析されません。 たとえば、"My Program.exe" 、アプリケーションが正しく起動します。 My Program.exe を引用符で囲まずに使用すると、システムは最初のコマンド ライン引数として Program.exeMy を起動しようとします。 文字列にスペースが含まれていないことを確認できないため、シェルによって文字列に展開される "%1" などの引数には、常に引用符を使用する必要があります。

動詞には、動詞文字列自体の代わりにショートカット メニューに表示される表示名を関連付けることもできます。 たとえば、openas の表示文字列は Open Withです。 通常のメニュー文字列と同様に、表示文字列にアンパサンド文字を含めると、コマンドをキーボードで選択できます。

ファイル システム以外の項目と OpenSearch の結果をストリーミングします。

Windows 7 以降では、OpenSearch プロトコルを介した Windows クライアントへの外部ソースの接続がサポートされています。 これにより、ユーザーはリモート データ ストアを検索し、Windows エクスプローラー内から結果を表示できます。 OpenSearch v1.1 標準では、単純なファイル形式を定義しています。この形式を使用して、クライアントが Web サービスに対してデータ ストアのクエリを実行する方法と、クライアントによってレンダリングされる結果をサービスが返す方法を記述できます。

OpenSearch 結果の場合にアイテムをダウンロードする必要がないように、ファイル システム以外の項目 ストリーミングすることが必要になる場合があります。 フェデレーション検索機能を使用すると、SharePoint やその他の Web サービスに基づくサイトなど、OpenSearch をサポートするファイル システム以外の場所からアイテムを検索できます。 これらの項目で動詞を呼び出すと、システムは項目の一時的なバージョンをダウンロードし、動詞の実装に渡します。 動詞の実装者は、アイテムのストリーミングに動詞でサポートされている URL スキーマのセットを登録することで、ファイルをダウンロードする必要を回避することをお勧めします。 動詞は、SupportedProtocols レジストリ キーを使用して行います。

任意のファイルの種類を処理するアプリケーションを登録する

特定のファイルの種類のショートカット メニュー項目を定義すると、関連付けられているアプリケーションがファイルの種類のメンバーを開く方法を指定できます。 ただし、アプリケーションは、ユーザーがアプリケーションを使用して、アプリケーションに関連付けられていないファイルの種類を開こうとしたときに使用する別の既定のプロシージャを登録することもできます。 既定のプロシージャは、ショートカット メニュー項目を登録するのとほぼ同じ方法で登録します。 ショートカット メニュー項目の定義の詳細については、「コンテキスト メニュー ハンドラーの作成」を参照してください。

既定のプロシージャは、2 つの基本的な目的を果たします。 1 つは、任意のファイルの種類を開くためにアプリケーションを呼び出す方法を指定することです。 たとえば、コマンド ライン フラグを使用して、不明なファイルの種類が開かれていることを示します。 もう 1 つの目的は、ショートカット メニュー項目やアイコンなど、ファイルの種類のさまざまな特性を定義することです。 ユーザーがアプリケーションを追加のファイルの種類に関連付ける場合、そのクラスにはこれらの特性があります。 追加のファイルの種類が以前に別のアプリケーションに関連付けられている場合は、これらの特性によって元のファイルが置き換えられます。

既定のプロシージャを登録するには、アプリケーションの ProgID 用に作成したのと同じレジストリ キーを、アプリケーションの HKEY_CLASSES_ROOT\Applicationsサブキーの下に配置します。 FriendlyAppName 値を含めて、アプリケーションのフレンドリ名をシステムに提供することもできます。 アプリケーションのフレンドリ名は、FriendlyAppName 値が存在しない場合にのみ、実行可能ファイルから抽出することもできます。

次のサンプル レジストリ エントリは、フレンドリ名といくつかのショートカット メニュー項目を定義する MyProgram.exe の既定の手順を示しています。 コマンド文字列には、任意のファイルの種類を開くことをアプリケーションに通知する /a フラグが含まれています。 DefaultIcon サブキーを含める場合は、汎用アイコンを使用する必要があります。

HKEY_CLASSES_ROOT
   MyProgram.exe
      shell
         open
            command
               (Default) = C:\MyDir\MyProgram.exe /a "%1"
         print
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1"
         printto
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2"

その他のリソース

ショートカット メニュー ハンドラーと複数選択動詞のベスト プラクティス

ショートカット メニューの静的または動的動詞の選択

ショートカット メニュー ハンドラーの作成

動的動詞 を使用してショートカット メニューをカスタマイズする

ショートカット (コンテキスト) メニューとショートカット メニュー ハンドラー

ショートカット メニューリファレンス