nut-js
nut-jsはsimonによってメンテナンスされているjavascriptで自動マウス、キーボード操作ができるライブラリです。node.jsと合わせて使うのが一番導入が簡単ですが、もちろんelectron等と合わせても利用できます。馬場はこれを使ってhandableでのマウス操作を実現しています。
このnut-jsですが、2021年12月17日現在、結構開発がすすんでいるのとv2.0のRCのために動く環境が限られています。なので、このページは動作のための忘備録です。
まず、公式マニュアルはこちら。
2021年12月17日時点ではnut-jsは2.0.0ですが、こちらはおそらくwindowじゃないと動かないです。macの人は1.7.0を使うのがよいです。ちなみに公式のissueでもでてますが、現状はarm64では配布されていないので、terminalをrosetta起動してnpm使う必要があります。image search機能(デスクトップ上の画像で登録された場所をテンプレートマッチングで検出する)を使わないなら2.0.0でも問題なく動作します。
というわけでその機能を扱うための導入手順と最小プログラムを掲載しておきます。
- mkdir nut-js-sample
- cd nut-js-sample
- npm init
- npm install @nut-tree/nut-js@1.7.0
- touch index.js
ここまでやったら nut-js-sample をvscode等で開きましょう。そんで、以下をindex.jsにペーストして、sample.pngを探索した画像に置き換えてください。
- index.js
const { screen, mouse, straightTo, Point, centerOf } = require("@nut-tree/nut-js"); function mainloop() { (async () => { screen.config.resourceDirectory = ""; screen.config.confidence = 0.7; try { const region = await mouse.move(straightTo(centerOf(screen.find("sample.png")))); console.log(region); } catch (e) { console.error(e); } })(); } mainloop();
そして最後に
node index.js
で動作を確認しましょう。