[AppleScript] ボタンがアクティブか否かを判定して、アクティブになるまで待機

ai
こんにちは「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」でループを抜けて次の処理に進みます。

この記事を書いた人

ai

散歩とひなたぼっこが好きです。
自然の美しさや季節の移り変わりを感じながら、のんびりとした時間を過ごすのが日々の楽しみになっています。

AppleSript