プログラミング

AutohotkeyからChrome上でJavaScriptを実行する方法を考えた

AutohotkeyからChrome上でJavaScriptを実行する方法を考えたので紹介します。

autohotkeyはキーボードやマウスのオートメーションとして強いですが、画像認識でのクリックとかは弱い印象です。一応できることにはできるみたいですが、面倒そう。
画像認識での位置指定は現状確実性が薄いので、Windows上で動くQTとかのデスクトップソフトウェアならともかく、chrome上の操作であればJavaScriptに操作を渡すのが得策そうです。

さて、かなり汚いやり方にはなってしまいますが、一応autohotkeyからJavaScriptに操作を渡すのは可能そうです。

検索窓にjavascript: [スクリプト]でjavascriptが実行されるのを利用する

chromeでは検索窓でjavascriptを実行することができます。

今回の例では、wifiルーターのルーティング設定においてローカルのIPアドレスが固定でなかったために変動してしまった場合や、単にまとめてポートフォワーディングを規則的に設定する作業を自動化したい場合を想定します。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_62a65a7e-b2d7-45c2-9fdb-41db4d6645d5.gif

ctrl-Lから検索窓へ移動し、検索窓にて以下Javascriptを実行することでクリックをしています。autohotkey側では1000msくらいsleepしておけばよいでしょう。

javascript: document.querySelector('#virtualServersGrid > div > div > div.panel-tbar-container > div > a.operation-btn.btn-add').click()

JavaScriptからautohotkeyに操作を渡す

ほとんどのオートメーションはすぐに終わるようなことだと思いますが、JavaScript側での操作にかかる時間が不確定で長くなることが予想される場合、JavaScriptからautohotkeyへ操作を渡す方法を考えてあげるとします。

ぱっと思いつくのはファイルの作成、クリップボードのコピー、とかでしょうか。

autohotkeyかその他言語から異なるプロセスのautohotkeyか何かの言語でクリップボードの変更を監視して、特定の値(e.g. [識別子]: [コマンド or autohotkeyスクリプト etc])のときそれを使ってautohotkeyとかを実行、スクリプトとして処理、するといったようなことができそうです。

クリップボードの監視じゃなくても、ファイルとかサーバー立てるのでも同じようなことができそうですが楽そうなのはクリップボードかなと思う。

追記 (2021/7)

当ブログの最新記事にnode.jsからAutohotkeyを実行する方法とスクリプトについて紹介しています。node.jsのスクリプト上にwebsocketを使用してウェブページへJavaScriptを転送できるようにすることで、実質的にnode.jsを通してAutohotkey(や他のローカルなプログラム)とJavaScriptの実行を複雑にプログラム、コントロールすることができます。参考にどうぞ。

Node.jsでAutoHotkeyをスクリプティングする – プログラミングの「YUIPRO」

関連記事:

Node.jsでAutoHotkeyをスクリプティングする
LinuxコマンドラインからAutoHotKeyを実行する関数を実装してみた
Autohotkeyで文字化けする場合の対策
AutoHotKeyでファイル読み込み時に日本語が文字化けする対策
Autohotkeyでの同時押しショートカットキー実装方法 完全版

関連広告:

DX・業務効率化コース by テックアカデミー
仕事効率化・業務効率化コース by Udemy
自動化・オートメーションコース by Udemy
AutoHotkeyコース by Udemy

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です