このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Screen shot on the fly が動かない...

発言者:ニャー助
( Date Monday, June 03, 1996 16:16:22 )


はじめまして。
田中”師匠”の作ったCGIキットを利用して、
”チャット”なるものを作り、毎日、遊んでいます。
(Scriptが判らなくても、師匠のCGIキットを
見ると、何となく作れてしまう。本当にお世話になっています。)

さて、話は変わるのですが、あの"Screen shot on the fly"が
動かないのです。(ちなみに、私のSystemはKT7.1.2です)

あれを実行すると、破れた絵しか出てきません。

Script自体にはなんら手を加えていません。

私は、いまいち、tellというScriptが判らないのですが、
(自分で作ったのは、使わないようにした。)

あの、tellというコマンドは、KT7.5 以上でないと動かないのでしょうか?

ぜひ、回答よろしくお願いします。

田中求之 さんからのコメント
( Monday, June 03, 1996 16:36:23 )

KT 7.5 でなくても、AppleScript さえインストールされていれば動くはずです。

ためしに、もっとシンプルにしたスクリプトを書いておきますので、これで試して
もらえますか。

--- Simple Screen shot CGI ---
property crlf : (ASCII character 13) & (ASCII character 10)
property http_10_header : "HTTP/1.0 200 OK" & crlf & "Content-type: image/gif" & crlf & crlf

on ヌevent WWWスsdocネ
  try
    tell application "clip2gif"
      set r to {0, 0, 640, 480}
      set bar to save screen as GIF in string crop r scale 50
      return http_10_header & bar
    end tell
  on error
    return "HTTP/1.0 400 ERR" & crlf & crlf
  end try
end ヌevent WWWスsdocネ
----

これを snap.acgi という名前でアプリケーションとしてセーブして、サーバー
と同じフォルダーに入れます。そして

 http://your.host/snap.acgi

にアクセスしてみてください。50%に縮小したスクリーンショットが見られる
はずなんですが?

tell というのは、他のアプリケーションに対してコマンドを送る(メッセージを
告げる=tell )部分です。上のスクリプトの場合、Clip2Gif というアプリケー
ションを呼び出してスナップショットを撮らしていますので、この部分がなければ
絶対に動きません。注意してください。もちろん、Clip2Gif もインストールされ
ている必要があります。

こにし@ほくだいです さんからのコメント
( Monday, June 03, 1996 17:29:13 )

Clip2Gifを起動してないとだめみたいです。
ぼくもそれではまりました。

ニャー助 さんからのコメント
( Tuesday, June 04, 1996 11:34:10 )

田中師匠。早速のコメントありがとうございました。
試したところ、今度は上手く行きました。

ありがとうございました。

でも、前のはどこが悪かったんでしょうね。
(前のにあったのは、Screen shotにAdressと
Time Stamp をつけるのが増えただけで、本体は
変わりありませんよね。)

自分も最初、こにしさんと同じように、clip2gifを起動しておかないと
ダメかなと思ったのですが、起動しておいても上手く行きませんでした。
(今回のは起動しておかなくても上手くいった。)

今回教えてもらったのをベースにして、もう一回やってみます。
(各種の変更)
それで、またレポートします。

お忙しいところ、ありがとうございました...

ニャー助 さんからのコメント
( Tuesday, June 04, 1996 12:32:30 )

動かなかった原因が分かりました。(多分)

最初、自分はTanaka's OSAX 1.0b8を使っていました。
(後で気づいて、1.0b9を入れましたが...)

最初のコンパイルの時に、1.0b8だったため(かどうか判りませんが...)
DataList のところが、|datalist|になっていました。(File 見直すまで気づかなかった。)

そこの所をなおして、再びコンパイルしたところ、きちんと、動きました。

いろいろお手数掛けました。また、何か判らなくなったら、
質問しますので、そのときはよろしくお願いします。

ニャー助 さんからのコメント
( Tuesday, June 04, 1996 14:30:36 )

すいません。上のコマンド間違ってました。

DateList が|datelist|になっていましたです。

(DataListといっていたわけではないので念のため...)

ニャー助 さんからのコメント
( Tuesday, June 04, 1996 14:31:19 )

すいません。上のコマンド間違ってました。

DateList が|datelist|になっていましたです。

(DataListとうっていたわけではないので念のため...)

田中求之 さんからのコメント
( Tuesday, June 04, 1996 15:11:00 )

>最初、自分はTanaka's OSAX 1.0b8を使っていました。
>(後で気づいて、1.0b9を入れましたが...)

1.0b9 で追加したコマンドを使ったスクリプトですんで、1.0b8 ではエラーになり
ます。このへんは、ちゃんと説明しておくべきでしたね。

datelist というのは、1.0b9 で追加した、日時の情報をリストで返すコマンド
なんですよ。これを asStr オプションで呼び出すと、各アイテムを文字列で
返しますので、それをスクリプト内部で組み立てて、日付にしてあります。

AppleScript の current date を呼ぶと、システムの設定によって
日付の表記が変わってしまいますので、それを避けるために Tanaka's osax
を利用してあります。

なにはともあれ、動いて良かったですね。

単純にスクリーンショットが見れるだけですが、自分のWeb サーバーの様子を
全世界のどこからでもチェックできるのは便利です。

また、on the fly で画像を作成できますので、FORM と組み合わせて、
アクセスした人が書き込んだメッセージを、即座に画像として見せるページ
なんていうのも作れますね(作ってみようっと)。

ニャー助 さんからのコメント
( Thursday, June 06, 1996 19:41:57 )

田中師匠の案。おもしろいなと思って
早速作ってみました。

結構おもしろいです。(四苦八苦しながらもようやく動きました。)

一応、打ち込んだメッセージが、GIFで出てきて、色も選べるようにしました。

ご希望があれば、Script とForm 載せたいと思います...

田中求之 さんからのコメント
( Thursday, June 06, 1996 19:58:13 )

あらら、もうできちゃいましたか。

私は実験的に、送ったメッセージを GIF にするところだけ作って、そのままになって
ます (^_^;;


いずれ、Communication Square の新しいコーナーに昇格させようともくろんでますが
はたしていつになることやら。

くどう@北大図学 さんからのコメント
( Wednesday, February 05, 1997 22:57:24 )

はじめてコメントさせていただきます。
おまけにえらい古い投稿に対するもので申し訳ございません^_^;;)
さきほど、ようやくScreen shot on the flyが動きました。
ずっと破れた絵しかでてこなかったんです。
原因は、crip to gifにくれてやるメモリが少なすぎたのでした。
というのも、ウチのサーバは17インチなもんですから、
サンプルのScriptでは、全部表示できなかったんです。
(もちろん動作はしました)
取り込む領域を大きくしたScriptに変更したら、とたんにダメになりました。
そこでハタと思いついてcrip to gifにメモリをくれてやったら(3M)
動いてくれました。
ということで、ご報告まで。

→  北大図学サーバのスクリーンショット