// 雑記 [ApplScript][Safari] Safariで指定URLを巡回してスクリーンショットをとるApplScript "); } }

雑記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ApplScript][Safari] Safariで指定URLを巡回してスクリーンショットをとるApplScript

waitTimeで設定した間隔でopenurlで指定したページのスクリーンショットを撮ります。
デスクトップにページのタイトルでフォルダを作成し、スクリーンショットを撮った日時をファイル名にして保存します。
aExtでスクリーンショットの保存フォーマットが指定できます。

waitTime … 巡回する間隔を秒で設定します。
openurl …… urlを""で囲い,で区切ります。
aExt ………… 以下のフォーマットが利用可能なようです。
[png・gif・jpg・jp2 (JPEG2000)・bmp・exr (OpenEXR)・pdf・psd (Photoshop形式)・pct (PICT)・sgi・tga・tif]

上記を設定の上、別名保存でファイルフォーマットからアプリケーションを選び、実行後、自動的に終了しないにチェックをいれて保存してください。
終了させるにはアプリケーションをアクティブにして終了させるか、Dockから終了させてください。


OS10.7で書きましたが、おそらくOS10.5以降で動作すると思います。OS10.4はscreencaptureのフォーマット指定が出来ない様なので、そこを修正すれば動作すると思います。
なお、JavaScriptを使用しておりますので、オフになっているとエラーになります。


ホントは……
オープンしたウィンドウのみのスクリーンショットを撮りたかったのですが、TオプションやCliclickで数秒後に撮影指定してもカメラカーソルで止まってしまいできませんでした……。
背景を入れないようにウィンドウを最大化してからスクリーンショットを撮るようにし、各種バーも隠してありますが、環境設定のタブ項目で『ウィンドウの代わりに〜』が『常に』になっていると隠れません。


safari_screenshot.applescript.zip

ダウンロードするのにウィンドウ開いちゃうんですが、直接ダウンロードさせるにはどうすれば……。


(*

waitTime 間隔

openurl 指定サイト(複数設定可能)

aExt 保存ファイル形式

[png・gif・jpg・jp2 (JPEG2000)・bmp・exr (OpenEXR)・pdf・psd (Photoshop形式)・pct (PICT)・sgi・tga・tif]

*)

property waitTime : 600 --600秒待機

property aExt : "jpg" --保存ファイル形式

property openurl : {"http://www.yahoo.co.jp", "http://www.google.com"} --指定サイト

on idle {}

my main()

return waitTime

end idle

on main()

tell application "Safari"

activate

repeat with aURL in openurl

set title to my make_new_Doc(aURL)

--display dialog title

delay 3 --3秒待機 ※画面表示される前にスクリーンショットが取られるようなら数字を大きくする

my screenshot(title)

close document 1

end repeat

end tell

end main

on make_new_Doc(openurl)

tell application "Safari"

set doc_1 to count of documents

make new document

tell document 1

do JavaScript "window.open('" & openurl & "','','toolbar=no,location=no,status=no,resizable=no');"

do JavaScript "javascript:self.moveTo(0,0);self.resizeTo(screen.availWidth,screen.availHeight);"

delay 0.5

set title to name

end tell -- tell document 1

set doc_2 to count of document

set doc to doc_2 - doc_1

if doc is 2 then

close window 2

else if doc is 1 then

close tab 1 of window 1

end if

end tell --tell application "Safari"

return title

end make_new_Doc

on screenshot(title)

try

set file_Name to my DateToString(current date) & "." & aExt

set save_cap to "~/Desktop/" & quoted form of title & "/" & file_Name

do shell script "screencapture -m -t " & aExt & " " & save_cap

on error

do shell script "mkdir " & "~/Desktop/" & quoted form of title

delay 0.5

my screenshot(title)

end try

end screenshot

on DateToString(TheDate)

set aDate to do shell script "date +%Y%m%d"

set aTime to do shell script "date +%H%M"

set todayStr to aDate & "_" & aTime

end DateToString


テーマ:ソフトウェア - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://md5500.blog.fc2.com/tb.php/2-812b362f
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。