エラーダイアログの回避

 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()を使ってメール送信を行うアプリケーションを呼び出します。




[サンプルをダウンロード]