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

AppleScriptの一時停止

発言者:関谷直人
( Date Friday, July 05, 1996 21:03:57 )


いつもお世話になっています。今、自分でCGIに挑戦というわけで、
AppleScriptを書いています。だいたいは上手く動いてきたのですが、どうしてことか
スクリプトの中程で一時停止して止まってしまいます。
今はまだスクリプトエディタの上で走らせているのですが、
止まってしまって、あらあらと思ってアクティブになっていなかったスクリプトエディタ
のところをクリックしてアクティブにすると後半が走り出します。
ありとあらゆる事を自分なりにしてみたのですが、どうしてもそこまで走って
休憩してしまいます。すごく漠然とした質問であることは承知していますが、
そういう事って、なにか思い当たるふしはないでしょうか?スクリプトからQuicKeyを動かして
AppleScriptをサポートしていないアプリをさわっているのです。具体的にはtelnet
へ自動的にアクセスすることをやっているのですが、結果をTelnetのクライアントから
落とそうとすると、そこで一時休憩、先のエディタの部分をアクティブにすると後半が
走り出します。全くいやになります。
なにかとても初歩的な間違いをしているのだとは思うのですが、どなたか
そんな経験ってないでしょうか??

mazda さんからのコメント
( Saturday, July 06, 1996 09:41:31 )

なにかのアプリを呼び出すときに
			tell application "XXXXXX"
				activate
とやってみてはどうでしょうか?、でもQuicKeyを
使っていらっしゃるんですよね
イベントごとにマクロを作ってそのたびactivateに
するってのはどうでしょうか?


田中求之 さんからのコメント
( Saturday, July 06, 1996 22:23:19 )

Quickey を呼び出す部分はどのようにしてますか?

Quickey のスクリプト( AppleScriptのエディタで書いて実行させることも可能
です)を使っているのでしょうか? それとも、QK に登録したマクロを呼び出して
いるのでしょうか?

この部分がどうなっているかで、解決方法は異なります。



関谷直人 さんからのコメント
( Sunday, July 07, 1996 00:53:32 )

うっう、Mazdaさん、田中さん、ようこそ聞いてくださいました。Mazudaさんのご指摘になった方法については
一応やってみた(つもり)です。でも、だめみたいなんです。
Quickeyを呼び出す時については、Quickey内部でAppleScriptを実行させる方法は、今回はとっていません。
ですから、QuickeysにPlayByNameとかType...とかのコマンドを実行させているだけなのです。というのは、
具体的に言うと、あのMac用のtelnet(日本語版です)から得られた情報を、ホームページへ転載することをやっている
のですが、あのTelnetはご承知のようにScriptableではないですよね。ですから、Quckeysに登場願って、telnetからの
Key入力なんかをやってもらっているわけです。で、その分については(なんか異様に遅いのですが)ま、動いていて
必要なデータをデータベースからリトライブしてくるようになりました。ところが、そのデータをScriptの変数にとりこむ
ためには、(まぬけな方法かも知れないのですが、それしか思いつかない)、そのデータを一旦,
Scriptable Text Editorに取り込んで、そこから取り込もうとしているのです。ところがです。
Quickeysでtelnetをselect allにして、copyとかしようと思ったら、Select all がtelnetのメニューにないのです。
しかたがないので、sessionのところのcapture fileを使って、そのファイルを取り込むことにしたのです。
ところが!あたりまえのことですが、telnetで一回分のデータをもってきた時にその内容をCapture fileからとろうと思ったら
(たぶん当然なのでしょうが)、一旦SessionのCaptureをOffにしないと、scriptから開けません(telnetがしよう中ですから当然ですよね)
ですから、またぞろQuickeysでそれを切りにいったら、そこでぶっとまるのです。sessionからoffのメニューを実行させるマクロを
AppleScriptから実行させているのですが、それを実行した後、なんだかmouseでeditorをActiveにするまで
停止に入ってしまうので、それをすると、その後のスクリプトもちゃんと実行するのですが...
なにせ、この間,Berkeleyに行ったさいに、BMUGによって、受付のブラックの美人の女性に進められて買った
TAO BOOKとか、なんとかいう本と田中さんのページだけをたよりに書いているので、
たぶん適当めちゃくちゃなのですが、とにかくなんか、動こうとはしています。
私がやっている方法とは、全く違う「もっと簡単なんがあるでー」というのでした、
ぜひお教えください。私はこのデバッグにこの二日かかりっぱなしで、本業は全くです。
Help!

きんねこ さんからのコメント
( Wednesday, July 17, 1996 22:33:08 )

わたしも同じ様なことを考えているのですが、まだ実行にいたっていません。
JtermがVerUp たので、 CTB 経由でTCP/IPでtelnetするか、ActiveTalkを使
おうと思っているのですが、その後いかがでしょうか。
素直に unix でやれば良いのでしょうが、そのunixの監視をやるので、マック
にやらせています。

関谷直人 さんからのコメント
( Thursday, July 18, 1996 22:03:37 )

きんねこさん、なんかわからんうちに動いて、すっごくプリミティブにだけど、動いています。止まる原因は(素人なので勘だけなんですが)、なんかこう、話しかけたけど返事が帰ってこないので、いつまでも待っていたようです。ですから、あれは停止ではなく1分以上まっておったようです。で、どうしようかなあ、
と素人は考えて、TAOなんとかをばらばらみていると、TIMEOUTというのが目についてので、「そうや、これで強制的に次にいかせたる」とやったら
なんかわからないけど、うまくいきました。Quickysでtelnetにコマンドを送るタイミングの調整に結構苦労しましたが、とりあえずページ上からtelnetを操作して情報をかえしてきます。
しかし、タイムアウトとの戦いで、なんと35秒ぐらいまたないとかえってきません。ま、実用とはいいがたいのですが、ただやりたかった私の気持ちは満たされました。
フォローくださってありがとうございました。でも、Jtermがそんな風になっているとはしりませんでした。ActiveTlakってところでなんですか、Appletalkでコントロールできる、ターミナルソフトかなんかですか??

きんねこ さんからのコメント
( Monday, July 22, 1996 19:41:16 )

木曜から土曜まで出張であったので、アキバでJtermを買ってきました。
Jterm はスクリプタブルではないですが、マクロがある程度ありますの
で、動かしてやれば自動実行してくれます。CTB 経由で接続すると、
telnetのごとく動作します。
しかし、マニュアルを見たらCTBでtelnet先を切り替えるマクロはないよ
うで、ちょっとまいったなぁ、状態です(^^;。
職場の移動の内示があったので、もうあまり遊べないかもしれないので、
残念です(;_;)。自営にもどろうかしらん。
ActiveTalkは、同じようにCTBでtelnetできるようにするソフトです。