マウスカーソルの現在座標を取得するAppleScriptです。
各種アプリケーションで座標系が微妙に(左上が原点だったり、左下が原点だったり)違いますが、Cocoaの座標系は左下が原点です。
# macOS 12からは左上が原点になるのだそうで
ただ、取得したところで何に使うかというあたりに疑問があります。そんなに使った記憶がありません。スクリプトエディタ上で本Scriptを実行した場合には、実行ボタンを押したときのマウスカーソルの座標が返ってきますし、Script Menuから実行した場合には、実行時のメニュー選択のマウスカーソルの座標が返ってくるだけです。
ちょっとひとひねりして、タイマー割り込みで定期的に取得したところで、何か意味のあるデータが取れるわけでもありません(ジェスチャー検出まで昇華できる気がまったくしない)。
逆に、マウスカーソルの座標の取得でどれだけ「いいこと」があるか教えてほしいもんです。
2021/5/22追記:
ついに、本処理が役立つ用途が見つかりました。「マウスカーソルが存在するディスプレイの内容だけスクリーンキャプチャを撮る」というものです。
ふつう、マルチディスプレイ環境でShift-Command-3のキーボードショートカットによるスクリーンキャプチャ撮影を行うと、それぞれのディスプレイごとに独立した画像ファイルが生成されます。
これが望ましい場合もあれば、そうでない場合もあるので……現在マウスカーソルが存在するディスプレイIDをマウスカーソルの座標値から計算し、マウスカーソルが存在するディスプレイのスクリーンショットのみ撮影するAppleScriptを書いて実行できました。Stream Deckのアクションから呼び出して、ワンボタンで実行できています。
このアクションはなかなか使い勝手がいいですし、本Scriptを書いておかなかったら気楽に実現することはできませんでした。
AppleScript名:マウスカーソルの現在座標を取得する |
— Created 2018-02-03 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" use framework "AppKit" set mLoc to current application’s NSEvent’s mouseLocation() –> {x:114.1171875, y:1142.87109375} |