私のスクリプトは、AppA からテキストを取得し、それを AppB のテキスト編集に貼り付けます。AppB が (スクリプトによって) 開始されると、テキスト編集は無効になり、ユーザーがアクションを実行すると有効になります。そのアクションは手動で行う必要があります。
ユーザーが何もする前にスクリプトが実行され、エラーが発生します。編集が有効になっているかどうかを確認することを考えましたが、このエラーが発生します。「アプリケーション「システムイベント」の<>「AppB」のAppBのウィンドウを取得できません。エラーは1回だけスローされます。
エラーを回避するにはどうすればよいですか? エラーを食べるだけのtryブロックの方が良いでしょうか?
on idle
tell application "System Events" to set AppAIsOpen to (application process "AppA" exists)
if (AppAIsOpen) then
set AppAWasOpen to true
tell application "AppA"
set hdg to TxRprt
set beam to hdg as string
end tell
if ((count beam) < 3) then set beam to text -3 thru -1 of ("000" & beam)
if (beam is not previousText) then
tell application "AppB" to launch
tell application "System Events"
tell application process "AppB"
if text field 1 of window "AppB" is enabled then -- error here
set value of text field 1 of window "AppB" to beam --or here
end if
end tell
end tell
set previousText to beam
end if
return checkInterval
else if (AppAgWasOpen) then
quit
return 1
end if
アイドル状態で終了