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をキャプチャできるようになります。ついでにショートカット登録しておくと便利です。
この時にもコンピュータの制御を許可しておく必要があります。面倒ですね。