おもろい、めずらしいアップルスクリプト発表会 4

このエントリーをはてなブックマークに追加
938名称未設定:03/09/24 13:32 ID:MuGrdX2M
アップルスクリプト自身の絶対パスの取得方法を教えて下さい。
939名称未設定:03/09/24 23:15 ID:AMGWa5gy
path to me
940名称未設定:03/09/25 00:09 ID:zLZ9GyFu
便乗
スクリプトを実行しているのがScriptEditorとか、OSAMenuとか、Script.menuだと、
その実行しているアプリケーションのパスが入らない?
この事が気になったのは数カ月前だから、詳しい事は忘れたが…
941名称未設定:03/09/25 18:20 ID:ZA1CTSkY
そりゃそうだ。その他の相対パスも狂うから気つけてな。
942名称未設定:03/09/26 00:33 ID:d97CPK/f
リビングにあるiBookから、隣の部屋にある
別のマック(192.168.0.2)のiTunesを起動したいのですが

tell application "iTunes" of machine "eppc://192.168.0.2"
activate
end tell

で実行するとエラーが出ます。(相手のAppleEventは許可してます)
なにか文法上エラーがあるのでしょうか?
2台ともOS X。ちなみに以下のScriptはうまく動きます。

tell application "Finder" of machine "eppc://192.168.0.2"
sleep
end tell
943名称未設定:03/09/26 01:05 ID:ohpB5ToM
文法上のエラーは無いように見えるけど。どんなエラー?
コンパイル時にエラーが出るの?それとも実行時にエラーが出るの?

俺はこんなスクリプトを使ってるけど、問題無いよ。

tell application "iTunes" of machine "eppc://username:[email protected]"
playpause
end tell
944942:03/09/26 01:25 ID:d97CPK/f
>>943
早速レスどうもです。
スクリプトエディタで実行すると
「アプリケーションのイベントの用語を取得できません。」とメッセージが。
目的はミュージックサーバーである隣のマシンと
Rendezvous経由でiTunesを共有したいんです。

945名称未設定:03/09/28 02:12 ID:3sD5zwVo
>>944
tell application "iTunes"
activate
end tell

というスクリプトを192.168.0.2のマックのどこかに置いて、

tell application "Finder" of machine "eppc://192.168.0.2"
open (そのスクリプトの場所を指示する)
end tell

とか…
946名称未設定:03/09/29 20:08 ID:+4Zht6R9
1台しか持ってないから試せないけど、
リモートのアプリケーションをactivateすると不味いんじゃないの?
947名称未設定:03/09/30 14:14 ID:wX+0xHf1
safariで
そのページの構成要素をすべて用意できたか(表示されたか)どうかを得たいのですが、
やはりdo JavaScript...でjavascriptを使うのが手っ取り早いでしょうか?
948944:03/09/30 19:10 ID:5LSRIosw
レス遅れてスイマセン。
>944
出来ました!バッチリっす。
いやーもう最後の手段でAppleRemoteDesktop買おうかと思ってた、、、。
>945
なるほど。そうかもしれませんね。
activateっていう命令はスクリプトの実行元(この場合iBook)
での状態を示すから、リモート先に対しては発行できないのかも。

いずれにしても助かりました。感謝!
949947:03/10/01 07:25 ID:IkrxrxUU
>そのページの構成要素をすべて用意できたか(表示されたか)どうかを得たいのですが、

>ttp://www.apple.com/applescript/safari/jscript.01.html
ここにずばりのサンプルが載ってました。
恥ずかしい……おじゃましました……
950名称未設定:03/10/11 11:53 ID:AR/gg6f9
ことえりの鉛筆メニューのショートカットキーをスクリプトにやらせる場合、
以下のスクリプトじゃ働きません。
どうしたら動きますか?
OS921 & AS1.6 & S穫di'sAdditions使用。

