問題タブ [windows-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
294 参照

c# - Windows エクスプローラーを開いてデスクトップ アプリケーションから検索する方法は?

c#/.net を使用して Windows デスクトップ アプリケーションを開発しており、Windows エクスプローラーを開いてアプリケーションからコンピューター内のクエリを検索する機能を追加したいと考えています。

Windows検索プロトコルを使用して実装する予定です。以下は私のコードスニペットです。rawQuery はアプリケーションから Windows エクスプローラーの検索ボックスに渡されます。

上記のコードには問題があります。rawQuery に英語以外の文字が含まれている場合、エンコードされた後 (HttpUtility.UrlEncode())、Windows エクスプローラーの検索ボックスに正しく表示されません。たとえば、rawQuery が「微软」のような中国語の場合、windows エクスプローラーで 微软 を検索します。これは悪いです。

ただし、rawQuery がエンコードされていない場合、&、% などの特殊文字は Windows エクスプローラーの検索ボックスに表示できません。

そのため、文字をエンコードする必要があるかどうかを判断する方法がわかりません。search protocol specでそれに関するドキュメントは見つかりませんでした。

どの文字をエンコードする必要があるか知っている人はいますか?

0 投票する
3 に答える
2345 参照

batch-file - バッチ: Windows エクスプローラーを開き、検索クエリを入力します

タイトルのとおり、バッチを使用して特定のフォルダー (常に同じ) を開き、検索クエリを (ウィンドウの右上の検索ボックスにあるボックスに) 入力できますか?

詳細情報 / 最終目標:

各プロジェクトのサブフォルダーのリストを含む「プロジェクト」フォルダーがあります。各サブフォルダー名は、ジョブ番号で始まります。つまり、次のようになります。

356 - 22 セント ルイス アベニュー

357 - 104 マデアップ スクエア

プロジェクトの請求書ファイル (pdf) はすべて、単一の「請求書」フォルダーに個別に保存されます。プロジェクトごとに複数の請求書が存在する場合があるため、フォルダー内のファイルは次のようになります。

356-1.pdf

356-2.pdf

356-3.pdf

357-1.pdf

357-2.pdf

私の最終的なゲームは、請求書フォルダーを開く各プロジェクトフォルダーに汎用バッチファイルを配置できるようにすることです。プロジェクトフォルダー名からプロジェクト番号を解析することにより、これを検索ボックスに入力し、そのプロジェクトに関連する請求書のみを表示します.

0 投票する
1 に答える
58 参照

windows-search - Windows Search を使用して、ファイルの長いリストを見つける

特定のフォルダのグループ内の比較的大きなファイル (2000 以上) のコレクションを検索しています。特定のフォルダー (および後続のサブフォルダー) は、インデックス付けされた場所です。すべてのファイルの名前とパスを知っています。それらは、Excel スプレッドシートにリストされています。

それらすべてを 1 つの保存済み検索で表示したいと考えています。

AQS :を使用して検索をコンパイルできますname: filename1 OR name: filename2 .......OR name: filenameN AND Word。このコードは、いくつかのファイル名でうまく機能します。ただし、約2000個のファイルのリストがあります。また、検索ウィンドウへのコピー アンド ペーストは、このような膨大な検索条件のコレクションでは機能しないようです。

VBAで貼り付けてみました。しかし、クエリが大きすぎると思います。

また、非常に多くの検索条件があるため、.ms-searchファイルを最初からコンパイルするのは実用的ではないと思います。

私の質問は次のとおりです。これを達成するためのよりエレガントな方法はありますか? おそらく、一連の Excel 数式と CMD プロンプトを組み合わせたものです。

ありがとうございました

0 投票する
1 に答える
1048 参照

c# - KB4022726 は、OleDb を介した Windows 検索クエリを中断します

セキュリティ更新プログラム KB4022726 を適用した後、Windows 検索を使用してリモート共有上のドキュメントを検索していますが、この機能は壊れています。

私たちの実装では、C# での Windows 検索に oledb コネクタを使用しています。

KB4022726 をアンインストールする以外に回避策はありますか?

更新: CVE-2017-8543が関連している可能性があります。

サンプル プログラム- KB4022726 のインストール後に失敗する

エラー:

System.Data.OleDb.OleDbException (0x80004005):
System.Data.OleDb.OleDbDataReader.ProcessResults(OleDbHResult hr) によって System.Data.OleDb.OleDbDataReader.GetRowHandles() によって System.Data.OleDb.OleDbDataReader.ReadRowset() ) ved System.Data.OleDb.OleDbDataReader.Read() ved windowssearchtest.Program.Main(String[] args) i C:\projects_local\windowssearchtest\windowssearchtest\Program.cs:linje 48

