検索プロトコルの使用
search:application プロトコルは、Service Pack 1 (SP1) 以降のバージョンを使用して Windows Vista でデスクトップ検索アプリケーションを呼び出すための拡張可能な規則です。 プロトコルは、Windows が既定のデスクトップ検索アプリケーションを特定して呼び出す方法を提供するために、SP1 を使用して Windows Vista で作成されました。
プロトコル構文には、ユーザーが入力した検索語句や検索が開始された場所など、一般的なデスクトップ検索を実行するのに役立つパラメーターが多数用意されています。 ユーザーが使用可能な 2 つの検索エントリ ポイント ([スタート] メニューまたは Windows エクスプローラー) のいずれかから検索すると、オペレーティング システムは検索プロトコルを使用して既定のデスクトップ検索アプリケーションを起動します。 これを行うには、ユーザーが入力した検索用語を標準の検索プロトコル構文に追加し、その情報を既定の検索アプリケーションとして登録されたアプリケーションに渡します。
他のデスクトップ検索アプリケーションがインストールされていない場合は、これらのエントリ ポイントに入力された検索によって Windows Search エクスプローラーが起動します。 ただし、サード パーティの開発者は、アプリケーションを作成、インストール、登録して、検索プロトコルを処理し、既定の検索アプリケーションにすることができます。 このようなアプリケーションでは、Windows とのシームレスなエクスペリエンスを確保するために、検索プロトコル構文をサポートし、 既定のプログラム 機能に登録する必要があります。
特定のデスクトップ検索アプリケーションを使用またはビルドすることを目的としたアプリケーションを開発する場合は、 search: プロトコルのみに依存しないでください。 多くのアプリケーションが 検索プロトコル を所有している可能性があるため、対象のデスクトップ検索アプリケーションが特定の時点でそれを所有するという保証はありません。 代わりに、その対象となるデスクトップ検索アプリケーションによって定義されたプライベート検索プロトコルを使用する必要があります。 つまり、サードパーティアプリケーションのプラットフォームを目的としたデスクトップ検索アプリケーションでは、 検索プロトコル と独自の検索プロトコルの両方をサポートする必要があります。
注意
search: protocol は、独自の search-ms: プロトコルに置き換えられません。 アプリケーションは引き続き search-ms: プロトコルを使用して、ウィンドウ検索エクスプローラーを起動したり、Windows Search インデクサーに対してサイレント クエリを実行したりできます。
このトピックでは、以下の内容を説明します。
構文
検索プロトコルでは、次の標準 URL エンコード構文が使用されます。
search:parameter=value[¶meter=value]&
構文は、プロトコル自体 (search:) を識別することから始まります。 パラメーターと値のペアは、次の表に示すように、検索エンジンに渡される引数です。これは、検索プロトコル構文に使用できるすべてのパラメーターを示しています。
パラメーター | 値 | 説明 |
---|---|---|
query | URL でエンコードされたテキスト | ユーザーが入力したクエリ テキスト。 |
inputlocale | 有効な言語コード識別子 (LCID) | クエリの入力言語を識別する LCID。 |
keywordlocale | 有効な LCID | インデクサーの国際バージョンの言語を識別する LCID。 既定値は 1033 (en-us) です。 |
パン粉 | AQS ステートメント | この引数は、検索対象のスコープを制限します。 Windows Vista では、検索プロトコルでは、完全な AQS と、引数の特別な実装が location サポートされています。 Windows XP では、検索プロトコルでは、 と store の特別な実装kind を除き、完全な AQS もサポートされます。 |
構文 | NQS、AQS (大文字と小文字は区別されません) | インデックスの検索に使用するクエリ構文:自然クエリ構文または高度なクエリ構文 (AQS)。 AQS は既定値であり、常に解析され、サポートされていると見なされます。 |
stackedby | プロパティ システムの有効なプロパティ | 結果をスタックする列を指定する プロパティ。 |
subquery | 保存された検索ファイル (*.search-ms) の完全に指定されたパス | サブクエリの結果は、クエリのソースとして使用されます。 つまり、サブクエリの結果に対してクエリ用語が検索されます。 |
displayName | URL エンコード文字列 | 現在の検索の名前。 |
Windows Vista と SP1 の検索の使用: プロトコル
WINDOWS Vista と SP1 には、 検索 プロトコルを呼び出すエントリ ポイントがいくつかあります。 これらのエントリ ポイントと、それぞれに関連付けられている一般的な構文の概要を以下に示します。
プロトコル エントリ ポイントを検索する | 場所 | 呼び出されたクエリ |
---|---|---|
どこでも検索 | [スタート ] メニュー | search:query=<Search Term> |
どこでも検索 | Windows エクスプローラー | search:query=<Search Term>&crumb=location:<LOCATION> |
Windows ロゴ キー + F | 任意の場所 | 検索: |
CTRL + F | Windows エクスプローラー | search:query=<Search Term>&crumb=location:<LOCATION> |
F3 | [スタート ] メニュー | 検索: |
F3 | Windows エクスプローラー | search:query=<Search Term>&crumb=location:<LOCATION> |
WINDOWS Vista と SP1 検索プロトコルエントリ ポイントは、検索プロトコルで使用可能なすべてのパラメーターを利用するわけではありません。 SP1 を使用した Windows Vista からの検索プロトコル呼び出しの処理にのみ関係するアプリケーションは、実装に必要な最小限のガイドとして次の表を使用できます。
パラメーター | Windows で使用されますか? | 検索を呼び出すときに SP1 を使用する Windows Vista の使用方法: |
---|---|---|
query | はい | ユーザーが入力したクエリ テキスト。 |
パン粉 | はい | crumb では、 引数を location 使用して、クエリの送信元を指定します。 |
subquery | はい | Subquery 引数の結果は、検索するアイテムのスコープとして使用されます。 これは通常、ユーザーが .search-ms ファイルを使用して検索し、その検索内から既定のデスクトップ検索アプリケーションを呼び出した場合に使用されます。 |
inputlocale | いいえ | 現在は使用しません。 |
keywordlocale | いいえ | 現在は使用しません。 |
構文 | いいえ | 現在は使用しません。 |
stackedby | いいえ | 現在は使用しません。 |
displayName | いいえ | 現在は使用しません。 |
例
ユーザーが [スタート] メニューに「Microsoft」と入力し、[ すべての場所で検索] をクリックすると、結果の検索プロトコル呼び出しが行われます。
search:query=microsoft&
ユーザーが C:\MyFolder 内の Windows エクスプローラーで "Seattle" と入力し、[すべての場所で検索] をクリックすると、':' と '\' のエスケープ文字を使用して次の呼び出しが行われます。
search:query=seattle&crumb=location:C%3A%5CMyFolder
プロトコルを処理するアプリケーションの登録
複数のアプリケーションが検索プロトコルと競合する可能性があるため、インストール時に アプリケーションを既定のプログラム 機能に登録して、ユーザーが既定をより簡単に構成できるようにする必要があります。 Windows XP で通常実行されるインストール手順に加えて、Windows Vista ベースのアプリケーションは、アプリケーションとユーザーがシームレスに既定値を構成できるように、既定のプログラム機能に登録する必要があります。
必要なバイナリ ファイルをユーザーのコンピューターにインストールした後、インストール ルーチンで次の一般的なタスクを完了する必要があります。
- 以下で説明するように、ProgID を HKEY_LOCAL_MACHINEに書き込みます。 アプリケーションでは、検索プロトコル用のアプリケーション固有の ProgID を作成する必要があることに注意してください。
- マシン レベルの検索プロトコルの関連付けを要求します。
- 「 既定のプログラムで使用するアプリケーション を登録する」で説明されているように、検索プロトコルの候補として、アプリケーションを既定のプログラムに登録します。
レジストリ エントリ
架空のデスクトップ検索アプリケーション Contoso Search に必要なレジストリ エントリの例を次に示します。
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
contoso-search
URL Protocol = ""
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
contoso-search
DefaultIcon
(Default) = %ProgramFiles%\Contoso\Search\contososearch.exe,-7
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
contoso-search
shell
open
command
(Default) = %ProgramFiles%\Contoso\Search\contososearch.exe %1
HKEY_LOCAL_MACHINE
SOFTWARE
RegisteredApplications
Contoso Search = "Software\\Contoso\\Search\\Capabilities"
HKEY_LOCAL_MACHINE
SOFTWARE
Contoso
Search
Capabilities
ApplicationName = "Contoso Search Test App"
ApplicationDescription = "Contoso search is a great new desktop search application"
HKEY_LOCAL_MACHINE
SOFTWARE
Contoso
Search
Capabilities
UrlAssociations
search = "contoso-search"
関連トピック
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示