TypeText "〜" with Shift and Control
951名称未設定:03/10/11 12:00 ID:kcc6OR1o
「〜」が半角だとして
「〜」自体はシフトおしながら出る文字じゃないか?
「`」じゃないか?
952名称未設定:03/10/11 12:03 ID:kcc6OR1o
かんけいねえけど
OS9でキーを押すスクリプトを作るなら
「KeyQuencerLite」をお勧めするよ
http://www.macupdate.com/info.php/id/1750
体験版状態でも、エディタ起動時10秒待ち以外全機能動作する。
もちろんAppleScript対応だ
953名称未設定:03/10/11 12:52 ID:udCI8ft2
>>951
〜は割り当ててあるローマ字に置き換えて考えて下さい。
例えば、文字パレット表示ならBです。
鉛筆メニューのショートカットだけ動かないので対応してないだけかも。

「KeyQuencerLite」は以前使っていたけど不安定になるんで、
使わなくてもいいならそのほうがいい。
954名称未設定:03/10/11 12:57 ID:QCcgkuy4
> 「KeyQuencerLite」は以前使っていたけど不安定になる

いまでも現役で使ってるけどそんなことないけどな…
だけど、キーショートカット割当は、日本語IMとぶつかる場合が有る。
AppleScriptから呼ぶときは、「menu "U.S."」を追加すれば問題が出ない。
955名称未設定:03/10/11 12:59 ID:QCcgkuy4
…ってことえり切ったら意味ないかw
Application only をつかわなければ不具合出ないよ。日本語IMでも。
956名称未設定:03/10/11 13:23 ID:Fn24Wh9x
ひまだから、KeyQuencerLiteでことえりを制御する例をつくってみた。エディタで入れてきどうしてみよう
 
Menu "ことえり◆"
key ctrl shift "j"
Type "itteyosi"
key " "

#◆のところはU.S.モードでoption+shift+xを押して「TM」を入れてくれ。
ことえりに切り替えて、いってよしとタイプする。
957名称未設定:03/10/12 15:06 ID:VDCMS1Gz
KeyQuencerLiteってどこにあるんですか?
ググってもなかった。
958名称未設定:03/10/12 16:33 ID:jpLh1hB3
KeyQuencer Lite でググれ
959名称未設定:03/10/12 18:28 ID:BNux8sr4
初心者のでジャガイモなんですけど
キーボードのイジェクトキーの代わりにiTunesみたいにCDトレーをイジェクト
できるScriptってできますでしょうか?探しても無理らしいことばかり書いてありましたが
iTunesからパクればいけそうなんですけれど、、なかなかうまくいきません。アドバイスお願いします。
960名称未設定:03/10/12 18:37 ID:BNux8sr4
Mac OS Xのシステムボリュームを開いて、
システム:ライブラリ:CoreServices:Menu Extras にEject.menu
があるので、これでソフト側からトレーを開けますね。
すみませんでした。
961名称未設定:03/10/14 10:16 ID:TVdLvLfF
KeyQuencerLiteって英語版しかないんですかね。
なんかマニュアルで挫折しそうです。
でもなんとか目的は達成することができました。
S穫di'sAdditionsはじめ他のスクリプティング機能追加も試してみたけど
うまく動いたのはKQLだけだった。

情報くれた人thx!
962名称未設定:03/10/15 18:42 ID:uzqg/wSB
>>959-960
それはどういった時に活用するのでせう。
963名称未設定:03/10/19 13:31 ID:g2S4HqRH
http://pc.2ch.net/test/read.cgi/mac/1046423663/198-
これってできないもんかね?
考えてみたけどわかんない。
964名称未設定:03/10/19 19:24 ID:kq51PTgo
終了項目フォルダに以下のスクリプトを入れてみると

tell application "Finder"
activate
close every window
end tell

システム終了をするとこのスクリプトが起動して
ウィンドウはちゃんと閉じるんだけど、その後スクリプトが終了しても
そのままでシステム終了をしてくれなくて、再度システム終了
をしないとだめ。これって何で?
OS9.2.2です
965名称未設定:03/10/19 19:31 ID:jt4a1eo/
システム終了がキャンセルされてるからでは。
end tell の前に shut down を入れてスクリプトからシステム終了させれば解決するはず。
966名称未設定:03/10/19 22:13 ID:d/RUhXVn
今OSXなんで検証は出来んが
Finderをactivateしたら終了プロセスがキャンセルされると思うぞ
window閉じるだけならactivateする必要ないと思うから
tell application "Finder"
close every window
end tell
これでいいんじゃね?
967964:03/10/20 21:17 ID:gSaH7RVH
>>965 >>966

activeteを取ったら解決しました。
どうもありがとうございました。
968名称未設定:03/10/24 13:57 ID:DMlkWq5r
tell application "Finder" to duplicate file "ファイル名" to selection
これで、別所に用意してあるファイルを、今いる場所にコピーする
スクリプトにしたいのですが、コピー先を、開いているウィンドウの中にするには
どうすればいいでしょうか。
ウィンドウの中のどこかでコンテクストメニューを開き、スクリプトを選んだら
別所のファイルがウィンドウの中にコピーされるという風にしたいのです。
969名称未設定:03/10/24 14:37 ID:hbnil0JO
>>968
あー、、それなら、コピーもカットもコンテクストメニューでできるヤツを作ってサイトにうpしてるけどなー。。
今ごろそんなものを作ろうとしているって事はOS 9?

AppleScriptリファレンスは持ってる?
今一番手前にあるウインドウを指す用語があるよ。
俺自身今本が手元に無いのであとは誰かフォローしてくれ。
970名称未設定:03/10/24 15:18 ID:GPdjP+By
container of front window
971名称未設定:03/10/24 22:26 ID:DMlkWq5r
>>970
あ、container window of なんたらとやってました。
できました。ありがとうございます。

>>969
9です。

ウィンドウを選択していない時にdesktopにコピーする条件分岐をつけたい時は
どうすればいいでしょうか。
duplicate 〜 to desktopで、コピーはできるけど、それを入れるif式が分からないです
972名称未設定:03/10/24 23:40 ID:GPdjP+By
実はfront windowだとすべてのウインドウが非アクティブでも
最後にフロントだったウインドウが選択されちゃうんだよね。
これをなんとかする方法はあたしにゃわからないので誰かよろしく。
973名称未設定:03/10/25 00:34 ID:01hunPTw
9ならFinderPop使えるけど、なんで?
CMScriptも使えるが
974名称未設定:03/10/25 02:14 ID:L9+Tull5
tell application "Finder" to duplicate folder "_untitled" of disk "OS9 plus" to container of window of insertion location
今もう一度やってみたら、これでできました。
条件分岐いらないっす。
975名称未設定:03/10/26 01:52 ID:YKrhMHH0
クリップボードに入ってる複数行の各テキストの末尾に、

新板
旧板
ロビー

新板@
旧板@
ロビー@

こういうかんじで特定の記号を加える、というのをやりたいんですけど
私には無理でした・・・
どういうふうにやればいいかだけでも伝授していただけないでしょうか?
976名称未設定:03/10/26 04:17 ID:qJrtvCRw
>>975
on replaceText(inText, inOld, inNew)
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {inOld}
set workData to text items of inText
set AppleScript's text item delimiters to {inNew}
set workData to workData as string
set AppleScript's text item delimiters to OriginalDelimiters
return workData
end replaceText

set the clipboard to my replaceText(the clipboard, return, "@" & return)
977975:03/10/27 01:41 ID:N5VwaWyW
>>976
ありがとうございます。
text item delimiters というのはテキストの項目区切りなんですよね?
この場合だと改行で区切ると思うんですが、その記述はどの部分になる
のでしょうか?
あと、どこでクリップボードのテキスト情報を取得してるのかもわかり
ません・・・
最近はじめたばかりなんですが、向いてないんでしょうか・・・

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

978名称未設定:03/10/27 02:15 ID:UcyGVrCH
デリミタと配列(っていうんだっけ?)の概念はプログラミング経験の少ない初心者にはむずかしいやね。
 

> この場合だと改行で区切ると思うんですが、その記述はどの
set the clipboard to my replaceText(the clipboard, return, "@" & return)

set AppleScript's text item delimiters to {inOld}
 
>どこでクリップボードのテキスト情報を
set the clipboard to my replaceText(the clipboard, return, "@" & return)
の、replaceText(the clipboard, return, "@" & return)

979名称未設定:03/10/27 02:26 ID:zOa0cc8h
配列ってのはリストの事ではなかったっけ?
この場合、“何とかハンドラ”とか“サブルーチン”とか言うんじゃない?

ところで、そろそろ次スレでは…
980名称未設定:03/10/27 02:39 ID:UcyGVrCH
そうそうリスト。そしてon〜endは、ハンドラだね。AppleScriptは一般の言語とちょっと呼び名が違ったりするから
鬱陶しいなあ。
981名称未設定:03/10/27 03:33 ID:NZGG9LFk
replaceTextの中は慣用句として
最初は理解しなくてもいいと思う。
置換方法の方法、考え方も独特だし。
982名称未設定:03/10/27 03:40 ID:Or/F+lzf
すいません、横から失礼します。
元の質問者じゃないんですけど、やってみて上手く行かない場合があったので。

新板
旧板
ロビー<最後に改行がない場合はどうしたらいいんでしょう?
983975:03/10/27 04:05 ID:N5VwaWyW
>>
なんとなくわかったような、わからないような・・・
(inText, inOld, inNew)は変数で(the clipboard, return, "@" & return)が
それぞれ置き替わるんですよね?
で、改行→改行+@ にあたる部分が

set AppleScript's text item delimiters to {inOld}
     ↓
set AppleScript's text item delimiters to {inNew}

ということでよろしいんですかね?

>>982
こういうやり方が正しいのかどうかわからないんですけど、最後に
set the clipboard to the clipboard & "@"
を追加したらいけました。

自分でもいろいろと調べてみたのですが、すぐすぐ理解できるようなもの
ではないですね。
でももすこし頑張ってみます。

皆さん今日はどうもありがとうございました。
984名称未設定:03/10/27 04:49 ID:NZGG9LFk
>>982
>>983
set theText to "hoge"
set strLen to length of theText
if character strLen of theText is not return then
set theText to theText & "@"
end if
こんな感じで文字の最後が改行かどうかわかるので
うまい具合に組み込んで下さい
985982:03/10/27 04:54 ID:Or/F+lzf
>>983
>set the clipboard to the clipboard & "@"
> を追加したらいけました。

えと、それだと今度は改行がある時上手く行かないわけで…
クリップボードに取り込む時に選択範囲に注意すればいいだけなんですけどね。
986982:03/10/27 05:00 ID:Or/F+lzf
>>984
ありがとうございます。
やはり、改行をチェックするしか無さそうですね。
text item に直接追加出来ないかとも思ったのですが…
987名称未設定
100000000000000000000000000000000000000
げっちゅ