938 :
名称未設定:03/09/24 13:32 ID:MuGrdX2M
アップルスクリプト自身の絶対パスの取得方法を教えて下さい。
path to me
便乗
スクリプトを実行しているのがScriptEditorとか、OSAMenuとか、Script.menuだと、
その実行しているアプリケーションのパスが入らない?
この事が気になったのは数カ月前だから、詳しい事は忘れたが…
そりゃそうだ。その他の相対パスも狂うから気つけてな。
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
文法上のエラーは無いように見えるけど。どんなエラー?
コンパイル時にエラーが出るの?それとも実行時にエラーが出るの?
俺はこんなスクリプトを使ってるけど、問題無いよ。
tell application "iTunes" of machine "eppc://username:
[email protected]"
playpause
end tell
944 :
942:03/09/26 01:25 ID:d97CPK/f
>>943 早速レスどうもです。
スクリプトエディタで実行すると
「アプリケーションのイベントの用語を取得できません。」とメッセージが。
目的はミュージックサーバーである隣のマシンと
Rendezvous経由でiTunesを共有したいんです。
>>944 tell application "iTunes"
activate
end tell
というスクリプトを192.168.0.2のマックのどこかに置いて、
tell application "Finder" of machine "eppc://192.168.0.2"
open (そのスクリプトの場所を指示する)
end tell
とか…
1台しか持ってないから試せないけど、
リモートのアプリケーションをactivateすると不味いんじゃないの?
947 :
名称未設定:03/09/30 14:14 ID:wX+0xHf1
safariで
そのページの構成要素をすべて用意できたか(表示されたか)どうかを得たいのですが、
やはりdo JavaScript...でjavascriptを使うのが手っ取り早いでしょうか?
948 :
944:03/09/30 19:10 ID:5LSRIosw
レス遅れてスイマセン。
>944
出来ました!バッチリっす。
いやーもう最後の手段でAppleRemoteDesktop買おうかと思ってた、、、。
>945
なるほど。そうかもしれませんね。
activateっていう命令はスクリプトの実行元(この場合iBook)
での状態を示すから、リモート先に対しては発行できないのかも。
いずれにしても助かりました。感謝!
949 :
947:03/10/01 07:25 ID:IkrxrxUU
950 :
名称未設定:03/10/11 11:53 ID:AR/gg6f9
ことえりの鉛筆メニューのショートカットキーをスクリプトにやらせる場合、
以下のスクリプトじゃ働きません。
どうしたら動きますか?
OS921 & AS1.6 & S穫di'sAdditions使用。
TypeText "〜" with Shift and Control
「〜」が半角だとして
「〜」自体はシフトおしながら出る文字じゃないか?
「`」じゃないか?
953 :
名称未設定:03/10/11 12:52 ID:udCI8ft2
>>951 〜は割り当ててあるローマ字に置き換えて考えて下さい。
例えば、文字パレット表示ならBです。
鉛筆メニューのショートカットだけ動かないので対応してないだけかも。
「KeyQuencerLite」は以前使っていたけど不安定になるんで、
使わなくてもいいならそのほうがいい。
> 「KeyQuencerLite」は以前使っていたけど不安定になる
いまでも現役で使ってるけどそんなことないけどな…
だけど、キーショートカット割当は、日本語IMとぶつかる場合が有る。
AppleScriptから呼ぶときは、「menu "U.S."」を追加すれば問題が出ない。
…ってことえり切ったら意味ないか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」を入れてくれ。
ことえりに切り替えて、いってよしとタイプする。
KeyQuencerLiteってどこにあるんですか?
ググってもなかった。
KeyQuencer Lite でググれ
初心者のでジャガイモなんですけど
キーボードのイジェクトキーの代わりにiTunesみたいにCDトレーをイジェクト
できるScriptってできますでしょうか?探しても無理らしいことばかり書いてありましたが
iTunesからパクればいけそうなんですけれど、、なかなかうまくいきません。アドバイスお願いします。
Mac OS Xのシステムボリュームを開いて、
システム:ライブラリ:CoreServices:Menu Extras にEject.menu
があるので、これでソフト側からトレーを開けますね。
すみませんでした。
KeyQuencerLiteって英語版しかないんですかね。
なんかマニュアルで挫折しそうです。
でもなんとか目的は達成することができました。
S穫di'sAdditionsはじめ他のスクリプティング機能追加も試してみたけど
うまく動いたのはKQLだけだった。
情報くれた人thx!
964 :
名称未設定:03/10/19 19:24 ID:kq51PTgo
終了項目フォルダに以下のスクリプトを入れてみると
tell application "Finder"
activate
close every window
end tell
システム終了をするとこのスクリプトが起動して
ウィンドウはちゃんと閉じるんだけど、その後スクリプトが終了しても
そのままでシステム終了をしてくれなくて、再度システム終了
をしないとだめ。これって何で?
OS9.2.2です
システム終了がキャンセルされてるからでは。
end tell の前に shut down を入れてスクリプトからシステム終了させれば解決するはず。
今OSXなんで検証は出来んが
Finderをactivateしたら終了プロセスがキャンセルされると思うぞ
window閉じるだけならactivateする必要ないと思うから
tell application "Finder"
close every window
end tell
これでいいんじゃね?
967 :
964:03/10/20 21:17 ID:gSaH7RVH
tell application "Finder" to duplicate file "ファイル名" to selection
これで、別所に用意してあるファイルを、今いる場所にコピーする
スクリプトにしたいのですが、コピー先を、開いているウィンドウの中にするには
どうすればいいでしょうか。
ウィンドウの中のどこかでコンテクストメニューを開き、スクリプトを選んだら
別所のファイルがウィンドウの中にコピーされるという風にしたいのです。
>>968 あー、、それなら、コピーもカットもコンテクストメニューでできるヤツを作ってサイトにうpしてるけどなー。。
今ごろそんなものを作ろうとしているって事はOS 9?
AppleScriptリファレンスは持ってる?
今一番手前にあるウインドウを指す用語があるよ。
俺自身今本が手元に無いのであとは誰かフォローしてくれ。
container of front window
>>970 あ、container window of なんたらとやってました。
できました。ありがとうございます。
>>969 9です。
ウィンドウを選択していない時にdesktopにコピーする条件分岐をつけたい時は
どうすればいいでしょうか。
duplicate 〜 to desktopで、コピーはできるけど、それを入れるif式が分からないです
実はfront windowだとすべてのウインドウが非アクティブでも
最後にフロントだったウインドウが選択されちゃうんだよね。
これをなんとかする方法はあたしにゃわからないので誰かよろしく。
9ならFinderPop使えるけど、なんで?
CMScriptも使えるが
tell application "Finder" to duplicate folder "_untitled" of disk "OS9 plus" to container of window of insertion location
今もう一度やってみたら、これでできました。
条件分岐いらないっす。
クリップボードに入ってる複数行の各テキストの末尾に、
新板
旧板
ロビー
↓
新板@
旧板@
ロビー@
こういうかんじで特定の記号を加える、というのをやりたいんですけど
私には無理でした・・・
どういうふうにやればいいかだけでも伝授していただけないでしょうか?
>>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)
977 :
975:03/10/27 01:41 ID:N5VwaWyW
>>976 ありがとうございます。
text item delimiters というのはテキストの項目区切りなんですよね?
この場合だと改行で区切ると思うんですが、その記述はどの部分になる
のでしょうか?
あと、どこでクリップボードのテキスト情報を取得してるのかもわかり
ません・・・
最近はじめたばかりなんですが、向いてないんでしょうか・・・
とにかくありがとうございました。
デリミタと配列(っていうんだっけ?)の概念はプログラミング経験の少ない初心者にはむずかしいやね。
> この場合だと改行で区切ると思うんですが、その記述はどの
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)
配列ってのはリストの事ではなかったっけ?
この場合、“何とかハンドラ”とか“サブルーチン”とか言うんじゃない?
ところで、そろそろ次スレでは…
そうそうリスト。そしてon〜endは、ハンドラだね。AppleScriptは一般の言語とちょっと呼び名が違ったりするから
鬱陶しいなあ。
replaceTextの中は慣用句として
最初は理解しなくてもいいと思う。
置換方法の方法、考え方も独特だし。
すいません、横から失礼します。
元の質問者じゃないんですけど、やってみて上手く行かない場合があったので。
新板
旧板
ロビー<最後に改行がない場合はどうしたらいいんでしょう?
983 :
975: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 & "@"
を追加したらいけました。
自分でもいろいろと調べてみたのですが、すぐすぐ理解できるようなもの
ではないですね。
でももすこし頑張ってみます。
皆さん今日はどうもありがとうございました。
>>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
こんな感じで文字の最後が改行かどうかわかるので
うまい具合に組み込んで下さい
985 :
982:03/10/27 04:54 ID:Or/F+lzf
>>983 >set the clipboard to the clipboard & "@"
> を追加したらいけました。
えと、それだと今度は改行がある時上手く行かないわけで…
クリップボードに取り込む時に選択範囲に注意すればいいだけなんですけどね。
986 :
982:03/10/27 05:00 ID:Or/F+lzf
>>984 ありがとうございます。
やはり、改行をチェックするしか無さそうですね。
text item に直接追加出来ないかとも思ったのですが…
100000000000000000000000000000000000000
げっちゅ