ぺんちゃん日記

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

Facebook メッセンジャーのクリック処理が動かなくなっているので修正する【AutoHotkey】。

f:id:yasushiito:20190403184928p:plain

バグ発見。

先日 Facebook メッセンジャーのメッセージ入力欄にフォーカスが当たってなくてコピペに失敗する問題を画像認識によって解決したのでした。
これで動いたと安心したのですが、今日触ってみるとやっぱり動いてない。

原因を探る。

きっと画像の認識精度だろうと画像を切り抜きなおしたり色に幅を持たせたりしたのですが、原因はそいつではなかったらしく問題は解決しません。
次に思い当たる点はパスの問題でファイルが見つからないことでしょう。
特に画像探索のパラメータで与えているファイル名に非常に不安がある。
しかも本番環境は日本語を含むディレクトリに入っているので一層の不安が。
そこでファイル名をちょこちょこ修正しては実行を繰り返し問題を探ります。


ファイル名の端にダブルコーテーションを足したり引いたり様々なパターンで試してみましたが結果は芳しくありません。
ディレクトリのダブルクォートの問題であることを切り分けるために ディレクトリは一切指定しないで試してみます。
ディレクトリが指定されてない場合、おそらくは作業ディレクトリを参照するでしょう。
スクリプトはeltestによって起動されているので、作業ディレクトリはその実行ファイルが置いてあるところだと思います。
そこに画像をコピーしてスクリプトを実行してみると大当たり。
スクリプトは期待通りに動作しました。

そこでeltestのボタンを経由しないでエクスプローラから起動してみます。
これなら作業ディレクトリはスクリプトディレクトリになっているはずです。
このパターンでも成功したので、解決への近道は作業ディレクトリからの相対パスでファイル名を渡すことでしょう。

これを突き止めるまでに多分2時間くらい溶かしました。
もう疲れたよ。

修正する。

原因と対策が分かってしまえば修正はそれほど難しくありません。
画像はスクリプトディレクトリの下にimagesディレクトリが用意してあるので、その中に収められています。
そこで作業ディレクトリをスクリプトディレクトリに置き換えて 画像認識処理を実行します。

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

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