投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/7/11 12:08:45
> 「検索」タブ=>「ファイル名と内容を常に検索する」
それで OK です。[表示]タブの[オプション]における [検索]タブのチェックボックス設定は、
検索結果が表示された後でリボンに表示される[検索]タブのものと同じです。

設定結果は保持されるため、次回利用時にも同じ設定が引き継がれます。

コンテンツに対する全文検索を実施する場合は、インデックス作成の有無で
動作が変わる可能性がある点に注意してください。


> 検索前はそもそも「検索タブ」が表示されないので、
このタブは、エクスプローラーのナビゲーションが完了した後に操作するものですね。

[ピクチャ] フォルダーに移動すると、リボンに[ピクチャ ツール]タブが現れますし、
[ビデオ] フォルダーに移動すると、リボンに[ビデオ ツール]タブが現れるように、
検索結果が表示された後で、リボンに[検索]タブが現れます。


> 「プロトコル」と「ShellWindows コレクションからウィンドウハンドルを拾う方法」は、試したいのですが
> 現在、そこまで手が回りません。「COM API 」は敷居が高そうなのでパスです。
検索ボックスに対する操作なので、search-ms プロトコルに関する知識も事前に仕入れておいた方が良いかも。
https://learn.microsoft.com/ja-jp/windows/win32/search/-search-3x-wds-qryidx-searchms

[検索]リボンの[検索条件を保存]ボタンを押してみると分かるかと思いますが、
検索条件は *.search-ms ファイル(中身は XML ファイル)として保存されますね。

また、OS バージョンなどで使用可能なクエリーが異なってくることがあります。


> Dim ssf As New ShellSearchFolder(sc, dir)
ちなみに、Option Strict On の場合はキャストが必要です。
Dim ssf As New ShellSearchFolder(sc, DirectCast(dir, ShellContainer))


> Dim searchString = "みかん"
> Dim sc = SearchConditionFactory.CreateLeafCondition(SystemProperties.System.FileName, searchString, sco)
System.FileName を指定しているので、これは「拡張子も含んだファイル名」に対する検索条件ですね。
https://learn.microsoft.com/ja-jp/windows/win32/properties/props-system-filename

sc = SearchConditionFactory.CreateLeafCondition(SystemProperties.System.FullText, "AMD Ryzen", SearchConditionOperation.ValueContains)
などとすれば、AMD Ryzen について書かれた *.txt や *.docx などがヒットします。
ただし、内容検索が有効になっていないとヒットしません。

sc = SearchConditionFactory.CreateLeafCondition(SystemProperties.System.Document.PageCount, "3", SearchConditionOperation.GreaterThanOrEqual)
などとすれば、3 ページ以上を持つ Word 文書がヒットします。

sc = SearchConditionFactory.CreateLeafCondition(SystemProperties.System.Document.SlideCount, "1", SearchConditionOperation.Equal)
だと、1 ページだけで構成された PowerPoint 文書がヒットします。


> Dim sco = SearchConditionOperation.WordEqual '★ここの設定がわからない 
ファイル名に対する検索だと、DosWildcards や ValueContains が良く利用されます。

(FileName, "みかん", NotEqual) な条件を指定した場合
 "notepad.exe"    → ○
 "みかん.txt"     → ○
 "みかん"         → ×
 "やかん"         → ○
 "あるみかん.txt" → ○
 "アルミカン.txt" → ○

(FileName, "みかん", Equal) な条件を指定した場合
 "notepad.exe"    → ×
 "みかん.txt"     → ×
 "みかん"         → ○
 "やかん"         → ×
 "あるみかん.txt" → ×
 "アルミカン.txt" → ×

(FileName, "かん", ValueEndsWith) な条件を指定した場合
 "notepad.exe"    → ×
 "みかん.txt"     → ×
 "みかん"         → ○
 "やかん"         → ○
 "あるみかん.txt" → ×
 "アルミカン.txt" → ×

(FileName, "かん", ValueContains) な条件を指定した場合
 "notepad.exe"    → ×
 "みかん.txt"     → ○
 "みかん"         → ○
 "やかん"         → ○
 "あるみかん.txt" → ○
 "アルミカン.txt" → ○