【AHK】FindText に移行しながらも、対応できないケースにも遭遇
目次
これまでの経緯。
画像認識で自動操作する処理には FindText を使う ように切り替えています。
もちろん可能な限りで、 ImageSearchの方が優れたケースはそのままです。
切り替え成功したもの。
Facebook メッセンジャーのテキスト入力フォームをクリックで選択してコピペするための自動操作は移行しました。
文字のコントラストが薄いので心配しましたが、大丈夫でした。
修正部分はこんな感じです。
;入力ボックスからフォーカスが外れることが時々あるのでクリックする。 global TextImages txtfld := TextImages["FBMessangerTextfield"] ClickImage(txtfld, 1000)
myahk/portmessenger.ahk at master · yasushiito/myahk
;Facebook メッセンジャーのメッセージ入力ボックス。 TextImages["FBMessangerTextfield"] := "|<>*187$68.01U0008000000E000200000040000UT000830310Tsk003UU8kEy0M000CM3441UA0000o0FX0M200007068k61Uzzs1s0X81Uk0000nU060M00000MQ010600000A300U0U00006000k0A00006000s01zw002000k0000000U"
切り替え失敗したもの。
Bluetooth デバイスの接続を確認して、切断されていたら再接続する自動操作は移行に失敗しました。
原因は画像にした時の特徴づけるテキストがなかったから。
- 接続中
- 切断中
- 未検出
接続中の場合は Bluetooth デバイス名の下に「音楽に接続済み」、切断中の場合は「ペアリング済み」と表示され、 未検出の場合は何も表示されません。
この中で未検出のケースでは、探したいテキストが表示されていないので探すことができません。
「ある」ものを探せても「ない」ものは探せません。
空白の部分はトリミングされて認識されてしまうようです。
ImageSEARCHコマンド の場合はサンプル画像と全く同じ表示を厳密に探すので、「ない」ことを確認できます。
Find Text にこんな形で弱点があると分かったことを収穫としておきます。
せっかくの機会なので、以前から気になっていたウエイトの調整します。
デバイスを接続しなおした場合、ブラウザの音声出力先が PC 本体のスピーカーに切り替わってしまうことがあるので、一度再生用のブラウザを起動しています。
その際に、ブラウザを手動で閉じる処理が面倒だと感じていたので、せめて閉じるボタンの近くにマウスポインターを移動させるように修正しておきます。
;確認できたら手動で閉じるボタンを押してね。 WinGetPos, , , w, , A CoordMode, Mouse, Relative MouseMove, w, 0
この記事に登場するAutohotkey スクリプトについて
この記事の中で私が作成したプログラムは、全て自由に使うことができます。
詳しくはこちら。