デバッグライブラリでウィンドウ識別の失敗対策
使ったことがなくて、ユーザーフォーラムでもほどんと見かけないライブラリを使ってみました。
気づきと活用の視点の共有です。
ウィンドウ識別の失敗対策に繋がれば幸いです。
使ってみたライブラリ
- デバッグ:ウィンドウ状態
- デバッグ:ウィンドウ状態取得
- デバッグ:ウィンドウ識別
- デバッグ:ウィンドウ識別取得
きっかけになったスレッド
https://winactor.com/questions/?q=文字列送信(WIN)や文字列設定で対象コントロールが指定できない時の対処法
デバッグ:ウィンドウ状態(取得)
マニュアルの説明
画面(Hwnd)の一覧とそのウィンドウタイトル(Title)とプロセス名(Process)とウィンドウサイズ(Size)を表示します。
※ 取得のほうはCSVでファイルを出力してくれる
ヒューマンリソシアさんの使ってみた動画
第2弾【WinActorライブラリ】457本ノック!【 01_WinActor制御】その2ライブラリ全部使ってみた。
デバッグ:ウィンドウ状態
https://youtu.be/Lgb2WSGomh0?t=296
気づき
- アクティブ度が高いほど上に表示される
- 最大化していないExcelの四辺に何やら独立ウィンドウが見つかる(プロセスはEXCEL.EXE)
- Windows Media Playerは、アプリ内の3ブロックが独立ウィンドウ扱い(サイズだけが異なる)
- デスクトップの上辺に何やら独立ウィンドウが見つかる
活用の視点
- ウィンドウ識別ルール作成可否の目安にする
- ウィンドウのハンドル、タイトル、クラス、プロセス、サイズを見渡す
- 1ウィンドウに見えてても、実はブロック毎に異なるウィンドウということもあり得ることに留意する
- 「ウィンドウ状態待機」の全貌解明の糸口にする
https://winactor.com/questions/?q=「ウィンドウ状態待機」、思い通りに活用できてますか?
デバッグ:ウィンドウ識別(取得)
マニュアルの説明
ウィンドウ識別名(Name)のルールとマッチする画面(Hwnd)の一覧と実際に操作対象となっている画面(Current 欄にYes 表示)を表示します。
※ 取得のほうはCSVでファイルを出力してくれる
ヒューマンリソシアさんの使ってみた動画
第2弾【WinActorライブラリ】457本ノック!【 01_WinActor制御】その2ライブラリ全部使ってみた。
デバッグ:ウィンドウ識別
https://youtu.be/Lgb2WSGomh0?t=358
気づき
- Excelの四辺のウィンドウは、「空のウィンドウタイトル」として1ファイルにつき4行を陣取っている
- 「空のウィンドウタイトル」の命名は、このへんとイコールっぽい
https://winactor.com/questions/question/【続編】excelのエミュレーション操作が思うように/
https://winactor.com/questions/question/「空のウィンドウタイトル」と「スクリーン」の/
https://winactor.com/questions/question/csvファイルをエクセルで開く際のエラー/
活用の視点
- ウィンドウのHwndとCurrentを、「作成時/実行時にウィンドウ識別に失敗する、失敗することがある、急に失敗するようになった」系の原因特定の手掛かりにする
(画像マッチングとか、ウィンドウ識別が絡むほかのパーツもカバー範囲) - 「ウィンドウ識別のクリア」要否の判断材料にする
未解明ポイントへのアプローチとして
保護モードが有効だったり、実行してる権限が異なるアプリであるためにウィンドウ識別に失敗するパターンでは、IEとかAdobe Readerとかのアプリが、「デバッグ:ウィンドウ状態/識別」にも軒並み表示されないのでしょうか。
ウィンドウ識別にどうしても成功しないウィンドウについて確認したら、お知らせいただけると嬉しいです。
わたしの環境では保護モードが有効でも、WinActorを管理者として実行していなくても、ウィンドウの識別に成功します。
どのウィンドウも「デバッグ:ウィンドウ状態/識別」にも表示されます。
Adobe Readerの保護モードでも確認しておこうと思います。
ポテンシャル
「デバッグ:ウィンドウ状態/識別」はもっとポテンシャルを秘めていそうです。
「こんなふうに活用してるよ」を、回答やコメントや新規投稿等で紹介いただると嬉しいです。
関連スレッド
https://winactor.com/questions/question/windowsの環境が開発機と実行機で異なる場合のウィン/
https://winactor.com/questions/question/指定されたウィンドウ識別ルールに該当するウィ/