Photoshop CS + JavaScriptで自動的に処理を行わせる場合に、何らかの障害が発生しエラーダイアログが表示されてしまう事があります。try、catchだけでは完全には防げない、回避できない事があります。このような場合にはQuickeysを使うというのを以前に書きましたが、今回はAppleScriptを使って一定秒数ごとにリターンキーを押させるという処理を行いエラーダイアログのトラブルを回避させます。
まず、以下の2つのファイルを作成します。returnKey.shとreturnKey.txtです。それぞれ以下の内容を入力します。
●returnKey.sh
osascript /returnKey.txt
sleep 20
osascript /returnKey.txt
sleep 20
osascript /returnKey.txt
●returnKey.txt
tell application "System Events"
keystroke return
end tell
次にreturnKey.shはシェルスクリプトなので(#!/bin/bashを先頭に付加しても良いが、この場合は無し)パーミッションを700か755などに変更します。ターミナルを起動してreturnKey.shのあるフォルダまでcdコマンドを使って移動させます。例えば自分のホームフォルダにreturnKey.shがある場合には
cd ~
とします。ルートディレクトリにあるならば
cd /
とします。以後の説明ではルートディレクトリにreturnKey.shがあるものとします。次にパーミッションを設定します。
chmod 700 returnKey.sh
または
chmod 755 returnKey.sh
とします。次にreturnKey.txtをルートディレクトリに移動させます。(または、保存しておく)
あとはcronを使って1分ごとに処理させます。
crontab -e
とします。エディタ画面になるのでiキーを押してから
*/1 * * * * osascript /returnKey.sh
とします。これで、1分ごとreturnKey.shが呼び出されます。これでreturnKey.shに書かれた内容が実行されます。2分ごとならば
*/2 * * * * osascript /returnKey.sh
とします。returnKey.shの内容は
osascript /returnKey.txt
sleep 20
osascript /returnKey.txt
sleep 20
osascript /returnKey.txt
となっていますが、sleepは指定した秒数だけ処理を止める(待つ)命令です。ここでは20秒ごとにリターンキーを押すようにしています。osascriptはテキストファイルに書かれたAppleScriptを実行させる命令です。
これで不意にエラーダイアログなどが表示されても自動的にリターンキーが押されることになるため次の処理に移ることができます。前回のようにエラーが発生したファイルを消すようにしないと延々とエラーで処理進まない場合があります。注意しましょう。エラーファイルがあったらメールを送信するようにする、というのも手です。この場合はcatch内にexecute()を使ってメール送信を行うアプリケーションを呼び出します。