JXA(JavaScript for Automation)で現在のマウスカーソルの位置を取得する
最近JXA(JavaScript for Automation)が気に入ってる。いろいろと情報もWeb上に出始めて、思いついたことは頑張ればだいたい実現できる感じになってきて、非常に便利で楽しい。
マウスカーソルの位置を取得する方法がわかったのでメモ。どうやらOS Xのバージョンによって使えるやり方が変わってきてるようなので、最新の10.11(El Capitan)で実際に使えたやり方が以下。
ObjC.import('Cocoa'); var pos = $.CGEventGetLocation($.CGEventCreate(null)); var sys = Application("System Events"); sys.includeStandardAdditions = true; sys.displayDialog(JSON.stringify(pos));
これを実行すると、
{"x":1259.12890625,"y":629.25}
こんな感じの内容がダイアログで表示される。なぜか異様に細かい小数なんだけどまあいいや。
最初の2行で、マウスカーソルの位置を取得している。posに"x"と"y"のキーに持つオブジェクトの形で入る。後半の3行はそれをJSONに変換してダイアログで表示してる部分なので直接は関係ないよ。