←前 |  ↑↑Blog |  ↑Category |  ↓Comment |  ↓Trackback |  次→

iBlogのプレビューとか公開が完全に終わるのを待つ方法


現在、iBlogBEAMで採用している方法です。

iBlogのプレビューや公開の処理は、処理量によって変化します。
これらの処理の終了を待って別の処理を行いたいときには、いくつかの方法があるかと
思います。
UnderDone さんのiBlogPublish における方法とは違ったアプローチをiBlogBEAM では
行っていますのでここに簡単に説明します。

tell application "System Events"
	tell application process "iBlog"
		activate
		tell window 1
			set _status_of_busy_indicator to 1
			repeat while (_status_of_busy_indicator = 1)
				try
					set _status_of_busy_indicator to value of busy indicator 1
				on error
					-- nothing to do
				end try
				delay 1
			end repeat
		end tell
	end tell
end tell

ポイントは、プレビューや公開の際に、プレビューボタンの左でぐるぐる回るやつです。
アップルより配布されているUI Element Inspectorで見てみると

busy indicator

というものだそうです。progress indicator とはちょっと違うみたいですね。
ちなみに、鳶嶋工房 さんの用語辞書での説明はこれ

こいつのvalueがぐるぐるのとき、1らしいので、1の間こっちもrepeat文でぐるぐるする
というのが上記の方法です。チェック間隔は上記では1秒としています(delay 1)。
value以外の値でもチェックの目的で利用できるものもあるかと思いますが、試してません。
#実際の、iBlogBEAMでは、念のため最大時間を設けて、タイムアウトの制御もしています。

tryで囲まれているのは、たまにvalueの値を取得できないことがあるためです。
その際のエラーを無視しています。

iBlogBEAMでは、途中まで単純にdelayしてましたが、現在は上記の方法でやっています。
今のところうまく動作しているようです。

( ・∀・)つ〃∩ ヘェーヘェーヘェー">
投稿時間: 2004年03月06日 (土) at 21:45     
 
←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→
←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→