こんにちは「ai」です。
ボタンが押せる状態になっているか否かを判定して、押せない状態の間は処理を進めずに、押せる状態になったら処理を進めます。
処理を進めた先にボタンを押すようにしておけば、ボタンも押せます。
状態遷移まで「delay」で待機する方法もありますが、その方法だと状態の遷移と同期していないため無駄に時間を待ったり、早まって空振りしたりするので、こちらの方法をお勧めします。
ボタンがアクティブか否かを判定して、アクティブになるまで待機
-- ボタンがアクティブか否かを判定して、アクティブになるまで待機
set BtnEnabled to false
repeat
-- button 1 を任意のターゲットに変更
set BtnEnabled to (enabled of button 1)
delay 0.5
if BtnEnabled = true then
exit repeat
end if
end repeat
説明
上記の処理を任意のアプリケーションに対して行ってください。
「set BtnEnabled to false」で判定用の変数「BtnEnabled」を「false」で初期化しています。
「repeat ~ end repeat」で中の処理を延々と繰り返します。
「set BtnEnabled to (enabled of button 1)」で変数「BtnEnabled」に確認対象「button 1」の状態を取得して格納しています。
ちなみに「button 1」は任意の確認対象に変更して構いません。
「delay 0.5」でこの処理を0.5秒ごとに繰り返しています。
「if ~ end if」がこの無限ループの唯一の出口です。
「BtnEnabled = true then」で変数「BtnEnabled」が「true」になったら、ここでは確認対象「button 1」がアクティブになったら「exit repeat」でループを抜けて次の処理に進みます。