更新2017-06-26 win10 を実行しているローカル マシンでもこのエラーを再現しました - 1703 Windows 検索は引き続き機能しますが、結果セットの最後に到達したとき、または .ExecuteReader() で空の場合はエラーがスローされます

これを回避するためにハックを作成しましたが、これはお勧めしません。

0 投票する
1 に答える
229 参照

c# - Windows インデックス検索 - OleDbException 未指定エラー

D ドライブ (D:\TaalTipsDocumenten) のフォルダー内のインデックス付きファイルを検索しようとすると、例外 (OleDBException: 指定されていないエラー) が発生します。このコードが過去 (2 か月前) に機能していたことは知っていますが、そのプロジェクトの作業を続けようとすると、機能しなくなったようです。

次のコードの実行中に、次の行でエラーが発生します。

Datatable (dt) が正しく入力されていると言えますが、それでもその行でエラーが発生します。また、.Next() 関数で OleDbDataReader を使用しようとすると、結果がオーバーランし、最終的にエラーがスローされます。

エラーはあまり言いません(指定されていません):

System.Data.OleDb.OleDbException はユーザー コードによって処理されませんでした ErrorCode=-2147467259 HResult=-2147467259 メッセージ = 指定されていないエラー ソース = System.Data .OleDb.OleDbDataReader.GetRowHandles() で System.Data.OleDb.OleDbDataReader.ReadRowset() で System.Data.OleDb.OleDbDataReader.Read() で System.Data.Common.DataAdapter.FillLoadDataRow (SchemaMapping マッピング) で System.Data .Common.DataAdapter.FillFromReader(DataSet データセット、DataTable datatable、String srcTable、DataReaderContainer dataReader、Int32 startRecord、Int32 maxRecords、DataColumn parentChapterColumn、Object parentChapterValue) System.Data.Common.DataAdapter.Fill(DataTable[] dataTables、IDataReader dataReader、 Int32 スタートレコード、System.Data.Common.DbDataAdapter.FillInternal(DataSet データセット、DataTable[] データ テーブル、Int32 startRecord、Int32 maxRecords、文字列 srcTable、IDbCommand コマンド、CommandBehavior 動作) での Int32 maxRecords) System.Data.Common.DbDataAdapter.Fill(DataTable[ ] dataTables、Int32 startRecord、Int32 maxRecords、IDbCommand コマンド、CommandBehavior 動作) System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) at TaalTips.Controllers.HomeController.Search(String word) in D:\Projects\TaalTips\TaalTips \Controllers\HomeController.cs: System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase コントローラー、Object[] パラメーター) の lambda_method(Closure , ControllerBase , Object[] ) の 40 行目 System.Web.Mvc.ReflectedActionDescriptor.Execute( ControllerContext controllerContext、IDictionaryIDictionary2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 つのパラメーター) System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39 (IAsyncResult asyncResult、ActionInvocation innerInvokeState) で System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult 2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End() で System.Web.Mvc.Async.AsyncControllerActionInvoker. System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d() での EndInvokeActionMethod(IAsyncResult asyncResult) System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f() InnerException:

私はすでにいくつかのことを試しました:

  • Windows Search サービスを再起動します
  • フォルダーからインデックスを削除し、再度追加します
  • コンピューターを再起動
  • すべての接続が閉じていることを確認してください
  • 別のフォルダを作成して、そのフォルダで試してください (同じエラー)
  • OleDbDataReader と reader.Next() を使用しますが、同じエラーが発生します

誰かが何か考えがありますか?

前もって感謝します !

0 投票する
1 に答える
141 参照

c# - Windows 検索サービスを使用したファイル内の出現回数

Windows検索サービスを使用して特定のフォルダーからデータを取得し、以下のクエリを使用しています

SELECT System.ItemName,System.ItemType,RANK,System.ItemPathDisplay FROM SystemIndex WHERE directory = 'file:C:/Test/' and CONTAINS ('Swiggy')

ここで私はノーを取得したい。これは、Contains で使用したキーワードに基づいて、select 句で発生します。

つまり、ファイル内にキーワード (Swiggy) がいくつ存在するかを調べる必要があります。

他のロジックに基づいて表示されている RANK 列に気付きました。カウントを取得するのを手伝ってくれる人はいますか。