JavaScript版艦これSSキャプチャー

はじめに

El Capitanに更新したので、前に作成したAppleScript艦これSSキャプチャーをJXAにしました。

といっても内容は全く変わらず、おまけにJXA的に正しいのか自信が持てません。

Yosemite以降ならば動くと思いますので、とりあえず使ってみたい方はご自由にどうぞ。

ちなみにスクリプトエディターはアプリケーション/ユーティリティにあります。

var system = Application("System Events"),
safari = system.processes["Safari"],
window = safari.windows["艦隊これくしょん -艦これ- - オンラインゲーム - DMM.com"],
position = window.uiElements[0].uiElements[1].uiElements[0].uiElements[0].uiElements[0].uiElements[0].uiElements[2].uiElements[0].uiElements[0].uiElements[0].position();


var x = position[0],
y = position[1],
w = 800,
h = 480,
param = x + "," + y + "," + w + "," + h;

var kancolleImagePath = "Your Image Path",
filename = "`date '+%F'` `date '+%H.%M.%S'`.png"
var cmd = "screencapture -R" + param + " " + '"' + kancolleImagePath + filename + '"';

var app = Application.currentApplication();
app.includeStandardAdditions = true;
app.doShellScript(cmd);

相変わらず決め打ちなので美しくないです。

ちなみにDMM側で艦これのサイトのtitleが変更された場合、それに合わせて変数windowの文字列を変更しなければなりません。

サイトの構造が変更された場合は変数positionで決め打ちしているuiElementsの番号や深さが変わる可能性があります。

注意点

システム環境設定のセキュリティとプライバシー内にあるプライバシータブのアクセシビリティで、アプリケーションにコンピュータの制御を許可しないと実行できません。

最後に

言わなくてもわかるとは思いますが、これはMac専用です。 Automaterでサービス化してすべてのアプリケーションで使えるようにしておくと、SafariがActiveでなくてもSSをキャプチャできるようになります。ついでにショートカット登録しておくと便利です。

この時にもコンピュータの制御を許可しておく必要があります。面倒ですね。