ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

【AHK】FindText に移行しながらも、対応できないケースにも遭遇

目次


f:id:yasushiito:20190403184928p:plain

これまでの経緯。

画像認識で自動操作する処理には FindText を使う ように切り替えています。
もちろん可能な限りで、 ImageSearchの方が優れたケースはそのままです。

切り替え成功したもの。

Facebook メッセンジャーのテキスト入力フォームをクリックで選択してコピペするための自動操作は移行しました。
文字のコントラストが薄いので心配しましたが、大丈夫でした。

修正部分はこんな感じです。

    ;入力ボックスからフォーカスが外れることが時々あるのでクリックする。
    global TextImages
    txtfld := TextImages["FBMessangerTextfield"]
    ClickImage(txtfld, 1000)

myahk/portmessenger.ahk at master · yasushiito/myahk

    ;Facebook メッセンジャーのメッセージ入力ボックス。
    TextImages["FBMessangerTextfield"] := "|<>*187$68.01U0008000000E000200000040000UT000830310Tsk003UU8kEy0M000CM3441UA0000o0FX0M200007068k61Uzzs1s0X81Uk0000nU060M00000MQ010600000A300U0U00006000k0A00006000s01zw002000k0000000U"

myahk/SetTextImages.ahk at master · yasushiito/myahk

切り替え失敗したもの。

Bluetooth デバイスの接続を確認して、切断されていたら再接続する自動操作は移行に失敗しました。

原因は画像にした時の特徴づけるテキストがなかったから。

Bluetoothバイスの接続状態には三つあります。

  • 接続中

f:id:yasushiito:20200527092032j:plain

  • 切断中

f:id:yasushiito:20200527092111j:plain

  • 未検出

f:id:yasushiito:20200527092143j:plain

接続中の場合は Bluetoothバイス名の下に「音楽に接続済み」、切断中の場合は「ペアリング済み」と表示され、 未検出の場合は何も表示されません。
この中で未検出のケースでは、探したいテキストが表示されていないので探すことができません。
「ある」ものを探せても「ない」ものは探せません。
空白の部分はトリミングされて認識されてしまうようです。
ImageSEARCHコマンド の場合はサンプル画像と全く同じ表示を厳密に探すので、「ない」ことを確認できます。
Find Text にこんな形で弱点があると分かったことを収穫としておきます。

せっかくの機会なので、以前から気になっていたウエイトの調整します。

バイスを接続しなおした場合、ブラウザの音声出力先が PC 本体のスピーカーに切り替わってしまうことがあるので、一度再生用のブラウザを起動しています。
その際に、ブラウザを手動で閉じる処理が面倒だと感じていたので、せめて閉じるボタンの近くにマウスポインターを移動させるように修正しておきます。

        ;確認できたら手動で閉じるボタンを押してね。
        WinGetPos, , , w, , A
        CoordMode, Mouse, Relative
        MouseMove, w, 0

myahk/call_BTStandby.ahk at master · yasushiito/myahk

この記事に登場するAutohotkey スクリプトについて

この記事の中で私が作成したプログラムは、全て自由に使うことができます。
詳しくはこちら