Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
【UIAutomation】エクスプローラーの検索ボックスに値をセット
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30873#CommentId85766
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
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" → ○