プロトコル ハンドラーの検索コネクタの作成
Windows エクスプローラーでは、レジストリ キー エントリを使用して、プロトコル ハンドラーの検索コネクタの作成を制御します。 レジストリを通じて、メーカーとサード パーティの両方が、新しいプロトコル ハンドラーとレガシ プロトコル ハンドラーを Windows 7 Search に参加させることができます。
このトピックは次のように構成されています。
Windows 7 のプロトコル ハンドラーの検索コネクタについて
Windows 7 では、[スタート] メニューまたは Windows エクスプローラーからの検索には、インデックス化された場所にあるファイルと、検索コネクタを持つリモート データ ストアまたはプロトコル ハンドラー項目などのファイル システム以外の項目のみが含まれます。 検索コネクタでは、[スタート] メニューとシェル検索のスコープにプロトコル ハンドラー項目を含めるだけでなく、[スタート] メニューでプロトコル ハンドラー項目を [スタート] メニューの検索結果の中でグループ化できます。その結果、ユーザーはグループ ヘッダーをクリックしてプロトコル ハンドラーからの結果のみを表示できるという利点があります。 または、Searches フォルダーに移動し、検索コネクタ ファイルを開き、その検索コネクタに関連付けられている特定のプロトコル ハンドラーからの項目のみを含む検索を実行することもできます。
ユーザーが最初にプロトコル ハンドラーを登録するアプリケーションを起動すると、Windows エクスプローラーは、ユーザーの Searches フォルダー内にプロトコル ハンドラーの検索コネクタ ファイル (.searchConnector-ms) を生成します。 プロトコル ハンドラーを使用するアプリケーションでは、この動作を無効にするか、プロトコル ハンドラーの検索コネクタの名前と説明をカスタマイズするかを選択できます。
Note
ユーザーの Searches フォルダーの場所は %userprofile%\Searches、またはFOLDERID_SavedSearches になります。 FOLDERID_SavedSearches の GUID は {7d1d3a04-debb-4115-95cf-2f29da2920da} です。
Windows エクスプローラーでは、次のセクションで説明するレジストリ キー エントリを使用して、プロトコル ハンドラーの検索コネクタの作成を制御します。
- プロトコル ハンドラーが検索に参加できるようにする
- プロトコル ハンドラーの検索コネクタの作成を無効にする
- プロトコル ハンドラーの検索コネクタの名前、説明、または FolderType のカスタマイズ
- 削除されたプロトコル ハンドラーの検索コネクタの復元
Note
プロトコル ハンドラーの検索コネクタを作成するプログラム的な手段はありません。 レジストリを使用して構成する必要があります。
プロトコル ハンドラーが検索に参加できるようにする
レジストリ キーとその設定可能な値の概要を次の表に示します。 プロトコル ハンドラーは、MAPI、file、csc などのプロトコルの実際の名前に<プロトコル>が置き換えられるこれらのレジストリ キーの一部またはすべてに設定できます。
レジストリ キー | 設定可能な値 | Type | 説明 |
---|---|---|---|
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Version | 存在しません (既定値)。 それ以外の場合は 1 以上です。 | REG_DWORD | この値は、既に処理されている検索ルートの場所テンプレート登録の変更を検出するために使用されます。 存在しない場合は、既定値として 0 を使用します。 または、バージョンを上げて、その新しいバージョンのプロトコル ハンドラーがインストールされたため、検索コネクタを再生成する必要があることを Windows Explorer に通知します。 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\DoNotCreateSearchConnectors | 存在しません (既定値)。 それ以外の場合は 1 に設定します。 | REG_DWORD | 存在しない場合は、Searches フォルダーに .searchconnector-ms ファイルを作成します。 1 の場合は、処理済みとしてマークし、何もしません。 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\Description | 検索コネクタの説明を含むローカライズ可能な文字列。 | REG_SZ | 省略可能。 これは、.searchconnector-ms ファイルの Description 要素で使用されます。 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\Name | 検索コネクタに名前を付けるローカライズされた文字列。 .searchconnector-ms ファイルの名前として使用されます。 | REG_SZ | 各場所には一意の名前が必要です。 この値がない場合は、プロトコル ハンドラーの IShellFolder インターフェイスによって提供される表示名が使用されます。 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\FolderType | 検索コネクタに適用する FOLDERTYPEID を識別する GUID。 | REG_SZ | 省略可能。 .searchconnector-ms ファイルの folderType 要素で使用され、結果を表示するために使用するテンプレートを示します。 たとえば、FOLDERTYPEID_Documents の GUID 値です。 |
プロトコル ハンドラーの検索コネクタの作成を無効にする
アプリケーションがアプリケーション自体で使用するためにプロトコル ハンドラーを使用して項目を公開し、 シェルを使用して ([スタート] メニューと Windows エクスプローラーの検索で) その項目を公開したくない場合は、プロトコル ハンドラーの検索コネクタの作成を無効にする必要があります。
検索コネクタの作成を無効にするには、次のレジストリ キーの例に示すように、DoNotCreateSearchConnectors を 0x00000001(1) に設定します。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
DoNotCreateSearchConnectors
DoNotCreateSearchConnectors が 1 に設定されている場合は、プロトコル ハンドラーによって公開される各項目で System.Shell.OmitFromView プロパティを公開 し、このプロパティの値を TRUE に設定することを推奨します。 これにより、[スタート] メニューの [ファイル] グループにプロトコル ハンドラー項目が表示されなくなります。
DoNotCreateSearchConnectors が存在し、0 に設定されている場合、Windows エクスプローラーはプロトコル ハンドラーの検索コネクタを作成し、プロトコル ハンドラー項目が [スタート] メニューと Windows Explorer の検索で返されます。
プロトコル ハンドラーの検索コネクタの名前、説明、または FolderType のカスタマイズ
検索コネクタ名は、Searches フォルダー内の検索コネクタを識別するだけでなく、[スタート] メニュー検索の結果のグループ ヘッダーとしても使用されます。 そのため、検索コネクタにわかりやすい名前を付けることが重要です。 レジストリ キーに名前が付けられていない場合、Windows エクスプローラーの既定では、IShellFolder インターフェイスによって指定された名前がプロトコル ハンドラーの検索ルートと空白の説明に使用されます。 IShellFolder インターフェイスの名前を変更しなくても、レジストリ キー エントリを使用して既定の名前をオーバーライドできます。 検索コネクタ名ほど目に見えるモノではありませんが、独自の説明を記述して検索コネクタの説明をオーバーライドすることもできます。
既定の名前または説明をオーバーライドするには、次のレジストリ例に示すようにエントリを設定します。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
Default
Name
Description
さらに、FolderType エントリは、FOLDERTYPEID GUID のいずれかに設定できます。 値はその名前ではなく、実際の GUID である必要があります。 たとえば、FOLDERTYPEID_Music ではなく、{94d6ddcc-4a68-4175-a374-bd584a510b78} とする必要があります。 FOLDERTYPEID の GUID は、Windows SDK の Shlguid.h ヘッダー ファイルで取得できます。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
Default
FolderType = {94d6ddcc-4a68-4175-a374-bd584a510b78}
レジストリ文字列リダイレクトの使用
リダイレクトされた文字列を使用すると、検索コネクタに指定した名前をローカライズできます。 レジストリに実際の文字列を入力する代わりに、名前と説明のレジストリ キーにローカライズ可能な文字列を含めることができます。
名前または説明の値にローカライズ可能な文字列を含めるには、次のレジストリ キーの例に示されるような値を設定します。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
Name = @dllname.dll,-resourceID
ローカライズ可能な文字列の形式は次のとおりです。
- @dllname.dll,-resourceID。それぞれ次の内容を表します。
- @dllname.dll は、文字列リソースを含む DLL へのパスです
- ResourceID は、文字列リソースの整数リソース ID です。
間接文字列と、バージョン修飾子が付加された間接文字列の形式については、SHLoadIndirectString 関数で説明します。
削除されたプロトコル ハンドラーの検索コネクタの復元
検索コネクタはユーザーのコンピューター上のファイルであるため、誤って削除される可能性があります。 削除されたすべてのプロトコル ハンドラーの検索コネクタを復元するには、既定のライブラリを復元します。 復元するには、Windows エクスプローラーを開き、Libraries フォルダーを右クリックし、[既定のライブラリの復元] を選択します。
その他のリソース
関連トピック
-
Conceptual