引き続き、Migemize Windows に機能追加中
新しい機能を追加 + 前回挙がっていた課題を解決(?)
テキスト(ざっくり)検索モードを追加
ウィンドウに含まれるテキストをざっくりと検索できます。
例えば、
"あの設定どこにあるんだっけ?"というとき、便利です。
↓のように設定が多いときとか特に便利かと。
"見つからない……。検索しよう"
ホットキーでテキスト検索モードを開始すると、
対象のウィンドウから取得できたテキストの一覧が表示されます。
↓の例だと、全タブの要素をだいたい取得できています。
"探したいのは「保存」関係の設定だから……"
「hozon」と入力すると Migemo により絞り込まれます。
"「自動的に保存」、これだ"
実行すると、枠線で場所を示します。
コンボボックスの中身については、一気に取得できないので、段階を踏みます。
コンボボックスは、名称の末尾に " > " を付加してあり、中の要素を展開することができます。
デフォルトだと TAB を展開するためのキーにしています。
展開されて、コンボボックスの中身が表示されました。
実行すると、枠線でコンボボックス内の要素の場所を示します。
前回からの課題
ツールバーの要素も取得できるようにする
名称を取得できないツールボタンがあったという話でしたが、
ツールボタンの上にマウスカーソルが来た時にだけ、名称が取得できました。
なので、マウスカーソルをぐりぐり動かして名称を地道に取得していくことに。
名称を取得できる条件が記載された公式なドキュメントは見つけられず……
# ホット状態になっているツールバーの要素しか、名称は取れないってことかな。
# あとで、TB_SETHOTITEM とか使って確認してみる。
# でも、ホット状態じゃないと名称が取得できない理由がわからないしなあ……。
# もしくは、WM_NOTIFY の TTN_NEEDTEXT で設定されるツールチップの名称を取得してるのかな。
# 名称を確定している疑いのあるウィンドウメッセージを一つずつ送ってみて、
# どのタイミングで名称が設定されたか確認するのが、なんだかんだで一番早いのかもしれない
メニューの取得方法を改善する
Win32 API ベースで取得できなかった場合、UI Automation を使用して取得するように。
それでも、取れないものは取れない!!
だいたいは取得できるので、いったん、このまま放置