1

Windows でグローバル ファイル検索結果を取得しようとしていますが、Windows Search のドキュメントは信じられないほど複雑であり、そのような単純な機能のために SQL を扱いたくありません。アプリケーションで結果アイテムを処理できるように実行search:query=%sした後、検索結果を Windows エクスプローラーに表示することはできますか?IShellFolderIShellItem

4

1 に答える 1

1

追加のウィンドウをポップアップする場合は、Internet Explorer ウィンドウを作成し、search-ms urlに移動し、IWebBrowser2 の IServiceProvider 実装から IShellBrowser サービスをクエリしてから、アクティブなシェル ビューを取得し、ビュー内の項目を列挙します

余分なウィンドウが必要ない場合は、ISearchFolderItemFactory を使用して、オペレーター COP_VALUE_CONTAINS で PKEY_FileName の条件を設定できます。IConditionFactory2::CreateCompoundFromArray を使用して複合条件を作成することもできます。SQL 用語では、次のようになります。

ここで、fileName に「ABC」が含まれる、または fileAuthor に「ABC」が含まれる、または fileFullText に「ABC」が含まれる、または fileTitle に「ABC」が含まれる

次に、ISearchFolderItemFactory::GetShellItem を呼び出して検索フォルダー オブジェクトの IShellItem インターフェイスを取得できます。このインターフェイスからBHID_EnumItems を指定して BindToHandler を呼び出し、シェル アイテムの列挙子を返すことができます。

于 2016-05-16T01:42:29.460 に答える