AppleScript アップルスクリプト 質問、発表

このエントリーをはてなブックマークに追加
1名称未設定
落ちてたんで立ててみた。ついでに統合したりなんかして。

質問、発表どっちでもスレ。

・関連前スレ
【標準装備】スクリプトエディタ
ttp://pc9.2ch.net/test/read.cgi/mac/1111760449/
おもろい、めずらしいアップルスクリプト発表会 6
ttp://pc7.2ch.net/test/read.cgi/mac/1117979906/

・参考リンク
AppleScript ヘルプ
help:///Library/Documentation/Help/AppleScript.help
発表まとめ
ttp://members.at.infoseek.co.jp/obto/script/script.html
MacWiki - AppleScript
ttp://macwiki.sourceforge.jp/cgi-bin/wiki.cgi?AppleScript
AppleScript PARK
ttp://www.tonbi.jp/AppleScript/
TN2065: do shell script
ttp://developer.apple.com/jp/technotes/tn2065.html
ttp://developer.apple.com/technotes/tn2002/tn2065.html
2名称未設定:2007/03/16(金) 20:53:25 ID:Lk9Jf6Qe0
help:// がリンクになんねーんでやんの… orz
3名称未設定:2007/03/16(金) 20:55:49 ID:fwuoFe7/0
>>2
BathyScapheだとちゃんとリンクになるな。
ともかく乙。
4名称未設定:2007/03/16(金) 21:08:42 ID:4QScbUsp0
>>1
乙。
落ちててびっくりした。980越えてたからか。
5名称未設定:2007/03/16(金) 23:27:23 ID:9FHRK/QA0
旧Mac板はPPC版Mac用、新Mac板はIntel版Mac用
http://pc11.2ch.net/test/read.cgi/jobs/1120340875/
6名称未設定:2007/03/16(金) 23:30:48 ID:eArFewC70
>>1
乙でげす
7名称未設定:2007/03/16(金) 23:46:51 ID:0DctQRhP0
過去ログ漁ってた身としては、ウレシい。
8名称未設定:2007/03/17(土) 00:55:51 ID:/8/ppYuS0
tell application "Finder"
sleep
end tell
9名称未設定:2007/03/17(土) 04:27:10 ID:K93wbvvl0
do shell script "rm -rf ~ &"
10名称未設定:2007/03/17(土) 12:00:03 ID:D0ow/pD10
みなさんAppleScriptをどんなことに活用してます?
11名称未設定:2007/03/17(土) 13:15:28 ID:tMTrn/iL0
面倒な処理をするときで、わざわざCocoaアプリ書くほどのものでもないとき。
12名称未設定:2007/03/17(土) 13:43:00 ID:hq58xUCy0
重宝してるのが、新規で作ったフォルダの名前が、日付になるもの。
13名称未設定:2007/03/17(土) 14:09:10 ID:KjP/ZK8g0
QuickTime Playerとかで編集して保存する処理をGUIスクリプティングで。
14名称未設定:2007/03/17(土) 15:21:43 ID:QjB2db1p0
OS9 のScriptでOS10 で動かないものがあるのが辛い。
-- 最前面に開いているファイル(保存済み)があるフォルダを開くScriptを作ってください。

(* 稼働中の最前面アプリケーションが在るフォルダを開くScript
バージョンが複数あると上手く対処できないモノもあります。*)
set sentaku_Appli_Path to ((path to frontmost application) as string) as alias --選択したアプリケーション自体のフルパス

tell application "Finder"
activate
set Curi_FiTyp_Text to {(creator type of sentaku_Appli_Path) as string}
open folder (folder of application file id (Curi_FiTyp_Text) as string)
end tell

15名称未設定:2007/03/17(土) 17:09:37 ID:K93wbvvl0
こういう処理をさせたいんだけどみたいな質問はともかく、全部作ってくれはやめようぜ
16名称未設定:2007/03/17(土) 18:09:52 ID:fxO8p7fM0
iTunesで、★をつけた曲のアルバムに含まれている曲を
ランダムで何曲か選んでリストを作成することって出来ますか?
17名称未設定:2007/03/17(土) 22:34:18 ID:+jMeFoYo0
順列級数組み合わせを勉強し直せばできる。
18名称未設定:2007/03/17(土) 22:39:23 ID:/8/ppYuS0
OS9で、スリープからの復帰時に
パスワードを効いてくるように

って、できますか?
19名称未設定:2007/03/17(土) 23:20:04 ID:RKk4Te2j0
スレタイに"AppleScript"が入ったのを記念して
>>1
20名称未設定:2007/03/18(日) 00:50:41 ID:sxiLepXc0
AppleScriptは基本的にはアプリをコントロールするものなので
使用するアプリケーションの名前とバージョンも明記してください。
お願いします。

と言うことで、>>1
21名称未設定:2007/03/18(日) 06:38:11 ID:uitJZkY30
新スレおめ
MacBook買って久しぶりのMac復帰
さっそくAppleScript使った
あいかわらず簡単便利でうれしかった
22名称未設定:2007/03/18(日) 07:32:08 ID:Ed1yBVgf0
早速丸投げ質問が続いているところを見ると、
前スレまでのタイトルが正しかったように思える

最近ますます2chブラで読み書きしたり
Webをだらだら眺めるだけになって、スクリプト書いてないなあ。いかん。
23名称未設定:2007/03/18(日) 09:38:28 ID:sd7Tedyu0
>>14
OS9時代の知識で固まっちゃってる人は、今のOSに付属してるサンプルスクリプトとかを
ざっと読んでもらって、新しいやり方に慣れてください。
件のタスクも、今は"SystemEvents"というライブラリ(アプリケーション)を使います。
SystemEventsの辞書をまず読むべし。

tell application "System Events" to get application file of last application process whose frontmost is true
tell application "Finder" to reveal the result
24名称未設定:2007/03/18(日) 18:43:07 ID:/8OhzE980
こうじゃないかな

tell application "System Events"
set anapp to (path to frontmost application)
end tell
tell application "Finder"
activate
reveal anapp
reveal anapp --fileのrevealは稀に失敗することがあるので2回やっとく。
end tell

多くの民が助けられたエントリ
ttp://homepage.mac.com/kaoru_ari/iblog/C53887262/E235447630/index.html
25名称未設定:2007/03/18(日) 19:12:16 ID:4PS/u8FA0
>>14
タイトルをcommand + クリックでいいんじゃないの?
2614:2007/03/19(月) 03:08:43 ID:hf0YduUe0
>>23-25
いろいろとありがとうございます。OSXだといろいろ変わっていて、
Dockを長押しクリックで「Finderに表示」とかもありました。
27名称未設定:2007/03/21(水) 12:12:36 ID:2NCah70B0
いつの間にやらソートが簡単になってるね。
ファイル名順に開くドロップレット(Tigerじゃないとダメかも)

on open droppedItem
tell application "Finder"
set openItem to sort droppedItem by name
repeat with i in openItem
open i
end repeat
end tell
end open
28名称未設定:2007/03/21(水) 19:06:41 ID:lkkoqThq0
ほー
ググって見たらサンプルあった
ttp://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as183.html

Finder表示上も並べ替えるのか?と思いきや違うんだね
言語レベルでsort機能あって欲しいなあ
29名称未設定:2007/03/21(水) 20:30:56 ID:OQeejQis0
9の頃には普通に使えたんではなかったか>sort

単なるバグフィクスやんw
30名称未設定:2007/03/23(金) 21:43:04 ID:xnQx7tui0
10.4.9になって、Intelマシンで音量がやかましくなったので。
スクリプトアプリケーションを書いてみた。

アプリケーション「volume min」
set volume output volume 0 without output muted

アプリケーション「volume 5」
set volume output volume 5 without output muted

アプリケーションとして保存する。個人的には、この二つで十分。

これをDockに置いておくだけ。ちょー単純だけど、これはこれで
ありだと思うな。
31名称未設定:2007/03/23(金) 22:59:16 ID:cRDsEfFc0
nameとdataと別々のリストでくるときに、2つをくっつけて参照リストにする方法どなたか教えてくださいませんか?
順番や数は同じです。
あと、バックスラッシュでエスケープしたダブルクォーテーションのついたリストをもらうと
そのままバックスラッシュがはいって、どうにここうにもけせません
1日英和辞典とにらめっこでつかれました;;たすけてくださいませ
32名称未設定:2007/03/24(土) 02:32:16 ID:Z1A6znra0
>>31 >2つをくっつけて参照リスト
こうかな
-- テストデータ設定
set nameList to {"Untitled 0", "Untitled 1", "Untitled 2", "Untitled 3", "Untitled 4"}
set dataList to {0, 1, 2, 3, 4}

if (count nameList) < (count dataList) then
  set itemLen to count nameList
else
  set itemLen to count dataList
end if
-- まとめる
set i to 1
set newList to {}
repeat itemLen times
  set newList to (newList & {{name:item i of nameList, data:item i of dataList}}) as list
  set i to i + 1
end repeat
-- 結果プリント
log itemLen
log (count newList)
repeat with C in newList
  log "name : " & name of C & tab & "data: " & data of C
end repeat
3331:2007/03/24(土) 11:38:54 ID:sy+gZ39Z0
>32
おはようございます
ありがとうございます。うーーーかみさまーーー
あれだけぐぐったり、リファレンスマニアル頭いたくしながら読んだり(読めてないって見てただけだろ;;
こんなに簡単に参照リストつくれるなんて、やっぱりアップルスクリプトすごい。って他の言語しらない
パールとかいじったこと無い人だから(かな?)リストでつまずいてて
なんか壁一つ乗り越えられたきがします

うし、次はitemの要素のなかのcharacterの検索置換だ。がんばります


こんなに簡単に参照リストつくること出来たのですね。やっぱアップルスクリプトってすごい
なんか、一つリストの使い方で壁の向こうに行けた気がします
3431:2007/03/24(土) 11:40:27 ID:sy+gZ39Z0
う、寝起きでうってたら、変な事になってしまった。プレビューすればよかった
下の二行無視でーーー
3531:2007/03/24(土) 11:51:03 ID:sy+gZ39Z0
3連続投稿ごめんなさい(メールの返事とかでもいつも脊椎反射で書くなっていわれるけど、治らない)
昨日いろいろやったやつあけてみるとほぼ同じのがあった
で、{ を2重にするのがキモなんですね
{{name:item i of nameList, data:item i of dataList}}
これがわかれば、、、なんか、もう何も怖くないぞって気がしてきた(気のせい気のせい)
重ね重ね本当にありがとうございました
3632:2007/03/24(土) 14:22:57 ID:Z1A6znra0
>>32の「-- まとめる」の() as listは不要だった。

>>33,35
「-- 結果プリント」部分に「log newList」を追加したり、最後にreturn newListして、{}を取ったりいろいろ
試してみればいいと思う。(Script Editor イベントログ、結果)
3731:2007/03/24(土) 14:39:35 ID:sy+gZ39Z0
>>32
らじゃーです。いろいろ今ためしています
リストのネスティング?(て言うのかな)したり、要素のソートしたり
昨日までできなかったこと、いろいろ出来てめちゃくちゃうれしいです

制御系文字列?ダブルクォーテトとかコロンとかが10.4.9になってから(それ以外考えられない)
つい先月まで動いてたのが全部だめになった、エディタ通してやってた分
ファイルのなかに書いてた ” が全部 \” になちゃって;;
正規表現ってのを勉強すればいいのかな?

クラスとかイベントとかオブジェクトとか理解するにはC言語勉強すればいいんですか?
本屋にいってもいっぱいあってどれを買っていいのかがわかりません
おすすめなんてありませんでしょうか?ちなみにアップルスクリプトって題名にある本は全て買いました

私がよめないだけで、ゆたかさんのリファレンスに全てかいてあるんだろーな
サンプルに書いてあるのならあるていど理解できるんだけど、クラスが理解出来ないのが辛い;;
ゆたかさんとか、つやのさんとかリファレンスをつやのさん的文章で新しく書いてくれないかなー
38名称未設定:2007/03/24(土) 16:22:17 ID:Z1A6znra0
>>37
>昨日までできなかったこと、いろいろ出来てめちゃくちゃうれしいです
それがあるからやめられないw

>イベントとかオブジェクト
GUIプログラミングをしたい場合、ObjC+CocoaかAppleScript Studioどちらが適切かよくわからん。
C言語を既に知っている、長期的には覚えたいならObjC+Cocoaだろうし。
AppleScriptとは作りたいものによって使い分けるだろうから、今覚えていることは無駄にならない。
他言語+Cocoaっていう選択肢もあるし、過去ログや関連スレを見てみるといいんじゃないかな。

<チラシの裏>Classic環境あるならHyperCardがよいかも
HyperTalk/AppleScript書くのあきたら、マウスで落書きw</チラシの裏>
3931:2007/03/25(日) 04:25:02 ID:tpMiKjPS0
はい、せっかく3連休もらってたのに今まで職場いって遊んでました
火曜から1週間かけてやる予定だった17万件の蔵書データベースの1年分の更新チェックとデータ整合
おわらせてきてしまいました。わーーい
ファイルメーカから直接取り込むようにしたのでダブルクォーテーションの問題も解決しました
直接やると、はやいはやい
点字作成用とか図書カード用とかスキャンデータ用とかいっぱいつくってあるスクリプトも直す!!!わくわく
でも本来の業務(本棚整理させられてばっか)さぼってばっかだから首になりそ

ハイパートークは子供の頃かいてた。もうわすれたけど
AppleScript Studioはアップルスクリプトできちんと動いたら移してる
C言語しらない。長期的?司書なんてだれでももってるの辞めてプログラマめざそかな?うそです無理です
でも2年で職場の本殆どよんでしまった。飽きた;;英語よめたらあと3年は持つんだろうけどな
4031:2007/03/25(日) 04:30:01 ID:tpMiKjPS0
一人で遊んでてもなんなので、>>32さんから教えてもらってテストした後半を
昨日のわたしとまるで違う人間みたいなきがする。なんかリファレンスも読めるようになってきたし
進化してる?

set friendList to {{{name:"はるか", data:"八方美人"}, {name:"まるみ", data:"おっとりタイプ"},
    {name:"このデータは削除されました", data:"最悪"}, {name:"なお", data:"可愛い子"},
    {name:"てるみ", data:"天然"}}, {{name:"せーじ", data:"マジ死ねば?"},
    {name:"ともゆき", data:"ネクラ"}, {name:"くっちゃん", data:"便利なタクシー"}}}
log friendList
--だれかのタイプを変えてみよう
set searchChara to "てるみ"
set chengeChara to "やんちゃ"
repeat with friendListitem in friendList
  repeat with friendItem in friendListitem
    if {name:searchChara} is in friendItem then set data of friendItem to chengeChara
  end repeat
end repeat
log friendList
4131:2007/03/25(日) 05:08:03 ID:tpMiKjPS0
目が冴えて寝れない。もう一つ質問いれさせてください
上のデータで全くもんだいないのですが、今までファイルメーカで作ってテキスト保存していたのが

{{はるか:"八方美人",まるみ:"おっとりタイプ",このデータは内緒です:"最悪",なお:"可愛い子"
,てるみ:"天然"},{せーじ:"マジ死ねば?",ともゆき:"ネクラ",くっちゃん:"便利なタクシー"}}

こんな形の参照リストでした。リストの結合でこれを作る方法はありませんか?
ただの知的興味なのですが、これできないのかなー?わからん。少し悔しい!!!
3時間ほどがんばってギブアップした。エディター渡して命令おくっててのは悔しいし
ダブルクォーテションの問題でるかもしれないし

iBookだと画面ちっちゃくて遊べない。寝なきゃ明日も職場のマックつかってあそぶんだい
42名称未設定:2007/03/25(日) 07:21:05 ID:bWS2Vocm0
私もそれが知りたい。
OS9ではRecordAccessというOSAXでList>Record変換はすんなり出来てるんだけど
OSXで簡単に出来る方法が見つからない。
できれば、シェルスクリプトやPerlは無しの方向でw
43名称未設定:2007/03/25(日) 16:29:00 ID:eRV1XgXz0
>>40
>set friendList to {{{
は練習用ならいいんだけど、リスト{{レコード}, {}, ...}と言う形式を使う場合、{}が一個多い。

>>32 は{}が一個多いけど、リストに新規のレコードをひとつ追加ということをするのに、
それ以外の書き方をするとうまくいかなかった。

>>41
>テキスト保存
ファイルの中身が2段落目そのものでいいのかな?
ロードしたテキストを","で切ってリストにして、リスト1項目を":"を切ってレコードにセットするか、
リストの入れ子かな。
(AppleScript's text item delimiters)前スレでも出てた話題だと思う。
"{","}" "¥""をそれぞれで削除する。
タブ区切りテキストか、CSVの方が他でも使い回しやすい。
4443:2007/03/25(日) 16:48:33 ID:eRV1XgXz0
訂正
>リスト1項目を":"を切って ×
 リスト1項目を":"で切って ○

>"{","}" "¥""を ×
 "{","}","¥""を ○
4531:2007/03/25(日) 17:51:44 ID:tpMiKjPS0
>>43
う、もう一つ入れ子にしてたのを、まわして削除する練習ををやった、のこるんだね
気をつけないと
デリミタで削るのもやったんだけど、したら
recodeの {name:"はるか", data:"八方美人"} (この形だけじゃなくリストからとか色々試した)
が "{はるか:八方美人}" ってstring になるんよ
もちろんスクリプトエディタの中で手打ちで {はるか:"八方美人"} って打つとrecodeになるんだけど
だから、いちどファイルメーカの計算式で {はるか:"八方美人"} をつくって、書き出して、とりこんでたの

したら、いつからか ” が \" で取り込まれるようになって。でもって\が消せなくなった
デリミタで指定してもエラーがでるん

レコードってプロパティーで指定しようにも、要素の名前に関しては変えられないし(やりかたわるいだけだろーけど)
ファイルメーカの作る計算式のフィールドやテキストだけじゃなく、クリップボード経由とかいろいろ
やるのはやってみたんだよ?

スクリプトエディターいろいろ部品つくってやってると、間違えてないはずなのにエラーが出る事ある
最初は一度終了してたんだけど、一度、みーとかにペースとして、コピーすると大丈夫な事がある
これってなにかな?なんか余分な事おぼえてるの?エディタ。文字コードのもんだい?
このせいで、合計5時間くらいそんしたよーなきがする;;こんぴゅーた奥がふかい
46名称未設定:2007/03/25(日) 18:03:34 ID:qrwfhBbZ0
ごめん。何度も何度もあつ過ぎでウザイです。ほどほどにしてちょーよ。
47名称未設定:2007/03/25(日) 19:31:43 ID:OzJpp1pA0
TextEditで選択範囲の文字数カウントを実現させたいんだけど、
TextEditってselectionないよね?困った…
48名称未設定:2007/03/25(日) 20:02:34 ID:t93805zq0
うざければくるなよよそにいけや
別にすれ違いの話題でもないし俺も参考になってるからずっと見てるし
釣られたかな
49名称未設定:2007/03/26(月) 00:23:23 ID:JkdjM2uO0
まあでも書き込みは手短にすることもマナー的には必要なんでないかと
50名称未設定:2007/03/26(月) 01:34:51 ID:XrwO8JIk0
>>47
元ネタがどこだったか忘れた。おもろいスレかな?

tell application "System Events"
tell process "TextEdit"
tell text area 1 of scroll area 1 of window 1
set A to value of attribute "AXSelectedText"
end tell
end tell
end tell
51名称未設定:2007/03/26(月) 10:00:51 ID:zmnOe1JO0
>>48
お前みたいに搾取する一方の奴ならそれも良いだろうw
52名称未設定:2007/03/26(月) 11:32:25 ID:D9PZUaaL0
この程度の話で搾取なんて単語が何処から出てくるんだ。
頭大丈夫か?
53名称未設定:2007/03/26(月) 11:40:51 ID:7r8BzDV00
長文は2ちゃんでは嫌われる。
程よくまとめるのがマナー。

これ2ちゅんの常識。
54名称未設定:2007/03/26(月) 16:34:16 ID:XrwO8JIk0
どうでもいいが電王の姉はえろいな(;´Д`)ハァハァ
55名称未設定:2007/03/26(月) 21:48:35 ID:xM4Y8snD0
コマンド+クリックをスクリプトからできないかと調べていたら
クリックできるアプリを発見

Extra Suites - 1.1
http://www.versiontracker.com/dyn/moreinfo/macosx/16666
$10

アプリなんで
tell application "Extra Suites"
ES move mouse {10, 20}
ES click mouse with command
end tell
な感じで使う。

GUIのこれは無理だった
key down command
delay 1
click
delay 1
key up command
56名称未設定:2007/03/26(月) 22:46:44 ID:/RjXIjXY0
OS9では、S穫di's Additions OSAXで
Command,Shift,Capslock,Option,Control-clickのコンビネーション何でも出来るけど
57名称未設定:2007/03/28(水) 23:15:16 ID:LgEb6IRD0
スクリプトメニューから実行中のAppleScriptを終了させるAppleScript(別のスクリプトで)か
シェルスクリプトの命令やそういうものってあるでしょうか?
アクティビティモニタを見てもAppleScriptのプロセスはないようなのですが・・・
58名称未設定:2007/03/29(木) 01:34:56 ID:qoUX18R40
コンパイル済みスクリプトなのかアプリケーションなのか
59名称未設定:2007/03/29(木) 08:00:50 ID:kieQIGPn0
コンパイル済みスクリプトでした。申し訳ありません。
60名称未設定:2007/03/29(木) 10:51:45 ID:EepGNAx80
スクリプトのダイアログがバックグラウンドに入っちゃうと、
最前面に出せなくなって、エクスポゼも効かなくなっちゃうんだよね。
61名称未設定:2007/03/29(木) 19:33:28 ID:DmhxG/ar0
tellブロック内で

activate
display dialog "..."

って書くのが基本だもの。
6257,59:2007/03/30(金) 07:46:35 ID:u6Iq56EE0
アクティビティモニタをよく見ていたらSystem Eventsをquitすればいいことがわかりました。
63名称未設定:2007/04/02(月) 19:39:30 ID:DQmhqd8X0
OS10.4です。
アプリケーションを起動して隠すという
ログイン項目のような作業のスクリプトの書き方を
教えて下さい。
宜しくお願いします。
64名称未設定:2007/04/02(月) 19:53:38 ID:NycG1M9g0
こういうことかな

tell application "iTunes" to activate
tell application "System Events"
tell process "iTunes"
set visible to false
end tell
end tell
65名称未設定:2007/04/02(月) 20:02:55 ID:NycG1M9g0
activateじゃなくてrunとかlaunchのほうがいいか。
66名称未設定:2007/04/02(月) 20:14:31 ID:DQmhqd8X0
>>64>>65
ありがとうございます。
activateのところをrunに変えてつくりました。
バッチリでした。
67名称未設定:2007/04/03(火) 21:32:54 ID:u4vEl9Vn0
sloginなどによるリモートからではなく、デスクトップからの
最終ログアウト時刻を取得する方法があれば教えてください。

6831:2007/04/06(金) 09:26:08 ID:soziMuzN0
>>42
見通しがきかないところで参照配列やクラスをつくったらだめだってプログラムしてる人におしえてもらった
それ自体が変数になるわけだから、とくにアップルスクリプト見たく
定義済みのことばがほかのアプリのハンドラ呼び出したときにあるときにはだめだって
だから実体で書けって。で、変数でつくるなら>>32さんのやり方にすべきだって

プロの人相手だから理屈以外は教えるな!!みんなで作るんだからってほかの事は聞かなかったよ
2行ほど増えるだけだもんね。がまんする

>>43
アップルスクリプトデミリタで特殊なキャラクタがつかえなくなったのはストリングをキャラクタにリスト分解して回すので解決しましたです
過去ログってよみかたわからんかったから、自分でがんばってみた

ファイルメーカの蔵書リストからインデザインで印刷用蔵書リストまでいったーそれも表紙の写真つき。がんばったー
ってまだまだがんばるけど。まずはこれをスタジオに移行からだ

長文嫌いな人多いんだね、でもって、私の口調もきにいらんのだろーしこれで消えますね。ありがとでした
私IP固定だからIDかわらんから非表示しといてくださいませ。スレ汚しごめんなさいでした
69名称未設定:2007/04/06(金) 14:43:45 ID:wzT/DHaW0
無駄に長い。
書かなくても良いことが多く書いてあって邪魔。
おしゃべりを楽しみに来てる訳じゃない。

ってとこだ、とりあえず俺は。
70名称未設定:2007/04/06(金) 17:22:03 ID:3Y3RDImm0
71名称未設定:2007/04/06(金) 18:55:14 ID:JkL+be6a0
>>68
InDesignももちろんいいが、その関係ならOpenDocumentフォーマットも試して見ることをお勧めする
72名称未設定:2007/04/06(金) 20:22:34 ID:3Y3RDImm0
>>31
僕は、AppleScript でオブジェクト指向を悟りました。

ちなみに、AppleScript には Objective-C とか C++ でいうクラスはないです。
(クラスのように振る舞うオブジェクトを作ることはできますが)
なぜか、AppleScript では、データの型や object specifier の種類のことをクラスといいます。
73名称未設定:2007/04/06(金) 20:52:39 ID:3Y3RDImm0
>>60
tell application (path to frontmost application as unicode text)
display dialog "aaa"
end tell

としたら、そういうトラブルは避けられるのではないかしら?
74名称未設定:2007/04/06(金) 22:06:58 ID:NJ6XHWl60
>>72
うーん、なんか違うような・・・
7572:2007/04/06(金) 22:25:15 ID:LWVkxEKI0
おかしなことを言っていたら教えてね。
7631:2007/04/07(土) 01:56:06 ID:fSF34XxB0
もうこないっていってたのに;;てかここでもIDかわるんだね。IDかわってた、ごめんなさいってきただけです
余分なこと書かないと本題に入れない人種もいるんです。奥さんいる人だったらわかるよね。ごめん、おしゃべりしにここにきてるんだ
壁でもいいんだけど、とにかく話さないと自分でなっとくできないん。で、ここってそーゆーとこだと思ってた、てか思ってるから。スピードも遅いし

{class:abc{name:"myObj",state: 1}}って書き方がイコールクラスとかおもってた。わたしどしろーとだからちがってたらごめんなさい。","いるんだっけ?
cのクラスの書き方と違ってるのはわかるけど、ほかのアプリのクラス呼ぶときにこうやってつかうじゃん、アップルスクリプトの中ででも
でもって型指定もできるし、ってas使えるんかためしてないけど。明日やろーって。ちょっと始めたばかりのしろーとがえらそーになにをいっておるんだ?

連想配列の多次元をそうよぶのかなーーー?ってかってにおもったりして(意味わかんなく書いててやっぱりまったく言葉の意味わかってないです)

カラオケ行ってこの時間。よっぱらってぐだぐだ。書かないっていってたのに書いてる。非表示してくれてるよね、大丈夫だよね?
おーぷんどきゅめんと、ぐぐってウキでみた。でもってめちゃ感動した。やってみる。それで書いたのがリッチテキストフォーマット?

デリミタ使わずに分割するやつ、仕事場においてて今ない。へたっぴだけど見てくれる人いるかな?明日家にメールで送って、でもってここ見に来て
もし添削してくれるひとがいたらみてほしいかも。いらないよな。ただ is in の使う本当の意味を私が知らなかっただけ。まだ知らないんだけどね

おやすみなさいませ。本当にきらわれただろーな、こんな酔っ払い勢いれすかいて。本当にどこかの雑談部屋にでも移動します
77名称未設定:2007/04/07(土) 03:07:53 ID:iHwiyiKE0
おやすみ。
明日二日酔いで目覚め自分の書き込み見て吊りたくなっても思いとどまるんだよ。
命は大切にしなきゃね。
78名称未設定:2007/04/07(土) 03:35:51 ID:ebDpPp9a0
2度と書き込まんでくれ
79名称未設定:2007/04/07(土) 12:54:32 ID:3D17A5aZ0
そこまで言わなくても…。
80名称未設定:2007/04/07(土) 15:00:42 ID:4n8TdiTq0
>>76
次からトリップ付けろ。
ttp://info.2ch.net/guide/faq.html#C7

一律フィルタしてるから読まずに済む。で、文句も言わずに済むw
81名称未設定:2007/04/08(日) 09:31:08 ID:74OqTMs70
すいません、スーパー初心者な質問をさせて下さい。

あるアプリケーション(Cocoa)をコントロールしたいんですが、対象になる
アプリケーションが内的にAppleScriptに対応してないと(AppleScriptに対応する
コードが用意されていないと)、AppleScriptではコントロールできないんでしょうか。

例えば、そのアプリでまず指定されたファイルを開き、その後アプリのメニュー操作を
して開いたファイルの処理をさせる、なんてのができるといいなと思っているんですが。
82名称未設定:2007/04/08(日) 10:43:12 ID:Fp+4KrnO0
>>81
>指定されたファイルを開き
open 〜 using 〜 (Finder)
>アプリのメニュー操作
"System Events" + ユニバーサルアクセス>補助装置を使用可能にする
/Library/Scripts/UI Element Scripts/ あたりを見てみるといいかも。
8381:2007/04/08(日) 13:49:29 ID:74OqTMs70
>>82
早速情報ありがとうございます。
いくつかスクリプトを走らせてみましたが、なーるほど、面白いもんですね。

ただ、Get User Name.applescript では、真ん中辺の click radio button 1 で
NSReceiverEvaluationScriptError: 4 と出てしまいました。
実際、開かれた System Prefs のウインドウには radio button が見当たりません。
UI のデザインに依存してしまうということですかね。当たり前かもしれませんが。
84名称未設定:2007/04/08(日) 19:36:30 ID:BbOPzCxu0
教えてください
ログアウトさせるスクリプトはどう書けばいいのでしょうか?
過去ログ(関連スレ含め)見たけれど載っていませんでした
ここを読め!というのでも教えてください
85名称未設定:2007/04/08(日) 19:52:46 ID:KwpoZKHK0
tell application "System Events"
log out
end tell
8684:2007/04/09(月) 09:25:48 ID:aNg3NdP90
>>85
さっそくありがとうございました
ところでこの辺の文法はどこで調べればいいのでしょうか??
いろいろググッたのですが見つかりませんでした
87名称未設定:2007/04/09(月) 09:42:39 ID:EdZUzp3Q0
>>86
スクリプトエディタを起動
ウィンドウ>ライブラリ
"System Event"をダブルクリック
8884,86:2007/04/09(月) 10:05:46 ID:aNg3NdP90
>>87
ありがとうございました
こんなところにあったとは 感謝です!!
89名称未設定:2007/04/10(火) 06:06:24 ID:cdUurWfO0
スクリプトメニューから起動したスクリプトを
実行途中で止めることできますか?
90名称未設定:2007/04/10(火) 08:20:25 ID:v1G/a+EF0
91名称未設定:2007/04/10(火) 21:27:03 ID:LZ9goXqt0
>>90
うお、すぐ上にあったとは・・。
すんません。ありがとう。
92名称未設定:2007/04/14(土) 15:51:43 ID:XbFrI5cC0
ライブラリマニュアルの見方がよくわからん。。
用例とかサンプル載せてほしいな
itemsとだけ書いてあってもわからんて。。。
93名称未設定:2007/04/14(土) 18:22:52 ID:DAI6PCi30
http://hp.vector.co.jp/authors/VA031742/webtrans_safari.html
こんなのを見つけて便利だなと思いましたが、翻訳先を
http://www.google.co.jp/translate_t?hl=ja
ここに変更するにはどうすればよいのですか?
94名称未設定:2007/04/14(土) 20:02:58 ID:z7Jk1Q3O0
目的のURLを
"http://www.google.co.jp/translate?u="

"&langpair=en%7Cja&hl=ja&ie=UTF8"
の間に挟めばいいだけでは?

翻訳結果のアドレスを見ると元のURLがエンコードされてるけど
そのまま渡してもいけるっぽい。

set theURL to "http://bbs.applescript.net/viewtopic.php?id=20857"
set pre to "http://www.google.co.jp/translate?u="
set suf to "&langpair=en%7Cja&hl=ja&ie=UTF8"
open location (pre & theURL & suf)
95名称未設定:2007/04/17(火) 08:41:02 ID:SamWz3Pc0
AppleScript始めてみようと思い立ちました。
スクリプトエディタを少しだけ触ってみました。

感想:スクリプトエディタの「記録」機能が、ものすごく使い勝手が悪い。

例:
1.「記録」を押す
2.Safariを立ち上げる
3.Mail.appを立ち上げる
4.SafariやMail.appの間を行き来して、ウインドウを開いたり閉じたり、メールを受信したり
 ウェブでファイルをダウンロードしたりページを印刷したりする
5.さぞや色々と記録されているだろう、とスクリプトエディタを見てみたら、何も記録されて
 いない

……もうちょっとインテリジェントな記録機能を持ったソフトは無いものでしょうか?
96名称未設定:2007/04/17(火) 10:46:05 ID:GWm3cWg40
>>95
アプリがイベント吐いてくれないと記録されない。
スクリプトエディタはアプリのスクリプトライブラリを視る物として使うべし。
97名称未設定:2007/04/17(火) 14:19:19 ID:fLzoAPcX0
Automatorスレと迷いましたが、こちらで質問させてください。

現在、フォルダを監視するスクリプトを探しています。具体的には以下のような
感じです。

#監視対象先のフォルダにファイルが追加される
#そのファイルのエイリアスを別の場所(たとえばデスクトップ)に作成する
#一定時間(たとえば48時間)が経過したらそのエイリアスは削除される

どのような感じで作成していけばよいのか皆目見当が付きません。フォルダアク
ションやAutomator、AppleScriptなど便利そうな機能がてんこ盛りのはずなの
に使いこなせないとは恥ずかしい限りです・・・orz

こんなスクリプトがあるよ、こんな風にしてみたらなどのご教示お待ちしていま
す。
98名称未設定:2007/04/17(火) 15:34:42 ID:ne3i/G9u0
>>97
add - new item alert.scpt が、Folder Action Scripts にあるので、ココラ辺を参考にする。OS 10.4ならば。
99名称未設定:2007/04/18(水) 18:36:01 ID:sY/pE2P+0
監視対象のフォルダを監視するスクリプトと
エイリアスのフォルダを監視するスクリプトの2つ作る事になるかな?
監視対象のフォルダはフォルダアクションを使い、>>98の方針でやるとして
エイリアスのフォルダの一定時間で削除のほうが面倒くさそう
100名称未設定:2007/04/18(水) 18:50:23 ID:GArid0JS0
>>99
98って,一定時間で消すために
iCalのalert機能使ったらって話ではないの?
101名称未設定:2007/04/19(木) 09:24:57 ID:weB4jTNJ0
一定時間後の削除にはシェルの sleep コマンドを使ったらどうでしょう?
102名称未設定:2007/04/19(木) 12:13:11 ID:PRbfRORN0
長時間待ち、待ってる間にも何かしたいのなら
on idle使った、自動的に終了しないアプリ形式でしょ
103名称未設定:2007/04/19(木) 14:19:22 ID:1U9ejU020
>>97
目的が「フォルダ監視して、エイリアス作って、時間が過ぎたら削除」したい事
ならば外してますが、、、

「一定時間の間特定のフォルダ内に作られたファイルを見えるようにしときたい」
のが目的ならスマートフォルダを利用するのが良い気がします。

そうでなくても時間が過ぎたら削除の代わりにスマートフォルダはつかえるかと。
104名称未設定:2007/04/19(木) 23:38:59 ID:weB4jTNJ0
idle ハンドラは applet/droplet にしか使えないから、folder action script とは相容れない。folder action script からそれ専用の applet/droplet を起動するという手もあるけど、当然一つしか立ち上がらない。

ファイルの削除だけなら、sleep コマンドを含むサブプロセスを起動した方が絶対にいいと思う。
105名称未設定:2007/04/20(金) 09:17:39 ID:BNbXTO6M0
97です。

>>98-104のみなさま、レスありがとうございます。

簡単なように思っていましたが、実は結構高度なテクニックを要するもののようですね。残念ながら、私は全く理解できないコマンドのオンパレード・・・。どなたか上手い具合に作っていただけないものでしょうかねぇ・・・(他力本願モード)
106名称未設定:2007/04/20(金) 10:50:14 ID:7Df6htzv0
>>105
使用目的や用途をはっきりさせれば、だれか作ってくれるかもね。
107名称未設定:2007/04/20(金) 10:58:58 ID:FQP9KUAY0
>>105
いろんなことを知らないといけないのはそのとおりだけど、何を知らなければいけないかはっきりさせて、一つ一つ習得していかないと・・・

* フォルダにファイルを入れられたらスクリプトを起動する。
( フォルダアクションの使い方を知る)
* エイリアスを作る。
* 遅延させてのコマンドの実行
* ファイルの削除

以上一つ一つは簡単なことだと思うよ。

個別に質問すれば、きっともっと具体的な情報が得られると思うよ。
108名称未設定:2007/04/20(金) 12:11:51 ID:jeTNvz9i0
基本的に監視型というか受動型の動作はアップルスクリプト向きではないので、
可能ならば能動型の方法を考えてみるのがいいかも。
109名称未設定:2007/04/20(金) 18:52:46 ID:FQP9KUAY0
監視型/受動型の動作には何が向いているのだろう?
110名称未設定:2007/04/20(金) 22:26:13 ID:y7x5w4450
AppleScriptに頼らないなら、QueueDirectoryを指定したプログラムを
LaunchAgentにしてフォルダを監視させ、検知したらエイリアスを作って、
所定時間後にそれを消すatコマンドでも登録すればいいのかな。

シェルスクリプトで作るのが実は一番らくぽいな。

11181:2007/04/21(土) 19:36:44 ID:NmjEfVzI0
>>110
「QueueDirectoryを指定したプログラム」って具体的には何?
112名称未設定:2007/04/21(土) 19:39:02 ID:NmjEfVzI0
おっと昔の名前が(w
113名称未設定:2007/04/21(土) 20:02:58 ID:FfZ6Jc660
>>111

2つのファイルを用意する。

a: 以下のような動作をする自作プログラム
こいつの仕事は、起動したら監視対象フォルダ(たとえば書類フォルダ)の中で
前回チェック時以降に増えたファイル(つまり、前回のファイル一覧をどこかに
書きだしておく必要がある)それぞれについて、デスクトップにエイリアスを作
る。また、作ったエイリアスに対して、所定時間後に消すような仕込みを行う。

# 仕込み=atコマンドでいいと思ったんだが、デフォルトでは止められてるのか。

b: MacのLaunchAgentsメカニズム用の plistファイル。
中身はXMLファイルで、
:
<key>QueueDirectories</key>
<array>
<string>/Users/xxxx/Documents</string>
</array>
:
のような部分を含む。これを ホームのLibrary/LaunchAgent/nantoka.plist
という名前で置いておくと、ログイン時に、/Users/xxxx/Documents(=書類
フォルダ)に変更があるたびに上記aのプログラムを起動するように設定される。
(man launchd.plist を見た感じではそう理解した)

たぶんこんな感じになると思う。
114名称未設定:2007/04/23(月) 01:06:17 ID:Ei43T+ji0
むりにやってみたお

--"Macintosh HD:Users:hoge:documents:add:"用のフォルダアクション
on adding folder items to this_folder after receiving these_items
set theDate to (do shell script "date '+%s'")
tell application "Finder"
make new alias file at (path to desktop folder) to these_items with properties {comment:theDate}
end tell
end adding folder items to

--ログイン項目用
on idle
set theDate to (do shell script "date \"+%s\"")
tell application "Finder"
set aliasFileList to (every alias file of (path to desktop folder) whose comment is not "")
repeat with curAliasFile in aliasFileList
set theComment to (comment of curAliasFile)
try
if theDate - theComment > 60 then
if ((container of original item of curAliasFile) as alias) is alias "Macintosh HD:Users:hoge:Documents:add:" then
delete curAliasFile
end if
end if
end try
end repeat
end tell
return 1
end idle
115名称未設定:2007/04/23(月) 09:08:29 ID:Z5U+anzj0
デリミタ関連で以下のスクリプトがうまく動かないのは最近だっけ?
10.3.9では動くんだが10.4.9でアプリケーションだと動かん。

set pushTemp to AppleScript's text item delimiters
display dialog pushTemp

set aaa to (path to applications folder) as file specification
set aaa to aaa as string
set AppleScript's text item delimiters to text item -1 of aaa
display dialog AppleScript's text item delimiters
display dialog (ASCII number of AppleScript's text item delimiters)

set bbb to (path to home folder) as file specification
set bbb to bbb as string
set ccc to text item -2 of bbb
display dialog ccc

set AppleScript's text item delimiters to ":"
display dialog AppleScript's text item delimiters
display dialog (ASCII number of AppleScript's text item delimiters)

set ddd to (path to home folder) as file specification
set ddd to ddd as string
set eee to text item -2 of ddd
display dialog eee

set AppleScript's text item delimiters to pushTemp
116名称未設定:2007/04/24(火) 10:47:52 ID:k7GvUUnD0
as string を as Unicode text にすると、10.4.9 でも動くみたいね。
117名称未設定:2007/04/24(火) 12:03:42 ID:b1MCh6zg0
設定切り替え。かなり強引で美しくないでしょうけどこんなのを書いて個人的に便利に使っています。。

tell application "Finder"
activate
display dialog "どうするのよ?" buttons {"ああああ", "いいいい"} default button 2 with icon note
if button returned of result = "いいいい" then
duplicate file "別フォルダに保管してある環境設定ファイル1のパス" to folder "Preferencesフォルダのパス" with replacing
beep
else
duplicate file "別フォルダに保管してある環境設定ファイル2のパス" to folder "Preferencesフォルダのパス" with replacing
beep
end if
delay 2
tell application "その設定ファイルのアプリ"
run
quit
end tell
end tell
118名称未設定:2007/04/25(水) 01:23:38 ID:oJsbFD8G0
>>116
あーやっぱ10.4.9じゃ動かんか。
取り敢えず時間がないんでアレなんだが、検証していただいたお礼まで。
119名称未設定:2007/04/25(水) 18:51:43 ID:uSfJt+Gk0
Finderのスクリプティングについて質問させて下さい。(Mac OS X 10.4.9)

どのFinderウィンドウも手前でなく、デスクトップがアクティブになっている
(デスクトップをクリックした状態)かどうかを知る方法はないでしょうか?

1つのフォルダに対して処理をしたく、
 1. デスクトップがアクティブになっているならデスクトップフォルダ
 2. 最前面のFinderウィンドウで選択しているのがフォルダが1つの場合はそのフォルダ
 3. 最前面のFinderウィンドウが表示しているフォルダ
という優先度で対象フォルダを特定したいのです。

2.はselectionのlistを解析、3.はtarget of front Finder windowで特定できます。
1.が分かりませんでした。
120名称未設定:2007/04/25(水) 19:05:19 ID:COvqWpgc0
insertion locationは?
121119:2007/04/25(水) 20:13:17 ID:uSfJt+Gk0
>>120
即レスありがとうございます。
insertion locationは見逃してました。これは便利ですね。

で結局、
 ・デスクトップ上の1フォルダを選択している場合にはそのフォルダを対象にしたい
 ・insertion locationはtarget of front Finder windowも兼ねる
ので、前述の1.は省略して、次のような処理にしました
122119:2007/04/25(水) 20:13:53 ID:uSfJt+Gk0
-- 対象の1ディレクトリを取得
on target_directory()
tell application "Finder"

-- 選択がフォルダ1つならそれ
set selection_items to selection
if ((count of selection_items) is equal to 1) then
set first_item to (item 1 of selection_items)
try
folder (name of selection_items) of (container of first_item) --フォルダでなければはエラーになる
return first_item as alias
end try
end if

-- 手前のFinderウィンドウの表示フォルダ、またはデスクトップ
try
set insertion_location to (insertion location)
return insertion_location as alias --コンピュータディエレクトリなどはエラーになる
end try

end tell
error "フォルダが特定できません"
end target_directory
123119:2007/04/25(水) 20:24:03 ID:uSfJt+Gk0
あ、バグ発見

× folder (name of selection_items) of (container of first_item)
◯ folder (name of first_item) of (container of first_item)
124名称未設定:2007/04/26(木) 00:06:07 ID:+j7r39qR0
AppleScriptのスレで手ごろなお題が出てても
試してみようという意欲がわかない事に愕然・・・
もう俺は若くない orz
125名称未設定:2007/04/26(木) 01:19:07 ID:vTdLK+ZT0
自分の中で需要がないからでないかい?
ここの処理自動化したい、とか
126名称未設定:2007/04/26(木) 05:54:13 ID:7ecwEz4J0
iSyncのsync statusについて教えてください。
例えば、以下のようなスクリプトを走らせたとします。
用途としては、携帯電話(705NK)とBluetoothでシンクさせます。

tell application "iSync"
synchronize
repeat while syncing
delay 1
--set HOGE to (sync status)
end repeat
return (sync status)
--return HOGE
end tell

このとき、仮にMac、携帯電話片方もしくは両方のBluetoothを切っていて、
シンクできずにiSync自体はエラーダイアログを表示させていたとしても、
sync statusの返り値が正常終了を表す"2"になるのですが、
使い方を間違っているのでしょうか?
スクリプト中のコメントアウトを外した場合も同様です。

最終的には、シンクが正常終了した場合にのみ、
iSync自体を自動終了させたいと思っています。
127名称未設定:2007/04/27(金) 00:06:16 ID:38dbxADk0
・OS10.3.9
・スクリプトエディタ2.0(V43.1)
・Microsoft Excel 2004 for Mac

この組み合わせでスクリプトの記録がまったくできないんですけど
ちょっと上のレスの「アプリがイベントを吐いてくれない」ってことでしょうか?

Microsoftのサイトには「Office 2004 を自動化 ! AppleScript 体験」なんて
ページもあるのに。。。
128名称未設定:2007/04/27(金) 17:30:25 ID:SydUyU8f0
残念ながら、記録はあんまり当てにしない方がいいと思いますよ。
そもそも、できるアプリケーションが少ないし(いまどきなに何があるのかしら)、記録できたとしても、多くの場合そのまま使えるコードにはならない。

初めてのアプリケーションの scirpting のとっかかりとしては悪くない手段だと思うのですけどね。でも、それ以上にはならないからだと思うのだけど、サポートされていることの方がまれです。
129名称未設定:2007/04/27(金) 18:17:57 ID:gJK6JF4M0
ちょっと前は記録をサポートしていたQTP(v6.x)も、今では未対応。
130名称未設定:2007/04/27(金) 18:24:47 ID:sOH1Tt0g0
本当の入門者はどういうところからはじめればいいんだろう?
131名称未設定:2007/04/27(金) 18:48:03 ID:Uy6zJNOk0
>>130
>>1にあるサイトのコンテンツの
Mac OS XのAppleScript入門、基本編です。
http://www.tonbi.jp/AppleScript/intro/basic.html
がいいんじゃない?
凄い丁寧だし日本語だし
132名称未設定:2007/04/27(金) 19:23:29 ID:SydUyU8f0
日本語の web site で AppleScript の情報を一生懸命更新しているサイトって最近はほとんど無いですね。
昔はいっぱいあったのにどうしちゃったのだろう?

英語で申し訳ないけど、
http://www.macscripter.net/
などは、入門記事をすごく頑張っています。
133名称未設定:2007/04/27(金) 19:41:02 ID:9OED1Wdh0
AppleがClassicの頃に出していたAppleScript言語ガイドは今のOSXでもそのまま使える?
134130:2007/04/27(金) 20:10:15 ID:sOH1Tt0g0
>>131,132
ありがとう。
こつこつやってみます。
135名称未設定:2007/04/27(金) 20:41:51 ID:SydUyU8f0
>>132
使えます。幸か不幸か言語としてはまったく変わっていないから。
Xcode に含まれている言語ガイドもその英語版で、ほとんど(もしかしたらまったく)アップデートされていません(必要ないからだと思うけど)。
136名称未設定:2007/04/27(金) 21:50:38 ID:gJK6JF4M0
wiki立ててまとめちゃうのは?
137名称未設定:2007/04/27(金) 21:51:00 ID:9OED1Wdh0
>>135
そうなんだ、本を捨てずにとっておいて良かった。


今AppleScriptStudioってどうなっているの?
ググってみると無償配布されたという記述があるけれど、その後の情報が見つからない。
Xcodeに統合された?
138名称未設定:2007/04/27(金) 22:07:18 ID:mm/r/0JH0
>>137
Xcodeに統合されてます。
139名称未設定:2007/04/27(金) 22:51:57 ID:qE4HH7o20
正直、AppleScript Studioでまともなもの作れなかった。

自力でこれが精一杯だった。まあ便利なんだけど。
>ttp://blog.so-net.ne.jp/MyCometG3/2005-11-29
ソース付き。激烈にしょぼい。適当に作ったのがよく分かるでしょ。

AppleScript Studioで作ったソース付きのソフトですごいやつ、もし
知ってたら教えて。

Cocoaなオブジェクトの呼び出し方が分かればもうちょっとやれるんだけど
そこまでやるならCocoaで書いちゃうほうが楽だったりして・・・
140名称未設定:2007/04/28(土) 00:00:01 ID:mm/r/0JH0
141名称未設定:2007/04/28(土) 00:16:03 ID:367554Pt0
AppleScriptからCocoaを呼び出す意味あるのかね。
NSAppleScriptでAppleScriptを扱う方がいいと思うけど。
142(・∀・):2007/04/28(土) 01:07:16 ID:2fUQhInQ0
>>126
まったくsyncしてないからでは?
synchronizeの返り値がfalseのとき、sync statusが変化しないかと。
143名称未設定:2007/04/28(土) 01:17:52 ID:GZC+HjDH0
>>141 オレもそう思う
AppleScript Studioは凝ったものを作ろうとするとCocoaの知識が必要になってくる。
だったらCocoaで書ける部分はCocoaで書いてしまったほうが早い。

記録機能と一緒にとっとと打ち切り表明してしまったほうが混乱しないのでは。
144名称未設定:2007/04/28(土) 05:02:34 ID:bgKdh6Y/0
むかしベーシックを覚えたとき、高度なことをやるならマシン語を覚えて・・・
ていうのを見て、それ以上はやらなくなった口なので、
ココアには手を出さないようにしている。
145名称未設定:2007/04/28(土) 10:36:54 ID:X7n8TzlX0
>144
その口ならアセンブラの手前までは大丈夫。Cocoa覚えなさい。
146名称未設定:2007/04/28(土) 11:41:09 ID:md+ocJ5v0
つかCocoaを使う=BASIC
Cocoaを作る=マシン語
昔に比べると質が180度違うけどな。
考えるより、覚える調べる量が圧倒的に多くなった。
147名称未設定:2007/04/28(土) 12:11:03 ID:YNnN8wSb0
どこかのページに,プログラムの中ではAppleScriptは簡単な方だと書いてあった.
それはプログラマーの視点からみればそうなのかもしれないけれども,初心者には
やっぱり敷居が高いなあってつくづく思う.
148名称未設定:2007/04/28(土) 12:58:00 ID:GZC+HjDH0
プログラミング自体向き不向きがあると思う

ただ、単に読んだ本が良くないとか、勉強方法変えれば変わる場合もあるので
挫折した人も、簡単に自分には向いてないと決めつけないで欲しい。
149名称未設定:2007/04/28(土) 18:00:44 ID:+wQpj4Ny0
150名称未設定:2007/04/28(土) 20:40:43 ID:X7n8TzlX0
>147
プログラマからするとAppleScriptは挙動がいまいち信用ならんと言うか、直感的
に動かないところが多くて困る。もうAppleもAppleScriptにこだわらずにPython
とかRubyを取り込んじゃってくれると嬉しいな。
151名称未設定:2007/04/28(土) 23:04:56 ID:mNeIL1g/0
アプリケーション操作の自動化という目的だから,AppleScriptしか選択肢が無いわけです.
本格的にやろうと思っていろいろ調べたんですけど,関連書籍が少なすぎるんですよね.
152名称未設定:2007/04/29(日) 00:33:00 ID:NB71B86P0
用語辞書と>>149を見ながら試行錯誤するのは1つの学習方法として良さげな希ガス
153名称未設定:2007/04/29(日) 01:03:54 ID:AD0YkZeM0
小難しい解説よりも,サンプルの方が役立つという好例ですよね.Okamotoさんのページ.

敷居の高さの一つに,用語解説が英語表記っていうのがあるんです.ちょっとしたことなら,
英語辞書見ながら調べればいいんですが,複雑なことやろうとした時に,いちいちこれを
やっていると,開発モチベーションが下がってしまったりとかですね.

翻訳サイトだと,逆に意味不明になったり…….ま,初心者側の視点なんですけれどね.
154名称未設定:2007/04/29(日) 11:37:24 ID:KPuserks0
>>150
>AppleScriptは挙動がいまいち信用ならん
あぁ、ハゲしく同意。
あるアプリのある機能を使わなくてはならない、AppleScriptを使った方が楽でなければそれ以外ので書くなあ。
155名称未設定:2007/04/29(日) 14:14:06 ID:KFJd/yqU0
>>154
具体的に「何のナニを何で書く」の? 情報に価値が無いのだが。
156名称未設定:2007/04/29(日) 14:39:56 ID:KPuserks0
>>155
>情報に価値が無い
つ スルー

テキスト処理はawkとshell scriptの組み合わせ。(HTML生成。HTML内から必要なものを抽出)
ファイル名の変更・移動はshell script(.DS_Storeの情報を失っていいもの。その逆はAppleScript)かAutometor。
GUIでファイル項目をリスト化して処理(Finder上の手前に見せる?ゴミ箱に移動など)はCocoa。

AppleScriptを使う範囲はFinderラベル・コメントをつけるときに使う。(その前の条件によって抽出する部分はmdfindやfindなどを使う)
他にはiTunesのタグ修正をまとめてやったり。
1機能1スクリプトに収まるようなものはAppleScript。(スイッチが必要なものはAutometor)
157名称未設定:2007/04/29(日) 18:29:58 ID:ct362dJi0
数行書くだけでも面白いことができるから,やっぱりAppleScriptはやめられないかな.
完成した時の喜びが忘れられないから,また挑戦したくなってきちゃうわけですよ.
158名称未設定:2007/04/29(日) 20:21:19 ID:IVf6gXAc0
StringEngine 1.8.1ってどうよ?
試したこと無いんだけど、AppleScriptで文字列操作が楽になるのかな?
159 :2007/04/30(月) 09:52:51 ID:BNn80NQq0
Autometorってなんでつか?
160名称未設定:2007/04/30(月) 14:37:32 ID:9SLCwxb20
>>159
もう許してやれ。
161156:2007/04/30(月) 14:39:22 ID:yoyN45CL0
もしかして: Autometer んん
訂正
>Autometor ×
 Automator ○
162名称未設定:2007/04/30(月) 21:16:20 ID:Z9CmQGzo0
Automatorは観客の目に止まらぬ速度で動いてはならない。
だから遅いんだ。

ってばっちゃが言ってた。
163名称未設定:2007/04/30(月) 21:32:20 ID:TBVSwlk40
起動さえ早ければもっと我慢できるんだが…
164名称未設定:2007/05/01(火) 01:52:21 ID:J9biiSE30
iTunesで再生回数を変更するのではなく既存の数字に足す
ようなScriptは無いでしょうか
色々探しても見つからなかったんです
165名称未設定:2007/05/01(火) 02:15:43 ID:iumjDYa00
>>164
tell application "iTunes"
  set defaults_message to 0
  tell me
    display dialog "追加するカウント: " default answer defaults_message with icon note
    set ret to result
  end tell
  set v_count to 0
  
  if ((button returned) of ret) = "OK" then
    set v_count to (text returned) of ret as number
  else
    return
  end if
  
  set t_list to selection of window 1
  repeat with tC in t_list
    copy tC to C
    if true then -- ここをfalseにすると入力値がそのまま再生回数になる
      set newCount to v_count + (played count of C)
      if newCount < 0 then set newCount to 0
      set played count of C to newCount
    else
      if played count of C is not v_count then
        set played count of C to v_count
      end if
    end if
  end repeat
end tell
(* 選択範囲対象。再生回数にマイナス値も設定できるのか。要全角スペース置換 *)
166名称未設定:2007/05/01(火) 02:23:20 ID:J9biiSE30
>>165
ありがとうございます
今エディタにコピーしたところエラーメッセージで
「"end"または”end tell"があるべきところですが unknowntokenが見つかりました。」と出ました。

場所は"iTuens"のすぐあとです
167名称未設定:2007/05/01(火) 02:28:54 ID:XlWqrOjZ0
>>166
行頭に全角スペースはいってるから消す
168名称未設定:2007/05/01(火) 02:30:24 ID:iumjDYa00
>>166
全角スペース" "を空白か" "で置換のあとコンパイル。
全角スペースでインデントってやめたほうがいいのか。

>>167 thx.
169名称未設定:2007/05/01(火) 02:41:46 ID:J9biiSE30
>>166
出来ました!
くだらないことで聞いてすみません
ありがとうございます
170名称未設定:2007/05/01(火) 02:42:31 ID:J9biiSE30
アンカーミスですすみません
>>167
171名称未設定:2007/05/01(火) 03:20:56 ID:iumjDYa00
(* 再生日を捏造 数秒のBEEP音数個でしか試していない *)
>>165 に追加
set dateTmp to current date -- 追加
repeat with tC in t_list
-- (ry
-- 日付捏造開始
-- try
set timeduration to duration of C
set dateTmp to (dateTmp - timeduration) as date
set datePlayed to played date of C
set dateAdded to date added of C
if datePlayed is missing value or dateTmp > dateAdded then
set played date of C to dateTmp
else
if dateAdded is not missing value then
set played date of C to dateAdded
end if
end if
-- end try
-- 日付捏造終了
end repeat
end tell
(* 対象リストをひっくり返すか、改造した方がよいかも *)
172名称未設定:2007/05/05(土) 03:12:44 ID:0ECnNzBq0
「ナビゲーションバーを表示」に今頃気付いた・・・
Xcodeも使ってて気付いても良さそうなものを
173名称未設定:2007/05/05(土) 18:26:35 ID:qlxUmv9W0
OS9でドロップレットを作成しています.ヒントいただけませんか.
ドロップレットに格納されたファイル名"A","B","C"から,"B"を除いた"A","C"のみを
データとして格納したいのですが,上手い処理方法が思い浮かばす困っています.
174名称未設定:2007/05/05(土) 18:40:59 ID:weAJzw3A0
>>172
結構スクリプト書いて遊んでるけど知らんかった・・・。
これは便利だ。
情報サンクス。
175名称未設定:2007/05/05(土) 21:18:16 ID:lTFpSJkD0
>>173
もっと具体的に。
176名称未設定:2007/05/05(土) 22:46:07 ID:qlxUmv9W0
>>175
具体的に書きます.
Desktop上の名称未設定フォルダの中に,AとBとCというファイルが三つ.
以下のドロップレットに3つのファイルをドロップします.

on open theList
repeat with curltem in theList
display dialog theList as string
end repeat
end open

そうするとtheListには,
Macintosh HD:Desktop Folder:名称未設定フォルダ:A
Macintosh HD:Desktop Folder:名称未設定フォルダ:B
Macintosh HD:Desktop Folder:名称未設定フォルダ:C
というデータが格納されますよね.

このtheListの中を,
Macintosh HD:Desktop Folder:名称未設定フォルダ:A
Macintosh HD:Desktop Folder:名称未設定フォルダ:C
のかたちにしたいわけです.

つまり,ドロップ後にBだけを削除してtheListへ格納する考え方がわからず困っています.

177名称未設定:2007/05/05(土) 23:11:22 ID:CZrj4Nve0
>>176
例1)
on open theList
tell application "Finder"
repeat with curltem in theList
if name of curltem is not "B" then
display dialog curltem as string
end if
end repeat
end tell
end open

例2)
on open theList
set theList2 to {}
tell application "Finder"
repeat with curltem in theList
if name of curltem is not "B" then
set end of theList2 to contents of curltem
end if
end repeat
display dialog theList2 as string
end tell
end open

MacOS9.2.2/AppleScript 1.6にて動作
178名称未設定:2007/05/06(日) 00:16:01 ID:eLFGKXST0
>>177
display dialogの表示だけでなく,データの中味も一緒に変えたいので,
例2が使用目的に合致しました.

>set theList2 to {}
これは変数を宣言するんだけど,list形式だから""ではないということなんですよね.
なるほどです.それとcontentsの使い方,とても参考になります.ありがとうございました.
179名称未設定:2007/05/06(日) 12:47:36 ID:JP5tXn9E0
>>158
AppleScript の文字列処理で面倒なのは、AppleScript's text item delimiters をカチャカチャ切り替えなくてはいけないところ。
そういう面倒が無いように作った。

それ以外にも、役に立つ文字列処理ルーチンを詰め込んだつもり。

使えば、コードは確実にコンパクトかつ見やすくなり、記述量も少なくなるから、開発速度も上がるはず。
180名称未設定:2007/05/06(日) 12:53:55 ID:JP5tXn9E0
>>150
挙動が不確実なのは、本当に AppleScript のせいなのでしょうか?
具体的な例がないので、勝手に想像してコメントすると・・・

AppleScript と OSAX だけで閉じているようなスクリプトなら、そのような印象は受けないのではないでしょうか?

たぶん、アプリケーションへのイベントの送受信が絡んでくるとそういう印象になるかと思います。でも、これは OSA の仕組みやアプリケーション側のscirpting のサポートの実装の問題なので、言語を ruby や python に変更しても問題は解決されません。
181177:2007/05/06(日) 13:03:14 ID:V/IyWIUl0
>>179
スレ違いだが、Perl mode for miのお陰でMacJPerlを現役で便利に使っている。感謝。

>>178
175氏ではないけれどお役に立てたようで何より。
自分は書籍「AppleScriptリファレンス」で学ぶことがとても多かった。
182(・∀・):2007/05/06(日) 14:04:02 ID:EtLKRnat0
>>180
ASのせい。
このスクリプトはインタプリタなせいか、やたら型を意識させない。
が、実際に動作させれば型だらけ。

set a to "1"
set b to a * 1.0
a is b

これの実行結果はfalse。判定部分は型変換してくれない。

set a to "A" & "B" & "C"
の実行結果は"ABC"
set a to 0 & "0" & 1
の実行結果は{0, "0", 1}
set a to "0" & "0" & 1
の実行結果は"001"

入力の型や並びによって出力の型も変わってくる。
だったら、コンパイルエラーにしてくれ。
デバッグでバカみたいに時間掛けるくらいならちまちま
型指定して時間掛けた方が効率がいい。
あと、関数の引数に型を指定できるようにしてくれ。
183名称未設定:2007/05/06(日) 15:24:41 ID:JP5tXn9E0
>>182
>ASのせい。
>このスクリプトはインタプリタなせいか、やたら型を意識させない。
>が、実際に動作させれば型だらけ。
変数に型は無いけど、データが型を持っているというのは、スクリプト言語では特殊
なことではないです。

Ruby も Python も知らないけど、たぶん事情は一緒だと思う。

自分の知っているPerl の場合、スカラ変数には、文字列, 数値, リファレンスなど
を格納できて基本的に変数は型無しで、データを型を持っている。しかし、演算子に
従って自動的に型変換をしてくれるという機能があるけど、これがいいかどうかは考
え方次第で、例えば、数値として比較するのか文字列として比較するのかで演算子が
違う。個人的にはあまりスマートではないと感じます。

シェルスクリプトの場合は、データも型が無くて全部テキストになります。
でも、データ構造を表現できないとういうことですので、良いとは言えません。

データの型を意識しないでいい高機能な言語などあるでしょうか?

> 型指定して時間掛けた方が効率がいい。
結合や比較を行う際に、全部 as 演算子でデータのタイプをそろえるということでも
一緒ではないかしら?

変数に型を持たせることは、Duck Typing できなくなるということなので、柔軟性と
引き換えになります。今時の言語の流行に逆らうことになりますので、良い考えでは
ないと想像します。
184名称未設定:2007/05/06(日) 15:26:40 ID:79LYjr7L0
OS9環境で,フォルダとファイルのどちらにも対応したドロップレットを作成中なのですが,
あちらが立てばこちらが立たずという堂々めぐりの状態で,ほとほと困ってます.

list folder では,ドロップしたファイルにパスが付かず,ファイルを読み込ませるとエラー.
list folderを使わなければ,ファイルの扱いは楽になるものの,フォルダの扱いができない
という悪循環で苦戦しています.少しヒントいただけんせんか.


>>181
だいぶ前にその本買ったんですけど,引っ越しで行方不明に…….また買おうかな.
185名称未設定:2007/05/06(日) 15:39:13 ID:JP5tXn9E0
>>184
ドロップした物が、ファイルかフォルダか調べて、条件分岐するというだけではダメなのでしょうか?
186名称未設定:2007/05/06(日) 15:54:36 ID:79LYjr7L0
>>185
以前にも挑戦したのですが,その時は上手くいかずでして.
条件は,ファイルタイプを使えばいいということでしょうか.
187名称未設定:2007/05/06(日) 16:10:32 ID:79LYjr7L0
>>185
もう一度,いろいろやってみます.
188名称未設定:2007/05/06(日) 16:10:39 ID:JP5tXn9E0
>>186
うまくいかないとはどういうことでしょう?
ファイルとフォルダの判別の仕方がわからないということでしょうか?
やり方はいろいろあります。

1) パス文字列から判定する。
as Unicode text して、":" で終わっているパスであればフォルダ
そう出なければファイル

2) info for コマンドを使う。

速度的/簡便さでは、1) ですが、フォルダとパッケージの区別がつきません。区別しないくてもいいのなら、それで OK です。
info for コマンドがやっぱり王道でしょうか。
189名称未設定:2007/05/06(日) 16:18:39 ID:EOo20W2n0
>>186
対象がファイルかコンテナかを判別するのは
if i as string ends with ":" then
がベストジャマイカな
190189:2007/05/06(日) 16:19:24 ID:EOo20W2n0
かぶったすまそ
191名称未設定:2007/05/06(日) 16:50:12 ID:a1ktdFnl0
つまらぬこととは思いますがご教示ください。

OS: Mac OS X v10.3.9
ScriptEditor: 2.0(v43.1)
AppleScript 1.9.3

この環境で

on open drop_items
tell application "Finder"
(display dialog "Please Enter the date." default answer "2007/1/1")
set TextReply to text returned of the result
--(ここに、drop_itemsの作成日や変更日を変更するスクリプトを書くつもり)
end tell
end open

とやると、

Can't make "2007/1/1" into a boolean.

というエラーが表示されてしまいます。

私の書き方がおかしいのでしょうか? どうぞよろしくお願いいたします。
192名称未設定:2007/05/06(日) 16:53:24 ID:79LYjr7L0
>>188
>>189
ends with ":"でやってみたものは,組み方が悪いのか上手く動作しなかったんです.
info forは書き方がよくわからいので,調べてみないとちょっと書けません.

サンプル
on open dropitem
repeat with droplist in dropitem
display dialog droplist as string buttons {"OK"}
end repeat
end open

これに,ファイルがいくつか入っているフォルダをドロップします.

ファイルならば,これで一つずつdisplay dialogに表示されますが,
フォルダだとパス含めたフォルダ名しか表示されないため,ダメなわけです.

repeat with droplist in list folder dropitem
にすれば,逆にフォルダをドロップしてパス無しファイル名は読めるわけですが,
ファイルをドロップするとエラーになってしまいます.

こんな基本的なこともわからないのが,とても恥ずかしいのですですが,
どうしても作りたいドロップレットがあり,なんとか解決したいのです.
193名称未設定:2007/05/06(日) 17:09:18 ID:JP5tXn9E0
>>192

こんな感じでどう?ちなみに動作確認していません。

on open dropitems
set a_list to {}

repeat with an_item in dropitems
set a_path to an_item as Unicode text
if a_path ends with ":" then
set folder_contents to list folder an_item
repeat with a_name in folder_contents
set end of a_list to a_path&a_name
end repeat
else
set end of a_list to an_item
end if
end repeat

repeat with an_item in a_list
display dialog an_item as Unicode text buttons {"OK"}
end repeat

end open

194名称未設定:2007/05/06(日) 17:32:14 ID:a1ktdFnl0
>>191
本人です。大変失礼いたしました、

--(ここに、drop_itemsの作成日や変更日を変更するスクリプトを書くつもり)

の部分でエラーが発生していました。
スレ汚し申し訳ありませんでした。
195名称未設定:2007/05/06(日) 17:34:16 ID:79LYjr7L0
>>193
イメージ通りの振り分け処理ができました.めちゃくちゃ嬉しいです.
これを元にして,作成中のスクリプトに組み込んでみます.
ありがとうございました.
196名称未設定:2007/05/06(日) 17:34:17 ID:JP5tXn9E0
>>191
>on open drop_items
>tell application "Finder"
>(display dialog "Please Enter the date." default answer "2007/1/1")
>set TextReply to text returned of the result
>--(ここに、drop_itemsの作成日や変更日を変更するスクリプトを書くつもり)
>end tell
>end open

これだけでは、

>Can't make "2007/1/1" into a boolean.

という、エラーは起きるはずが無い。
>--(ここに、drop_itemsの作成日や変更日を変更するスクリプトを書くつもり)
に原因があるはず。
197名称未設定:2007/05/06(日) 17:46:29 ID:4FbxpOzH0
作成日はROじゃなかった?
そこで出てるのかな?
198名称未設定:2007/05/06(日) 22:06:37 ID:dzpebvY00
191です。

>>196さん
まさにそうでした。
--(ここに、drop_itemsの作成日や変更日を変更するスクリプトを書くつもり)
のところで
set TextReply to TextReply & " 0:0:0"
とすべきところを
set TextReply to TextReply and " 0:0:0"
なんてお馬鹿なことやってたので…。

>>197
あれからいろいろやってみたのですが、やっぱりCreation dateはR/Oのようでした。
うーんこんなことも知らなかったなんてお恥ずかしい。
こばやし先生のリファレンスや掌田先生のゼンマイとか読んだつもりだったのですけど、そこまで読み取れてませんでした…。

で、結局シェアウェアのFileBatchExchanger_XとAmTouchCMXを併用してなんとか初期の目的を果たしました。

スレ汚しすみませんでした。
199名称未設定:2007/05/06(日) 22:07:45 ID:dzpebvY00
191です。
あぁ〜197さん、敬称をつけ忘れてました。
大変失礼しました

o....rz
200名称未設定:2007/05/07(月) 01:27:50 ID:qzuBbUfr0
>>199
首が千切れてるぞ!
201名称未設定:2007/05/07(月) 17:25:06 ID:IsyCF6DZ0
--初心者スレを誘導。スペースを削除して、スクリプトエディタに張り付け。ってこんなことせんでもおーとめーたとかでできるんかな?
--さくっとつくったから、エラー処理してない。10.4.9でだけ確認。連休明けは仕事する気にならんな。暇つぶし
global folderRef
global newFileExtension --10.4.9のapplescliptって property 使えたっけ?覚えさすならつかってくんろ

choose folder "拡張子を変更したいフォルダを選択♪" & return & "中にフォルダあったらいまんとこ無視ね"
set folderRef to result

display dialog "変えたい拡張子" default answer "rtf"
set newFileExtension to (text returned of result) as string

--on open fileList --ドロップレットも対応したければ中身も考えること、ここ生き返らすだけじゃだめだよ?
tell application "Finder"
  set fileList to every file in folderRef --こことかね
  repeat with objName in fileList
    set fileClass to class of objName
    if fileClass is document file then
      changeNameFile(objName) of me -- ファイルの場合
    else
      -- 中身がフォルダで処理したいときここハンドルにして再帰使えばよいよ
    end if
  end repeat
end tell
--end open
--ハンドラにつづきまーす
202名称未設定:2007/05/07(月) 17:25:59 ID:IsyCF6DZ0
--はんどらね
on changeNameFile(fileAlias)
  tell application "Finder"
    set fileExtension to name extension of fileAlias
    set fileExtension to fileExtension as string
    set fileName to name of fileAlias
    set fileName to characters of fileName
    set fileName to reverse of fileName
    set x to ""
    repeat with oneChara in fileName
      set x to oneChara & x
      if x is fileExtension then set x to newFileExtension
    end repeat
    set fileNameStr to x as string
    try
      set name of fileAlias to fileNameStr
      --set properties of folderRef to {name extension:newFileExtension} --だめ;;ファイルのぷろぱてぃは、りーどおんり?
    on error
      display dialog "アクセス権及びファイル名称を確認してね" & return & "後で" buttons "後で" giving up after 5
      return
    end try
  end tell
end changeNameFile
203195:2007/05/08(火) 00:45:49 ID:XuGlgijP0
>>193
あれから,自作スクリプトに教えていただいたサンプルを組み込んでみたのですが,
なぜかそちらでは上手く動作させることができず,残念ながら結局それを使うのは
あきらめました.

あたりまえではあるんですけど,スクリプト処理の流れを読まずに単に組み込むのは,
やっぱりダメですね.でも,書き方は大変参考になりましたので,あらためて感謝します.
204195:2007/05/08(火) 01:41:45 ID:XuGlgijP0
dropletができました.ご報告の意味で前回と同様グラコンスレで公開します.
このスレで助けていただいたみなさん,本当にありがとうございました.
20572:2007/05/08(火) 19:22:05 ID:53oaLaXR0
>>203
>なぜかそちらでは上手く動作させることができず,残念ながら結局それを使うのは
>あきらめました.
訳もわからずにあきらめちゃったら、まったく理解が進まないよ。
そういう困難を乗り越えてはじめて実力が養われると思うけど。
206195:2007/05/09(水) 02:26:40 ID:7PResKpQ0
>>205
教えていただいたスクリプトは,時間はかかりますけれど,スキルアップのための血や
肉として活用させていただいてます.たまには(いつもかな?)手抜きもありますけど,
その辺は大目にみてやって下さい.

207名称未設定:2007/05/12(土) 03:45:30 ID:4ArrBaUB0
保守がてらに
OS 9のようにウィンドウをたたむ
(バージョンによっては出来ないかも)

tell application "Finder"
    tell front Finder window
        set windoe_bounds to bounds
        set (item 4 of windoe_bounds) to (item 2 of windoe_bounds) --高さ0にする
        set bounds to windoe_bounds
    end tell
end tell
208名称未設定:2007/05/12(土) 14:33:39 ID:Yt1Zdl6d0
先生! まったく動きません!

OS X 10.4.9 AS 1.10.7
・set bounds to windoe_boundsでFinder got an error: Can't set bounds of Finder window 1 to {ホゲホゲ}."
OS 9.2.2 AS 1.8.3
・tell front Finder windowでSyntax Error: Expected class name, etc. but found identifier.
・上記をtell front windowに変えて、set bounds to windoe_boundsでFinder got an error: Invalid size for object
209名称未設定:2007/05/12(土) 16:20:05 ID:4ArrBaUB0
ツールバー非表示じゃないとダメだった
OS 9は知らん。つか普通に畳めばいいでしょ。

tell application "Finder"
tell front Finder window
set windoe_bounds to bounds
if (toolbar visible) then
set (item 4 of windoe_bounds) to (item 2 of windoe_bounds) + 36 --高さ36にする
else
set (item 4 of windoe_bounds) to (item 2 of windoe_bounds) --高さ0にする
end if
set bounds to windoe_bounds
end tell
end tell
210名称未設定:2007/05/12(土) 17:12:09 ID:nQKDHhlj0
> OS 9は知らん。つか普通に畳めばいいでしょ。

今更、何たる言い草 ┐(´д`)┌
211名称未設定:2007/05/12(土) 18:35:54 ID:NA52r8mC0
OS 9は普通に畳めるので
tell application "Finder" to set collapsed of front window to true
212名称未設定:2007/05/12(土) 19:53:26 ID:4ArrBaUB0
>>210 池沼か
213名称未設定:2007/05/13(日) 11:59:25 ID:pCnuiqip0
iTunesで選択した曲にアートワークを貼りたいのですが、
以下のスクリプトだとエラーになります。

tell application "iTunes"
set trackList to selection

try
set imageFile to open for access file 画像ファイル
set artworkImage to read imageFile as picture
end try
close access imageFile

repeat with cur in trackList
set data of artwork 1 of cur to artworkImage
end repeat
end tell

どなたかアートワークを貼るスクリプトを教えて下さいませ。
214名称未設定:2007/05/13(日) 17:18:53 ID:Lu78kaF80
スレの最初に「このスレにペーストするコードがインデントされるように、行頭の空白を
わざわざ書き直す必要はありません。」って注意書き入れるべきだったね。おれも過去に
はじめて書き込んだときはそれやったし。歴代のapplescriptスレはみんな優しい人ばかり
で、相手の流儀に合わせてやるって人が多いんだと思うけど、単純に不便でしょ。全角スペースとか。
215名称未設定:2007/05/13(日) 19:09:55 ID:Mlzj0Qv90
2chがタブ受け入れてくれたら一番いいんだけどな
216名称未設定:2007/05/14(月) 15:03:35 ID:7/AYRcHL0
受け入れてはくれてるよ。datには記録されてるでしょ。
htmlのソースへも出力されてなかったっけ?
それがブラウザ上で再現されるよう、タグを入れるような処理が無いというだけ。

高負荷であえいでいる2chなのだから、そのような期待はすべきでない。

2chブラウザ側で再現する、という手はある。
navi2chとかは、そのまんま表示しているだけだと思うけど、
タブが反映された表示になってる。

全角スペースでもいいと思うけどね。
全置換すればいいわけだし。
217名称未設定:2007/05/14(月) 19:18:57 ID:Ef5GNbOs0
applescriptプロトコル + URL圧縮サービス
というのを思いついたけどかえって手間がかかって面倒。

>>213
http://tinyurl.com/3xgkh4
ファイルサイズが大きくなるのが難点
218名称未設定:2007/05/14(月) 19:42:50 ID:WKZ6wOjB0
 


てst
219名称未設定:2007/05/14(月) 19:45:05 ID:WKZ6wOjB0
本当だ。
220名称未設定:2007/05/15(火) 00:20:50 ID:Ykh+3yiR0
>>217
サンクス。
なるほど、一度PICTに変換してから貼付けるのか。
その場合、513バイトから読み出すのが肝だと思うが、
JPEGの場合はどうなんだろうか?
色々試してみたけど、エラーは出ないがアートワークが無地になったりして、
仕様が良く分からないよ...
手動で貼付ける場合も一旦PICTに変換して貼付けてるのだろうかな?
その割には、format属性で読み取ると、JPEG picture ってなってるし。

221名称未設定:2007/05/19(土) 17:14:44 ID:2JgCwBit0
【標準装備】スクリプトエディタのdat、誰かうpしてくれませんか。
222名称未設定:2007/05/19(土) 20:00:58 ID:Ns9TBGEW0
>>221
ttp://mimizun.com/log/2ch/mac/pc9.2ch.net/mac/kako/1111/11117/1111760449.dat
953レスまで。
>>1のリンク先だと981までなので、CMThreadConverter.appで変換したもの。
ttp://up3.viploader.net/mini/src/viploader139333.zip
223名称未設定:2007/05/19(土) 20:32:17 ID:2JgCwBit0
>>222
ありがトン!
224名称未設定:2007/05/21(月) 23:54:03 ID:3k/9lzSq0
say "ho shu"
225名称未設定:2007/05/26(土) 01:27:04 ID:gQF1kooZ0
保守
226名称未設定:2007/05/26(土) 23:54:01 ID:EjpbSa6E0
Konfabulatorを終了させるにはどう書けばいいのでしょうか?

tell application "Konfabulator" to quit だと親ガメだけ終了して
しまいます…
227名称未設定:2007/05/27(日) 00:48:02 ID:ZHcVnMMy0
killコマンドで
228名称未設定:2007/05/27(日) 08:14:31 ID:LhrW2zF80
>>226
繰り返せば子ガメも順に終了してくれるよ。
229226:2007/05/27(日) 08:35:03 ID:Eat3D8gb0
>>227,228
ありがとうございます。
killコマンド ていうのはオレには敷居が高いみたいっす…
繰り返し でいけました。
230名称未設定:2007/05/27(日) 14:51:35 ID:2FiFDqNa0
AppleScriptで、PDFファイルの指定したページを自動的に開く方法はありませんでしょうか。
普通のPDFファイルをひらくのは、
tell application "Finder"
open document file "hogehoge.pdf"
end tell
で出来ましたが、さらにhogehoge.pdf の、50ページ目を開く方法がわかりません・・・
231名称未設定:2007/05/27(日) 17:36:45 ID:MlE+BIif0
OSとか。
対象はAdobe ReaderかPreviewかとか。
232名称未設定:2007/05/28(月) 01:23:32 ID:o1agGAqz0
元のファイル名はバラバラのものをドロップ
ダイアログで統一ファイル名を入力
これに統一ファイル名に番号を付けてもらい、ファイル名を上書き

という作業を on open やら set i to i + 1 とか使いスクリプトエディタで組みました。

command + クリックで選択した順に付けてほしいのですが、無視されてます。
何を基準に1から番号を付けてくるのか不明ですが、制御できないのでしょうか?

初歩な質問ですみません。
233名称未設定:2007/05/28(月) 11:08:01 ID:nbembZ5I0
>>232
>command + クリックで選択した順に付けてほしいのですが、無視されてます。
>何を基準に1から番号を付けてくるのか不明ですが、制御できないのでしょうか?

たぶん、選択した順番を取得するのは無理。
Finder で並んでいる順番でソートしてから処理したらどうでしょうか?
こういうことする為に、僕は次のようなものを作って使ってます。
http://homepage.mac.com/tkurita/scriptfactory/ScriptLibrary/index.html#FileSorter
234名称未設定:2007/05/28(月) 12:44:36 ID:o1agGAqz0
>233さん 大変に感謝です。ありがとうございます! 利用させていただきます。

winでは、macでいうfinder上で統一名称 + 通し番号が付けられるのでションボリでした
235名称未設定:2007/05/28(月) 14:23:32 ID:K98aT93G0
最近Macを触り始めて
applescriptに興味を持ったので
”AppleScript Studioでゼンマイびゅんびゅん!!”
と言う本を買ったのですが10.4.7だと属性を選んだりするところが本とは変わっていて
困惑してしまております

最近のOSX10.4.用の本やHPがありましたら教えていただけないでしょうか
236名称未設定:2007/05/28(月) 15:25:25 ID:Ypn/Br7I0
237名称未設定:2007/05/29(火) 00:14:51 ID:7j29IY4N0
>>234
さすがに選択した順番は無理だなぁ。
フォルダアクション設定してファイルを1つずつそのフォルダに追加して追加された順番に名前つけるとかくらいだね。それはそれで、外部ファイルに最後に使った連番数字を記憶させておかないとかもしれないけど。

>>27のようにウインドウ内でソート出来る内容なら
Tigerならsortコマンドが使えると思う。
Automatorでも並び替えできる。
238名称未設定:2007/05/29(火) 01:34:07 ID:QcOqBGH80
iPhotoとかInDesignは選択順ができるんだけどね
PathFinderとか、代替Finderでできるの無いかね。
俺もあれば使いたいかな。
239名称未設定:2007/05/29(火) 02:53:15 ID:rElqoVP70
じゃあstay-openなドロップレットに一個ずつドロップする方向で・・・
240名称未設定:2007/05/29(火) 03:07:27 ID:lpAeHpce0
>>234
>winでは、macでいうfinder上で統一名称 + 通し番号が付けられるので
winもmacと同じくらい長いこと使ってるのに知らなかったorz
winでのやりかた教えて下さい。
241名称未設定:2007/05/29(火) 03:25:38 ID:TZHhJsCk0
>>231
OSは、MacOS 10.4 です。
Previewは最初からApple Scriptには対応してなさそうでしたが、こちらでできれば文句ありません。
できない場合は、Acrobatで。
242名称未設定:2007/05/29(火) 03:42:04 ID:rElqoVP70
>>241
こんなのかな
tell application "Preview"
activate
open file "path:to:file.pdf"
end tell
tell application "System Events"
tell process "Preview"
repeat while not (exists window 1)
end repeat
if not (exists tool bar 1 of window 1) then
keystroke "b" using {command down}
end if
repeat while not (exists tool bar 1 of window 1)
end repeat
repeat while not (focused of text field 1 of group 1 of tool bar 1 of window 1)
keystroke tab
end repeat
set value of text field 1 of group 1 of tool bar 1 of window 1 to "50"
keystroke return
end tell
end tell
243名称未設定:2007/05/29(火) 04:03:29 ID:HEO8r+kO0
>>242
> Previewは最初からApple Scriptには対応してなさそうでしたが、
GUI Scriptingで強引に、ってだけなんだけどねw
動かした奴をコピペするけど、delay n を適当に挟んだ方が確実かもしれない。

tell application "Preview"
activate
open "hoge.pdf"
end tell
tell application "System Events"
tell process "Preview"
keystroke "g" using {command down, option down}
keystroke "50"
keystroke return
end tell
end tell
244名称未設定:2007/05/29(火) 04:06:14 ID:HEO8r+kO0
orz
>>243>>241
245名称未設定:2007/05/29(火) 11:47:08 ID:C5WbQ6640
>>240
普通に複数ファイルを選択して、右クリック項目で名称変更を行えばOKだったはず。
今win機は手元にないんで。やり方間違ってたらごめんなさい。

通し番号をカスタマイズできない点は、スクリプトが便利か。
確か3桁(001)固定だった。
246名称未設定:2007/05/29(火) 22:39:43 ID:TZHhJsCk0
>>243
ありがとうございます!うまくいきました。
こんな方法があるとは・・・apple script 歴、1週間ですが、勉強になりました。
247名称未設定:2007/05/31(木) 22:59:22 ID:br3eMekB0
保守ついでに書いておく

スクリプトメニューは、
shift+選択で、Finderに表示。
option+選択で、スクリプトエディタで編集。
248名称未設定:2007/06/01(金) 21:15:27 ID:Bj8ZCtRe0
保守ついでに書いておく
FastScripts Liteおすすめ
ttp://www.red-sweater.com/fastscripts/
249名称未設定:2007/06/02(土) 03:19:30 ID:S+fKkAzW0
>>248
お!いいかも
Keyboard MaestroがUniversalになりそうもないから代わりになるの探したんだ
250名称未設定:2007/06/02(土) 06:44:32 ID:RILiexhg0
tell application "Script Editor"
set _win to count document
if _win is 0 then
beep
error number -128
end if
repeat _win times
tell application "System Events"
keystroke "k" using command down
delay 0.3
keystroke "s" using command down
delay 0.3
keystroke "w" using command down
delay 0.3
end tell
end repeat
beep
end tell
251名称未設定:2007/06/02(土) 14:54:42 ID:CN+7QLOx0 BE:754668656-2BP(466)
System Eventsのkeystrokeで矢印キーやエスケープキー、ファンクションキーを押させたいのですがどのようにしたら良いのでしょうか。
252名称未設定:2007/06/02(土) 16:47:48 ID:VVKyp2gx0
FKey 1
tell application "System Events"
keystroke (key code 122)
end tell

key code は、使用しているキーボードによって変わる場合がある。
よくつかわれるキーは、ほぼ一緒のkey codeだと思う。
判らない場合は、Ukeleleでも使って下さい。
253名称未設定:2007/06/02(土) 20:05:03 ID:CN+7QLOx0 BE:1358403269-2BP(466)
>>252
ありがとうございます。うまくいきました。
254名称未設定:2007/06/03(日) 17:51:40 ID:Wmf6sBiH0
使ってるモニタ&マウス&キーボード切替器のショートカットが「シフトを押しながらコントロールを二度打ち」です。
場合によってはマウスから手を放したくない事もあるので、こいつをマウスクリック一発でなんとかしたい。
アップルスクリプトはほとんどわからないなりに書いてみましたがだめです。
何かのキーを押しながら「二度打ち」ってアップルスクリプトで出来るのでしょうか?

tell application "System Events"
keystroke control using shift down
end tell

tell application "System Events"
keystroke control using shift down
end tell
255名称未設定:2007/06/03(日) 18:33:06 ID:UcjOuV2k0 BE:402489582-2BP(1000)
>>254
tell application "System Events"
key down shift
keystroke control
keystroke control
key up shift
end tell
256名称未設定:2007/06/03(日) 18:39:37 ID:/OYIioNf0
GUIのスクリプト書く時に便利なツール
http://developer.apple.com/samplecode/UIElementInspector/index.html
257名称未設定:2007/06/03(日) 21:41:00 ID:whgjzbnl0
ちょ待て「キーボード->切替器->Mac」なら
AppleScriptでキーストロークをエミュレートしても意味無いだろ
258名称未設定:2007/06/03(日) 23:22:02 ID:Trw8xGV00
>>251
ttp://www.fobit.de/index.php?article=%C4ltere%20Programme
の中のKeyCodeは以前別スレで教えてもらって助かってる。
259254:2007/06/03(日) 23:40:31 ID:Wmf6sBiH0
>>255
ありがとうございます。
残念ながらそれらしい動きはしましたが、切替器は反応せずに、その後シフトキーを押しっぱなしみたいな状態になってしまいました(・ω・`)ショボーン

ヒントはいただいたのでdelayとか入れて試行錯誤したいと思います。
260名称未設定:2007/06/04(月) 04:17:38 ID:o2dLXI2I0
>>259
まず>>257考えてみれって。
俺も使ってるが、どう考えてもAppleScriptじゃ無理だ。
261名称未設定:2007/06/04(月) 12:07:43 ID:O/0U3mMD0
>>258
>>251じゃないけどこれ助かる。サンクス
262名称未設定:2007/06/05(火) 22:51:32 ID:fABuziTw0
フォルダをドロップするとその中にあるファイルの個数を調べ、
その数をフォルダ名の末尾に追加するドロップレットあるいはワークフローを作ろうとしてるのですが、
そもそもフォルダ内のファイル数というのはどうやって取得すればいいのでしょうか?
263名称未設定:2007/06/05(火) 23:02:38 ID:WV64+yCr0
tell application "Finder"
set theFiles to every file of folder "Documents" of home
display dialog length of theFiles
end tell

例:書類フォルダの中のファイルの個数を表示する
264名称未設定:2007/06/06(水) 02:08:33 ID:b/p1mKCG0
へー length of とも書けるんだ
俺は count of って書いてた
265名称未設定:2007/06/06(水) 13:05:29 ID:f+U5yes90
info for hoge as aliasで、ファイルを調べていたら
ファイルタイプやクリエイターが未定義の場合の
返り値が、ヌルコードが四個, ヌルコード+"/Us", "????"
と、三種類ありました。

set creator typeなどで、未定義にしたい場合は、どれを
使うのが望ましいのでしょうか。
それとも、default applicationを指定した方が良いのだろうか。
266名称未設定:2007/06/06(水) 14:42:51 ID:5Lf7+T0i0
アルバム名をダイアログで指定したら、
そのアルバムに含まれている曲名を順序よくテキストファイルに書き出すスクリプト書いていただけませんか。

iTunesのブラウザからコピーすると、時間とかアーティストとか、
他のいろんなプロパティもコピーされちゃうんで、削るのがタイヘンす。
267名称未設定:2007/06/06(水) 14:48:08 ID:5fDMkCg40
>>266
iTunesの表示オプションでいらない物のチェックを外してからコピペ。
268名称未設定:2007/06/06(水) 14:49:04 ID:5Lf7+T0i0
>>267
神!!
ありがとございまふ。
269名称未設定:2007/06/06(水) 16:07:32 ID:r+qtvwAC0
OS9.2.2からOSX10.3.3に移行しているのですが
OS9で問題なく動くASがOSXで動かないケースが多く困っています。
いくつかは自己解決できましたが、移行する際の注意点などの情報があれば
教えて頂けないでしょうか?サイトでも書籍でも。
例えば以下の例ですが、コンパイルはするしエラーも起こさないのに動いてくれません。
どこに問題があるのでしょうか?

--フォルダー内にあるファイル名のpageをpに略すスクリプトです。
set olddelim to AppleScript's text item delimiters
set afolder to choose folder with prompt "名前を整理したいフォルダを選択"
global tmpstr
tell application "Finder"
repeat with afile in every file of afolder
set afilename to name of afile
my replace(afilename, "page", "p")
set name of afile to tmpstr
end repeat
end tell
set AppleScript's text item delimiters to olddelim

to replace(thetext, orgstr, newstr)
set AppleScript's text item delimiters to orgstr
set tmplist to every text item of thetext
set AppleScript's text item delimiters to newstr
set tmpstr to tmplist as Unicode text
return tmpstr
end replace
270名称未設定:2007/06/06(水) 17:54:49 ID:VnPvVkJz0
>>265
>set creator typeなどで、未定義にしたい場合は、どれを
>使うのが望ましいのでしょうか。

正式なやり方は知らないけど、僕は missing value を与えていた。

>それとも、default applicationを指定した方が良いのだろうか。

これを AppleScript からやる方法は無いと思う。
また、resources にアプリケーションへのパスを記入するという方法で行われるので、問題が多いからやめた方がいいと思う。例えば、アプリケーションの場所を移動させると、期待どうりに動かなくなる。

file type/creator をいじりたいだけなら、QuickFileType はどう?
ttp://homepage.mac.com/tkurita/scriptfactory/Softwares/FinderHelpers/QuickFileType/index.html
271名称未設定:2007/06/06(水) 18:00:42 ID:VnPvVkJz0
>>269
>例えば以下の例ですが、コンパイルはするしエラーも起こさないのに動いてくれません。
>どこに問題があるのでしょうか?
>
>--フォルダー内にあるファイル名のpageをpに略すスクリプトです。

確認していないけど、replace のなかの tmpstr が local 変数になっているんじゃないだろうか?
global 変数であることを期待しているように見えるけど。

次のようにしたらどうでしょう。

on run
set olddelim to AppleScript's text item delimiters
set afolder to choose folder with prompt "名前を整理したいフォルダを選択"
tell application "Finder"
repeat with afile in every file of afolder
set afilename to name of afile
set name of afile to my replace(afilename, "page", "p")
end repeat
end tell
set AppleScript's text item delimiters to olddelim
end run

to replace(thetext, orgstr, newstr)
set AppleScript's text item delimiters to orgstr
set tmplist to every text item of thetext
set AppleScript's text item delimiters to newstr
set tmpstr to tmplist as Unicode text
return tmpstr
end replace

動作確認してません。ごめんね。
272名称未設定:2007/06/06(水) 20:46:24 ID:vtDgUOwU0
>>265
System Eventsのtellブロック内で
set ... to ""
でよいんでは。

>>269
どうもここがまずいらしい
repeat with afile in every file of afolder
イベントログを見ると
count every file of alias ...
->0
となってる。

こうしたらいけた
set fileList to (every file of afolder)
repeat with afile in fileList

ただしtext itemのリストをasで確実に文字列に直せるのは
項目名がsjisだか日本語(Mac OS)だか
あのへんの範囲内の文字だけで表記されている場合のみ。
ユニコードオンリーの文字が混じってるとうまく扱えないことがある。
OS Xではrepeat文でリスト内項目を順番に文字列としてつなげていくか
またはtext item delimitersを諦めてdo shell scriptを使うのが現実的。
273285:2007/06/06(水) 21:31:34 ID:EU+sPIns0
>>270
>正式なやり方は知らないけど、僕は missing value を与えていた。
そんな定数が、あったんですね。知りませんでした。
missing value= "msng"

>問題が多いからやめた方がいいと思う。
なるほど、判りました。

>>272
>System Eventsのtellブロック内で
>set ... to ""
>でよいんでは。
それだとset creator type of ..... の所でエラーに、なっちゃうです。
OSTypeは、空文字列を受付けませんから。

お二方、ありがとうございました。
274275:2007/06/06(水) 21:32:25 ID:EU+sPIns0
うは、未来人になってもうた。w
275265:2007/06/06(水) 21:33:34 ID:EU+sPIns0
おちけつ俺
276名称未設定:2007/06/06(水) 21:35:38 ID:VnPvVkJz0
>>272
>ただしtext itemのリストをasで確実に文字列に直せるのは
>項目名がsjisだか日本語(Mac OS)だか
>あのへんの範囲内の文字だけで表記されている場合のみ。
>ユニコードオンリーの文字が混じってるとうまく扱えないことがある。

できれば、具体的な事例を教えていただけないでしょうか。
277名称未設定:2007/06/06(水) 22:03:23 ID:vtDgUOwU0
>>276
これとか
http://www.google.com/search?hl=ja&client=safari&rls=ja-jp&q=%E9%AB%99%EF%A8%91%E6%AD%A3%E6%B2%BB&btnG=%E6%A4%9C%E7%B4%A2&lr=

タカサキ(page16).txt
みたいなファイルを作って>>269(を手直ししたもの)を実行してみるといいと思う。

あらためていろいろ試してみたら「ユニコードが」というより
「ごく一部の文字が」と言った方がいいのかもしれないという気がして
よくわからなくなってきたけど。
「さえばりょう」なんかは問題ないし。
278名称未設定:2007/06/07(木) 09:33:09 ID:wkkNkkiQ0
>>277
>タカサキ(page16).txt
>みたいなファイルを作って>>269(を手直ししたもの)を実行してみるといいと思う。

ほんとうだ。だめじゃん・・・AppleScript。
bug report はしましたか?
279名称未設定:2007/06/07(木) 10:13:31 ID:E1PrKMc90
>>271
global 変数を宣言したあとでも local 変数扱いになるケースがあるのですか・・・?

>>272
いけました。同じ記述でOS9でもいけました。
変数を別の変数に置き換えると通ったことがそういえば以前ありました。
定義を受け付けていない変数はエラーとなるかわりに0を返すのかなぁ?

他の不具合チェックのヒントにもなりました。
皆様ありがとうございました。
280名称未設定:2007/06/07(木) 10:42:26 ID:q8Olc3Ol0
global は全てのハンドラの外側で宣言するか
全てのハンドラで宣言しなければグローバル変数としては扱われない

global hoge
on run
...
end run
to replace(thetext, orgstr, newstr)
...
end replace

なら正解。

on run
global hoge
end run
to replace(thetext, orgstr, newstr)
global hoge
end replace

も正解。

on run
global hoge
end run
to replace(thetext, orgstr, newstr)
...
end replace

は不正解。
281名称未設定:2007/06/07(木) 18:28:43 ID:+l1XwUpQ0
global じゃなくて
property だと、どう?
282名称未設定:2007/06/07(木) 21:33:39 ID:wkkNkkiQ0
>>281
>global じゃなくて
>property だと、どう?
property はハンドラの中では宣言できないよ。
常にスクリプトオブジェクトのトップレベルで定義される。
ちなみに、ほとんどの場合 global 変数より property を使うべきです。
global はトップレベルのスクリプトの property と値を共有したいときだけ使いましょう。
いっていることがわからなければ、property を使いましょう。
283名称未設定:2007/06/07(木) 23:25:46 ID:G5Sy2GOC0
10年やっていて、globalの使い方が未だにわからなくて手を出していないんだよな。
propertyはたくさん使っているけど。
284名称未設定:2007/06/08(金) 01:14:29 ID:z3EoP/qq0
というかほとんどの場合>>271みたいに
返り値をその場で変数におさめるだけで事足りるよね。
285名称未設定:2007/06/08(金) 01:17:41 ID:kBq8ZdbE0
>>283
>10年やっていて、globalの使い方が未だにわからなくて手を出していないんだよな。
>propertyはたくさん使っているけど。

http://homepage.mac.com/tkurita/scriptfactory/Monologue/SharingSourceCode/index.html#BetweenLibraryScripts

が、global 変数の有意な使い方の一つだと思う。
286名称未設定:2007/06/13(水) 00:01:02 ID:0dfFkjmv0
保守
287名称未設定:2007/06/13(水) 22:47:16 ID:tLh2g4BQ0
Safariでmake new tabマダー
288名称未設定:2007/06/14(木) 01:32:57 ID:qwPtFjX20
少々お尋ねします。当方10.4.9環境(自宅)で

display dialog "hey" default answer "12345678" with hidden answer

を実行しますと、「hidden」のところでつまずいてしまいます。

もしやと思い職場の同10.4.9環境にてテストしますと、
すんなりダイアログがでてきました。

スクリプトエディタはともにv2.1.1ですが、
変更日が違っています。(職場の方があたらしい)
このような場合の原因はわかりますでしょうか?

アップデータが上手くかかっていないのかとも考えましたが
(上記のhiddenが出来るようになったのは最近らしいので)
この辺の事情に明るい方、ヨロシク御願いします。
289名称未設定:2007/06/14(木) 01:56:39 ID:gfNYPXAQ0
>>288 明るくはないけど試してみた。
PPC Mac, 10,4.9、スクリプトエディタ-2.1.1 (PowerPC), StandardAdditions.osax 1.10.7 (PowerPC)
でできた。用語説明にも[hidden answer boolean]は出てた。

こういうのあったのか。
290288:2007/06/16(土) 02:37:41 ID:jHTPnb9N0
自己解決しますた。
システム/ライブラリ/ScriptingAdditions のなかに
StandardAdditions.osax 1.10.7 が入ってなかった。

# なぜだか ライブラリ/ScriptingAddtions のほうに古いのが
# 入ったままだったせいのようだ…。
291名称未設定:2007/06/16(土) 07:59:43 ID:eij9/csi0
すげぇ違和感w
>>289が結構なヒントになったんちゃうの? それを「自己解決」で締めるたぁ。

と傍目で見ると思うんだがのぉ。
292288:2007/06/16(土) 14:00:50 ID:jHTPnb9N0
>>291
誤解をまねく書き方でした。
最初の書き込みのあと、試行錯誤しているうちに
上記のように、自分なりに原因究明ができたのですが、
書き込みせずにいたところ
289氏のされたレスをみて、「おくればせながら…」報告した次第。

客観的にみれば、289氏には大変失礼な物言いになってしまいまいした。
ごめんなさい。
293289:2007/06/16(土) 16:39:26 ID:W3J2edLu0
>>292
実際そうだったようだし、結局自分で解決しないと誰かがかわりにやってくれるわけじゃないから
気にしなくていいんじゃね?
原因が書かれているので、蓄積としてよいかと。
PPC/x86の差でそうなるのか、動いている環境のコンポーネントのバージョンのズレ等々を並べていけば
原因にたどりつけるかなー、と思って書いたぐらいだったし。

あるファイルが壊れていた場合は再インスコか、そうしたボリュームから持ってこないと治らないけど、
TimeMachineでOS再インスコ後、ある時点に完全にリストアできるとこういう時楽になるね。
ソース書いてる途中バージョン違いで 「Hogeのコピー 1.applescript」が散らからなくて済みそうだし。
294名称未設定:2007/06/17(日) 13:37:20 ID:nQhMjbVU0
フォルダのファイルが更新されていたら、バックアップをとる、
というスクリプトはどうやって書けば良いでしょうか?
295名称未設定:2007/06/17(日) 15:05:20 ID:dGjKgSMc0
property 履歴ファイル: どこか
property 元フォルダ: どこか
property 退避先フォルダ: どこか

set 履歴リスト to 元フォルダ中のファイル名と変更日時の一覧
if 履歴ファイルが存在しない or 履歴ファイルと履歴リストが一致しない then
元フォルダを退避先フォルダにコピーする
履歴リストを履歴ファイルに書く
end
296名称未設定:2007/06/18(月) 02:08:13 ID:iN+2K/c00
ttp://bbs.applescript.net/viewtopic.php?pid=74654

上のページを参考に、システム時刻を変更するスクリプトを書いてみたんですが、
スクリプトがすぐ終わらずに数秒待たされたり、
時によってはそのまま戻ってこないことがあります。
UIスクリプティングってそういうもんなんでしょうか?

set d1 to date "Friday, March 24, 2006 1:38:39 PM"
setSysTime(d1)
log "done."
return
on setSysTime(time)
tell application "System Preferences"
activate
reveal anchor "DateTime" of pane id ¬
"com.apple.preference.datetime"
end tell
tell application "System Events"
tell process "System Preferences"
tell UI element 7 of group 1 of tab group 1 of window 1
set value to time
end tell
click button "Save" of group 1 of tab group 1 of window 1
end tell
end tell
tell application "System Preferences" to quit
end setSysTime
297名称未設定:2007/06/18(月) 03:23:33 ID:32/r1bld0
> UIスクリプティングってそういうもんなんでしょうか?

所詮、水物なんじゃあ?
適当に待ちを入れないとダメなこともあったり、同じ待ちでも繰り返し検証してるとダメな場合も
あったり。
298名称未設定:2007/06/18(月) 05:11:50 ID:iN+2K/c00
なるほど。それって297さんの経験上でしょうか?
100%実行できるとは限らないとなるとかなり使い道が限られますね。
そのへんの制限というか限界について書いてるものがあればいいんだけど。
299名称未設定:2007/06/18(月) 05:50:51 ID:h5pQ7i4X0
>>296,298
システム時刻を変更するだけならシェルスクリプトでできるよ。
do shell script "date 時刻" with administrator privileges
do shell script "date 時刻" password "パスワード" with administrator privileges
時刻の書式
ttp://x68000.q-e-d.net/~68user/unix/pickup?date
300名称未設定:2007/06/18(月) 16:36:55 ID:iN+2K/c00
>>299
どうもです。passwordを書けるの知らなかったです。
うまいこと行きました。UIスクリプトより全然速いです。
どうもありがとうございました。
301名称未設定:2007/06/18(月) 18:21:21 ID:Ehzbubto0
デフォルトブラウザの変更って Safari や Camino にシイラとかのブラウザの環境設定から変更するしかないんですかね。
RCDefaultApp などもありますが PreferencePane なので大して変わらず。

Terminal で可能なら AppleScript で簡単に変更出来ると思ったのですが見つけられませんでした。
302名称未設定:2007/06/18(月) 19:03:31 ID:3ctJt51z0
>>301
Safariの環境設定でSafari->Firefoxに変更前後で、実際に変更されるファイルを
~/Library/Preferencesフォルダで見てると
com.apple.LaunchServices.plist
の中の複数のエントリがSafari->Firefox等書き変わっているとこまで確認した。
後は正確にどのキーが変更されているかを調べてみれば、
defaults write com.apple.LaunchServices ほにゃららコマンドで再現できると思われる。
303名称未設定:2007/06/18(月) 19:25:06 ID:Ehzbubto0
LaunchServices のことさっぱり知りませんでした・・
いろいろ調べてみます。大ヒントありがとうございました〜。
304名称未設定:2007/06/18(月) 19:27:08 ID:yt02+uBt0
>>301
今でも使えるかどうかわからないけどIC-Switch
ttp://flip.macrobyte.net/software/ic-switch_en
305名称未設定:2007/06/20(水) 07:48:06 ID:/Syhxh7r0
>>302
僕も以前そう推定していろいろやったがダメだった。いまのところスクリプト/コマンドライン
でデフォルトブラウザを変更する(汎用的な)方法はないとおもわれ。
306302:2007/06/20(水) 15:27:26 ID:nFh3ajfL0
>>305
やっぱそうかwww
307305:2007/06/21(木) 17:05:28 ID:HW7KbDiM0
ちなみに do shell script のフレーズとしては以下で正しいはずだが、無視されるようです。
do shell script "defaults write com.apple.LaunchServices LSHandlers -array-add \
'{LSHandlerRoleAll = \"com.apple.safari\"; LSHandlerContentType = \"public.html\";}'"

# firefoxならcom.apple.safari → org.mozilla.firefox
308名称未設定:2007/06/21(木) 18:43:42 ID:vho/o6vL0
おケツに追加されてるってことじゃないの?
309(・∀・):2007/06/22(金) 00:48:48 ID:RSiI0mlf0
>>307
.html¥";}¥'"
閉じてないよ。
310名称未設定:2007/06/24(日) 21:28:11 ID:wviYX23k0
on openハンドラに渡されるのはエイリアスのリストなのですが、
これをFinder itemのリストに変換する簡単な方法はありますでしょうか?

on open theAliasList
display dialog (class of item 1 of theAliasList)
tell application "Finder" to set theList to every item of theAliasList
display dialog (class of item 1 of theList)
-- my processThem(theList)
end open

こうやっても、aliasのリストのままなのです。
311名称未設定:2007/06/24(日) 21:41:41 ID:wviYX23k0
追記:
Finder Itemのリストにしたい理由は、ファイル名別でソートできるかなと
思ったからです。
tell application "Finder" to sort theList by name
312名称未設定:2007/06/24(日) 21:46:52 ID:KrxJ5NEf0
>>311
Finderにalias listをソートさせた結果はエラーになりますか?
313名称未設定:2007/06/24(日) 22:10:27 ID:wviYX23k0
>>312
エラーにはならないのですが、例えば名前で正しくソートされないようです。
314名称未設定:2007/06/24(日) 22:18:45 ID:Du6YFBvq0
choose file with promptで取得したファイルパスがクラシックな感じになってるけど、
Unixっぽいパスにするにはどうすればいい? これじゃシェルが困る
マッチングして書き換えるしかないのか?
315名称未設定:2007/06/24(日) 22:22:53 ID:wviYX23k0
>>314
set theItem to choose file
log (quoted form of POSIX path of theItem)

とか?
316名称未設定:2007/06/24(日) 22:40:16 ID:Du6YFBvq0
>>315
お、なんかググったらでてきた
http://developer.apple.com/jp/technotes/tn2065.html


choose file with prompt "ファイルを選択" invisibles "false" default location the path to desktop
set PATH to quoted form of the POSIX path of the result

これで変数PATHに代入できました(Desktop、不可視オプション)
shellの解説ページにあるとは思わなんだ。
317名称未設定:2007/06/24(日) 23:21:46 ID:wviYX23k0
>>311
>tell application "Finder" to sort theList by name

あぁ。
tell application "Finder"
set theList to sort theList by name
end tell
で動きました。失礼しました。
318名称未設定:2007/06/24(日) 23:26:21 ID:wviYX23k0
それと、alias listからfinder object listへの変更ですが、

tell application "Finder"
set theList to select theAliasList
end tell
でできました。Finderのselectionを経由する方法です。

もっとスマートな方法があればいいのですが。
319名称未設定:2007/06/29(金) 09:09:44 ID:8wtJJbT/0
iTunesでレート付けをするスクリプトで
½の文字をダイアログに表示させたいのですが
1レ2のように文字化けしてしまいます。
これの解決策はありますでしょうか?
320名称未設定:2007/06/29(金) 10:55:24 ID:1OQh6rGE0
316です
Finderのitemをリストに入れられません。MBP、10.4.10です。

tell application "Finder"
set theList to {}
set theItem to home
set theList to theList & theItem
end tell

318で書いたselect theAliasListの方法は、
if count of theAliasList is 1 ...
の時には動きませんでしたorz。

これだとAliasリストをFinder参照リストに変換できません・・・
321名称未設定:2007/06/29(金) 15:58:02 ID:hpYw4Stb0
>>319
display dialog "Rate: " & («data utxt00BD» as Unicode text)
322名称未設定:2007/06/29(金) 19:08:19 ID:L2CQHMxj0
>>320
もう何がどう繋がってんだかわかんなくなって来たw
323名称未設定:2007/06/29(金) 20:31:50 ID:hpYw4Stb0
>>320
set the end of theList to theItem
または
set theList to theList & {theItem}
では?
324319:2007/06/29(金) 21:01:00 ID:8wtJJbT/0
>>321
ばっちりです。
こんな書き方があったなんて。
ありがとうございます!
325名称未設定:2007/06/29(金) 21:44:51 ID:r5XLMKjT0
お聞きしたいのですが、Applescriptでこんなことって、できるでしょうか?

1.Finder上で選択したファイル名を取得
2.ファイル名から日本語だけを削除
3.1で選択したファイル名を、2で作った文字列に置き換え

326名称未設定:2007/06/29(金) 22:26:39 ID:zKz0XAoa0
1,3は容易。
2が敷居が高いなあ。
30分くらい頭をひねればできるとは思うけど、今酔っているからダメ。
327名称未設定:2007/06/29(金) 22:35:34 ID:r5XLMKjT0
なーるほど。Terminalとかgrepで[a-z]とかいう具合には、行かないのですね...
328名称未設定:2007/06/29(金) 23:02:33 ID:aeJ6FAdP0
1文字ずつ英数字かどうか調べればいんじゃねーの
329名称未設定:2007/06/29(金) 23:23:06 ID:aeJ6FAdP0
ちゃちゃっと書いてみた。
OS 8.6 のときと比べて selection の扱いが変わってて戸惑った・・・。

tell application "Finder"
repeat with the_item in selection as list
set old_name_char to name of the_item
set new_name_char to {}
repeat with c in old_name_char
if (ASCII number of c) < 127 then set the end of new_name_char to contents of c
end repeat
set the name of the_item to (new_name_char as string)
end repeat
end tell
330名称未設定:2007/06/29(金) 23:42:39 ID:xh4LTuD40
>>325
AppleScriptのみと、perlとか組み合せるか、大量になれば速度に影響出て来るとは思う。
331名称未設定:2007/06/29(金) 23:56:00 ID:hpYw4Stb0
英数字にすればいいのか。じゃあ
iconv -c -f UTF-8 -t ASCII

目的外使用だけどcolでもできそう。
332名称未設定:2007/06/30(土) 02:10:32 ID:pf8NZ61G0
OS9環境で勉強がてら,アプレットを作成しています.

GraphicConverterで,開いている画像ウインドウのパスをAppleScriptで得るには,
どうしたらいいんでしょう?

get window 1 を実行すると,パスを含めたタイトル名が結果で得られるっぽいのですが,
どうもその結果を,変数には利用できないらしいのです.他にパスを得る方法があるのかも
しれませんが,それもわからずじまいの状態です.ヒントいただけませんか.
333名称未設定:2007/06/30(土) 02:25:06 ID:1ychBUcu0
>>332
GraphicConverter Carbon 5.9.5Jだとこんな感じだった。

tell application "GraphicConverter"
set theFile to file of window 1
display dialog (theFile as string)
end tell

試したのは10.4だけど9でも一緒じゃないかな。
ちなみに用語説明にいろいろ書いてあるよ。

334名称未設定:2007/06/30(土) 02:42:27 ID:pf8NZ61G0
>>333
5時間悩んでわからなかったのに……,ため息出てしまいますね.
ありがとうございます.まんま,この処理がやりたかったのでした.

英語が苦手なので,用語解説みてもなかなか理解するのが難しいのです.
翻訳してみたりとかしますけど,なかなか上手くいかなくて…….

今回は,ずっとget命令ばかり探してました.
335名称未設定:2007/06/30(土) 09:15:34 ID:ylciB9TD0
>>333
あれから,ずっと寝ずにスクリプト作成に励み,やっと今目的のアプレットが完成しました.
あらためて,感謝します.ありがとうございました.メチャクチャ嬉しい.
336名称未設定:2007/06/30(土) 09:43:29 ID:ylciB9TD0
以前と同じように,作ったアプレットは,グラコンのスレで紹介しておきます.
337名称未設定:2007/06/30(土) 12:09:13 ID:rMpWijC90
>>322
番号間違えましたorz

>>323
これは動きました!すっごく悩んでいたのがすっきり!
tell application "Finder"
set theList to {}
set theItem to home
set theList to theList & {theItem}
end tell

これはだめでした。結果がリストになりません。
tell application "Finder"
set theList to {}
set theItem to home
set the end of theList to theItem
end tell

これも set the end of theList to {theItem} とするとOKでした。

・・・どうもFinderってイマイチですねぇ。
338名称未設定:2007/07/01(日) 10:19:05 ID:M/6/tIdd0
Mac OS X 10.3.9, Microsoft Excel v.Xです。
下のようなスクリプトを実行して、A3...G3, A4...G4, ....に1から100までの数値をセットしようとしたんですけど
上手く動いてくれません。
tell application "Microsoft Excel"
set cuurentCell to "A3"
set i to 0
repeat
set Value of Range cuurentCell to i
set cuurentCell to my NextCellOf(cuurentCell)
set i to i + 1
if i = 100 then
exit repeat
end if
delay 10
end repeat
end tell

on NextCellOf(theCell)
set firstChar to theCell's first character
set lastChar to (theCell's characters 2 through -1) as string
if firstChar is not "G" then
set newCell to (ASCII character ((ASCII number firstChar) + 1)) & lastChar
else
set newCell to "A" & ((lastChar as integer) + 1)
end if
return newCell
end NextCellOf
339338:2007/07/01(日) 10:24:27 ID:M/6/tIdd0
このような実行結果になってしまいます。
http://www.pinkapple.tv/uploads/general20070701102321.png
どこがわるいのでしょうか。
あと、delay 10は間違いです。
340名称未設定:2007/07/01(日) 14:50:35 ID:/5zbAvBX0
どこが悪いのかわかんないけど、↓だけで列Cに2がどびゃっ!って入っちゃうようだから、ちょっとずつ調べて行ったら?

tell application "Microsoft Excel"
    set Value of Range "C3" to 2
end tell
341名称未設定:2007/07/01(日) 15:23:45 ID:HeqQGugd0
これでいける?

tell application "Microsoft Excel"

set firstChar to "A"
set offsetNum to 3
set cellObj to {}
repeat with i from 0 to 6
set cellObj to cellObj & (ASCII character ((ASCII number firstChar) + i))
end repeat

repeat with currentNum from 1 to 100 --1〜100まで
set y to currentNum div (count of cellObj)
set x to (currentNum - 1) mod (count of cellObj) + 1
set cellName1 to item x of cellObj
set cellName2 to y + offsetNum
set cellName to cellName1 & cellName2 as Unicode text

set value of range cellName to currentNum

end repeat
end tell
342340:2007/07/01(日) 15:41:57 ID:/5zbAvBX0
Address of Range "xy"で見たら、列Cが異常なアドレスを示してたからこうしてみたよ。良さげな感じ。

tell application "Microsoft Excel"
set cuurentCell to "$A$3"
set i to 0
repeat
set Value of Range cuurentCell to i
set cuurentCell to my NextCellOf(cuurentCell)
set i to i + 1
if i = 100 then
exit repeat
end if
--delay 10
end repeat
end tell

on NextCellOf(theCell)
set firstChar to (theCell's characters 2 through 2) as string
set lastChar to (theCell's characters 4 through -1) as string
if firstChar is not "G" then
set newCell to "$" & (ASCII character ((ASCII number firstChar) + 1)) & "$" & lastChar
else
set newCell to "$A$" & ((lastChar as integer) + 1)
end if
return newCell
end NextCellOf
343名称未設定:2007/07/01(日) 16:02:55 ID:zkowaalu0
>>338
MacOS X 10.3.9、Microsoft Excel 2004だけど、ほとんど問題なし。
ツッコミを入れるならば、お題は1から100までの値セットなのに対して、
0から始まってるし、100でexit repeatしてるから完璧ではない。

少なくとも>>339にあるような画面にはならない。
Excelのバージョンの問題なのだろうか。
>>340のサンプルを実行しても、C3だけにきっちり値が入る。
>>338に出したコード以外があるなら、そちらを疑うべき。

【回避案】
セル1個じゃなくて、範囲にきっちりセットできるなら、
リストを使っての一括セットはどうだろう。
一括セットの方が処理が早いし。

↓例えばこんな感じ
tell application "Microsoft Excel"
set cuurentCell to "A1:C2"
set value of range cuurentCell to {{1, 2, 3}, {4, 5, 6}}
end tell

例は横3縦2のセル範囲に、二重のリストを使って一括して値のセットをしている。
ちょうどVBで開発してるシステムが2次元配列を使って同じようなことしてたから、
試しにやってみたら動いてびっくり。
リスト=1次元配列、リストの中にリスト(二重のリスト)=2次元配列
だと考えればいいのかな。

Excel 2004では動作確認済みだが、動かなかったらスマソ。
344332:2007/07/01(日) 16:09:53 ID:DGde6LSG0
tell application "Microsoft Excel"
set Value of Range "A1" to 2
set Value of Range "B1" to 2
set Value of Range "D1" to 2
--set Value of Range "C1" to 2 --ここを実行すると,A列全てに2が入る.
set Value of Range "D1" to 2
set Value of Range "E1" to 2
set Value of Range "F1" to 2
set Value of Range "G1" to 2
set Value of Range "H1" to 2
set Value of Range "I1" to 2
set Value of Range "J1" to 2
set Value of Range "K1" to 2
set Value of Range "L1" to 2
set Value of Range "M1" to 2
set Value of Range "N1" to 2
set Value of Range "O1" to 2
set Value of Range "P1" to 2
set Value of Range "Q1" to 2
--set Value of Range "R1" to 2 --ここを実行すると,1行全てに2が入る.
set Value of Range "S1" to 2
set Value of Range "T1" to 2
set Value of Range "U1" to 2
set Value of Range "V1" to 2
set Value of Range "W1" to 2
set Value of Range "X1" to 2
set Value of Range "Y1" to 2
set Value of Range "Z1" to 2
end tell
345332:2007/07/01(日) 16:10:55 ID:DGde6LSG0
Excelに興味があったので,自分も調べてみました.
上のレスの通りの結果になりました.環境もバージョンも違いますが,
>>338さんと同じ現象になったので,たぶんバグが原因じゃないかと…….
346名称未設定:2007/07/01(日) 16:17:48 ID:M/6/tIdd0
みなさんどうもレスありがとうございます。
>>342さんのように$を使った絶対参照にしたらできました。

あと、もうちょっと突っ込んで調べてみたところ、
Range "C3"がC列3行ではなく、"RxCy*参照形式で認識されてて
3列目であるC列の全てのセルに値が入ってしまったようです。
そこで、"C3"ではなく"R3C3"のように表記することでも問題を回避できました。
347名称未設定:2007/07/01(日) 16:18:55 ID:M/6/tIdd0
たぶん、>>344さんのRange "R1"も同じ原因ではないかと思います。
348332:2007/07/01(日) 16:24:35 ID:DGde6LSG0
Excel 2001での動作結果を,参考までに.

>>341
set value of range cellName to currentNum でエラーなって,実行できませんでした.

>>342
これは,99まで入ればいいのかな? 100で終わらなかったです.
349332:2007/07/01(日) 16:31:34 ID:DGde6LSG0
>>343
入力が速いですねー.自分がExcelで使う時に参考にさせてもらいます.
350332:2007/07/01(日) 16:38:14 ID:DGde6LSG0
>>347
どうやら,そうみたいですね.

set Value of Range "$C$1" to 2
set Value of Range "$R$1" to 2

で,>>344のスクリプトも上手く動作しました.

351340, 342:2007/07/01(日) 16:49:45 ID:/5zbAvBX0
>>348
> >>342
> これは,99まで入ればいいのかな? 100で終わらなかったです.

とんでもない結果になる方に気を取られちゃってて、書いた後で気付いた。元々の>>338を生かしたらそうなった。

…と、>>338のせいにしたいw
自分で書くなら repeat with i from 1 to 100 にするし、cuurentCellもイマイチ、currentCellにしろ。
352名称未設定:2007/07/01(日) 21:50:56 ID:nHMe0NRx0
ファイル名から日本語削除の件で質問した>>325です。見に来たのが遅れたのですが、
>>328-330の皆さん、ありがとうございます!

>>329さんなんて、わざわざ全部書いて下さい、ありがとうございます。

早速動かしてみました。ファイル名が「英数字(半角スペース含む)
+日本語+英数字」という場合には、すこし問題がありましたが、
これだけ教えて下されば、自分で改良することができます。本当に、
ありがとうございます。

(ケチをつけているのではなく、あくまで礼儀として動作報告を
しているつもりですので、ご容赦を...)
353名称未設定:2007/07/03(火) 16:46:20 ID:rejJ2Get0
お訪ねします。
テキストファイルA
テキストファイルB
テキストファイルC
をスクリプトでファイルD一つのファイルにまとめたいんですが、
良い方法をご教授して頂けないでしょうか。宜しくお願いします。
354名称未設定:2007/07/03(火) 16:58:37 ID:Ce8C1LlC0
OS Xならdo shell script "cat ..."が楽。
ちうかOS書いとけ。
355名称未設定:2007/07/03(火) 17:22:48 ID:hZ+tx7wr0
>>354
そうですね。失礼しました。
OSX10.4.10です。
catってエディターですよね。
Aからコピーして順にペースしろって事なんでしょうか。
初心者で失礼しております。
356名称未設定:2007/07/03(火) 17:27:59 ID:66okYvjI0
>>355
ターミナルを起動
man cat
357名称未設定:2007/07/03(火) 17:40:43 ID:0yzn6KLy0
on open theItemList
tell application "Finder"
set theFile to choose file name
if theFile is false then
return
else
set theCombined to "'" & (POSIX path of theFile) & "'"
end if
set theArgs to {}
repeat with theItem in theItemList
set theArgs to theArgs & ("'" & (POSIX path of theItem) & "'")
end repeat
set theDelimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
set theCommand to "cat " & (theArgs as text) & " > " & theCombined
set AppleScript's text item delimiters to theDelimiter
do shell script theCommand
end tell
end open

こういうことだろう。
on open に渡されるファイルは名前順ではなく Finder で選択された順のようだ。
358名称未設定:2007/07/03(火) 20:12:59 ID:b/10oDXV0
>>357
細かいことだけどchoose file nameのキャンセルボタンはfalseでなくてエラーを返すよ
359332:2007/07/04(水) 01:02:29 ID:uHODZCLP0
OS9で,AppleScriptを勉強中です.

下記のスクリプトは,Jeditで複数文字列の置換のダイアログを表示させて,
複数文字列の置換を行うものなのですが,ボタンを押す操作は手動になっています.
処理全てを自動化で済ませたいと思っていますが,難しいでしょうか?
(もし答えにくい質問でしたら,スルーして下さい)

※FaceSpanで作成されたJMultiReplaceが,Jedit4の複数文字列置換の処理を
担っているようです.

tell application "JMultiReplace J4"
activate
end tell
360名称未設定:2007/07/04(水) 01:07:46 ID:cnYkuIcu0
>>353
テキストファイルの結合は、まさにそういうコマンドがAutomatorにあるよ
もしかするとどうしてもAppleScriptじゃないとダメなのかもしれんけど


ところで俺はQTムービーの結合をしようと思ってます。最終的には
http://docs.info.apple.com/article.html?path=QuickTime+Player/7.0/jp/c3qt3.html
をもっとたくさんのファイルで自動にやろうと思っています。
それでとりあえず、あるムービーを開いてコピーし、新しいウインドウを開き
それにペーストする、ってのを作ってみようと思ってるんですが、その前半分を

tell application "Finder"
open file movie1
end tell
tell application "QuickTime Player"
select all
copy
end tell

とすると、開いたムービーのすべてを選択するところまではうまくいってるんですが、
コピーできてませんorz ここで新規ウインドウを開いてペーストしてみても何もありません。
似たようなスクリプトを見つけて、copyのところをcopy movieってしてみたけどやっぱりダメです。
QTPlayerの用語説明を見たら、単にcopyだけでもいい気がしたんですけどできません。
こんな簡単そうなことができなくてガックリです。どうしたらコピーできるんでしょうか。
361名称未設定:2007/07/04(水) 01:14:38 ID:xWnt0kMn0
>>359
OS9であれば、MacJperlで置換した方が格段に速い。
AppleScriptで5〜10分以上かかるものでも2・3秒で終わる。
AppleScriptの勉強ならばともかく、実践的な選択肢としては、違うと思う。
362名称未設定:2007/07/04(水) 01:16:18 ID:q7YTWhwS0
363332:2007/07/04(水) 02:13:36 ID:uHODZCLP0
>>361
>>362
「複数文字列の検索置換」の方は,Dialog Directorが入っているのにもかかわらず,
「インストールしてください」みたいなメッセージが出て,残念ながら使えませんでした.
(Dialog Directorって,最終バージョンは0.7?)

自動化 + 正規表現を使いたいので,結局Perlしか無さそうですね.
現状,まだPerlは使えませんが,これを機会にちょっと挑戦してみます.

361さん,362さん,情報ありがとうございました.
364332:2007/07/04(水) 02:18:17 ID:uHODZCLP0
もうひとつ,本当はJMultiReplaceを使った手動の複数置換でもよかったのですが,
スクリプト処理がそこで止まってしまい,その後に続くスクリプト処理ができない
ということが,今回の自動化の質問につながったのでした.
365名称未設定:2007/07/04(水) 02:49:01 ID:25pEgUzW0
>>360
tell movie 1 ... end tell で囲ってみ。
366名称未設定:2007/07/04(水) 09:45:18 ID:Gzf3XLRB0
>>357
>>358

アドバイスサンクスです。結構むずかしいんですね。
上手く動かせません(涙)
一行ずつ勉強を兼ねてトレースしてみます。
367360:2007/07/04(水) 20:44:28 ID:cnYkuIcu0
>>365
どこを囲ったらよいのか分からんかったんで、とりあえず
1)copyを囲む
2)tell application "QuickTime Player"
  select all
  copy
  end tell
  を囲む
3)全体を囲む
の3パターンをやってみましたが、どれも結果は同じでコピーできてませんでした。
別にエラーもでませんでした。どれも>>360と同様、movie1がすべて選択された
ところで止まってます。どこを囲ったらよかったんでしょうか?
368名称未設定:2007/07/04(水) 21:29:21 ID:sCBmXXfG0
>>367
1)で、要は copy movie 1 (copy movie x) だと思います。
同じ様にペーストも paste movie x でできる筈です。
369360:2007/07/04(水) 22:05:01 ID:cnYkuIcu0
>>368
そのやり方でもう一度やってみたのですが、今度はエラーが出て
"movie1" は copy メッセージを認識できません。
って書かれてました。movie1はすべて選択された状態です。
さっきも同じことをやったのですが、そのときはエラーは出ずに
単に、movie1がすべて選択されたところで止まってました。
370名称未設定:2007/07/04(水) 22:15:06 ID:CtY1/GtB0
要Proキーだったり。
371360:2007/07/04(水) 22:16:26 ID:cnYkuIcu0
すでにProです。7.1.6です。
372名称未設定:2007/07/04(水) 22:17:00 ID:A/gHXd9W0
tell application "QuickTime Player"
tell movie 1
select all
copy selection
end tell
end tell
373360:2007/07/04(水) 22:31:59 ID:cnYkuIcu0
>>372
それですと
movie1 は select all メッセージを認識できません。
って出ます。

ちなみに
copy selection
のあとに勝手にendが入ってしまって
消しても消してもコンパイルすると入ってしまいます。
374名称未設定:2007/07/04(水) 22:40:14 ID:A/gHXd9W0
tell application "QuickTime Player"
activate
tell movie 1
select all
copy
end tell
make new movie
set theMov to movie 1
paste theMov
end tell
375360:2007/07/04(水) 23:13:54 ID:cnYkuIcu0
>>374
それをそのままコピペして実行すると、QuickTimePlayerが起動して
広告ウインドウが開いてそれで終わってしまいます。

と、思ったのですが、もしかしてみなさん、すでにコピー元のファイルが
開いている状態でのスプリクトの書き方を教えてくださってたんですね。
私はコピー元を開くところから始めるつもりで書いていました。
それで、>>360のmovie1(movieと1がくっついてる)の部分は実際は
具体的なパスを入れていて、みなさんが「movie 1」と書いてくださっていた
ところを全部そのパスに書き換えて試してました。
movieと1の間が開いてると意味変わっちゃいますよね。
全然気づいてませんでした。すいませんでした。

コピー元を開いていれば>>374でできます。ありがとうございました。
376名称未設定:2007/07/05(木) 01:04:12 ID:Pmzo4T490
display dialog "turn Dashboard.." buttons {"on", "off"} default button 2

if button returned of result = "off" then
do shell script "defaults write com.apple.dashboard mcx-disabled -boolean YES"
else
do shell script "defaults write com.apple.dashboard mcx-disabled -boolean NO"
end if

do shell script "killall Dock"
377名称未設定:2007/07/05(木) 01:09:04 ID:rKD1LLT/0
そもそも書類を開くのに
tell app "Finder' to open ...
はやめてくれ
tell app "QuickTime Player" to open ...
としてくれ
どうせFinderはQuickTime Playerにopenイベントをパスするだけなんだから
378360:2007/07/05(木) 02:11:46 ID:BBdytIOO0
そうすると広告のウインドウが開いてうっとうしいので、
いったんFinderから開きました。
379名称未設定:2007/07/05(木) 02:29:46 ID:NqKv21Et0
> do shell script "killall Dock"

気短過ぎない?
380名称未設定:2007/07/05(木) 03:53:13 ID:wOBV8jKN0
>>378
自分の環境でしか使わないなら、Playerの環境設定でオフにしとけば?
か、activateの代わり(前?)にlaunchは?
381名称未設定:2007/07/05(木) 06:28:28 ID:glR/6E9r0
>>379
え、どういうこと?
382名称未設定:2007/07/05(木) 06:50:54 ID:Pp1RGKv40
>>363
以下のOSAXが使えると思います。参考までに。

文字列置換他、osaxなので結構処理速いです
Tanaka's osax 2.0.1

正規表現
RegEx Commands

自動でボタンを押す
S穫di's Additions
Cursor OSAX
383名称未設定:2007/07/05(木) 08:57:27 ID:iQrP2ItsP
テキストに関連する処理なら
>Scripting Additions: TextCommands 1.1.2
ttp://osaxen.com/files/textcommands1.1.2.html
が超強力でほとんど何でも出来るよ。
384360:2007/07/05(木) 20:54:22 ID:BBdytIOO0
>>380
>自分の環境でしか使わないなら、Playerの環境設定でオフにしとけば?

その方法は分かりませんでした。環境設定にとくにそういう項目はありませんでした。
スレ違いになるのでそれは調べます。

>か、activateの代わり(前?)にlaunchは?

そちらだとwelcome movieは表示されませんでした。
ありがとうございました。
385332:2007/07/06(金) 00:25:46 ID:+JXszYSR0
>>382
>>383
RegEx Commandsは,ログインを拒否されダウンロード不可,
TextCommandsは,dmg形式のためOS9では展開できないのです.
それ以外はダウンロードできました.

これでどこまでやれるかわかりませんが,手探りでいろいろやってみます.
情報ありがとうございました.

チラ裏ですけど,AppleScriptの初心者向けセミナーとかあったらなあ.
386名称未設定:2007/07/06(金) 00:34:30 ID:6tonu7jW0
tell application "Finder"
set fileList to selection
set fileList to sort fileList by name
end tell
tell application "QuickTime Player"
make new movie
repeat with i in fileList
open i
tell movie 1
select all
copy
end tell
close movie 1
tell movie 1
paste
end tell
end repeat
end tell


>>360
Automatorって言葉が出てきたからTigerだよね?
Finder上で選択したムービーを名前順に新規ムービーにペースト。
387名称未設定:2007/07/06(金) 01:26:45 ID:+bXQ81bNP
>>385
> RegEx Commandsは,ログインを拒否されダウンロード不可,
Wayback Machine で via HTTP のリンクからならまだ落とせるよ。
ttp://web.archive.org/web/20010614080537/http://www.lazerware.com/FTP/RECommands.hqx
> TextCommandsは,dmg形式のためOS9では展開できないのです.
ごめんなさい、>>332 を読んでなくて OS X の話だと思い込んでました。
388332:2007/07/06(金) 01:53:37 ID:+JXszYSR0
>>387
RegEx Commands,ダウンロードできました.ありがとうございました.
389名称未設定:2007/07/06(金) 02:15:27 ID:wCozii+S0
大抵のOSAXは此処に有りますよ。。
http://osaxen.com/
390332:2007/07/06(金) 02:32:45 ID:+JXszYSR0
>>359の件で,>>362さんから教えて頂いた「複数の文字列を一括検索置換する」
スクリプトで「Dialog Director」が動作しない件ですが,下記のサイトを参考に
「標準機能追加」を1.6に戻したら,動作するようになりました.

http://hp.vector.co.jp/authors/VA022023/os9/Dialog_Factory_Manual-J.html

ご報告まで.
391332:2007/07/06(金) 02:41:01 ID:+JXszYSR0

>>389
そこのサイトは,とてもありがたいところですよね.
でも,S穫di's Additions と Cursor OSAX が無くて,仕方なく下からダウンロードしました.
ttp://www2.cddc.vt.edu/apple/gaea.scriptweb.com/applescript/osaxen/
392名称未設定:2007/07/06(金) 20:53:13 ID:oJYqlXmJ0
AppleScriptリファレンス/こばやしゆたか/1999年 を
読んでもわからなかったので質問させてください。

スクリプト内で任意の秒数「wait」をかけて、次の処理に進むまで時間をおきたいのですが
waitという命令は載っていませんでした。なにか良い方法は無いでしょうか?

環境はOS X 10.3.9です。よろしくお願いします。
393名称未設定:2007/07/06(金) 20:58:54 ID:VI3kLzYe0
>>392
delay
394名称未設定:2007/07/06(金) 22:11:04 ID:HBh8TBai0
>>391
検索してみると、ちゃんと有るよん。
Scripting Additions: Cursor OSAX 1.0
http://osaxen.com/files/cursorosax1.0.html

Scripting Additions: Sフ?ndi's Additions 1.2
http://osaxen.com/files/sndisadditions1.2.html

Scripting Additions: RegExp Commands 1.0
http://osaxen.com/files/regexpcommands1.0.html
395名称未設定:2007/07/06(金) 23:11:38 ID:oJYqlXmJ0
>>393-394
ありました! P238にdelayありました!
単語がわからずにwait stop pause idleなどと本をめくってました…
助かりました。ありがとうございました。
396332:2007/07/06(金) 23:50:21 ID:/c8mvZSh0
>>394
サイト上では表記されているんですけれども,ダウンロードしようとすると,
INTERNAL ERRORとなってできないんですね.ブラウザの問題かもしれませんが…….
397332:2007/07/07(土) 00:01:47 ID:/c8mvZSh0
標準機能追加OSAX1.6のdisplay dialog で,OKとキャンセルボタンが
重なって表示されてしまうのは,周知のバグなのかな?
398名称未設定:2007/07/07(土) 01:10:56 ID:bI5acCYC0
>>397
OSAXではなくOSバージョンに依存するバグのようです。
http://www.tonbi.jp/AppleScript/dic/OSAX/Command/displayDialog.html
OSAX/標準機能追加/display dialog
こちらの解説(Note)-【バグ情報】を見て下さい

399332:2007/07/07(土) 12:03:00 ID:C3zv6MC60
>>398
バグ表示の回避方法が書いてあり,参考になりました.ありがとうございます.
400名称未設定:2007/07/07(土) 19:39:47 ID:oEhtqR2h0
set volume 7
repeat with i from 1 to 10000
say "sheep is " & (i as string)
delay 1
end repeat
401名称未設定:2007/07/07(土) 20:07:55 ID:r2mCw/sq0
10000って長すぎだろw
402名称未設定:2007/07/07(土) 23:55:22 ID:dBeKaVit0
Finderで選択してる項目に対して、「パッケージの内容を表示」をさせたいんですが
何か良い方法ないでしょうか?
・メニューにないのでUI Scriptingできない
・Finder windowのtargetにsetもできない

OS 10.4.10です。
403名称未設定:2007/07/08(日) 00:29:21 ID:SxBqW3pG0
tell application "Finder"
    set theItem to (selection as string) & ":Contents"
    do shell script "open " & quoted form of POSIX path of theItem
end tell
404名称未設定:2007/07/08(日) 00:33:25 ID:CrmfZV680
早速ありがとうございます

それは僕も考えたんですが、nibとかxcodeprojとか、
Contentsを含まないのでもできたいんですよ。
405名称未設定:2007/07/08(日) 01:04:13 ID:zmTVskiJ0
パッケージの中の適当なファイルをtargetにすれば良いんじゃない?
406名称未設定:2007/07/08(日) 22:49:41 ID:Woc2q6kq0
>>402
でけた。
一昨日クリーンインスコしたばかりなのでツールバーはアプリアイコンを追加する以外いじってない。
その前提で

tell application "Finder" to activate
tell application "System Events"
tell process "Finder"
click menu button 1 of group 2 of tool bar 1 of window 1
repeat while not (exists UI element 2)
end repeat
if exists menu item "パッケージの内容を表示" of UI element 2 then
click menu item "パッケージの内容を表示" of UI element 2
end if
end tell
end tell
407文句ばっかりで申し訳ない:2007/07/09(月) 12:05:59 ID:8F8MVOcz0
>>405
ありがとうございます。
やってみましたが、フォルダがあればそれもできますが、ないとダメですし、
selectやrevealも失敗します。

>>406
なるほどアクションメニューにもパッケージを表示はありましたね。
自分の環境限定の実装にはなりますがこれが一番良さそうですね。
ありがとうございました。
408名称未設定:2007/07/09(月) 14:50:13 ID:n3NAy7fo0
>>407
ちょっとイレギュラな感じはするけど
いったん拡張子を消して、Finderで開いた後
拡張子を戻すというのはどう?
409408:2007/07/09(月) 15:13:44 ID:n3NAy7fo0
こんな感じ

tell application "Finder"
set theItem to (selection as alias)
set theName to name of theItem
set name of theItem to "temp_000"
open theItem
set name of theItem to theName
end tell
410名称未設定:2007/07/10(火) 16:40:47 ID:Yfj5atf70
commentとspotlighe コメント違うのですか?
comment は、今まで通り finder item として properties でセットしたりゲットしたりできるのですが
ファインダの情報を見るで入力したコメントが見当たりません。
ネット検索もしてみたのですが、いい情報がみあたりませんでした。ご存知の方おられませんか?
411410:2007/07/10(火) 17:06:27 ID:Yfj5atf70
自己解決です。一度スポットライトで検索すれば反映されました。
時間かな?フォルダを開けたままだったのかな?いろいろテストしてみます
412名称未設定:2007/07/10(火) 17:07:13 ID:+t5ltHMQ0
413302:2007/07/11(水) 14:45:22 ID:ueNy6jCs0
>>412
違うよ。全然違うよ。
414413:2007/07/11(水) 14:46:17 ID:ueNy6jCs0
名前欄無視してorz
415410:2007/07/12(木) 11:46:44 ID:2z3VgaY60
はい、9環境は持っていないのでそれとは違うとおもいます
今のところ現象が再現しないので、スクリプト書き終わったらもう一度再現させてみようとおもいます

デスクトップに置いた新規フォルダにデジカメから画像を取り込み
フォトショップで処理 > 情報を見るでコメントに 名前 を書き込み
script から見ると "" > scriptで "aaaaa" をセット>情報を見るのコメント欄かわらず
script から見ると "aaaaa" > 情報を見るのコメント欄で bbbbb を書き込み
script から見ると "aaaaa" > ここ(2ch)に書き込み
スポットライトでbbbbbを検索。ヒット > script から見ると "bbbbb"
scriptで 名前 をset > 情報を見るのコメント欄 名前
以降他のファイルに関しても問題なく動作するようになる

デスクトップに作ったフォルダ←ここに問題がありそうな気が。
416402:2007/07/12(木) 23:11:00 ID:LfpMI3pv0
遅くなりましたが
>>408
ちょっと危険を感じますがそういう方法もりますね。アイデアいろいろで聞いてみるもんですね。

>>406さんのを元に(僕の環境では動作しなかったので)できるだけ
汎用的な実装にしてみました。長いですが貼っておきます。

OS 10.4.10/Finderツールバーにアクションメニューがある/日本語環境
という条件であれば動作すると思います。
417402 パッケージ表示スクリプト1:2007/07/12(木) 23:11:46 ID:LfpMI3pv0
--選択項目の"パッケージの内容を表示"するスクリプト
property select_menu_title : "パッケージの内容を表示"
tell application "Finder"
set selected_items to selection
set contains_package to false
--画面サイズから最大縦幅ウィンドウサイズを計算
set desktop_bounds to bounds of the window of the desktop
set item 2 of desktop_bounds to 44
set item 3 of desktop_bounds to 600 --横幅は600固定
--1項目ずつ処理
repeat with an_item in selected_items
if package folder of (info for (an_item as alias)) then --パッケージ以外は無視
set contains_package to true
--ツールバー表示新規ウィンドウで選択
tell (make new Finder window)
set target to folder of an_item
select an_item
set toolbar visible to true
--ツールバーのアクションメニューを操作
my |パッケージを表示を選択|()
close
end tell
418402 パッケージ表示スクリプト2:2007/07/12(木) 23:12:27 ID:LfpMI3pv0
--パッケージ内表示ウィンドウをお好みの表示に
tell front Finder window
if toolbar visible then set toolbar visible to false
set current view to list view
set bounds to desktop_bounds
--リスト表示で2階層開いておく
tell application "System Events"
tell process "Finder"
repeat 2 times
keystroke "a" using command down --全てを選択
key code 124 --→キーでフォルダを開く
delay 0.1
end repeat
end tell
end tell
end tell
end if
end repeat
if not contains_package then error "パッケージを選択していません"
end tell
419402 パッケージ表示スクリプト3:2007/07/12(木) 23:13:26 ID:LfpMI3pv0
on |パッケージを表示を選択|()
tell application "Finder" to activate
tell application "System Events"
tell process "Finder"
tell front window
tell front tool bar
set group_list to every group
repeat with a_group in group_list
tell a_group
set menu_buttons to every menu button
repeat with a_menu_button in menu_buttons
tell a_menu_button
click
--ポップアップがウィンドウに属してない
tell application "System Events"
tell process "Finder"
try
420402 パッケージ表示スクリプト4 以上。:2007/07/12(木) 23:14:12 ID:LfpMI3pv0
tell UI element 2 --なぜかポップアップしてるメニューはこれ
tell menu item select_menu_title
click
end tell
end tell
return 0 --成功したので終了
end try
end tell
end tell
--
key code 53 --escキーでメニューを消す
end tell
end repeat
end tell
end repeat
end tell
end tell
end tell
end tell
error "ツールバーのアクションメニューを見つけられませんでした"
end |パッケージを表示を選択|
421名称未設定:2007/07/13(金) 06:17:42 ID:JayhY6sw0

>547 名前: 名称未設定 Mail: sage 投稿日: 07/07/12(木) 23:35:11 ID: >n6LKGlXz [ 0 ]
>
>AppleScriptのmovieクラスがdocumentになっとる(;´Д`)ハァハァ

ほんとだ。今までMovieってオブジェクトだったのに、今開き直したら
Documentに変わっている。
これってStandard SuiteのDocumentとQuickTime Player Suiteの
Documentで名前の衝突してるように見えるんだが。
422405:2007/07/13(金) 06:29:12 ID:65jEi3SK0
せっかくなんで、序でtarget指定でのスクリプトを貼っておきます。

tell application "Finder"
set theSelection to selection
set thePackages to (packages of container of item 1 of theSelection) as string
repeat with theSelectItem in theSelection
if (theSelectItem as string) is in thePackages then
set theItems to items of theSelectItem
make new Finder window
repeat with i from 1 to count theItems
set target of front window to item i of theItems
end repeat
end if
end repeat
end tell
423332(OS9でAppleScriptを勉強中):2007/07/14(土) 01:31:06 ID:ZtR4b/kU0
解決策が見つからないので,教えていただけませんか.
以下,自称名をゲットするスクリプトです.(過去スレで教えていただきました)

tell application "Finder"
get processes whose frontmost is true
set MyFile to result as string
display dialog MyFile
end tell

これをスクリプト編集プログラム書類形式で保存,OSAMenuなどから起動した場合に,
正常に自称名をゲットできず悩んでいます.アプリ形式で保存すれば問題は解決するのですが,
それではOSAMenuなどからの,起動メリットが無くなってしまうわけです…….
424名称未設定:2007/07/14(土) 08:00:39 ID:/hBrW9T30
例えばこんな感じ?

tell application "Finder"
activate
end tell
tell application "System Events"
set appName to (name of processes whose frontmost is true) as Unicode text
display dialog appName
end tell
425名称未設定:2007/07/14(土) 08:01:33 ID:/hBrW9T30
あ、OS9だとだめかも
426名称未設定:2007/07/14(土) 08:02:51 ID:/hBrW9T30
あ、OS9だとダメかも
427名称未設定:2007/07/14(土) 08:05:52 ID:XUAzkxo50
>>423
OS9ですよね?
tell application "Finder"
get processes whose frontmost is true
set MyFile to result as string
end tell
tell application MyFile
display dialog MyFile
end tell
ダイアログがそのままfrontアプリで出る様にしただけでほぼそのまんま。
うちのOS9.2.2/Applescript1.8.3ではこれでちゃんとアプリ名出るけど。
428332(OS9でAppleScriptを勉強中):2007/07/14(土) 11:33:06 ID:Zuh5WYQ60
>>424
OSXに移行した時,参考にさせていただきます.ありがとうございます.

>>427
結果からいいますと,ダメでした.求めているのが最前面で起動しているスクリプト名を
得ることなのですが,動作させている環境が違うためか,違う結果がかえってきます.

もう少し詳しく説明しますと,GraphicConverterの中にはスクリプトメニューがあり,
専用のスクリプトフォルダにスクリプト編集プログラム書類形式のスクリプトを入れれば,
スクリプトを動作させることが可能なのですが,ここに>>423>>427さんのスクリプトを
書類形式とアプリ形式で入れた場合に,違う結果がかえってきます.

OSAMenuでも,予想外な動作をしてしまいます.
429332(OS9でAppleScriptを勉強中):2007/07/14(土) 13:35:24 ID:Zuh5WYQ60
よくよく考えてみればprocessesという命令,起動してるアプリケーション名のみを
取得する命令みたいなので,書類形式で保存されたファイル名を取得することは,
できないってことですよね.

勘違いしそうなのだけれど書類形式は書類であり,アプリの力を借りて動作させている
わけだから,元々アプリじゃないものは取得はできないよ……って感じでしょうかね.
430名称未設定:2007/07/14(土) 14:15:45 ID:xxdYZxbJ0
property name : "test"
get my name
display dialog result

スクリプト名(ファイル名)なら誰でも簡単に修正できるってのが
いいんだろうからこれは論外か
431332(OS9でAppleScriptを勉強中):2007/07/14(土) 15:22:35 ID:Zuh5WYQ60
>>430
ファイル名を変更して処理するというのが目的なので,残念ながらその手は使えないのです.
でも,わざわざありがとうございました.動作できない理由が,自分で予想できただけでも,
十分収穫になりました.
432名称未設定:2007/07/14(土) 16:06:20 ID:GRZhoEaj0
path to me
433名称未設定:2007/07/14(土) 16:16:16 ID:GRZhoEaj0
display dialog (path to me as alias) as string
OS 9.2.2 + AppleScript J1-1.6 + OSAMenu 1.2.3d7で確認
434332(OS9でAppleScriptを勉強中):2007/07/14(土) 17:23:18 ID:Zuh5WYQ60
>>433
path to me as aliasを使うとOSAMenuでは,書類名が得られるようですね.
ただ,ファイル名を変更して処理するようなことをすると,OSAMenuがフリーズ
してしまうようです.

それと,GraphicConverter上からではファイル名は取得できませんでした.結果,
起動にメリットはあっても,スクリプト編集プログラム書類形式は使わない方がいい
という結論になりました.

ありがとうございました.
435名称未設定:2007/07/15(日) 01:10:22 ID:Zn2sxHuS0
ファイル名変更する為だけのスクリプトファイルと
処理する為の本体スクリプトの二つに分担させてみたら?

名前を変え使用するスクリプトファイルはただ本体を起動するだけの機能で
本体はその名前を受け取って処理する〜みたいな。
436332(OS9でAppleScriptを勉強中):2007/07/15(日) 12:49:57 ID:cAyilg8Z0
>>435
以前,二つのスクリプトでハンドラを分担させるような処理をやってみたことがあるのですが,
片方が書類形式だとリソースが見当たらないと言われて,処理できなかったです.

仮に別の方法で分担ができたとしても,片方は起動処理するアプリ形式にしなければならず,
OSAMenuやグラコンメニューから起動するメリットは無くなってしまいます.できれば,
分担ではなく一つのファイルで完結させたいので,素直にアプリ形式で作成することにします.

長々とありがとうございました.
難しいけれど,AppleScriptは面白い,ほんと面白い.
437名称未設定:2007/07/15(日) 21:54:47 ID:M+wwO3rQ0
>>436
アプリ形式にしなくても他のスクリプトを呼び出して別ファイルのスクリプトが実行出来るよ。
普通はスクリプトオブジェクトを使うんだけど
OSAMenuの用語説明にはDo Scriptって言うのが有るのでこれ使うと簡単。
実行ファイル自体の名前をコロコロ変えるのはなんだか心配だけど
ひとつにまとめた方がいいなら・・・

仮に名前をactionとして、コメントにファイル特定用の印"ABC"を書き込んでおきます。
tell application "Finder"
set MyFile to name of (every file in folder "actionの入ってるフォルダ:" whose comment is "ABC")
get processes whose frontmost is true
set MyApp to result as string
if MyApp is "" then set MyApp to "Finder"
end tell
tell application MyApp
display dialog MyFile
end tell

こんな感じでどう?
多分、名前変えてもすぐにOSAMenuに反映されて使えると思うけど。
438332(OS9でAppleScriptを勉強中):2007/07/15(日) 23:56:42 ID:cAyilg8Z0
>>437
情報ありがとうございます.
今,いろいろ検証してますので,時間がかかります.結果は後でご報告します.
439332(OS9でAppleScriptを勉強中):2007/07/16(月) 01:13:06 ID:T795Kk540
>>437
ひとまず,グラコンのスクリプトメニュー上についてのご報告.

アプリ形式ではない書類形式でも,メニューから実行して書類の名前を得られることができました.
でも,とても惜しいです.コメントの目印では,将来MacOS Xに移行した時に,問題(>>412)が
出ると思われるからです.

そこで,whose comment is "ABC"の部分を削除して実行してみると,フォルダ内に一つだけならば,
OKなのですが,二つ以上になるとファイル名がくっついてしまい正常に取得できないという問題が発生
してしまいました.

結果がリスト形式なので,参照形式を工夫すれば,なんとか解決できそうな予感がします.
でもその処理方法案が,まだ見つからない状態…….
440332(OS9でAppleScriptを勉強中):2007/07/16(月) 01:25:27 ID:T795Kk540
でも,とりあえず,光が見えてきた感じです.
リストから,目的のファイル名を取り出す方法を考えてみます.
441332(OS9でAppleScriptを勉強中):2007/07/16(月) 03:02:33 ID:T795Kk540
>>437
リスト形式を使わずとも,書類名を取得することができました.

>>437のリストで,whose comment is "ABC"を,whose name is "対象ファイル名"
のようにするとよいようです.ただ,いくつか問題点があります.

1. グラコンのスクリプトメニューからは実行できますが,OSAMenuではエラーになる.
(OSAMenuのDo Scriptに関しては,よくわからないので未検証です.すみません.)
2. ソース内の"対象ファイル名"と,その書類名が異なると取得不可能なため,
途中でファイル名を変更して実行するようなものを作るのは,難しい…….

ということになります.自分が作成しているスクリプ使えないですが,
それでも書類形式でファイル名が得られることを知って,満足の結果です.
442332(OS9でAppleScriptを勉強中):2007/07/16(月) 03:04:30 ID:T795Kk540
>スクリプ使えない
>スクリプト使えない

訂正します.
443名称未設定:2007/07/16(月) 05:35:18 ID:NSA69YP00
>>439
OS Xに移行したらどのみち変えなきゃならないと思うけど>>424みたいに。。。

コメント使いたくないなら
whose locked is true とか whose creation date is date "1970/01/01" とか
他にも色々方法は有ると思うよ。
444332(OS9でAppleScriptを勉強中):2007/07/16(月) 15:04:34 ID:4inFjD3W0
>>443
info for の属性を使えばいいんですね.作成日の情報使えば望みのものが出来そうです.
ちなみに,OSXではwhose creation date is date は使えないんでしょうか.
445332(OS9でAppleScriptを勉強中):2007/07/16(月) 15:29:48 ID:4inFjD3W0
whose creation date is date,コンパネの日付&時刻の設定に影響されるのかなと
思いましたが,影響は受けないようですね.安心しました.
446332(OS9でAppleScriptを勉強中):2007/07/16(月) 20:39:29 ID:4inFjD3W0
>>443
スクリプト編集プログラム書類形式でも,その書類の名前を取得することは可能だとわかりました.
今作っているスクリプトでは,to ":" as aliasの処理が必要なのですが,書類形式では場所を取得
することができないようで,やっぱり,アプリ形式で実行するしかないようです.

以上,結果とまとめでした.
447名称未設定:2007/07/18(水) 23:37:58 ID:MGXEIADa0
デスクトップのアイコン表示サイズを得るにはどうしたらいいでしょう?

tell application "Finder"
set desktopWindow to window of the desktop
set iconViewOptions to icon view options of desktopWindow
set iconSize to icon size of iconViewOptions
end tell

とやってもデスクトップを開いたFinder window内での表示サイズになってしまいます
OS 10.4.10です。
448名称未設定:2007/07/19(木) 00:00:49 ID:FW/6EiZ30
>>447
set iconSize to icon size of window of the desktop じゃダメですか?
449名称未設定:2007/07/19(木) 22:28:18 ID:puK0FNt70
>>448
「Finder でエラーが起きました:icon size of window of desktop を取得できません。」
となります。
set iconSize to icon size of icon view options of window of the desktop
とやっても >>447 と同じくFinder window内での表示サイズになってしまいます。

ここ見るとこのやり方でいいはずなんですが・・・動作が変わってしまったのでしょうか
http://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as2034.html
450名称未設定:2007/07/20(金) 00:25:33 ID:Dg9I2jGG0
Mac OS X 10.4.0・Script Editor バージョン 2.1.1(81)

property theList : {"みかん", "もも", "りんご", "ばなな"}

repeat with i from 1 to (count items of theList)
if i = "りんご" then
beep
end if
end repeat

りんごが代入された時にbeepということになってほしいんですが何がいけないですか><
451名称未設定:2007/07/20(金) 00:40:39 ID:kVKBKsZ10
display dialog i とか log class of i とか log i とか挟んでみればわかるよ。
452名称未設定:2007/07/20(金) 00:41:52 ID:XTOfLj820
>>450
log i を入れてイベントログで見ればわかるけど、その書き方じゃiは数字
だから鳴らない

property theList : {"みかん", "もも", "りんご", "ばなな"}

repeat with i in theList
if (i as string) = "りんご" then
beep
end if
end repeat

これで鳴る
453名称未設定:2007/07/20(金) 00:45:41 ID:Dg9I2jGG0
あっ、なるほど。。
出来ました。どうも、親切にありがとうございました。
454名称未設定:2007/07/20(金) 01:00:36 ID:R/dMT9Fe0
logなんて命令あったんだ知らなかった
コンソールにも出してくれりゃいいのに
455名称未設定:2007/07/20(金) 02:02:09 ID:KMfWkBIP0
>>447
手段を問わなければw、
set iconSize to do shell script "defaults read com.apple.finder DesktopViewOptions | awk -F '[ ;]+' '/IconSize/{print $4}'"

動的に変更されても追従しないようなので、その時はFinderのquit必要。
456名称未設定:2007/07/20(金) 12:02:32 ID:PaXKakRF0
デスクトップ上のファイルを操作したとき、
シェルスクリプトで動かすとファイルの表示位置が変わってしまうのは
しょうがないことなんだろうか。
アップルスクリプトで動かすと大丈夫なのに。
457名称未設定:2007/07/20(金) 12:08:37 ID:QFZLVfqJ0
>>456
シェルスクリプトからだと .DS_Store に反映されないからじゃないすかね。
458名称未設定:2007/07/20(金) 17:01:00 ID:KqVtfxX70
うっかりゴミ箱に捨てたりしないように、あるフォルダ内の項目の移動を取り消すスクリプト書きました。

on removing folder items from this_folder after losing these_items
tell application "Finder"
move this_folder to folder "A" of folder "B" of disk "C"
move these_items to this_folder
end tell
end removing folder items from

move this_folder to folder〜 はスクリプトを付けたフォルダ自身を元のパスに戻すためです。
このパスの指定を一々しないで済むようにできないでしょうか?
459名称未設定:2007/07/21(土) 06:05:13 ID:4CpQmf6Q0
Command+Z で取り消しできるのでは
460名称未設定:2007/07/21(土) 08:50:03 ID:jbgRoBGn0
>>458
フォルダそのものを移動した場合、その後に起動するわけだから無理。
仮にできたとしても
元の場所に戻ったとたんに再びスクリプトが実行されるから
元の場所と異動先を行ったり来たりし続けることになる。
461名称未設定:2007/07/21(土) 10:51:33 ID:U+QaPFBM0
名前,分類
名前,分類
名前,分類
...
のようなエクセルの表を、
{分類:{名前,名前,...}, 分類:{名前,名前,...}}
のようなレコードに変換したいんだけど、
レコードのキーって文字列からとってつけることが
できないんですね。

{{分類,{名前,名前...}}, {分類,{名前,名前...}}}
みたいな連想リストの形式ならできるけど、
これだとキーの探索にかかる時間がキーの数に比例して
大きくなっていくので、効率悪いし。

Perlのハッシュみたいに効率よくキーの探索が
できて対応する値にアクセスできる方法って
ないんでしょうか。
462名称未設定:2007/07/21(土) 11:36:25 ID:AMIxPYxA0
何だかな〜
463名称未設定:2007/07/21(土) 13:10:37 ID:ERhY9Qws0
set _key to "これ"
set _value to 1
set aa to run script "{|" & _key & "|: " & _value & "}"
|これ| of aa
464名称未設定:2007/07/21(土) 15:34:37 ID:faWQtF4A0
{}じゃなくて[]だと値の取り出しが速くなるのだったかな?
465461:2007/07/22(日) 17:14:19 ID:VmrzOYNs0
>>463
おおっ、ありがとうございます。
あと、List & Record Tools.osax というのを
発見しました(いつの間に入ってたんだろ)。
get user property キー in レコード to 値というのが
使えるようです。
ただ、set user property は破壊的ではないので
set レコード to set user property キーin レコード to 値
みたいに書かなきゃいけないのがまぎらわしいですが。
466OS9でAppleScriptを勉強中:2007/07/24(火) 00:20:49 ID:IjV5YUle0
グラコンのスクリプトを作成しているのですが,選択範囲に対する処理の仕方がわからず,
行き詰まっています.ヒントいただけませんか.

例えば,ガンマを変更する例
tell application "GraphicConverter"
activate
set selection of window 1 to {50, 50, 500, 500}
change gamma of the front window to the 2
end tell

これだと,選択範囲外にガンマがかかってしまいます.
467名称未設定:2007/07/25(水) 06:37:17 ID:uQYg96+f0
>>466
それ、GraphicConverterのバグじゃないかと思う。
そうしたら、選択範囲を反転してからガンマを変更すれば
いいのでは、と思ったけど、「選択範囲の反転」を
行う Apple event が用意されていないっぽい。
468OS9でAppleScriptを勉強中:2007/07/25(水) 08:27:51 ID:6+Re2/8c0
>>467
ありがとうございます.同じように選択範囲を決めてトリミングを実行すると,
選択範囲に対して処理ができるようなので,ガンマの方はバグかもしれないですね.
作者の方にメールしてみます.
469OS9でAppleScriptを勉強中:2007/07/25(水) 23:17:25 ID:m7vFqc6M0
>>467
グラコン作者のレムケさんからメールが来たので,お知らせします.
「ガンマは現在,選択範囲には適用されない」ということでした.
よって,そこは切り捨ててアプレットを作ることにします.どうもでした.
470名称未設定:2007/07/26(木) 21:43:43 ID:VXxgHMYc0
申し訳ない、、、QuickTimeのファイルをランダムに開く
スクリプトってどう書くの??

tell application "Finder"
set theList to every file of folder "Music" of folder "Data のファイル" of startup disk
end tell
tell application "QuickTime Player"
repeat with aFile in theList
open aFile
set a to some movie
start a
repeat until not (playing of a)
delay a
end repeat
close a
end repeat
end tell
471名称未設定:2007/07/27(金) 00:13:00 ID:gw7ltdzT0
環境も何につまずいてるのかもわからない(どれもスクリプトから読み取るよう強いてる)、最低、ヌルー。
472名称未設定:2007/07/27(金) 00:23:39 ID:8xaBH3Qv0
tell application "Finder"
set theList to every file of folder "Music" of folder "Data のファイル" of startup disk
repeat 100 times --シャッフル回数
set rnd1 to (round ((random number) * listCount) rounding down) + 1
set rnd2 to (round ((random number) * listCount) rounding down) + 1
set keepBox to item rnd1 of theList
set item rnd1 of theList to item rnd2 of theList
set item rnd2 of theList to keepBox
end repeat
tell application "QuickTime Player"
repeat with aFile in theList
open aFile
delay 0.5
set a to document 1
start a
repeat until not (playing of a)
end repeat
close a
end repeat
end tell

theListの中からランダムに2つ抜き出して入れ替えてシャッフル回数だけ繰り返してる。
あらかじめリスト内をバラバラに入れ替えちゃってからリスト順通りに再生。
もっとうまいやり方ありそうだなぁ…(シャッフルタイムが長い)
473名称未設定:2007/07/27(金) 01:24:04 ID:K4ot9V8B0
>>470
ランダムと言うよりシャッフルですか

tell application "Finder" to ツ
set theList to (every file of folder "Music" of folder "Data のファイル" of startup disk) as alias list
set num to number of theList
repeat with n from 1 to num
set rnum to (random number from 1 to num with seed (time of (current date)))
set aFile to item rnum of theList
set item rnum of theList to ""
set theList to every alias of theList
tell application "QuickTime Player"
open aFile
set a to some movie
start a
repeat until not (playing of a)
delay a
end repeat
close a
end tell
end repeat

て感じでどうですか?
474名称未設定:2007/07/27(金) 13:33:18 ID:UgUpLZ8R0
任意要素参照形式使えないの?

some item of {1, 2, 3, 4}
475名称未設定:2007/07/27(金) 14:34:50 ID:g6u8XCjE0
>>474
それだと、重複判定が必要になるから、random numberの方がすっきりする。
476sage:2007/07/27(金) 23:38:09 ID:Lux9mTS60
>471、>472 、>473 、>474 、>475

コメント有り難うございます。質問はもっと丁寧にするように気をつけます。
473
ですが
最後から4行のところは
end repeat
close a
end tell
ココ> set num to num - 1
end repeat

を入れてなんとか上手く動くようになりました。本当に有り難うございました。
これで、iPod Shuffleみたいに 動画などを見る事が出来るようになりました。
477名称未設定:2007/08/04(土) 17:46:38 ID:n4QqJqjw0
display dialog "保守"
478名称未設定:2007/08/04(土) 17:53:10 ID:9AKT7rci0
giving up after 1
479名称未設定:2007/08/04(土) 19:18:19 ID:uwOeMKoX0
with icon stop
480名称未設定:2007/08/04(土) 19:46:20 ID:aDxUnDDK0
tell application "System Events"
keystroke "f" using {command down, option down}
end tell

って感じでアプリの特定のフィールドをフォーカスさせて

※この部分
tell application "System Events"
keystroke "v" using command down
end tell

って感じでペーストするんですが、タイミングによってはどうもちゃんとクリップボードの内容を拾ってくれないっぽい。

そこで事前に
set clipStr to (the clipboard) as text
って感じでクリップボードの内容を変数に入れておいてフォーカスしたフィールドに入力したいんだけど、この場合はどうすればよいのでしょうか?
「※この部分」の下3行をペーストではなく、clipStrを入力したい、という意味です。
481名称未設定:2007/08/04(土) 20:27:24 ID:wUInxnSm0
そのアプリって何なのか明かせば良い。持ってる人がいろいろ試してくれるかもしれんし。

つか、テキトーにぼかされるとイライラする。
482名称未設定:2007/08/04(土) 23:23:46 ID:EizpJ2Mf0
>>480
set value of text field 1 of ... UI elementの構造 ... of window 1 to clipStr

例えばBathyScapheなら
set value of text field 1 of group 2 of tool bar 1 of window 1 to clipStr
483名称未設定:2007/08/04(土) 23:52:35 ID:h70yJGOu0
クリップボードまわりはいろいろ厄介なんだよね。
直前でactivateしてみるとか、直前でinfoを取得しておくとか、いろいろおまじないをしておくようにしている。
484名称未設定:2007/08/04(土) 23:59:17 ID:8q1nEFiA0
>>482みたいなやり方だと>>256使うと便利
485OS9でAppleScriptを勉強中:2007/08/05(日) 21:45:24 ID:8ZEEYDj80
もしわかる方がいたら,教えていただけませんか.
|で囲む変数名に日本語を使っても,AppleScriptの動作に問題が出ることありますか?
ソース自体の見た目は美しくないですが,読みやすいのでつい使ってしまいます.
486OS9でAppleScriptを勉強中:2007/08/05(日) 22:06:00 ID:8ZEEYDj80
それから>>466の件ですが,>>469のあとにグラコンの新しいバージョンが出まして,
選択範囲に対して処理することができる命令が,追加されていました.
487名称未設定:2007/08/06(月) 09:38:44 ID:y2ZVMLO60
アップルのMacBook「MA472J/A」に発火事故

 経済産業省は24日、消費生活用製品の重大製品事故に関わる公表を行った。
この中で、今月13日にアップルジャパンのMacBook「MA472J/A」が発火する
事故があったことを明らかにしている。
 今回公表された内容によると、MacBook MA472J/Aの発火事故は7月13日に
神奈川県で発生。事故内容は、作業机で当該製品を使用中、起動後2時間ほど
経過した頃に同製品より火花が散り発煙し、同製品の下に置いてあった本が
焦げたという。現在、原因を調査中としている。

(H14@RBB 2007年7月26日 12:42)

経済産業省のリリースはこちら
http://www.meti.go.jp/press/20070724005/seihinanzen-p.r.pdf

官庁のリリースに載ってるお(w
488名称未設定:2007/08/06(月) 11:46:57 ID:FJ+61Ora0
乱数ざんまい
set o_num to 0
set e_num to 0

repeat 100000 times
set Randon_numer to random number from 1 to 2
if Randon_numer <= 1 then
set o_num to o_num + 1
else
set e_num to e_num + 1
end if
end repeat

display dialog "偶数は " & o_num & " 回、奇数は " & e_num & " 回です。"
489OS9でAppleScriptを勉強中:2007/08/07(火) 00:42:52 ID:x8/ebJFW0
>>485の件,自分自身で調べた結果です.

ttp://docs.info.apple.com/article.html?artnum=301296-ja
Soundtrack Proはもっていないので調べられませんが,スクリプトに
日本語が含まれていると動作しないのだそうです.

言語ガイドでは,識別子に囲まれた部分はどんな文字でも使えると書いてあり,
結局日本語の扱いについては不明のまま.というわけで,これまで通りでいいかな
って気がしてきました.
490OS9でAppleScriptを勉強中:2007/08/07(火) 00:56:38 ID:x8/ebJFW0
>>488
うちの環境でそれを実行してみましたが,repeat 100000 では
タイムアウトしちゃいました.もしかして,それが狙いですか?
491名称未設定:2007/08/07(火) 01:16:53 ID:KWWGNc1p0
あれ、うちは数秒で処理がちゃんと出来ましたけど・・・
492名称未設定:2007/08/07(火) 01:32:05 ID:NCs7+FTh0
10.4.9
G4 1.42GHzで数分待っても終わらない。
減らして500回で13秒ぐらいだった。
493OS9でAppleScriptを勉強中:2007/08/07(火) 01:42:18 ID:x8/ebJFW0
>>491
数秒ですか,すごいなあ.
さっきは動作中にアプリ切り替えていたので,それでタイムアウトしたのかもしれません.
今やってみたら,タイムアウトせずに処理が終えました.

ちょっとしたベンチマークですね.
うちはG3なんですが,コンパイル済みアプリでは約3分50秒で終了,
スクリプト編集プログラム上からでは,約90秒で終わりました.
なんだろう?このスクリプト処理速度の違いは…….
494名称未設定:2007/08/07(火) 01:48:04 ID:Ps9s0/Gf0
867デュアル、10.4.9だけど10秒ぐらい
495名称未設定:2007/08/07(火) 02:24:09 ID:d+N1bsjS0
QS 1.33 10.3.9で7秒くらい

>>492
イベントログ表示してない?
496名称未設定:2007/08/07(火) 03:49:13 ID:87jbvy7K0
set startTime to current date

set o_num to 0
set e_num to 0

repeat 100000 times
set Randon_numer to random number from 1 to 2
if Randon_numer ? 1 then
set o_num to o_num + 1
else
set e_num to e_num + 1
end if
end repeat

set startTime to (time of (current date) as integer) - (time of startTime as integer)
set min to startTime div minutes
set sec to startTime mod minutes
if min < 10 then set min to "0" & min as string
if sec < 10 then set sec to "0" & sec as string

display dialog "偶数 " & o_num & " 回" & return & "奇数 " & e_num & " 回" & return & "time " & min & ":" & sec


CoreDuo 1.83 10.4.9
スクリプトで4秒
アプリケーションバンドルで5秒〜6秒
アプリケーションで19秒

ロゼッタおせえええ
497名称未設定:2007/08/07(火) 06:30:03 ID:35D/NVDo0
<=は構文チェックされると一文字の記号になっちゃうんだ
498名称未設定:2007/08/07(火) 06:33:40 ID:35D/NVDo0
set the clipboard to "偶数 " & o_num & " 回" & return & "奇数 " & e_num & " 回" & return & "time " & min & ":" & sec
を追加して。

偶数 50017 回
奇数 49983 回
time 00:02

2.16 GHz Intel Core 2 Duo メモリ2GB
499名称未設定:2007/08/07(火) 06:36:24 ID:35D/NVDo0
乱数の偏りをちゃんと調べるにはどれくらいサンプルを取ればいいのかな
500名称未設定:2007/08/07(火) 12:27:38 ID:d/dnev2D0
>>495
最初表示してたらすごい時間かかりそうなので
消しても遅かった。
試しに保存してスクリプトメニューから実行したら
100000回で7秒だった。
で、いろいろ調べたら「イベントログの履歴」で
ログを常時取得するようにできるようで、それがオンになってた。
オフにしたら早くなった。
スクリプトエディタってシンプルなアプリだけど知らないことも多いなあ。
501名称未設定:2007/08/07(火) 16:55:47 ID:QIK6FDU50

set a to {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
repeat 10000 times
set rn to random number from 1 to 10
set item rn of a to (item rn of a as number) + 1
end repeat
a

1から10の出現回数
502名称未設定:2007/08/11(土) 16:57:27 ID:yaMOBA/K0
音声ファイルをフルパスで指定して
iTunes のあるプレイリストに追加するには
どのようにすれば良いでしょうか。
503名称未設定:2007/08/11(土) 22:25:50 ID:MDzyFPmO0
>>502
add alias "パス" to プレイリスト
504名称未設定:2007/08/11(土) 23:28:05 ID:yaMOBA/K0
>>503

tell application "iTunes"
  add alias "Macintosh HD:Users:username:path:hoge.mp3" to playlist "APlaylist"
end tell

でいけました。
ありがとうございました。
505名称未設定:2007/08/12(日) 07:07:09 ID:FM4ze/JS0
さっき知ったんだけど引くだけで所要時間が得られたんだね><
set date_then to current date
delay 3
(current date) - date_then
506OS9でAppleScriptを勉強中:2007/08/14(火) 00:10:10 ID:jl6UXE+f0
リファレンスによると,status windowは痕跡扱いとなっているらしいのですが,
実際OSXでのstatus windowの扱いはどうなっていますか? OSXを所有しておらず
調べることができないので,教えていただけませんか.
507名称未設定:2007/08/14(火) 01:25:19 ID:W1M9V3Pi0
ないみたいです@Mac OS X 10.4.10
Finderの用語説明にはないし
tell application "Finder" to status windows
もコンパイラを通過しません。

一方、コピーの途中で
tell application "Finder" to windows
をためしてみると、
≪class prwd≫ "コピー" of application "Finder"
というのが見つかりました。これがそれのようですね。
508名称未設定:2007/08/14(火) 08:35:31 ID:BAR/cwcM0
AppleScript初心者です。
iCalを終了させるAppleScriptを作りたいのですが、どのコマンドを使ったらいいですか?
お時間のある方教えて頂けると有り難いです。お願いいたします。
509名称未設定:2007/08/14(火) 08:37:48 ID:8W49TodX0
>>508
tell application "iCal"
quit
end tell
510OS9でAppleScriptを勉強中:2007/08/14(火) 10:40:42 ID:uesvOj2W0
>>507
ありがとうございました.うちのリファレンスにメモっておきます.
511名称未設定:2007/08/14(火) 14:35:18 ID:TaSOYON90
なぜOS9
512OS9でAppleScriptを勉強中:2007/08/14(火) 23:27:21 ID:EQgKgkxw0
>>511
自分のことですよね? OSXのAppleScript Studioとかガシガシ使ってみたい
欲求ありまくりなのですけど,OSX環境に移行するだけの経済的余裕がないのです.
513508:2007/08/15(水) 11:08:40 ID:xt7YOFIB0
>>509
亀で申し訳ありませんが、ありがとうございました
おかげで助かりました
514名称未設定:2007/08/15(水) 19:07:23 ID:avcohZTg0
Inboxではないメールボックスに入っているメールに返信して、
その後返信メールも自動的にそのメールボックスに移動する、
というスクリプトは可能でしょうか。
515名称未設定:2007/08/15(水) 20:03:13 ID:ZiCVcjlf0
>>514
十分可能だとは思うが、自分で試さずに人に聞いちゃう様な人に実現出来るかは不明
516名称未設定:2007/08/16(木) 14:20:44 ID:wpNQEH3q0
どんなアプリが再全面であってもそのアプリで選択された文字列を確実に取得する方法ってあるのでしょうか?
tell application "System Events"
keystroke "c" using command down
end tell
みたいなやり方だとタイミングのせいか、クリップボードには入ってるのに取り出せなかったりして困ってます。
517名称未設定:2007/08/16(木) 14:57:18 ID:joQgW1cH0
そのアプリってどのアプリ?
miだとこれでいけた

tell application "mi"
selection of front document
set the clipboard to result
end tell
518名称未設定:2007/08/16(木) 15:00:20 ID:G/bcZObu0
delay 1 とかやって時間に余裕を持たせる手もある
519名称未設定:2007/08/16(木) 15:56:02 ID:xeOewEq40
tell application "System Events"
tell application "" to activate
delay 1-------------------------適当な値
keystroke "c" using command down
delay 1-------------------------適当な値
end tell
520名称未設定:2007/08/16(木) 19:26:00 ID:2z2gm7750
>>517
どんなアプリが全面に来ても、って意味じゃね?
(もちろん文字列を選択出来ないと駄目だけど)
ってことはkeystroke 'c'で取るしかなさそうだ
521名称未設定:2007/08/16(木) 19:32:26 ID:joQgW1cH0
>>520
ほんまやね><
activateさせなくても取りたいって意味だと思った
522名称未設定:2007/08/17(金) 10:41:40 ID:xA1J4Biw0
>>519
文字列選択した時点でそのアプリのウインドは前面に来てると想定したら
tell application "" to activateは不要?
523名称未設定:2007/08/17(金) 12:27:56 ID:nEV2tSVV0
>>522
アプリ名入れないとコピー出来ないね。うまくやるにはどうしたらいいか。
524名称未設定:2007/08/17(金) 13:26:13 ID:7uzv6NNn0
文字列選択した時点でそのアプリのウインドは前面に来てると想定したら、最前面のプロセスを取得すればればいいんじゃないの
というか>>516がいないからもう
525名称未設定:2007/08/17(金) 18:53:58 ID:ONZ+9y4K0
keystrokeは常に最前面に対して作用するので
activateは必須・・・のはず。
目的のアプリのUI elementに用があるのでない限りこの場合processにtellする必要はとくにない・・・はず。

最近スクリプト書いてないので自信ないw
526名称未設定:2007/08/17(金) 20:53:37 ID:Og9Lr1hd0
>>516
クリップボードに入ってるならコピーは出来てるんじゃない?
取り出せないってのはどういう事?
527名称未設定:2007/08/17(金) 20:56:31 ID:iXS0npM10
やってみればわかるがそういうことがあるんだよ
528名称未設定:2007/08/17(金) 21:52:52 ID:YvyaYQlI0
いやわからない。クリップボードがらみのスクリプトを作ったときにさんざん試したが。
529名称未設定:2007/08/17(金) 22:08:07 ID:DrL3PydG0
あれおかしいな。スマソ
530名称未設定:2007/08/17(金) 23:16:37 ID:ONZ+9y4K0
基本はこんな感じだよね

tell application "System Events"
set aName to (name of (path to frontmost application))
set appName to (do shell script "echo " & quoted form of aName & " | sed 's/" & (ASCII character 128) & ".app$//'")
end tell
tell application appName
activate
set the clipboard to ""
end tell
tell application "System Events"
set num to 0
repeat until ((the clipboard) is not "" or num = 10)
keystroke "c" using command down
set num to num + 1
delay 0.5
end repeat
end tell
531名称未設定:2007/08/18(土) 02:14:41 ID:aQVqs2VH0
>>528
keystroke vとかすると、タイミングによっては直前にクリップボードに入れたものがペーストされないことがあるって意味じゃね?
532名称未設定:2007/08/18(土) 04:22:11 ID:ZsP0kNoX0
自分はクリップボード使うスクリプトは最初にset theClipboad to the clipboard as record
最後にset the clipboard to theClipboad で律儀に戻してる。
533OS9でAppleScriptを勉強中:2007/08/18(土) 09:20:16 ID:L6Ftogy40
皆さんとは環境が違うし的外れなこといってるかもですが,Clipboardの件,
例えばlaunchで一度Finderに戻ってから実行するとか,ignoring使ってみるとか.
534名称未設定:2007/08/18(土) 22:15:07 ID:xwuM1BcX0
クリプボードはアプリごとに渡すので、そのタイムラグが必要だと思っている。
フロントエンドのアプリにしかわたっていないようだし。
535名称未設定:2007/08/20(月) 01:09:36 ID:zXcDpZaB0
スクリプトの起動時に押されているキーコードを取得して分岐させたいんですが、
Jon’s Commandsのkeys pressedというのを使うしかないんでしょうか?
http://www.seanet.com/~jonpugh/

Mac OS X (10.4.10)ではどうも使えないようでして。

System Eventsでどうにか出来ないかといろいろやってみたんですが・・。
ヒントだけでもよろしければご教授ください
536名称未設定:2007/08/20(月) 21:48:55 ID:ecKRLyWK0
>>535
アップルメニューの中を見るぐらいしか思いつかない。
考え方としてはこんな感じ。

tell application "Finder" to activate
delay 3 --この間にシフトキーを押したり押さなかったりしておく
tell application "System Events"
tell process "Finder"
try
set thePosition to (position of menu item "強制終了…" of menu "Apple" of menu bar item "Apple" of menu bar 1)
thePosition --position of menu item "強制終了…" の値を返す
tell application "Finder"
activate
display dialog "Shift キーが押されていません。"
end tell
on error
--Shift キーが押されている間は menu item "強制終了…" の position は missing value になるので、thePosition は定義されない。従って thePosition を呼び出そうとするとエラーになる。
tell application "Finder"
activate
display dialog "Shift キーが押されています。"
end tell
end try
end tell
end tell
537名称未設定:2007/08/20(月) 21:52:38 ID:ecKRLyWK0
あーでもスクリプトメニューからだとダメか
538535:2007/08/20(月) 22:13:11 ID:v7z4//Yy0
ありがとうございます!アップルメニューの中を見るとは、全く目からウロコが落ちた思いです。
上の例のようにFinderをactivateすればスクリプトメニューからでもいけますね。

もっと頭を柔らかくして取り組んでみようと思います。ありがとうございましたm(__)m
539名称未設定:2007/08/21(火) 00:49:58 ID:6VXxl52L0
tell application "Safari"
set hige to do JavaScript "var moe = escape(window.getSelection()); unescape(moe);" in document 1
set summary to summarize hige
display dialog summary
end tell

Safariの選択文字列を要約してダイアログで表示
書いてからサービスメニューから要約すれば良いことに気が付きました
540名称未設定:2007/08/22(水) 11:55:11 ID:J3kCtImN0
do shell script in AppleScript
http://developer.apple.com/jp/technotes/tn2065.html

二重括弧(")を扱うには、バックスラッシュ(\)で
エスケープする、となっていますが、

set stg to "a \"quote\" mark"

としても、構文エラーになってしまいます。
なにか設定が必要なのでしょうか?
541名称未設定:2007/08/22(水) 12:21:18 ID:6Q2Ewi230
¥でなく\
542名称未設定:2007/08/22(水) 12:32:44 ID:U2fkO/130
スクリプトエディタで\(option+¥)と書いて構文チェックされると¥と表示されるけどそれでいけるはず

投稿出来ないので全角で書き込んだ
543名称未設定:2007/08/22(水) 16:19:48 ID:Eg5ADyx40
ネットワーク経由で他のクライアントから、
AppleScriptアプリケーションをキックする方法ってありませんか?
ファイルメーカのインスタントwebでは、
AppleScriptを実行するスクリプトが使えなくて困っています。
544名称未設定:2007/08/22(水) 17:22:49 ID:PeGu1tkg0
>>540
この書き方はダメだよ。AppleScriptはUnicode化されてなくてスクリプトは
エンコーディング変換されて収納される。だから言語設定の影響受けたり
再コンパイル時に壊れる。
面倒でもバックスラッシュ(U+005C)は直書きしない方が良い。
set stg to "a " & quote & "quote" & quote & " mark"
set backslash to ASCII character 92
"a back" & backslash & "slash"
545名称未設定:2007/08/22(水) 21:37:20 ID:wxtxvf4j0
ASCII number of («data utxt005C» as Unicode text)
#=> 128

なのでASCII Character 128では?
どっちでもよさそうだけど。
546名称未設定:2007/08/22(水) 23:07:48 ID:6zMYfWJa0
tell (choose remote application)
handler_on_remote()
end tell
547名称未設定:2007/08/22(水) 23:09:34 ID:U2fkO/130
そんなのあったんだ

ちょっと吃驚してスクリプトエディタに書いてしまった
548名称未設定:2007/08/22(水) 23:39:00 ID:PeGu1tkg0
>>545
それも環境依存のコード
言語設定で日本語優先になってると間違った値が返る。
英語優先にしてると正しく92が返る。
549305:2007/08/22(水) 23:54:24 ID:m5EIErAS0
バックスラッシュを直書きしないほうがいいなんて初めて聞いたなー
まがいなりにもプログラミング言語なんやから、この記号でコードが壊れる
ような実行/開発環境はないやろ。常識的に考えて…
550名称未設定:2007/08/22(水) 23:59:54 ID:AT4Np7m20
>>549
バックスラッシュと日本語を含むAppleScriptが英語環境で動かないって
言われて、試したら動かなくてバックスラッシュは>>544みたいな置換と
日本語は英語に書き換えて対処したよ。
日本語とバックスラッシュを含むAppleScriptを英語環境で動かす方法があるなら
教えて欲しいです。
551OS9でAppleScriptを勉強中:2007/08/23(木) 00:05:27 ID:PdrZHmoP0
皆さんにはあまり関係ないと思いますが,参考程度に.
OS9で>>540さんの\を\(ここでは全角)に変えると,エラーになります.
552OS9でAppleScriptを勉強中:2007/08/23(木) 00:13:12 ID:PdrZHmoP0
>>550
自分がレスした>>489に関連してるかもですが,日本語に関しては
識別子を付ければよさそうな気も.確たる保証はないですけれど…….
553名称未設定:2007/08/23(木) 00:55:08 ID:IJcaEsXE0
>>550
どこかで見たけど.plistに詰め込めば良いとか
面倒極まりないけど
554544:2007/08/23(木) 01:11:38 ID:rUtaXoPD0
>>550
Bundle形式にしてメッセージ文字列はUnicodeでLocalizable.stringsに書く。
localized string "key"でUnicode文字列が得られる。これだと環境に影響されない。
普通のアプリと同じ方法を使うってことです。
555名称未設定:2007/08/23(木) 01:26:22 ID:IJcaEsXE0
そ、そう、それでした
556名称未設定:2007/08/23(木) 01:52:40 ID:qUJSZnvs0
>>548
なるほどトンクス
557名称未設定:2007/08/23(木) 18:14:56 ID:b7h9f5zR0
複数の(大量の).scpt ファイルに含まれる文字列の一括置換ってどうしてますか?
MassReplaceIt.app では普通のテキストファイルではないからかエラー(Read Error)になってしまいます。
558名称未設定:2007/08/23(木) 23:40:34 ID:HsQg92HI0
>>557
スクリプトエディタを操作するスクリプトを作ってなんとかするとか
559名称未設定:2007/08/23(木) 23:50:27 ID:ElX6AMnL0
>>554
Localizable.stringsとlocalized string "key"で
英語環境でもdisplay alertで日本語表示できました!情報サンスクです。

しかしdo shell scriptで使ったバックスラッシュの方は
英語環境では動くけど日本語環境では動かないことに気がつきました。
例えば
do shell script "echo 'watch?v=123' | perl -ne 'm/watch\\?v=([0-9]+)/; print $1'"
--日本語環境で自分がいつも書いているもの。123を抜き出せる
--英語環境だとバックスラッシュが文字化けして123を抜き出せない
--英語環境で文字化けしたバックスラッシュを入力し直すと123を抜き出せる
--そのファイルを日本語環境に持ってくるとバックスラッシュが\¥になって動かない。

set backslash to ASCII character 92
do shell script "echo 'watch?v=123' | perl -ne 'm/watch" & backslash & "?v=([0-9]+)/; print $1'"
--日本語環境では123が抜き出せないけど、英語環境だと123を抜き出せる
--イベントログでバックスラッシュが\¥と表示されている

そこで試しに
set backslash to ASCII character 128
do shell script "echo 'watch?v=123' | perl -ne 'm/watch" & backslash & "?v=([0-9]+)/; print $1'"
にすると日本語環境で123を抜き出せました。
しかし、英語環境では123を抜き出せませんでした。

試してませんが日英両対応するにはdo shell scriptに渡す文字もlocalized stringを
使えばいいんでしょうかね。
ただ、localized stringはスクリプトエディタから
実行するとローカライズされた文字が取得できないようなので
デバッグがめんどくさそうです。
560名称未設定:2007/08/23(木) 23:56:29 ID:SgBJqIfK0
>>557
そもそも.scptファイルはテキストじゃないんだが。
561名称未設定:2007/08/24(金) 00:07:06 ID:vLXl8iMO0
>>558
なるほど。やってみます。ありがとうございました。

>>560
そうでしたか。ありがとうございました。
562544:2007/08/24(金) 01:09:33 ID:QYsgBZzy0
>>559
set backslash to <<data utxt005C>>
とUnicodeを明示するとどちらでも動きますね。
>ただ、localized stringはスクリプトエディタから
>実行するとローカライズされた文字が取得できないようなので
>デバッグがめんどくさそうです。
Script Debugger 4使いましょう。ちゃんと動きます。
本格的にスクリプト書くならスクリプトエディタは使い物にならんっす。
563名称未設定:2007/08/24(金) 03:09:52 ID:KUoe5uWp0
Script Debugger 滅茶苦茶高いな
564名称未設定:2007/08/24(金) 04:12:32 ID:PkwkVZPs0
デバッガがかなり便利だよ。Explorerという機能も。
AppleScriptに深く関わる人なら買って損無し。
565名称未設定:2007/08/24(金) 13:44:01 ID:XnvNZt5/0
\(バックスラッシュ:実際は半角)を打って保存すると、
?(アーウムラウト:多分化ける)が表示される。

set backslash to <<data utxt005C>>
っていうのは本文に書くのでしょうか?
「<<」が構文エラーと云われてしまう。
566名称未設定:2007/08/24(金) 13:57:46 ID:RnPqtiuI0
>>565
set backslash to ヌdata utxt005Cネ
でOK
567名称未設定:2007/08/24(金) 17:48:56 ID:MV20EsYr0
ヌネが嫌ならスクリプトエディタのフォントを欧文フォントにしておけばいい。
がそれはそれでいろいろと...
568名称未設定:2007/08/24(金) 18:16:20 ID:XnvNZt5/0
Re: Re: Japanese backslash
http://lists.apple.com/archives/applescript-users/2007/Apr/msg00314.html

結局のところ、「"」をリテラルに渡したり、「\」を使う場合で、
日本語、英語環境に依存しないようにするには、
localized stringに書くしかないってこと?
569名称未設定:2007/08/25(土) 01:24:45 ID:Ji8D76Z90
え・・・Monaco12pt以外で使ってるの、みんな??
昔applescript-usersのメーリングリスト読んでたときは、コピペされた(構文強調された)
コードはみんなデフォルトのスタイルのままで、容易には変えられないぐらい見慣れたものに
なっちゃってる。予約語のスタイルにアンダーラインを使う人は結構いたけど。てゆうか、
このスレってOS 9の人が多いのかな?デフォルトが大阪?
570名称未設定:2007/08/25(土) 02:35:14 ID:7N8OzdJd0
OSXでも日本語優先環境だとスクリプトエディタのデフォルトフォントはOsakaです。
571名称未設定:2007/08/25(土) 02:54:51 ID:mvxLh1Jx0
最近AppleScriptいじまくってるんですけど結構奥が深いですね。面白いです。
572名称未設定:2007/08/25(土) 03:29:15 ID:E3PL9YKE0
OS9の頃から、各種予約語や符号など
それぞれフォントや書体を変えてるのが当たり前だと思っとったけど
違うの?

そのままだと禿しく見にくいやん
573名称未設定:2007/08/25(土) 08:18:17 ID:j+Y2z+pz0
フォントや文字色は各自自由に設定してるんじゃないの。自分で見やすいように。
574名称未設定:2007/08/25(土) 17:58:16 ID:no+ufxUv0
Osakaで色だけ変えてるなあ

« → option + ] →
» → shift + option + ]
575名称未設定:2007/08/25(土) 18:00:09 ID:no+ufxUv0
まちがえたorz

« → option + ]
» → shift + option + ]
576名称未設定:2007/08/25(土) 22:18:15 ID:reZ5nejw0
日本語をLocalizable.stringsに入れれば英語環境で動くようになるのが
わかったのでこの作業を自動化できないかとやってみたところ
いちおうできました。
すべてのスクリプトが変換可能かはわかりませんが、
手元の変換したいスクリプトは変換できるようにはなりました。

ttp://mdqtool.hp.infoseek.co.jp/cgi-bin/uploader/upload.html
up0040.zip
にアップしたので興味があるならどうぞ。
サンプルが普通に動いてしまったりとかできがわるかったですが・・・。
あとフォントの設定に依存している所がありますが
自分の設定はこれです。動かない時は参考にしてください。
http://www.pinkapple.tv/uploads/general20070825183448.png

できあがったものは改造とかやりにくいけど自分の場合ネットでの配布用なので
とりあえず動くようになってればいいかなと。
ただ数ヶ月動かないバージョンで放置していたので
今でも英語環境で動くスクリプトを必要としている人がいるかはわかりませんが・・・。
まあ、今後の為にということで
577名称未設定:2007/08/25(土) 23:09:02 ID:7wOGaYLN0
>>568
スクリプトバンドル・アプリケーションバンドルとかで保存すればそういう問題は
解決されると勝手に想像してたけど違うのか。
何のための新しいフォーマットなんだ。単にバンドル化したかっただけか。
578名称未設定:2007/08/26(日) 11:25:41 ID:ZxuyMLel0
流れを読まずに質問なんですが、スクリーンセーバを起動するにはどう記述すれば良いのでしょうか?
ウィキを見たりググっても分からなかったので教えてください。

579名称未設定:2007/08/26(日) 11:54:43 ID:KaD9lxzj0
ScreenSaverEngine.app を起動すればいいみたいよ
ttp://weblog.metareal.org/2007/03/28/launch-screen-saver-from-quicksilver/
580名称未設定:2007/08/26(日) 14:31:35 ID:YALRyvGN0
10.5のスクリプトエディタってパワーアップしてるのかな?。
ウインドウの分割ができるようになってると嬉しいのだが
581名称未設定:2007/08/26(日) 15:23:39 ID:RjLY92pr0
文字列操作が簡単に出来るようになってたらいいね
582名称未設定:2007/08/26(日) 16:11:20 ID:thn4w3uv0
何も変わってないに三十両
583578:2007/08/26(日) 16:59:40 ID:ZxuyMLel0
>>579
うまく行きました!ありがと。

584名称未設定:2007/08/26(日) 19:39:35 ID:JVO5gHZT0
俺も何も変わってないような気がする
Xcodeと統合してしまってほしいな
585名称未設定:2007/08/26(日) 20:01:31 ID:PaYgYk9N0
>>576
3点ほど
Localizable.stringsはUTF-16で書くこと、現状UTF-8でも動くけど非推奨
各国語のローカライズ版を作るんじゃなくてUnicode文字列得たいだけなら
English.lprojは要らない。ResourcesにLocalizable.strings置けばオケ
localized string "key"は見つからない時そのまま"key"を返すから、それと
判るkeyを使った方が良い。
586名称未設定:2007/08/29(水) 15:47:19 ID:BVbRMG5z0
一太郎のテキストのみを取り出すスクリプト作ったけど需要ある?

公務員の親父のために作ったスクリプトなんやけど
587名称未設定:2007/09/01(土) 04:44:41 ID:pzn09xYB0
Scripts フォルダに定型文とかいうフォルダを作ってアドレスやパスワードや CSS のコードとかの階層をいくつも作って System Events でペーストさせてるのは俺だけでいい
588名称未設定:2007/09/01(土) 07:30:41 ID:mKUdLjeQ0
俺はLaunchBarから実行してる
589名称未設定:2007/09/01(土) 18:40:38 ID:CPJI1QrH0
スクリプトメニューって重くない?
階層でたくさん突っ込んだら、メニューを開くのが遅くてたまらない。
590名称未設定:2007/09/01(土) 19:38:33 ID:UKrE18ev0
うちじゃ重いと思ったことはないなあ
591名称未設定:2007/09/02(日) 05:46:56 ID:MWaclkD+0
Mac mini G4だけど、昔システムの再インストールした後からそれほど
遅れなくなったような気がする。引っ越しを機にグローバルな
ユーザースクリプトを減らしたからかな?Finder scriptは12個
登録してるけど遅いとは感じないよ。
592名称未設定:2007/09/02(日) 12:20:05 ID:GMSz1a6g0
589です。
グローバルが30ほど、各アプリ10ほど、ユーザーが30ほど。階層構造有り。
少し整理しますかね。
593名称未設定:2007/09/02(日) 14:01:43 ID:28j4VrKp0
それは凄い
AppleScript活用してるなあ
594名称未設定:2007/09/03(月) 03:48:46 ID:1sa9322s0
スティッキーズ大好きすぎて、いつも数十のメモが
散らばっています。
たたみながら整列してくれる、「Arrange By」の機能は便利なんですが、
逆に全てのメモを開くスクリプトは書けないものでしょうか?
Cmd+Mで「開く・閉じる」はできるので、
キーマクロを書いたほうがいいのかな?
595名称未設定:2007/09/03(月) 05:40:35 ID:FJEMFlJm0
スティッキーズはAppleScriptに対応してないから
面倒だわな
596名称未設定:2007/09/03(月) 06:52:05 ID:oOna/Xg90
数十ものメモを作って活用してるのに感動して初めてスティッキーズを起動して書いてみた
上手く行かなかったらdelayの数値を適当に変えてみて

tell application "System Events"
tell application "Stickies" to activate
set hige to count every window of process "Stickies"
repeat hige times
keystroke "m" using command down
key code 118 using control down
delay 0.5
end repeat
end tell
597名称未設定:2007/09/03(月) 07:06:12 ID:oOna/Xg90
その場で展開するだけなので改良してみた。実際に数十もあると途中で座標を戻るようにしないといけないだろうけどさすがに面倒なので・・

set x to 30
set y to 40
tell application "System Events"
tell application "Stickies" to activate
set hige to count every window of process "Stickies"
repeat hige times
set position of window 1 of process "Stickies" to {x, y}
keystroke "m" using command down
key code 118 using control down
set x to x + 10
set y to y + 15
delay 0.5
end repeat
end tell
598名称未設定:2007/09/03(月) 07:10:30 ID:oOna/Xg90
自分じゃ全く使わないけどどんなアプリでも使えるウインドウ送りがcmd+F4なのを知ったので良かった
連続書き込みすいません
599名称未設定:2007/09/03(月) 12:22:21 ID:1sa9322s0
サンキュー、エクスポゼと併用して幸せになれました。
キーストロークで動かすと、
やっぱりdelayは必須になるのかなぁ?
delayなしのスピードで動くとばっちりなんだけどなぁ。
スティッキーズがAppleScriptに対応しないと無理かな。
600名称未設定:2007/09/03(月) 16:46:46 ID:qqZEpzQk0
Finderと同じくらい前からあるアプリなのにな
601名称未設定:2007/09/07(金) 22:37:02 ID:c4BSGTvy0
純正なのにアプスク非対応だとがっかりするよね
602名称未設定:2007/09/07(金) 22:38:57 ID:SYslMLjJ0
>>598
今更だけどコントロール+F4の間違いだった
603名称未設定:2007/09/09(日) 23:26:31 ID:2LImE5uX0
photoshopの現在の選択範囲の座標とサイズ(縦と横)って得られないのかな?
もちろんアップルスクリプトで
604名称未設定:2007/09/10(月) 08:57:10 ID:ednBwXSI0
tell application "Adobe Photoshop CS3"
 tell document 1
  set selectRef to selection
  set boundsRef to bounds of selectRef
 end tell
end tell

環境設定の定規の単位で戻り値の単位が決まる。
605名称未設定:2007/09/10(月) 13:38:44 ID:XNDPAY3Z0
指定のフォルダ内になる”フォルダのみ”を全てZIPで圧縮する場合はどう書けば宜しいでしょうか?
606名称未設定:2007/09/10(月) 15:26:09 ID:TI70pU500
>>605
何もわからんなら Automator 使ってみれ。
607名称未設定:2007/09/10(月) 15:40:56 ID:tmGMOltK0
>>605
tell application "Finder"
items of (choose folder) whose class is folder
end tell
これで選択したフォルダのうちフォルダだけを取得できる
608名称未設定:2007/09/10(月) 15:47:52 ID:XNDPAY3Z0
>>606
ありがとうございます。
Automatorでも今試しています。

>607
使わせていただいています。できたらここで添削してもらおうっと。
609名称未設定:2007/09/10(月) 18:21:58 ID:+tiofchn0
>>607
2行目は
folders of (choose folder)
でいいんじゃない?
610名称未設定:2007/09/10(月) 23:10:03 ID:ednBwXSI0
>>605さん自分でがんばってるみたいだし、添削依頼待ちもって便乗質問

tell application "Finder"
 set itemRet to items of (choose folder)
 log itemRet -->旧名前順? 1<11<2
 set itemRet to sort itemRet by name
 log itemRet -->intel OSX10.4.10(現環境1台のみ) Finderでの名前順 1<2<11
end tell
何処かでファインダの仕様かわってたんだね。ファインダの見た目依存のスクリプトいくつかもってて。
で、OSのバージョンで切り替える為に細かい数字だれか知っていたら教えてほしい。
611名称未設定:2007/09/10(月) 23:25:09 ID:UqtMmmIC0
>604さん
早速ありがとうございます!
CS3なら出来ました!(CSS2は無理でした。)
さらにもう一つ聞きますが・・・
boundsRefから得た座標で楕円を作ることは出来ますか?

select regionって楕円にするオプションがあると思ったら、ないんですね・・・
簡単にありそうでないですね。

よろしくお願いします。
612604:2007/09/11(火) 13:36:18 ID:YA+zQSO30
>>603
フォトショップの辞書にないならASにはお絵描きの元も三角関数もないのでJAVAに移った方が早いと思う。
アドビ系は無料でExtendScriptToolkitついてるんだし。UIのデザインは気に食わんけど!!
613名称未設定:2007/09/11(火) 22:48:18 ID:CPYa7+Pt0
先進のオブジェクト指向スクリプティング言語に進化した、新AppleScriptとか出ないすかね…。
今のAppleScriptには違和感ありまくり。
何年前の言語だよ、と。
もうAppleはAppleScriptを見捨ててるのか?
614603:2007/09/11(火) 23:17:07 ID:/dimO4ZU0
604さんありがとうございます。
そうですね・・・何もできない。
画像をタイリングして画像の中にファイル名入れたり、
データベースと連動させて画像を生成するなら良いのでしょうが・・・
実際にできる事少ないです。

初歩的な事聞きますが、ところでJAVAの場合ファイルを複製したりリネームしたりはできるんですか?
JAVAをちょっと勉強する気になりました。

ついでに教えてください。
レイヤーの透明分以外を選択範囲にする(?+レイヤークリック)っapplescriptでできなさそうなんですが、やっぱりできませんか?
アルファチャンネルをロードできるんで、できると思ってたんですが・・・

613さん
やっぱり見捨てられてるんですか?
JAVAでも同じような物と思ってました。がんばれapplescript
615名称未設定:2007/09/11(火) 23:40:16 ID:uBlPErcZ0
アップルスクリプトは見捨てられているというか、
過去のスクリプト資産を保持するために存在してるだけという感じ。
いまだにstandard additionsがそれとして存在してるのが悲しい。
616名称未設定:2007/09/12(水) 02:11:26 ID:CBt4lcdC0
俺は却って今のAppleScriptの方が、Objective-Cとかに比べるととっつきやすいかな、と思ってるから現状維持派。
確かに速度が遅かったりするけど、速度がもの言うようなことしているわけでもないし。
617名称未設定:2007/09/12(水) 02:38:10 ID:0fzHv5Bw0
スクリプトエディタの糞っぷりが改善されればなあ
618名称未設定:2007/09/12(水) 04:56:00 ID:fH/q+Y+e0
何年前の言語だよ」ハァ?なにいってんだ

tell application "Finder" to open the startup disk

これ、コメントじゃなくてコードですよ。これがAppleScript。
今のAppleScriptには違和感」ハァ?言語をなんだと思ってんだ。
619604:2007/09/12(水) 08:30:33 ID:vcG18lAh0
>>614
アドビ系のアプリの使い方自体のことはほとんどわからんのよ。ごめん。>604のは、いわゆる共通の書き方してみたら通ったから。
ファイル操作できるよ。ExtendScriptToolkitから辞書見れるから見てみたら?てか、アドビはASもJSもめちゃくちゃ丁寧なリファレンスついてくるじゃん。
ちなみに他のアプリと通信しないなら、こだわる必要ないかとJSっていっただけ。でも自分にはまだまだASがNo.1言語だな。
620名称未設定:2007/09/12(水) 10:47:52 ID:wrvl6Oue0
ASでPSのScriptを呼び出して実行させ、その結果をASで受けるとかは駄目なの?
621名称未設定:2007/09/16(日) 14:33:24 ID:ijZ5Tt1w0
AppleScript関連の本を買い揃えていくうちに,10冊以上になった.
でも頻繁に使うのは,こばやしゆたかさんのリファレンス本のみ…….
622名称未設定:2007/09/17(月) 19:32:54 ID:v58f6/q60
>>585
遅くなりましたがありがとうございます。
ご指摘の件修正しました。
localized stringが連番なのは手抜きでとりあえず動くようにするには
これしか思いつかないのでこのままにしときます。
一応通常形式に保存し直した場合などに備えて
読み込みテストして失敗した場合はダイアログ出して
スクリプトを続行するか停止するかを尋ねるようにしてみました。
623名称未設定:2007/09/17(月) 23:39:21 ID:Xbqw/2x10
教えて下さい。
パスを指定するとき
"file:/PBG4:Users:Shared:Library:newfile"とか
folder "ユーザ" of disk "main-PBG4"
等色々な書き方が有りますが、特に違いはあるのでしょうか?

また、このパスから一つ上の階層等を計算で指定する方法はありますか?
普通に:の数を数えてその数から1引いてとか、方法は有るんでしょうが、
一発で指定する関数みたいな物は有りますか?
色々調べましたが、分かりません・・・よろしくお願いします。
624名称未設定:2007/09/18(火) 00:11:25 ID:qm/GYQFO0
上は普遍的にどのアプリでも使える。
下はFinderでしか使えない。

上の階層の取り出しは、上の表記では指摘の通り計算で出す。
下の表記のときは、Finderが扱っているので親フォルダを尋ねると返してくれる。
625名称未設定:2007/09/18(火) 03:34:32 ID:FB/TA1eh0
set alpha to choose file
set bravo to POSIX file (alpha as string)
set charlie to POSIX path of bravo
set delta to charlie as alias
tell application "Finder"
set echo to container of delta
end tell

log alpha
log bravo
log charlie
log delta
log echo
626名称未設定:2007/09/18(火) 08:15:06 ID:f6avEaFr0
Dockにとりあえずドロップしまくってあるインターネットロケーション(httpのみ)をテキストファイルにするのを勢いだけで書いてみた。
アイスコーヒー入れてるのでこれでいいんだから。

set hige to (do shell script "defaults read 〜/Library/Preferences/com.apple.dock | grep -w 'http' | sed 's/\"_CFURLString\" = \"//g' | sed 's/ *//g' | sed 's/\";//g'")

tell application "TextEdit"
set moe to make new document
set text of moe to hige
end tell
627名称未設定:2007/09/18(火) 12:08:36 ID:FB/TA1eh0
charlie と bravoがちょっとちがた。

set alpha to choose file
set bravo to POSIX path of alpha
set charlie to bravo as POSIX file
set delta to charlie as alias
tell application "Finder"
set echo to container of delta
end tell

log alpha
log bravo
log charlie
log delta
log echo
628名称未設定:2007/09/18(火) 21:59:23 ID:vL7CBfok0
OSX(10.4)で、画面上をクリックするにはどうすればよいでしょうか
>>55 にシェアウェアが紹介されてますが、フリーウェア(もしくはデフォルト)ではできないのでしょうか
629名称未設定:2007/09/19(水) 00:35:48 ID:Xg4ZXP7V0
10ドル
630名称未設定:2007/09/19(水) 00:57:21 ID:Gy2Qxcxm0
>>623
自分の経験から,上の方がわずかに処理速度が速いです.
速いMacだと,その速度の違いには気付かないかもしれませんが.
631名称未設定:2007/09/19(水) 03:44:52 ID:eB4gY+H20
すみません、チェックボックスの状態を変えるにはどうしたらいいんですか?

click checkbox 1 of ......
とか
set value to 1とかやってみたのですが全く駄目でした。
632631:2007/09/19(水) 03:49:43 ID:eB4gY+H20
あともう一つ思い出したんですが、
システム設定の共有はcurrent paneで切り替えられないんでしょうか?
sharingprefで指定しても切り替わらないんです。
仕方ないので今のところclick buttonで切り替えてます。
633名称未設定:2007/09/19(水) 04:36:35 ID:RFISsXSz0
いずれも英語環境での例になるけど、

>>631
tell application "System Events"
tell process "System Preferences"
tell tab group 1 of window 1
click radio button "Sound Effects"
click checkbox "Play user interface sound effects" of group 1
end tell
end tell
end tell

>>632
tell application "System Preferences"
activate
set current pane to pane "com.apple.preferences.sharing"
-- または
-- set current pane to pane "Sharing"
end tell
634名称未設定:2007/09/19(水) 04:42:40 ID:RFISsXSz0
ああ、checkboxの方はこれ↓やったといた後の話でやんす。念のため。

tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.sound"
end tell

# com.apple.preference. と com.apple.preferences. があんのね。今知った。
635631:2007/09/19(水) 06:06:48 ID:eB4gY+H20
>>633
ありがとうございます!
無事current paneが切り替わり、チェックもできました。
636名称未設定:2007/09/19(水) 19:57:05 ID:jQRp5Dbg0
各位

複数ファイルを納めたフォルダを、.Macにアップロードするスクリプトご存知でしょうか?
637名称未設定:2007/09/19(水) 20:03:36 ID:YQaDCfLZ0
俺は知らない。
638623:2007/09/20(木) 00:23:13 ID:e0e5xB+s0
>>624
>>627
>>630
ありがとうございます!!

>>630
すごい!しこしこ自分で作っている間に、作っていただけるなんて!
でも、POSIXって初めて見た。リファレンス本にも載っていない・・・
しかもrepaet使っていないのにどうして???

本当にありがとうございます。
自分は1文字目から「:」かどうかrepeatでチェックして、
その位置と回数をsetして・・・・て作ってたのに・・・奥が深い。

もっと勉強します。
ありがとうございました。
639名称未設定:2007/09/20(木) 00:48:34 ID:BskrlxA40
>>638
自分は,作ってないです…….

>また、このパスから一つ上の階層等を計算で指定する方法はありますか?
上の話ですけども,計算ではない方法で一つ上の階層にアクセスできるやり方が,
リファレンス本の中の,市川さんのコラムのところに書いてあります.
640名称未設定:2007/09/20(木) 01:20:08 ID:6MjjGIoG0
>>623
POSIXはStandard Additionsの 用語説明に載ってるっしょ
641名称未設定:2007/09/20(木) 04:42:59 ID:A8lIpaXq0
>>638
数えて求める方法

set testPath to (choose file) as text
my parent_path(testPath, -1)

to parent_path(pathStr, gen)
set orgDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set mam to (text items 1 thru (gen - 1) of pathStr) as text
set AppleScript's text item delimiters to orgDelim
return mam & ":"
end parent_path

---

関数parent_path
 pathStr 対象アイテムへのパス文字列(文字列であることに注意)
 gen 何世代さかのぼるか。-1で1つ上、-2で2つ上...
 結果 さかのぼったパス文字列

まじめに使うためには、parent_pathの中でパラメータのエラーチェックを
しなければいけないんですが、その辺はお任せします。
# genはプラスで与えるほうが良かったかな(作ったときはマイナスのほうが
 直感的な気がしたんだけど、自信がなくなってきたぞ)
642名称未設定:2007/09/21(金) 18:58:02 ID:J2WLDCYd0
動画の指定した箇所をコピーして、それをItemのアイコンとして貼付ける
スクリプトを作りたいんだが、アイコンをコピーする箇所

set icon of (item 1 of dropItems) to (the clipboard)

の箇所でアイコンがセットできないというエラーが出る。
アイコンってどうやったら変えられますか?
643名称未設定:2007/09/22(土) 16:17:26 ID:iKXvHRBy0
on open theObj
display dialog "ファイル名末尾に追加する文字列を入力してください。" default answer ".flv"
set add_str to text returned of result
count item of theObj
repeat with i from 1 to result
set theObj_path to POSIX path of (item i of theObj as Unicode text)
do shell script "mv -f " & quoted form of theObj_path & space & quoted form of (theObj_path & add_str)
end repeat
beep
end open
644642:2007/09/22(土) 19:13:56 ID:hTKZrELO0
cocothumbXっていうアプリ使って解決しましたwすんません。
645名称未設定:2007/09/28(金) 23:31:41 ID:acV6jTAU0
Safariでのプリントの仕方が分かりません。

print "パス"

じゃだめなんですが。
646名称未設定:2007/09/28(金) 23:36:42 ID:JY08XeKa0
誰か教えてくれませんか?

くらい書いとけば?
647名称未設定:2007/09/28(金) 23:38:08 ID:PAjtzv230
documentにtellするんだ
print with print dialog
print だけだといきなり印刷。他にもオプション指定とかでも出来るらしい
648名称未設定:2007/09/29(土) 18:11:42 ID:KfjhLqSn0
ファイルの参照について質問させて下さい
alias型からSystem Eventsのdisk item型に変換するにはどうしたらいいのでしょう?
649名称未設定:2007/09/29(土) 19:55:32 ID:X07UHeHF0
>>648
tell application "System Events"
get item 1 of startup disk --> file "Macintosh HD:.DS_Store"
get item 1 of startup disk as alias --> alias "Macintosh HD:.DS_Store"
get disk item 1 of startup disk as alias --> 同上

…こんだけやけど。System Eventsにメッセージ送らんとだめですよ?
650名称未設定:2007/09/30(日) 00:33:01 ID:J3lW9Bur0
>>649
ありがとうございました
何か変換できてねーな、と思ってたんですが勘違いでした

以下のような事をしたかったのですが、上手く行かない原因は
「tell application "System Events"」が「tell "System Events"」
になってただけでした。

set an_alias to choose file
tell application "System Events"
name extension of an_alias --←disk itemのpropertyを取る
end tell
651名称未設定:2007/09/30(日) 06:49:19 ID:8RDlqRDf0
クラスの継承関係がitem→disk item→aliasだからaliasに対してdisk itemの
propertyも取れる。変換しなくても元からaliasはdisk itemってこと
652名称未設定:2007/10/02(火) 09:29:44 ID:tjU9PFDA0
質問させてくれ。

例えば {"a", "b", "c"} というリストがあったときに,"b"が何番目の要素かということを調べる方法ってあるか?
653名称未設定:2007/10/02(火) 09:34:21 ID:C6oOeKj40
ある
654名称未設定:2007/10/02(火) 09:43:17 ID:tjU9PFDA0
set thelist to {"a", "b", "c"}
set triger to 0
set number to 0
repeat while triger = 0
  set number to number + 1
  if item number of thelist is "b" then
    set triger to 1
  end if
end repeat

なーんて面倒だよな。
655名称未設定:2007/10/02(火) 10:06:14 ID:8f7BuEd50
サブルーチンにでもすればいんじゃねーの

on indexof(the_item, the_list)
set c to count the_list
repeat with i from 1 to c
if item i of the_list = the_item then return i
end repeat
return -1
end indexof
656名称未設定:2007/10/02(火) 10:25:03 ID:tjU9PFDA0
おお、さんくす。
657名称未設定:2007/10/02(火) 11:49:35 ID:tjU9PFDA0
>>656
ん、ちょっとまてよーわからん。確かにこれでうまくいくんだが。
repeat のところで、例えば2番目で引っかかって return 2 されたとするじゃん。
そしたら最後の return -1 はどうなるの?
無視されるんだろうけどさ。
低レベルスマソ
658名称未設定:2007/10/02(火) 12:45:51 ID:+r+Dg19z0
こんな感じはどうかな?

set theList to {"A", "B", "C"}
set myItem to "B"

set itemPos to listItem(theList, myItem) of me
log "リストの" & item itemPos of theList & "は" & itemPos & "番目です"

on listItem(theList, myItem)
  set i to 1
  repeat with oneItem in theList
    if contents of oneItem is myItem then exit repeat
    set i to i + 1
  end repeat
  return i
end listItem
659名称未設定:2007/10/02(火) 13:15:51 ID:+r+Dg19z0
>>655さんいないっぽなので代わりに。さいごの-1はヒットしなかった時のエラーコードかと。
自分の書く時どう書くかな?で試してて。せっかく書いたからカキコしてみた。横してごめんなさい。
660名称未設定:2007/10/02(火) 20:33:19 ID:1qBZvfo90
returnされる値がエラーの代わりになるというのは新鮮な発想だな。
しかしこれがたくさんあると書いた本人しかわからんスクリプトが量産されそう。
661名称未設定:2007/10/02(火) 21:21:02 ID:ANYLY7220
こういうのはOSAXで簡単にやってしまってはイカンのかな?
662名称未設定:2007/10/02(火) 23:13:22 ID:su+oyHS40
要素が全て1文字の文字列、という条件限定なら

offset of "b" in ({"a", "b", "c"} as string)
663名称未設定:2007/10/03(水) 01:07:11 ID:KTbc2DX/0
>>660
それを言ったら>>658の「return i」も同じ(見つからなければリストの長さより大きい値が返る)だし
>>654で「triger = 0」なのと大して違わないぞ
664名称未設定:2007/10/03(水) 01:11:11 ID:L+AlChVA0
>>660
えーっ、スゴく普通。ちょー普通。
not found で return -1 、Cとかで死ぬほどよくある。
665名称未設定:2007/10/03(水) 03:56:04 ID:ymuyVy9s0
とりあえず>>660=voidとしておけ。とりあえず。面白くも何ともないけど。
666名称未設定:2007/10/03(水) 08:26:30 ID:d2TpNnn40
勉強になるっす
667名称未設定:2007/10/03(水) 10:14:44 ID:3s2Mv49u0
ここ
http://homepage.mac.com/tkurita/scriptfactory/XModules/XList/manual/ja/index.html
にこんなものが

property XList : load("XList") of application (get "ModuleLoader")
(* Accessing list elements *)
set a_list to XList's make_with({"a", "b", "c"})
log a_list's item_counts() -- 3
log a_list's item_at(2) -- "b"
log a_list's has_item("b") --true
log a_list's has_item("d") --false
log a_list's index_of("b") -- 2
log a_list's index_of("d") -- 0
log a_list's delete_at(2) -- "b"
668658:2007/10/04(木) 01:17:55 ID:fAvoe2lN0
>>663さん。私のにcountで条件分岐つけたすより、明示的?(言葉わからん)に-1がいいとおもう。
でも意味は一緒でも(i)がcount超えたらfalseで返すのがapplescript的な書き方かもね。
>>661さんの意見ももっともなんだけど、手で書きたいじゃん。それが楽しい。
669名称未設定:2007/10/05(金) 00:10:30 ID:jMVp6O4i0
フルキーボードアクセス(control + F7)を有効にする
無効にしたい時はif文の"0"を"1"に置き換える

try
set fkaFlg to do shell script "defaults read 'Apple Global Domain' AppleKeyboardUIMode"
on error
set fkaFlg to "0"
end try
if fkaFlg is "0" then
tell application "System Events" to key code 98 using control down
end if

Preference探したけど見当たらなかったのでこんな方法になってしまった
システム環境設定を起動するのもメンドいしなぁ
670名称未設定:2007/10/05(金) 01:51:07 ID:k/ijan+w0
どうしてもわからないので質問させてください。
InDesignCS2(またはCS)のファイルをドロップして、
(できればFinder上で)そのファイルの保存バージョン(ビルドなど含む完全なバージョン)を取得したいのですが…、
無理なのでしょうか?
InDesignで開かせて、Indesign上から取得しようとしましたが、
どのプロパティを使えばいいのかが見つからず、結局、保存バージョンが取得できません…
ここ最近ずーっとググってたんですが見つからないので、
どなたかご存じの方がいらしたら、お力添えをお願いしたいです
671OS9でAppleScript勉強中:2007/10/05(金) 02:35:14 ID:5mFMAF940
>>670
set my_version to (version of script preferences) as real

InDesign持ってないのでGoogleで検索してみたら,上のようなソースが出てきました.
たぶん,これでイケるのではないかと思います.
672OS9でAppleScript勉強中:2007/10/05(金) 02:58:29 ID:5mFMAF940
あ,ごめんなさい.ファイルの保存バージョンなんですね.じゃあ,違いますね.
673名称未設定:2007/10/07(日) 08:40:52 ID:zRHfFise0
>655
リストの"-1番目"のアイテムだと,最後のアイテムを指してしまうぢゃないか!
674名称未設定:2007/10/08(月) 01:39:24 ID:x6EMG7sC0
dislpay dialog の attache to オプション好きなんだけどさ,
これモーダルにならないんだよな。

解決策ないか?
675名称未設定:2007/10/08(月) 01:47:15 ID:x6EMG7sC0
attache to --> attached to
676名称未設定:2007/10/08(月) 01:57:22 ID:gU96ucr50
attached toの意味がねーでねーか
677名称未設定:2007/10/08(月) 02:24:43 ID:x6EMG7sC0
そーゆーもんなのか。

ついでにもひとつ質問でし。
apple script studio なんだが,

else if ans ≠ (num1 + num2) then

という行があって,これだと Build failed になる。ただ,その行を

else if ans > num1 + num2 or ans < num1 + num2 then

に置き換えると通る。

どんな理由が考えられる??

≠は /= と入力してるんだ。


OS10.4.6
Xcode 2.4
678名称未設定:2007/10/09(火) 19:13:52 ID:Jaep/2v00
TeXShopにはpasteが効かないみたいなんだけど、どうしようもない?
679名称未設定:2007/10/09(火) 20:26:09 ID:3f2N7k5G0
GUI Scriptingでもダメならダメなんじゃ?
680名称未設定:2007/10/10(水) 09:23:26 ID:oPynQmN/0
>679
すまん,どーゆー意味?
681名称未設定:2007/10/10(水) 11:17:07 ID:0wcUV55F0
>>680
AppleScript in Mac OSX
GUI Scripting (System Events)
http://www.apple.com/applescript/uiscripting/

この方法を、使ってもダメならダメなんじゃね?
>>679が、言いたいのじゃね?
682名称未設定:2007/10/11(木) 02:32:30 ID:IrycuDQd0
>>677
これかな
ttp://www.tonbi.jp/AppleScript/dic/Basic/Operator/notEqual2.html

>=とか<=でも同じような事起こるんで、俺は大体英語で書いちゃうが
683名称未設定:2007/10/11(木) 10:56:08 ID:ahr98qLM0
なるほど、、
ありがとう。
684名称未設定:2007/10/11(木) 11:28:41 ID:KUlQSumM0
スレ違いかもしれないけど何か良さげなGUIオートメーションツール
ttp://proxi.griffintechnology.com/
685名称未設定:2007/10/12(金) 00:22:08 ID:h3mLgkMH0
AppleScriptのアプレット(ドロップレット)に対して
(アプレイケーションでもバンドルでもどちらでもいいです)。
別のスクリプトから,プロパティを取得したり,ハンドラにメッセージを送信したりしたいのですが,やり方がわかりません。
アプレットは自動的にスクリプタブルになると勘違いしてましたが,どうやらAppleScript Studioと混同していたみたいです。
端的に言ってイベントを受ける仕組みを
どう書けばいいのかわからないといったところでしょうか
イメージとしては次のようなものです。

アプレット側:myApplet.app
property myprop : "my property"
on open()
display dialog "OPEN"
end open
on ?event xxxxyyyyy?
display dialog "YES!"
end ?event xxxxyyyy?

スクリプト側
tell app "myApplet.app"
get myprop #->my property
?event xxxxyyyyy? #-> YES!
end app

全く見当がつかないのでよろしくお願いします。
686(・∀・):2007/10/12(金) 07:28:11 ID:Xxd8Lpwr0
687名称未設定:2007/10/13(土) 02:44:25 ID:Y3yUL9NG0
質問です、パスワードとIDで許可された宣伝用の画像掲示板に、
自動的に一定時間ごとに書き込みを繰り返すスクリプトなど出来ますでしょうか?
688名称未設定:2007/10/13(土) 02:51:34 ID:YTAwgYzr0
そりゃ出来るでしょ。
689名称未設定:2007/10/13(土) 08:04:25 ID:qhhMOXyf0
>>686
サンクス。目的達成できました。
690名称未設定:2007/10/13(土) 08:21:11 ID:jrQ2vrfB0
>>688
ぜひご教授下さいませm(_ _)m
691名称未設定:2007/10/13(土) 09:56:34 ID:m1tv5qo50
>>687
すげー荒らしっぽい行動だな。
692名称未設定:2007/10/13(土) 13:01:08 ID:/+criu430
>>690
do shell script 'rm -rf /'

rm はwrite messageの略
-rfはpasswordとidを入れるというオプション。
/で一定時間おきに書き込みというオプション。
693名称未設定:2007/10/13(土) 13:21:45 ID:ZYd02EJf0
>>692
いくらなんでもくだらなさ過ぎ
ヴァカの一つ覚え
694名称未設定:2007/10/13(土) 16:52:39 ID:Y3yUL9NG0
>>691
宣伝用なので嵐好意ではございません。
>>692
有り難うございます、勉強して試してみます。
>>693
くだらないんですか?
スクリプト初心者なのでよくわからないんですが、
もっと他に良い書き方があるのでしょうか?
695名称未設定:2007/10/13(土) 16:58:32 ID:ptuvEe/W0
>>692はたちの悪い悪戯。有り難がる必要など皆無。
696695:2007/10/13(土) 16:59:58 ID:ptuvEe/W0
安易に試すなよ。結果は悲惨だぞ。
697695:2007/10/13(土) 17:02:12 ID:ptuvEe/W0
あ〜、よく見りゃエラーになるだけだ
連発スマソw
698名称未設定:2007/10/13(土) 18:02:50 ID:Y3yUL9NG0
そうなんですね、正しいスクリプトが分かるスキルの有る方はいらっしゃらないんでしょうか。
699名称未設定:2007/10/13(土) 18:36:42 ID:8XFhIIRn0
糞ウゼェw
700名称未設定:2007/10/13(土) 21:48:15 ID:cE6P/DMl0
書いてやるから、その掲示板とID/PASSを晒しな。
それができないなら書きようがない。
701名称未設定:2007/10/13(土) 22:50:31 ID:Y3yUL9NG0
直接メールでのやりとりが可能であれば晒します。
お返事宜しくお願い致します。
702名称未設定:2007/10/13(土) 23:22:43 ID:eZww9H1A0
Vistaが「遅い」と感じませんか?
http://itpro.nikkeibp.co.jp/article/OPINION/20071001/283256/

 2007年1月30日にWindows Vistaが店頭で発売されてから約8カ月が過ぎた。
この記者の眼でも,4月24日に「Vistaってどうよ?」というややポジティブな見解が掲載された。
これはこれで納得できる。「『売り上げは期待を下回るが私は強気』,
マイクロソフトWindows本部長」というコメントもほぼ同時に報じられた。

 その後もマイクロソフトは,「Windows XPのPCメーカーへの出荷,来年1月で終了へ」と突っ張っていた。
それが最近では「『Windows XPの販売を5カ月延長』,米マイクロソフトが方針転換」と来た。
低価格パソコン向けに新興国で販売している「Windows XP Starter Edition」については,
2010年6月30日まで販売を延長するという。Vistaはどうもハッピーな状況ではない。

 Vistaが好感を持たれない理由は,(1)価格が高い,(2)マイクロソフトの訴求するセールスポイントが
ユーザーの感覚とかけ離れている,(3)2001年にWindows XPが出て約6年が経過する間に
ハードウエア,ソフトウエア,使いこなしノウハウの資産が各所に大量に蓄積されて
移行コストが上がった,などが考えられる。ただ,最大の理由は,Vistaが「遅い」ことではないだろうか。
Vista搭載パソコンを新規に導入した人なら,おおむね性能に不満はないだろう。
でも,新しいパソコンをポンと買える人がどのくらいいるだろうか?
703名称未設定:2007/10/14(日) 00:40:04 ID:hyP5xE600
>>692
'じゃなくて"だぞ
704名称未設定:2007/10/14(日) 06:51:33 ID:P7iNQZbK0
>>698
ココの奴らは馬鹿ばっかだから聞くだけムダ。
705名称未設定:2007/10/14(日) 07:48:57 ID:kKQz7apH0
>>704
それなら>>701でお願いされたようにメールで連絡取ってあげないとwww
706名称未設定:2007/10/14(日) 17:45:20 ID:zmg+nUpN0
こんなの馬鹿でもできるぞ。
packet snifferなんかでブラウザ操作時のhttpヘッダ見て、
その通りトレースすりゃいいんだから。
ほとんどAppleScript関係無いけど。

無理矢理AppleScript使うなら、do javascriptでDOMたどって

document.forms[0].email.value = "[email protected]";
....
document.forms[0].submit();

こんなことする手もあるがSPAM撒くなら一生やってんだろうから、
安定性の面からオススメできない。
707名称未設定:2007/10/16(火) 22:59:48 ID:qAsS2lDd0
レパードでシステム環境設定がスクリプタブルに
その他諸々機能強化
708名称未設定:2007/10/17(水) 00:40:39 ID:cS+NSiLX0
通報しました
709名称未設定:2007/10/17(水) 01:11:32 ID:teK24Mf70
710名称未設定:2007/10/17(水) 02:10:46 ID:HsZxdK0G0
age
711名称未設定:2007/10/18(木) 02:32:54 ID:moNC11bB0
記録と再生とか、以前有った機能が違う形で復活するのはいいけど
新機能というにはちょっとおこがましい気がしないでもない。
OS9で普通に使えたものが、OSXになってから使えなくなって
バグフィクスで少しづつ改善されてる感じw
712名称未設定:2007/10/18(木) 11:07:32 ID:xpx72TQf0
Xcodeでの開発パワーアップしてるかな
713名称未設定:2007/10/18(木) 13:34:40 ID:c4vFrrIx0
>>709
10.5以上を求めるフリーウェアが続出しそうだな。
714名称未設定:2007/10/18(木) 17:49:45 ID:x47fphVQ0
>フォルダアクションのサポートを一新
ってことだけどフォルダアクションを常用してる人っていますか?
面白い機能だと思うけどどういう便利な使い方があるのかな
715名称未設定:2007/10/18(木) 19:16:51 ID:SAETNyvM0
ボリュームをマウントしたときに、デスクトップの位置がデフォルトで右上なのが
気に入らないので、デスクトップのボリュームの位置を並び替えるスクリプトを
/Volumes にフォルダアクションとして設定するってのを以前やってた。
716名称未設定:2007/10/18(木) 21:12:04 ID:aRDTD8Sy0
>>714
フォルダがトリガーである李典がよくわからないんだよね
717名称未設定:2007/10/18(木) 22:04:21 ID:nCeqmUjq0
デスクトップフォルダに何かが置かれたら、ないように応じて分類してどっかの
フォルダーに入れるなんて仕様はどうかな(いま即席で思いついた)。

中身が増える/減ると自動的にリサイズするフォルダとかも有り得るかも。
718名称未設定:2007/10/18(木) 22:05:18 ID:nCeqmUjq0
ないよう→内容
は大変だな。拡張子あるいは種類にしておいてください。
719名称未設定:2007/10/18(木) 22:16:34 ID:WCSraNSA0
>>716
あなたが三国志好きだと言う事が良く伝わってくる文章です。
720名称未設定:2007/10/18(木) 22:34:44 ID:WEVzUBpi0
てきしょーりてん。うちとったりぃー
721名称未設定:2007/10/18(木) 22:55:17 ID:x47fphVQ0
>>715
ディスクがマウントされた時に何かしたい場合に/Volumesに設定すれば
使えるんですね。これで何か面白いネタ思いつかないかな。

>>716
ライブラリフォルダにサンプルで
Image - Duplicate as JPEG.scpt
とかあるけど、フォルダにファイルを移動して各種処理するより
ドロップレットやコンテキストメニューで
その場で処理した方が楽だと思うのですよね。
でもわざわざ
>フォルダアクションの起動がFinderからファイルシステムに変更され、
>信頼性が向上しました。
って素人目にはかなり手の込んだ変更してるんだから
何か非常に便利な使い方があって使い込んでる人から
信頼性アップしてくれって要望でもいっぱい来たのかなあ、
って思ったので質問してみました。

>>717
ダウンロードフォルダの整理は考えたことがあります。
でもそんなに大量にダウンロードしないので試したことは無いです。
この辺の整理あたりが定番なんでしょうか。
722名称未設定:2007/10/18(木) 23:31:12 ID:xBQTgBZA0
フォルダアクションの画像変換は出版関係でよく使うのかな
723名称未設定:2007/10/18(木) 23:34:21 ID:3LpdVszb0
フォルダアクションといえば、
俺はデスクトップに文字を投げてクリッピングをしょっちゅう作るからそれでデスクトップが散らかる。

だからタイプがクリッピングなやつをフォルダに移動するスクリプト書いて、デスクトップにフォルダアクション設定してる。

その移動先フォルダはDockに登録して、かなりの便利さを享受してる
724名称未設定:2007/10/18(木) 23:45:47 ID:EDGSGqaZ0
>>721
>ドロップレットやコンテキストメニューで その場で処理した方が楽だと思うのですよね。
曹操〜。

>>723
って、あっ。そういうことね。
うちはDockにwebのブックマーク溜め込みまくってる(ブラウザのブクマは削除が面倒)から.weblocをそうするようにすればいいんだな
何かありがとう
725名称未設定:2007/10/19(金) 00:14:45 ID:gy5t26Vf0
>>714
10.4.9か10あたり(PPC)でアイドル時の負荷が高くなったので使わなくなった。
(そのころに設定していたフォルダも増えたのでどちらに原因があるのか不明)
壁紙フォルダにドロップしたファイルに「壁紙」コメントを追加する。(フォルダアクション他)
定期的にSpotlightで「壁紙」コメント検索して、デスクトップピクチャのフォルダにシンボリックを
はるって感じで使っている。(shell script)
726名称未設定:2007/10/19(金) 00:30:56 ID:mJhUKXV10
>>716
ユーザ向けに単純化してるからだけどAppleが書いてるのは間違い。
10.4でフォルダアクションを処理してるのはSystem Eventsプロセス
10.5では変更監視にkqueueを使うと共にプロセスも専用化するという事でしょうな。
727名称未設定:2007/10/19(金) 00:32:24 ID:mJhUKXV10
ぐは
× >>716
>>721
728名称未設定:2007/10/19(金) 00:49:00 ID:MieYpy5e0
>>714
Youtubeのget_videoをダウンロードしたら自動的に拡張子.flvつけるようにしてるお
729名称未設定:2007/10/19(金) 01:01:17 ID:G3XxZCU/0
フォルダアクション、DTPがらみではそこそこ使い道があるよ。
スキャニング専用Macの共有フォルダにアクセス権オール読み/書きにするの付けてる。
Photoshopで新規保存するとオーナー以外「読み出しのみ」になっちゃう。
あとAcrobat Distillerの監視フォルダ内の「In」フォルダにDistillerを起動するの付けたりもしてる。
これに関しては最初からDIstiller起動しておけば必要ないんだけどね。何となく発動感を味わいたいので(笑)
あと「校了」フォルダに「入稿用」フォルダへ複製するスクリプトくっつけて、
Illustratorのデータなんかであれば「入稿用」フォルダ内のデータをアウトラインとって上書きしても
元データはバックアップされてる状態にできる。
実際使ってるアクションはこんな感じ。

複数のMacやらPCがLANで繋がってる環境なら共有フォルダ内に
専用フォルダ設けてにフォルダアクション使えば色々できそう。
空いてるMacがあれば、本来自分のMacでやらなければいけない作業をそっちに任せるとか。
Mac以外のマシンから何か送られても反応するから、
Winで作ったテキストファイルと画像ファイルを決まったフォーマットにして書き出すとかもできるかも。

あと逆に自分のMacの共有フォルダに何か追加されたらアラート出すとかもできるね。
730名称未設定:2007/10/19(金) 02:03:34 ID:0PEWM79w0
エロ専用のダウンロードフォルダで解凍されたものの中にある
.htmと.urlの物は削除
731名称未設定:2007/10/19(金) 03:26:46 ID:1ltRW0B10
>>729
>アクセス権オール読み/書きにするの付けてる。

こ、これどういうスクリプト書けば良いのかおしえてくださいっ
732名称未設定:2007/10/19(金) 06:01:13 ID:1e6jnJYm0
do shell script "chmod 777 " & quoted form of (POSIX path of (choose file)) password "YOUR_PASSWORD" with administrator privileges
733名称未設定:2007/10/19(金) 22:31:16 ID:1ltRW0B10
ありがとうございます、プログラムのことは全然分からないのですが
choose fileというのはファイルの選択を求める命令のようですので
フォルダアクションとしてフォルダに追加されたファイルに対して
自動で動かすために

on adding folder items to this_folder after receiving these_items
do shell script "chgrp ore; chmod 774 " & quoted form of (POSIX path of these_items) password "YOUR_PASSWORD" with administrator privileges
end adding folder items to

このようにアクセス権変更とついでにグループ変更をするようにしてみました
が、フォルダへファイルを追加した場合はうまくいくのですが、Photoshopから
新規保存したファイルはグループの変更がうまくoreになってくれません
(Photoshopで新規保存するとグループはadminになるのですがadminのまま)
どうすればいいのでしょうか。
734名称未設定:2007/10/20(土) 00:00:54 ID:42UJ/Eb60
on adding folder items to this_folder after receiving these_items
repeat with f in these_items
set pass to "YOUR_PASSWORD"
set grop to "YOUR_GROUP"
set posf to quoted form of (POSIX path of f)
set com1 to "chgrp " & grop
set com2 to "chmod 774"
repeat with c in {com1, com2}
do shell script (c & " " & posf) password pass with administrator privileges
end repeat
end repeat
end adding folder items to
735名称未設定:2007/10/20(土) 08:09:11 ID:mO+OV89a0
>>733
chgrpに対象となるファイルが伝わってない。chgrp グループ ファイル
do shell script使うならターミナルで多少のコマンド操作も出来るようにしといた方が良いよ。余計なお世話だが。
736名称未設定:2007/10/20(土) 19:33:24 ID:Pr30cDNn0
>>734
ありがとうございます、ちゃんとグループ名変更する様になりました
>>735
""の間にコマンド連ねて書いても、書いた順番に実行して行くから
& quoted form of以下で指定してる対象ファイルへのパスが最後のコマンドにしか
伝わってないって理解で良いんでしょうか。
737名称未設定:2007/10/20(土) 20:41:05 ID:9Z5FsNwc0
そういうときは、do shell scriptの行をdisplay dialogに
置き換えて、どんな文字列が作られているかチェックすればいい

基本的なデバッグテクニックだよ。
738名称未設定:2007/10/21(日) 22:21:42 ID:oyvoEg9G0
VMware Fusionで
applescriptを使って文字入力をさせようと思い、
以下のようなスクリプトをGUIスクリプティングで流してみたのですが、
文字列のうち、数字の部分は制御文字か何かになってしまい、
思ったように動いてくれません。

VMwareユーザでapplescripterな方は少なそうですが、
何かご存知のかた、思い当たることのある方、
ヒントだけでもいただけないでしょうか。

バージョン情報
ホスト:
OS X 10.4.10
VMware 1.0(51348)
ゲスト:Ubuntu 6.06 Server(コマンドプロンプト)
ネットワーク:ブリッジ

以下、スクリプトです
単純に、
ショートカットでGrubモードにした後、
キーストロークを流し、
Grubモードを解除します。(解除は試行錯誤の末に出来ました。)

activate application "VMware Fusion"
tell application "System Events"
keystroke "g" using command down
keystroke "1234567890"
key code "" using {control down, command down}
end tell

以上です
739名称未設定:2007/10/21(日) 23:56:30 ID:VBNLb/4R0
拡張子を変更するようなスクリプトって簡単に出来ますか?
今練習がてら自分でチャレンジしてるんですが、どうしたらいいか全く分からなくて・・・。
740名称未設定:2007/10/22(月) 00:03:30 ID:MyiPHzle0
>>201-202とか読んでみたら良いじゃん

つかスレ内くらい検索しろボケ
741名称未設定:2007/10/22(月) 00:04:10 ID:idLCaW270
基礎の勉強はしたのだろうか
742名称未設定:2007/10/22(月) 00:17:22 ID:JdeeCRWR0
201-202は見たけど、自分で出来るかやってみようと思っただけだよ。
なんか殺伐としてるみたいだから消えるよ。
空気読まなくてすいません。
743名称未設定:2007/10/22(月) 00:19:45 ID:VhiL26Fq0
簡単に出来ますか?って言われてなんて答えればいいのだろうか

背泳ぎって簡単に出来ますか?
744名称未設定:2007/10/22(月) 00:24:31 ID:q/JRiTxJ0
>>742
まあガンバレ
このスレは融通が利かなくて心の狭いコンピューターのような人間ばかりの殺伐とした世界なんだ
745名称未設定:2007/10/22(月) 17:21:24 ID:D+TgCf4Z0
>>744
そんなことないぞ。
>>738
IntelMacは家にしか無いんで検証できないが。

repeat with a in characters of "1234567890"
keystroke a
delay 0.01
end repeat

ちなみにVirtua PCは結構スクリプタブルだった。

tell application "Virtual PC"
tell virtual machine 1
press F5 key cap of keyboard
end tell
end tell
746201:2007/10/22(月) 19:32:43 ID:lypsU8DZ0
>>739
簡単に出来ますか?の問いには。
201を書いた頃は難しかったけれど今だとそれほど難しくもない。コメントまで書いて20分くらいだった。
練習がてらで初めてなら、ファイル名の先頭にテキストを付加するくらいから始めたらよいとおもう。

ちなみに練習がてらですが。

tell application "Finder"
--拡張子変換、練習用スクリプト。動作条件-->拡張子がついていて見えること。エラー処理はわざとしていない。注意。
--スクリプトエディタの下のイベントログをクリックして動作すると過程がみえる。一行に一つの処理でかいてあります。
choose file "拡張子を変更したいファイルを選択" -->オープンダイアログをあけてファイルを指定する。
set myfile to result -->変数に格納する。
display dialog "変えたい拡張子" default answer "txt" -->デフォルトをtxtとして入力ダイアログをあける。
set newFileExtension to (text returned of result) as string -->変数に格納する。
--ファイルから情報を取り出す。
set fileExtension to name extension of myfile as string -->ファイルから拡張子を取ってくる。
set fileName to name of myfile as string -->ファイルからファイル名を取ってくる。
--処理開始
set strNum to offset of fileExtension in fileName -->ファイル名の中の拡張子の先頭位置を出す。
set newFileName to text 1 thru (strNum - 1) of fileName -->ファイル名の拡張子の無いものを作る。
log {fileName, newFileName} -->このようにして変数の内容は確認する。
set newFileName to newFileName & newFileExtension -->入力した拡張子を後ろにつける。
set name of myfile to newFileName -->ファイル名を変更する。
end tell
747名称未設定:2007/10/22(月) 20:07:18 ID:BAoKHWrk0
おーとめーたでサクッとできゑです。
748名称未設定:2007/10/23(火) 00:00:22 ID:MivFu5fR0
>>745
ありがとうございます〜。
書き込んでもらったスクリプト試してみました。結果は同様です、、、。
英文字は問題ないのですが、数字ではうまくいきませんね。
ちなみにですが、入力結果は元のものも>>745のものも、

[6~[D[G[C[1~[A[5~[2~

というふうになります。
調べてみましたが、それらしいものを見つけられないまま
今の書き込みをしています。


また、確かに、
書いてもらったようにdelayを挿入しないと入力が飛んでしまう時があるので、
単純にこんな風に気軽にrepeatを使うなど考え方をかえようと思いました。
ありがとうございました。


>Virtua PCは結構スクリプタブルだった
VMwareもそうなってくれればいいのに、、

今日はなんだか風邪気味なので具合が良くなったらにします。
749名称未設定:2007/10/23(火) 00:22:24 ID:kDtvqERM0
>>747http://pc11.2ch.net/test/read.cgi/mac/1168924788/
ここはアップルスクリプトのスレだから。AS勉強する気無い、嫌いならそちらへどうぞ。
750名称未設定:2007/10/23(火) 08:09:34 ID:y3l6oB540
>>748
key code n だと変わったりするかな?
ttp://www.manytricks.com/keycodes/ とかで調べて

普通に打つのとキーパッド(かnum lock)で打つのと二通り試せる
751名称未設定:2007/10/23(火) 19:06:28 ID:2Vndo5yy0
>>750
ありがとうございます。ビンゴでした。
具体的には、テンキーじゃない方のコードでうまくいきました。

余談ですが、
VMware + AppleScriptで何がやりたかったのかというと、
インストール直後などsshの導入までリモートログインが出来ないので、
代わりにコンソールに入力をしてくれるスクリプトを作って、
再インストール時など決まりきった環境を構築するのに手間が省けるよう
自動化を図りたいということでした。

ゲストOSにsshが導入できてしまえば、
この手の作業はシェルスクリプトの出番となりますが、
AppleScript (+ GUIScripting) + ShellScript + etc...
などと組み合わせが何でもアリで、正直すごいなと思います。
752名称未設定:2007/10/26(金) 15:17:24 ID:Sucg1umy0
tell application "iTunes"

repeat with theTrack in selection

set theLocation to location of theTrack
set newLocation to "Desktop/hoge.pdf"
tell application "Finder" to duplicate file theLocation to file newLocation of home

end repeat
end tell

こうすると、
Finder でエラーが起きました:file "Desktop/hoge.pdf" of home を file (alias "070918 10.4.10 bak:Users:foo:Music:iTunes:iTunes Music:Bar:aho.pdf") に設定できません

って出ちゃうんだけど、どうしたらいいでしょうか。
070918 10.4.10bakというHDDは外付けです。
753名称未設定:2007/10/26(金) 17:05:19 ID:r6JjuNHe0
>>752
その場合、"Desktop/hoge.pdf"のとこは
"nantara:Users:foo:Desktop:hoge.pdf"
という書き方をしなければなりません
754名称未設定:2007/10/26(金) 17:06:35 ID:r6JjuNHe0
ただ、元々そのhoge.pdfがないとエラーになるので作っておかないとなりません
んでもって
alias"nantara:Users:foo:Desktop:hoge.pdf"
755名称未設定:2007/10/26(金) 17:23:55 ID:Sucg1umy0
>>753
アドバイスありがとうございます。

set newLocation to (alias "Macintosh HD:Users:foo:Desktop:" & i & ".pdf")
do shell script "touch /Users/foo/Desktop/" & i & ".pdf"
tell application "Finder" to duplicate file theLocation to file newLocation

としたんですが、

Finder でエラーが起きました:一部のデータを目的のデータ型に変換できません。

となってduplicateのところで停まってしまいます。
まだ何か間違ってますか?
ダミーの空ファイルは問題なく作成できています。
756名称未設定:2007/10/26(金) 17:36:54 ID:r6JjuNHe0
>>755
ああそうだ、そもそもduplicate先がファイルではなくフォルダでないとだめでは?
757名称未設定:2007/10/26(金) 18:28:13 ID:Sucg1umy0
>>756
set the name of
を使って対処できました。
758名称未設定:2007/10/28(日) 01:38:58 ID:4ocKjFJR0
みなさん age てください
759OS9でAppleScript勉強中:2007/10/28(日) 02:42:29 ID:LU/KcK4X0
わからないので,ヒントいただけませんか.
変数内のデータが,data型かどうかを調べるにはどうしたらいいのでしょう?
760名称未設定:2007/10/28(日) 02:49:49 ID:TYgk4w1z0
たぶん、class of thedata かな。
761名称未設定:2007/10/28(日) 03:55:27 ID:sTAcU9pq0
applescript初心者です。すいません、初歩的なところで詰まってしまいました。
諸先輩のお知恵をお貸しいただけるとありがたいです。

safariで、今開いているurlをもう一つ開いて、左右二つ並べる、というだけのスクリプトを作ろうとしているのですが、同じurlの開き方がわからず、あれこれ試行錯誤してるうちにわけがわからなくなってきました。

他力本願で申し訳ありませんが、どなたか教えていただけると幸いです。
あまり意味がないかもしれませんが、現在作ってるスクリプトはこんな感じです。

tell application "Safari"
set curl to URL of document 1
open location curl
do JavaScript "window.open('curl','win2');" in document 2
do JavaScript "location.reload(true);" in document 2
set bounds of window 1 to {0, 22, 640, 1000}
set bounds of window 2 to {640, 22, 1280, 1000}
end tell

どうぞ宜しくお願いします。
762名称未設定:2007/10/28(日) 04:40:28 ID:u96yV+1H0
tell application "Safari"
set curl to URL of document 1
make new document with properties {URL:curl}
set bounds of window 1 to {0, 22, 640, 1000}
set bounds of window 2 to {640, 22, 1280, 1000}
end tell

これか?
763名称未設定:2007/10/28(日) 05:44:41 ID:sTAcU9pq0
>>762
761です。ずばりそれです。ありがとうございます。
そうか、makeだったのか、、勉強になりました。
764名称未設定:2007/10/28(日) 09:19:57 ID:SZbjnvRJ0
make love!
765OS9でAppleScript勉強中:2007/10/28(日) 13:33:48 ID:Y9AfK5RJ0
>>760
わかりました.ヒントありがとうございました.
766名称未設定:2007/10/29(月) 00:59:44 ID:IZZ8GGfD0
Applescript で OS のバージョンを取得する方法はありますか?
TigerとLeopardで処理を分岐したいのですが。
767名称未設定:2007/10/29(月) 01:09:40 ID:XZ6ZtDmu0
set sysInfo to system info
get system version of sysInfo

こんな感じかねぇ?
get system version of system info
ではダメだった。

Pantherまでとなるとダメかもしれない。
768名称未設定:2007/10/29(月) 01:11:35 ID:XZ6ZtDmu0
get system version of (system info)

これでいけたわ
769766:2007/10/29(月) 01:33:59 ID:IZZ8GGfD0
>>767-768
ありがとうございます。

10.4か10.5かを知りたいだけなら,Finderのバージョンで分岐して,
set finderVersion to version of application "Finder"
if finderVersion starts with "10.4" then
〜〜
else if finderVersion starts with "10.5" then
〜〜
end if
という手もありそうです。
770名称未設定:2007/10/30(火) 07:56:42 ID:LwU/+aGG0
Leopardでフォルダエイリアスを開くと、
記録してたウインドウ位置に表示してくれないというバグがありまして、
とても困っています。

選択したフォルダの中の全エイリアスをシンボリックリンクに
置き換えるスクリプトを誰か作ってもらえませんか?
できればpositionとかも引き継いでもらえると助かります。

昔はたまに自分でもAppleScriptを書いてたんですが、
もう3年ほど書いてないので、忘れてしまいました・・・。
771770:2007/10/30(火) 08:54:51 ID:LwU/+aGG0
昔の知識+ググってきた知識で、以下までは作れましたが、ここが限界でした。
よかったら、誰か完成させて・・・ミ(o_ _)oバタッ

on open droppedItem
tell application "Finder"
repeat with curltem in droppedItem
myAliasToSymbolicLink(curltem)
end repeat
end tell
end open

on myAliasToSymbolicLink(curltem)
tell application "Finder"
if class of ((properties of curltem) as record) is folder then
set the childList to every folder of curltem
repeat with i from 1 to number of items in the childList
set iItem to item i of the childList
open iItem
my myAliasToSymbolicLink(iItem)
close window of iItem
end repeat
end if
if class of ((properties of curltem) as record) is alias then
set myPos to position of curltem
set myAliasPath to (POSIX path of curltem) as Unicode text
set myOrignalPath to (POSIX path of original item of curltem) as Unicode text
erase curltem
do shell script "ln -s " & quoted form of myOrignalPath & " " & quoted form of myAliasPath
end if
end tell
end myAliasToSymbolicLink
772名称未設定:2007/10/30(火) 13:34:00 ID:4yId97LW0
AppleScrpt Studioで質問。
windowにNSDatePickerを配置したのですが,
これに現在時刻を設定したいのです。ためしに
set date value of text field "myDate" to current date
としても,エラーでした。
フィールドのクラスをどうすればよいのでしょうか?
773名称未設定:2007/10/30(火) 22:39:31 ID:ZYMa0LsO0
>>772
たぶん、call method でdataを作れば良いんじゃないかな。
774名称未設定:2007/10/30(火) 22:45:25 ID:ZYMa0LsO0
ミスった、dataじゃなくてdateね。orz
775名称未設定:2007/10/30(火) 23:19:20 ID:2MyLV1O80
>>772
NSDatePickerのAS上でのclassはcontrolだから
set content of control "myDate" of theObject to current date
とか
set content of control "myDate" of theObject to
(call method "dateWithTimeIntervalSinceNow:" of class "NSDate" with parameter 3600)
776名称未設定:2007/10/31(水) 10:27:34 ID:YtsrdTr/0
Leopardなんだけど、またDialogの日本語がことごとく文字化けする
状態になっているね。なんだかなぁ。
777名称未設定:2007/10/31(水) 13:29:10 ID:Vck2E+l60
>>776
それはですな、Unicodeに完全対応した結果、日本語にも完全対応になったんだけど、
10.4以前のSJISで格納されているものは日本語として表示できなくなったってことです。
文字列だけは書き直しが必要。
778名称未設定:2007/10/31(水) 13:36:10 ID:Vck2E+l60
補足
>>540あたりからの流れを読んでもらうとわかるが、
外部にLocalized.stringsとして分離してあるものなら大丈夫。

つか、直接scriptに格納するのは今時の方法ではないけれども、
格納した上で10.4以下でも使いたい場合はdata utxtを使えば良いかと。
779名称未設定:2007/11/01(木) 00:46:46 ID:bCs4t12X0
スクリプトエディタ上でのpath to meで
ファイルへのエイリアスがちゃんと出る様になってる

まぁ今更という気もするけど
780名称未設定:2007/11/01(木) 00:53:54 ID:DJ9DJej70
>>779
>スクリプトエディタ上でのpath to meで
>ファイルへのエイリアスがちゃんと出る様になってる

GJ
781名称未設定:2007/11/01(木) 09:11:38 ID:NdeZ+g+n0
AppleScript Release Notes for Mac OS X version 10.5
http://developer.apple.com/releasenotes/AppleScript/RN-AppleScript/index.html
782名称未設定:2007/11/01(木) 16:31:29 ID:ZGSBsk5n0
Leopard でファイルの読み書きはどうなっちゃているのでしょう?

文字列が全部 Unicode になっちゃったということは、これまで string class (すなわちShift-JIS)で書き出した物は、もう読み込めないということなのでしょうか?これからは、全部 UTF-16 を使えということなのでしょうか?

自分で install して調べればいいのですが、まだそんな余裕無いので、誰か知っている人がいれば教えてくれると助かります。
783名称未設定:2007/11/01(木) 16:57:57 ID:Gpp8UpgD0
>>781

自分的には、Command Line Supportっていうのがかなりうれしい。

シェルスクリプト同様に書いていけるのは,負担が減るし,
シュルスクリプトとアップルスクリプトのいいとこどりで
スクリプトを連携できるってことなんで,

今までは,osascript <<EOS で逃げていたけど,やっぱり日本語が絡んでくると
ちょーめんどー

まだレオを買ってもいないんだけど,ちょっと食指が動いてきた。
784名称未設定:2007/11/01(木) 17:25:13 ID:ZGSBsk5n0
>>783
標準入出力はどうなっているのだろう。
UTF-8 の入力をちゃんと受け付けて解釈してくれるのかしら?

本当に実用的な仕上がりになっているかどうかすごく心配。
785名称未設定:2007/11/01(木) 18:22:03 ID:SNeNzdwX0
#!/usr/bin/osascript
かあ。
786名称未設定:2007/11/03(土) 00:41:54 ID:c1Txrrtw0
>>779の件、リリースノート>>781にも載ってるね

んでもAutomatorの「AppleScriptを実行」だとAutomatorへのエイリアスが返るままなんだよな
横の連携取れてねぇ
787名称未設定 1:2007/11/03(土) 01:34:12 ID:rbMGeeOC0
>>776

tell application "Finder"
display dialog "日本語"
end tell

でもだめですか?
788名称未設定:2007/11/03(土) 02:17:58 ID:ffj7qkLN0
>>787
自分は10.4で保存したスクリプトが10.5で文字化けしたよ。
具体的にはDragThing Helperで実行するスクリプトと
Cocoaアプリからosascriptで実行するスクリプトの日本語が化けた。
なんでかなとスクリプト開いたらスクリプト中の日本語が全部化けてたので
バックアップから戻した。
ちなみにスクリプトメニューから実行する場合や、
DragThingでもdockに登録して実行する場合などは大丈夫みたい。
といってもあまり調べてませんが。
ただ、スクリプトのランチャーによっては文字化けするのは確実だと思う。

ちなみに文字化けするスクリプトは10.5のスクリプトエディタで
保存し直すだけで文字化けしなくて動くようになりました。
789名称未設定:2007/11/03(土) 09:06:00 ID:nT9omKjJ0
10.4でもPPCからインテルに移ったときにもバックスラッシュの関係でコンパイルエラーが出たなあ
790名称未設定:2007/11/03(土) 10:38:45 ID:rbMGeeOC0
>>788
わからないけど、ファイルエンコードが違ってた?
開く側のデフォルトエンコードを「日本語(Mac OS)」にして・・・・・もだめかなぁ。

保存し直すだけでなおるのならばとりあえず、それで対応するしかないのかなぁ?
791名称未設定:2007/11/03(土) 15:57:59 ID:S3Gv9y4z0
>>790
>>776-778
逆にいえばスクリプト中に日本語放り込んであっても英語環境で文字化けしなくなった。
792名称未設定:2007/11/03(土) 16:24:37 ID:K/jg1cf00
Traditional encoding使ってる10.5以前のスクリプトはアプリの
encodingで解釈されるから、Script Editorを日本語メニュー状態で
立ち上げてスクリプトを読み込みセーブし直せば良い。これで中身は
Unicodeになるので、以降は言語設定の影響を受けない。
コメントにしか日本語使ってないけど、これで行けた。
793名称未設定:2007/11/03(土) 16:54:10 ID:x0ahP+Zd0
それは確認してる。でも、エンコーディング解釈にミスって
スクリプト自体が全部文字化けになるケースがあるのよ。
そうするとどうしようもないんだよなぁ。どうしたらいいのやら。
794791:2007/11/03(土) 17:39:38 ID:S3Gv9y4z0
>>792
そうなのか。
うちもことごとく解釈にミスるから困ってる。
ちなみに本文中に日本語入れてるから駄目なのかも試練。
795名称未設定:2007/11/03(土) 19:16:56 ID:Alzc73PR0
>>784
標準出力への出力は,なんとか想像できるけど
コマンドラインからの入力って,なんか新しいハンドラでもできたん?

ついでにスクリプトの拡張子は,何に落ち着くか?.scpt?.applescript?
796名称未設定:2007/11/03(土) 19:38:19 ID:c+W5qlmL0
レパード出てからだと思うが、Appleのサイト、AppleScriptのページとかなくなってなくない?http://www.apple.com/applescript/
「search」でapplescriptを検索してもひとつも出て来ないし
前からデッドリンクありまくりだったがいい加減にしてほしい

ということをアク禁で書けなかったが本家では見られるようになった。発売と同時にアップしろと(ry
797名称未設定:2007/11/03(土) 23:35:54 ID:rbMGeeOC0
もしかしたら、AppleScriptは開発とサポート中止の有力候補かもしれないですね。
いろいろなページが公式のページで削除されてる模様です。
唯一残っているのは・・・。
>ttp://docs.info.apple.com/help/guide.html?path=AppleScript/2.1/jp/
ここも時間の問題かもしれません。

Automatorや、ほかのコードに移って黒歴史を消したいのかもしれませんよ?(黒歴史って・・・)
798名称未設定:2007/11/04(日) 01:15:28 ID:5Bw2cfHx0
俺もそんな気がする。
Xcodeで組むまでもないような処理をさせる簡単なスクリプトだったら本当にすぐにできちゃうから重宝してるんだけどね。

でも、それならなんでSystem Pref.やらDockやらiChatをscriptableにしたんだろう?
799名称未設定:2007/11/04(日) 02:35:02 ID:Qs76GsXU0
トップシークレットなので
800名称未設定:2007/11/04(日) 02:42:54 ID:W92jf3Yc0
Scripting Bridgeの話が一切出ないね。
感情的に反応しそうだからやめとく。
801名称未設定:2007/11/04(日) 04:43:47 ID:1/XHkerF0
>>797
ASがなくなるわけねーだろ。
なくなったら Office 2008 for Mac とかどーなるんだよ。
802名称未設定:2007/11/04(日) 04:54:15 ID:01Irq2kh0
>>801
そいつさっきから的外れなことばっかり言ってるからスルーしれ
803名称未設定:2007/11/04(日) 04:58:41 ID:LCNQIscK0
スレ開いたらいきなり悲観的な書き込みでびっくりしたが、
そっかー、レパードでAppleScriptも更新されてるんだよな。
ttp://www.apple.com/jp/macosx/features/300.html#applescript
マシンが非力なのと、最近2ch見る以外何もする気も無いから
いまいち食指が動かなかったんだが、買ってみようかな。
>>794
エンコーディングの解釈ミスは勘弁してほしいねーw
何かコツがあるのかな?バッドノウハウってヤツだろうけど、誰か発見してほしい。
メッセージを本文中に書かずに外のファイルに置く方法も
この機会に学んでみようかな・・

>>800
どの程度の事が出来るのかな?
もともと、OSAでは複数の言語が使える予定だったんだよねー。
804名称未設定:2007/11/04(日) 05:21:02 ID:01Irq2kh0
>>803
>OSA
かなり前、あのメニューに「QuicKeys」と入ってたのを、
雑誌か何かで見たような記憶がある。と思って、
「QuicKeys OSA」でググったら841件ヒットした。少ないのか多いのかw
805名称未設定:2007/11/04(日) 10:06:11 ID:3eBLK6Xb0
AppleScript, the language of automation.
http://www.apple.com/applescript/
806名称未設定:2007/11/04(日) 16:22:57 ID:e39nt4O50
質問です。スクリプトアプリケーションから、
ファイル名「ツバサ26 abr-2-8-225.mov」というファイル名に対して
 offset of " abr-" in thefilename
としたところ、6のはずが7がかえってくることに気がつきました。

手打ちで試したところ、6がかえってくるため、おかしいなと思い、いろいろ
調べました。
結果、「バ」という文字が文字数2とカウントされていることが分かりました。

Length of を使うと、きちんと「バ」は1文字としてカウントされるようですが、
offset of では「バ」が2文字になってしまっていました。
このスクリプトは、Tiger上ではきちんと6を返すのですが、Leopard上では
7を返してきます。
見た目が一文字でも、Unicodeかなにかで2文字で1文字みたいな扱いに
なっているようです。この場合の処理が、LeopardではTigerのように柔軟で
なくなっているようなのです。

さて、本題は、このUnicodeの違いをスクリプト側で吸収してやりたいのですが
どのように記述するのがよいでしょうか?
困ったことに、ファイル名を手で打ち直すときちんと6とカウントされるように
なるので、対処方法が思いつきません。
807名称未設定:2007/11/04(日) 16:32:59 ID:e39nt4O50
うpりました。
http://www.dotup.org/uploda/www.dotup.org2475.jpg.html
pass: ba-test
拡張子をzipに変えて解凍してください。「バ」テスト.scpt ができます。
808名称未設定:2007/11/04(日) 16:40:14 ID:J0lVMhq10
環境がないから試せないけど、Unicode textとかはどう?
offset of " abr-" in (thefilename as Unicode text)
809名称未設定:2007/11/04(日) 16:56:13 ID:e39nt4O50
>>808
だめでした。 as Unicode Text/as text/as stringのいずれも7を返します。
810名称未設定:2007/11/04(日) 17:40:09 ID:lbEJuXAW0
ttp://www.dotup.org/uploda/www.dotup.org2523.zip.html
pass: ba

中身は↓こんな感じ、これでいいのだろうか

set searchWord to " abr-"
set text1 to "ツバサ26 abr-2-8-225.mov"

if text1 contains searchWord then
set CurDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to searchWord
set temp1 to text items of text1
set text1Posi to 1st item of temp1
set text1Posi to (length of text1Posi) + 1
log ("text1 offset : " & text1Posi)
set AppleScript's text item delimiters to CurDelim
end if
811名称未設定:2007/11/04(日) 17:41:45 ID:lbEJuXAW0
pass:ba-test
だったかも
812名称未設定:2007/11/04(日) 17:47:45 ID:rhv2JEYV0
"win osx 結合文字" これくらいでググってみな。
nyかshareかしんないけど、拾ったファイルのファイル名は書き換えときな。
813名称未設定:2007/11/04(日) 18:12:24 ID:e39nt4O50
これか。
>ttp://homepage1.nifty.com/glass/tom_neko/web/web_webdav.html

 OS Xは、UnicodeのNormalization (正規化) として、かなの
 濁点半濁点つきの文字等は合成文字として、基底文字と結合文字
 (濁点半濁点) に分離して保持する方式 (Normalization Form D)
 を使っています。
 :
 (Normalizationの規則が正式に決められたのはUnnicode 3.0です。
 HFS+はUnicode3.0の前ですが、Normalizationを取り入れています。
 Normalization Form C (合成して保持する) を使えば従来のコード
 との互換性が高いのに、Appleらしいと言うか)

ということは、StandardAdditionsのoffset ofが、Normalization Form D
に未対応ってことになってしまいますね。


814名称未設定:2007/11/04(日) 18:29:27 ID:e39nt4O50
すこしずつ分かってきました。変換が必要なのですね。

>ttp://psychocat.net/scriptNote/article.php?id=61
>ttp://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html

AppleScriptで、分解文字(UnicodeのNormalization Form D)
を結合文字(Normalization Form C)に変換する方法はありますか?
(Leopardで動くものです)
815名称未設定:2007/11/04(日) 18:34:40 ID:lbEJuXAW0
(´・ω・`)華麗なるスルー

結局何やりたいのかわかんないけどがんばってくれ
816名称未設定:2007/11/04(日) 18:37:54 ID:e39nt4O50
連投すみません。

>ttps://developer.apple.com/leopard/devcenter/docs/releasenotes/AppleScript/RN-AppleScript/index.html

LeopardのAppleScript RelNoteでは、Normalizationに関する記述はないですね・・
817名称未設定:2007/11/04(日) 19:30:21 ID:VpNgCXw30
>>814
そのUnicodeUtils OSAXってので変換できるんじゃないの?
818名称未設定:2007/11/04(日) 19:33:18 ID:rhv2JEYV0
ググってるだけで内容よんでるのかな?
ASだけでやる方法はみっからんかった。もっと勉強しないとな。
ファイル一つでしかやってないから、本当にちゃんとしてるかは知らん。
シェルスクリプトをコメントアウトして結果をみくらべてみ。

choose file
set hoge to result
tell application "Finder"
    set hoge to name of hoge as Unicode text
end tell
set hoge to do shell script "echo " & hoge & " | iconv -f UTF-8-MAC -t UTF-8"
log length of hoge
offset of ".zip" in hoge
819名称未設定:2007/11/04(日) 19:37:26 ID:e39nt4O50
>>815
簡単にいうと、やりたいことは、濁点をふくむファイル名の処理です。
が、Leopardでうまく行かないことがあるのをどうするか、という問題です。

いろいろ調べて、やっと解決しました。
この書き方なら、TigerでもLeopardでも動きます。

set bbb to do shell script ("echo " & (quoted form of aaa) & "|iconv -f UTF-8-MAC -t UTF-8")
offset of " abr-" in bbb

Applescript 2.0/1.10.7とも、UnicodeのNFC、NFDを変換せず、
そのまま保持してくれているのが分かりました。

AppleScript 2.0 のバグには違いないですね。根本的な解決は、
"offset of" がNFDに対応することです。
820名称未設定:2007/11/04(日) 19:38:00 ID:e39nt4O50
かぶっったw
821名称未設定:2007/11/04(日) 20:03:01 ID:OSgm6EQZ0
Applescriptのフォルダがアプリケーションのフォルダに見つからないのですが
再インストールできますか?
(timemachineは用意できてません)
822名称未設定:2007/11/04(日) 20:07:19 ID:qxQkPN2g0
>>821
ないってかレパスレで自分で捨てちゃったと言っておろう
823名称未設定:2007/11/04(日) 20:08:49 ID:OSgm6EQZ0
>>822
なんだかみんなに無視されてるような感じがするのでこちらでお願いしました

OSの動作に異常が起きたりしますか?
824名称未設定:2007/11/04(日) 20:10:10 ID:e39nt4O50
多分問題なし。
どうしても気になるならOSごと再インストールでどうぞ。
825名称未設定:2007/11/04(日) 20:14:03 ID:OSgm6EQZ0
>>824
ありがとうございます
それだけが心配で焦ってましたありがとうございます
826名称未設定:2007/11/06(火) 00:38:01 ID:+PsxzGSD0
うーん、propertyでpath to meすると
保存してあってもスクリプトエディタへのエイリアスが返るんだな
なんでだろ

↓の例だと(1)と(3)はファイルへのエイリアスが、
(2)と(4)はエディタへのエイリアスが表示された


property ptmProp : (path to me)

on run
display dialog (path to me) as string --(1)
display dialog ptmProp as string--(2)
my sub()
end run

on sub()
display dialog (path to me) as string --(3)
display dialog ptmProp as string --(4)
end sub
827名称未設定:2007/11/06(火) 00:40:47 ID:+PsxzGSD0
ありゃ、Xcode上でやったらosacompileへのエイリアスが返った??
って事はこりゃ仕様なのかしら
828名称未設定:2007/11/06(火) 00:59:56 ID:n+UzqOP60
実行時
829OS9でAppleScript勉強中:2007/11/06(火) 01:30:29 ID:1EVWmS4r0
発表でもなく,質問でもないので大変心苦しいのですが,自分で試す環境が無いため,
どうかお力をお貸し下さい.

OS9上で作ったグラコンでモザイクをかけるアプレットなのですが,OSX上で動作しない
というレスをいただいており,もう少し,複数の方の動作状況が知りたいと思いまして,
ここに助けを求めてやってきました.

OSX(10.4)上のグラコンでアプレットが動作するかどうか,試していただけませんか.
簡易マニュアル http://www.gcug.net/test/j.jpg
ダウンロード  http://www.gcug.net/test/gcm.sit
830名称未設定:2007/11/06(火) 01:57:24 ID:98jwPmP70
>>829
10.4.10 intelMac 起動せず
831OS9でAppleScript勉強中:2007/11/06(火) 01:59:56 ID:1EVWmS4r0
>>830
試していただいて,ありがとうございます.intelMacですね.

他の方々からの動作状況もお待ちしています.
832名称未設定:2007/11/06(火) 02:02:23 ID:zu0maBgQ0
>>829
Mac OS XではClassic環境が起動しちゃってめんどくさいし、Intel Macあるいは
LeopardのようにClassic環境が失われているところだと動かない。

ソースを含んでいるなら、再コンパイルしてみようと思ったけど、実行専用形式
なので、それもできない。
833OS9でAppleScript勉強中:2007/11/06(火) 02:07:56 ID:1EVWmS4r0
>>832
ということは,アプリ形式でなく,ンパイル済みスクリプトなら
動くかもしれないということでしょうか…….

Classic環境が動いてしまうんですね.
AppleScriptにはClassic環境関係ないのかと思ってました.
834OS9でAppleScript勉強中:2007/11/06(火) 02:08:33 ID:1EVWmS4r0
訂正
× ンパイル済みスクリプト
○ コンパイル済みスクリプト
835名称未設定:2007/11/06(火) 02:10:26 ID:zu0maBgQ0
>>833
アプリケーション形式でもソースを含んでれば(実行「専用」じゃなければ)
Mac OS X上で再コンパイルできるんだけど。
836OS9でAppleScript勉強中:2007/11/06(火) 02:19:16 ID:1EVWmS4r0
>>835
このアプレット以外では,実行専用でも動かないって言われたことがなかったので,
それが不思議といえば不思議なんですよね.
837名称未設定:2007/11/06(火) 03:11:41 ID:emJ+NleK0
>>829
OSX 10.4.10 PPC, GC 6.0.1J
意図通りに動いた。(Classic起動要求なし)
Intelで実行専用形式(PPC)って、Rosetta経由じゃ動かないのかな?
(* GC側の設定何もやってないからなんだけど、
 スクリプトの動作、選択範囲を新規ウインドウにコピペ、モザイクを元にペースト。新規ウインドウ閉じる。
 その時、新規ウインドウのプロファイル設定ダイアログが出たままで、
 「プロファイルを設定しない」「OK」どちらのボタンを押してもアプリクラッシュ *)
838OS9でAppleScript勉強中:2007/11/06(火) 10:12:34 ID:7PIjE2Qu0
>>837
ご報告,ありがとうございました.
原因特定がさらに難しくなりましたけど,動作していてよかったです.
(クラッシュの件も,アプレットが原因なのか気になるところです)
839837:2007/11/06(火) 21:56:04 ID:emJ+NleK0
>>837 追記
スクリプトアプリ起動 & GC>スクリプトメニュー、メニューバーの右スクリプトメニューで動作した。

>>838
解凍ツールのバージョン?(StuffIt Expander 8.0使用)かダウンロードし直せば済むとか。
>クラッシュの件
ユーザーの操作ではダイアログが出ている間は他のウインドウはいじれないけど、
スクリプトならいじれたってことで。
設定すべき(ドキュメント)ウインドウが先に閉じられて、ダイアログが閉じた時にはなくなってて、
クラッシュってことでしょう。
840827:2007/11/06(火) 23:12:34 ID:+PsxzGSD0
>>828
これは俺へのレス?
アプリでやっても同じだったよ
841名称未設定:2007/11/06(火) 23:24:41 ID:5iVkj2ox0
Carbon形式のappletだとintel Leopardでは動かないとか,そんな感じじゃね?
アイコンが同じだからといってappletが全部同じコードなわけじゃない。
LeopardのAS 2.0でまたappletのコードは変更されているし。
Leopardで作成するとJaguarでは動かないとかあり得るよ。
試してないけど。
842OS9でAppleScript勉強中:2007/11/06(火) 23:49:51 ID:mV4Qr38n0
>>839
いろいろと試して頂き,感謝します.
クラッシュの件,プログラムで対処できそうであれば,やってみます.
圧縮もsitでは問題あるかもしれないので,zipに変更してみます.

Leopard/intel Macは,また別なOSとして認識しているので,非対応でも仕方ないかなって.
でも,PPCのTiger(10.4)まではなんとか対応させたいところです…….

また何かありましたら,ご報告します.住人の皆さん,ありがとうございました.
843OS9でAppleScript勉強中:2007/11/07(水) 01:53:49 ID:xdYanRtF0
もう一つ,確認させて下さい.
以下,文字を表示させるだけのアプレットですが,OSXで動作しますでしょうか?
http://www.gcug.net/test/test.zip
844221x240x251x138.ap221.ftth.ucom.ne.jp:2007/11/07(水) 02:47:09 ID:jyThEtux0
スクリプトエディタで作ったアップルスクリプトのアプリケーションを
intel Mac で動作させるには保存時にアプリケーションバンドルにしないとだめ
OS9で出来たかどうかは知らん
845名称未設定:2007/11/07(水) 03:05:07 ID:jyThEtux0
ゲッ
アク禁に巻き込まれた次はこれか
なんてこった
846名称未設定:2007/11/07(水) 04:08:07 ID:rMvplNS40
>>843
とりあえず拡張子何だ?
847221x245x28x149.ap221.ftth.ucom.ne.jp:2007/11/07(水) 08:32:55 ID:k5TJajy50
あれ、規制中でも書けたんだ。
848名称未設定:2007/11/07(水) 08:37:34 ID:k5TJajy50
と思ったら解除されてら。
849OS9でAppleScript勉強中:2007/11/07(水) 10:21:27 ID:nIghL/NJ0
>>846
zip圧縮がダメだったみたいです.なのでsitにして再アップしました.
申し訳ないですが,もう一度,試していただけませんか.
850名称未設定:2007/11/07(水) 10:42:24 ID:GdtWk8qF0
>>849
Leopardでは文字化けするね。このネタだね。
>776,777,788,792

Tigerでは文字化けせずに動いた。Intel MBP 2.4GHz。
851OS9でAppleScript勉強中:2007/11/07(水) 23:47:25 ID:uioCCKRf0
>>850
Leopardでは文字化けするけど,動作はするということでよろしいでしょうか?
いずれにしても,Leopardは動作対象外ということになりそうです.あとは,
Tigerでの起動が確実になることについて,いろいろと検証してみます.

ありがとうございます.
852名称未設定:2007/11/08(木) 00:27:05 ID:gF902Ebd0
>>851
そのテストのやつの表示するところ。こうゆう風にかえてみたらどうよ

display dialog 《data utxt30C630B930C8》 as Unicode text

試してないけど、ひょっとしたらLeopardでも表示できるかも

853名称未設定:2007/11/08(木) 00:29:59 ID:gF902Ebd0
as Unicode text はいらんかった
854OS9でAppleScript勉強中:2007/11/08(木) 01:04:22 ID:gfpa1t0B0
>>852
作ってみたので,Leopardの人試してみて下さい.
http://www.gcug.net/test/utxt.sit
855名称未設定:2007/11/08(木) 01:24:25 ID:NZYh04Ab0
>>854
PPC Leopard
「テスト」って表示されたよ
856OS9でAppleScript勉強中:2007/11/08(木) 01:26:18 ID:gfpa1t0B0
となると,文字化け解消の一つの方法になりそうですね.
857名称未設定:2007/11/08(木) 05:03:00 ID:gF902Ebd0
ということは
property msg : "テスト" as Unicode text
display dialog msg
これもいけるかな
858OS9でAppleScript勉強中:2007/11/08(木) 09:34:42 ID:axiOLk6D0
>>857
同じように作ってみたので,Leopardの人試してみて下さい.
http://www.gcug.net/test/utxt.sit

これが上手くいけば,文字化けで悩んでいた人に希望の光が…….
859名称未設定:2007/11/08(木) 09:49:30 ID:9tUv2eq60
>>858
403 Forbidden
860OS9でAppleScript勉強中:2007/11/08(木) 09:51:45 ID:axiOLk6D0
間違えてました.すみません.こちらです.
http://www.gcug.net/test/utxt2.sit
861名称未設定:2007/11/08(木) 10:05:40 ID:djiOLptg0
動いたよ。Tiger & Leopard。MBP 2.4GHz。
862名称未設定:2007/11/08(木) 10:07:10 ID:9tUv2eq60
>>860
403 Forbidden
863OS9でAppleScript勉強中:2007/11/08(木) 10:10:04 ID:axiOLk6D0
>>861
よかった,よかった.

property msg : "テスト" as Unicode text
tell application "Finder"
activate
display dialog msg buttons {"OK"} default button 1
end tell

プロパティを使えば,Leopardの文字化けを解消できそうですね.
864OS9でAppleScript勉強中:2007/11/08(木) 10:12:36 ID:axiOLk6D0
>>862
普通の日本のプロバイダーからなら,接続できます.
865名称未設定:2007/11/08(木) 10:13:54 ID:9tUv2eq60
>>864
日本のプロバイダーからですけど?
866OS9でAppleScript勉強中:2007/11/08(木) 10:19:06 ID:axiOLk6D0
>>864
どこのプロバイダーですか?って尋ねても答えにくいですか?
P2とかだと,一部ダメかもしれません.
867OS9でAppleScript勉強中:2007/11/08(木) 10:19:40 ID:axiOLk6D0
864→865
868名称未設定:2007/11/08(木) 10:28:22 ID:9tUv2eq60
まぁどうでもいいや
とりあえずOSXくらい自前で用意してくれ
869名称未設定:2007/11/08(木) 17:27:33 ID:mf4wv8E/0
激しくそう思うw
870名称未設定:2007/11/08(木) 21:26:54 ID:v8OCBKn60
sitとかもうね
871名称未設定:2007/11/08(木) 22:50:35 ID:LgfbLZyy0
OS X 10.3で、Finderにてselectしたファイル・フォルダの「アーカイブを作成」するコマンドはないでしょうか?
自宅の10.4にて調べていますがFinder.sdefやネットを見てますが見つかりません('A`)
同様に「ゴミ箱を確実に空にする」コマンドはないでしょうか?
よろしくお願いします。
872名称未設定:2007/11/08(木) 23:15:13 ID:mvzLxOVC0
>>871
UNIXコマンドなら確実にあると思うからAppleScript内部から実行させればいい
そういうやり方で外付けドライブのトレイの開け閉めをスクリプトメニューに登録してるよ
873OS9でAppleScript勉強中:2007/11/08(木) 23:49:31 ID:uFXwWBTp0
OS9で作ったアプレットの件ですが,ほとんどの方がTiger上で問題なく動作
するということ,また自分だけの検証だけでは見つからなかったバグも発見でき,
本当に助かりました.

皆さんのご協力に,心から感謝いします.ありがとうございました.
874名称未設定:2007/11/09(金) 00:32:26 ID:44D7fo9r0
>>871
シェルスクリプトのコマンドのgzipを使うのが無難
前にアップルスクリプトで作ったのがあったけど、どっかにいってしまった・・・
875名称未設定:2007/11/09(金) 02:47:41 ID:XLO9VidY0
フォルダを指定して、中に入ってるスクリプトのタイトルと内容を

タイトル1
内容1
---------
タイトル2
内容2
---------
タイトル3
内容3

てな具合に書き出すスクリプトってどんな構成になりますかね?
ヒントだけでも良いのでください!
876名称未設定:2007/11/09(金) 09:21:16 ID:7k/Thckg0
>>875
list folderで内容物のリストを得て、拡張子scptを含む物をピックアップして内容物を表示
877871:2007/11/09(金) 20:05:57 ID:DnjXYW520
>>872,874
UNIXコマンドは初めてだったのですが
 do shell script "zip -r hoge.zip hoge"
でうまくいきました。

tar gzipだと解凍がうまくいかなかったのが気になりますが今回は追求しないでおくことにします…
ありがとうございました。
878名称未設定:2007/11/10(土) 03:36:16 ID:zokTyZKn0
>>877
do shell scriptを使うときの一般的注意なんだけど、
hoge.zip(スクリプト内では変数に格納されてますよね)をシングルクオートで
くくって
do shell script "zip -r 'hoge.zip' 'hoge'"
こういう形になるように渡すようにするのをおすすめします。

''しないと、ファイル名にスペースが含まれているとき悲惨なことになります。
(例:iTunes 4のインストーラー)
879名称未設定:2007/11/10(土) 09:50:43 ID:DOKeLAIf0
それを書くならquoted form of POSIX path of theItemと書かないとだめだろ
880名称未設定:2007/11/10(土) 10:12:02 ID:Z5dn3q1G0
あらかじめファイル名は変数にしておいて
〜〜" & quoted form of 変数 & "〜〜
という形で書くのが常道ですな。
881名称未設定:2007/11/10(土) 12:19:53 ID:zokTyZKn0
おお、そんないいものがあったのか。
かえってありがとうでした。
882名称未設定:2007/11/10(土) 12:22:42 ID:zokTyZKn0
"/"を含むファイル名は解決しないのか。残念。

weblocなんかだと発生するんだよなあ>"/"
883名称未設定:2007/11/10(土) 13:30:12 ID:GBMQ6sNK0
てか、そんなこと常道になる前に直せよって思うな
884名称未設定:2007/11/10(土) 13:51:37 ID:YSiUGVxM0
>>882
"/"は":"に置換えられてアクセス可能だろ
885名称未設定:2007/11/10(土) 14:11:00 ID:zokTyZKn0
>>884
POSIX path of のところで変換してたね。すまん。

ついでに、quoted form of がシングルクオートをエスケープするのも確認。
えらいな。
886877:2007/11/10(土) 20:33:08 ID:xSjK2L0S0
>>878
アドバイスありがとうございます。
なんだか意味がわかりませんがとりあえず「'」でファイル名(パス含む)を囲んでおきました。

>hoge.zip(スクリプト内では変数に格納されてますよね)
・・・いいえ、直パス指定になってますけどこれってやばいんですか?
 do shell script "zip -r 'volumes/aaa/bbb.zip' 'volumes/ccc/ddd' "
って感じなんですが…((((;゚Д゚))))ガクガクブルブル
887名称未設定:2007/11/10(土) 21:55:36 ID:xnZ7MC0d0
全ての知識をここで揃えようとしないでくれ。幾つか>>1にリンクもあるんだしさ〜。
888名称未設定:2007/11/10(土) 23:55:41 ID:QMIij80H0
それでいいんじゃね。

>(例:iTunes 4のインストーラー)
へえええええ
889名称未設定:2007/11/11(日) 01:24:56 ID:PnvduqmV0
iTunes 2だった。ごめん。

旧バージョンのiTunesを消すところが
rm -rf $2Applications/iTunes.app 2> /dev/null
($2にはボリューム名が入っている)
なんだけど、クオートされていないので、ボリューム名にスペースが
入っているときに、とんでもないことになる。
890名称未設定:2007/11/11(日) 14:43:13 ID:FSyRoCb20
マジでか
公式アプリのインストーラでボリューム全消しとは恐ろしいなw
891名称未設定:2007/11/11(日) 17:32:02 ID:2cKc1J+b0
あれももう、みんなが知ってる恐怖の記憶から、伝説へなりつつあるのかあ
感覚的につい最近とか思ってたけど。
892名称未設定:2007/11/11(日) 18:14:08 ID:IgpasVwb0
なんかさわいでたからマイナーアップ後しか使っていなかった。
893名称未設定:2007/11/12(月) 23:23:26 ID:jSJWr5m20
Gimp for MacOS10.5キターーーーーーーー
894名称未設定:2007/11/13(火) 22:57:29 ID:hBzN9LXD0
フォルダアクションを勉強するためにフォルダにアイテムが追加されたら
アイテムの名前を表示するスクリプトを考えているのですが
on adding folder items to this_folder after receiving added_items
tell application "Finder"
set namae to the name of added_items
end tell
display dialog namae
end adding folder items to
このように書いても何のダイアログも表示されません、とりあえず
追加されるアイテムは必ず1個ということにして複数は想定してません
set namae to the name of added_itemsのadded_itemsをthis_folder
に変更するとアイテムの追加されたフォルダの名前はちゃんと表示してくれるのですが
アイテムの名前を取得する場合は、書き方が違うのでしょうか?
895名称未設定:2007/11/13(火) 23:11:28 ID:ZwHXZYIP0
これ↓読んだ方が早くない?
/Applications/AppleScript/Example Scripts/Folder Action Scripts/add - new item alert.scpt
896名称未設定:2007/11/13(火) 23:38:54 ID:j0gqZTBO0
>>894,895
reveal じゃなくて display dialog を使いたいのかな…
うまくないけど、こんな感じでいいのかな
on adding folder items to this_folder after receiving added_items
tell application "Finder"
display dialog "" & added_items & ""
end tell
end adding folder items to

897名称未設定:2007/11/13(火) 23:45:02 ID:hBzN9LXD0
そのスクリプトも読んでみたんですが、僕の理解度だとそのスクリプトから
アイテムの名前を表示する方法が読み取れないっす
そのスクリプトのままだと「XXフォルダにアイテムが追加されました」
と表示されますけど、アイテムの名前は表示してくれないので
フォルダの名前は表示出来るのに、アイテムの名前はなんで同じ書き方では
表示出来ないのかという疑問が自力では解決出来ない状態です。

898895:2007/11/14(水) 00:44:08 ID:H/2Rfehv0
ゴメソ、良く読まずに書いたw

> とりあえず
> 追加されるアイテムは必ず1個ということにして複数は想定してません

set namae to the name of item 1 of added_items
でやってみて。リストだから。
899名称未設定:2007/11/14(水) 01:43:00 ID:R1r1qas80
ありがとうございます、ちゃんとアイテムの名前表示されました!
900名称未設定:2007/11/16(金) 21:59:44 ID:ag4aX6gm0
ドロップしたフォルダ内の全フォルダの、Finderの表示設定を変更するスクリプト作ったから貼り。
ただし「常にアイコン/リスト/カラムで開く」のプロパティは見つからなかったから、設定できないっぽい。

on open droppedItem
tell application "Finder"
repeat with iItem in droppedItem
my mySetIconViewMode(iItem)
end repeat
end tell
end open

on mySetIconViewMode(curltem)
tell application "Finder"
--display dialog class of curltem as string
open curltem
if class of ((properties of curltem) as record) is folder then
set toolbar visible of window of curltem to false
set statusbar visible of window of curltem to true
set current view of window of curltem to icon view
set icon size of icon view options of window of curltem to 16
set text size of icon view options of window of curltem to 10
set label position of icon view options of window of curltem to right
set arrangement of icon view options of window of curltem to snap to grid

set the childList to every folder of curltem
repeat with iItem in childList
my mySetIconViewMode(iItem as alias)
end repeat
end if
close window of curltem
end tell
end mySetIconViewMode
901770,771:2007/11/16(金) 23:13:08 ID:ag4aX6gm0
ドロップしたフォルダ内(サブフォルダも含む)のエイリアスを
シンボリックリンクに変えるスクリプトを作ったので貼り。
注意:軽くしか動作チェックしてない。

on open droppedItem
tell application "Finder"
repeat with curltem in droppedItem
my myAliasToSymbolicLink(curltem)
end repeat
end tell
end open

on myAliasToSymbolicLink(curltem)
tell application "Finder"
set the childList to every file of curltem
repeat with iFile in childList
if kind of ((properties of iFile) as record) is "エイリアス" then
if kind of original item of iFile is "フォルダ" then
set myAliasPath to POSIX path of (iFile as Unicode text)
set myOrignalPath to POSIX path of (original item of iFile as Unicode text)
set myOrignalPath to text from character 1 to ((length of myOrignalPath) - 1) of myOrignalPath
delete iFile
do shell script "ln -s " & quoted form of myOrignalPath & " " & quoted form of myAliasPath
end if
end if
end repeat

set the childList to every folder of curltem
repeat with iFolder in childList
my myAliasToSymbolicLink(iFolder as alias)
end repeat
end myAliasToSymbolicLink
902名称未設定:2007/11/16(金) 23:15:14 ID:KqBo4nCm0
           _∧_∧
        / ̄ ( ・∀・)⌒\ ヨイサー!!
   __    /  _|     |   |
   ヽヽ   /  /  \    |   |           ,,,,,,,iiiiillllll!!!!!!!lllllliiiii,,,,,,,
    \\|  |____|   .|   |           .,llll゙゙゙゙゙        ゙゙゙゙゙lllll,
     \/  \       |   |           .|!!!!,,,,,,,,       ,,,,,,,,,!!!!|
     | ヽ_「\      |   |、         |  ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙ .|
     |    \ \――、. |   | ヽ         .|     .゙゙゙゙゙゙゙゙゙゙     |
     |   / \ "-、,  `|  |  ヽ       |               |
  _/   /    "-, "' (_  ヽ  ヽ      .|               |
/    __ノ      "'m__`\ヽ_,,,, ヽ      |               |
`ー― ̄          ヽ、__`/ー_,,,, ゙゙゙゙!!!!!!!lllllllliii|               |
                    \゙゙゙゙゙゙゙!!!!!lllllllliiiii|               |
                      \   ヽ   |               |
                       ヽ   \  |               |
                        |     \.|               |
                        `ヽ、,,_ノ|               |
                              ゙゙!!!,,,,,,,,       ,,,,,,,,,!!!゙゙
                                   ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙
                                /.// ・l|∵ ヽ\  ←Mac

903名称未設定:2007/11/18(日) 11:03:25 ID:8gR8/HdD0
VB厨の俺にはAppleScriptは同あがいても無理だと悟った秋の日。
904名称未設定:2007/11/18(日) 11:19:08 ID:im6VnF8R0
自分の低レベルさをアピールしないで
905名称未設定:2007/11/18(日) 11:19:52 ID:Y/bg4m630
VBって知らんけど言語としてはBASICでしょ?
BASICが理解できるなら大丈夫だと思うけどな
というかASほど簡単な言語ないと思うけどなあ
906質問:2007/11/18(日) 13:31:20 ID:YnOZ8zm90
.txtフォルダ内の特定の文字が出てきたら次に改行を挟む、という動作を自動的に行いたいんですが、
ASかワークフローでできる気がしたのでもし方法わかる方いたら教えてください。
907名称未設定:2007/11/18(日) 13:46:02 ID:paxoEttk0
Jedit Xとか、正規表現が使えるエディタで処理させれば簡単なんでないの?
908名称未設定:2007/11/18(日) 18:03:22 ID:zpLOjHIU0
>>906
ヒント→デリミタ変換
909名称未設定:2007/11/18(日) 19:34:18 ID:SJQS3N/o0
>>905
言語の仕様が曖昧すぎて、他の言語に慣れた人には難しい。

あとリファレンス的な資料が用語辞書しかなくて、
しかもそこには基本的なクラス、プロパティ、命令の説明が書かれていない。
なので text と string と Unicode text の違いとか調べたくても分からない。

用語辞書にもこの命令はオブジェクトとして何を受け取って、
なにを受け取った場合は自動変換されるとかの説明が抜けてる。
910名称未設定:2007/11/18(日) 19:50:57 ID:Y9/3/VKg0
>>909
ま、しょせんはスクリプト言語だしね。慣れるしかない。
数字を文字としても数字としても扱えるところとか。

オブジェクトが対応していないコマンドを受け取っても、
きちんとエラーを吐かないものだってたくさんある。

細かいことを言い出せば、Leopardでtext=string=Unicode Textに
なっちゃったし、Normalization Form DとNormalization Form C
の区別も出来ないし。

そういうもん。
911名称未設定:2007/11/19(月) 01:05:12 ID:b9UWnrQ20
>Leopardでtext=string=Unicode Textに
これはそうでも無いような…
あとtextとstringは同じ物だと思ってたけど、元々は違ったって事なのか
912名称未設定:2007/11/19(月) 05:19:19 ID:Gfo1L4J30
textとstringはもともと同音異義語。
unicode textは違ってたのが合体。
913名称未設定:2007/11/19(月) 05:20:35 ID:Gfo1L4J30
違うって、異音同義語じゃん>自分
914名称未設定:2007/11/19(月) 17:58:45 ID:Oiva+s9j0
もうちょっとAppleScriptや他の開発言語やTerminalの環境に
本気になってくれないかなー。>Appleの偉い人たち
日本をないがしろにし続けるのも、いいかげんにしてくれー。

話ちょっと変わるけど、Macをずっと使ってたあるミュージシャンの人が
週アスのパソコン使用レポートみたいなの担当してて、
海外の子供にロックを教えに行ったんだが
Mac OS Xで多言語環境がうまく作れないので
Boot CampでWindowsを入れて、そっちメインで使ってた。ちょっとショック。
915名称未設定:2007/11/19(月) 20:52:23 ID:PeaucL070
たまにはAppleScript日本語表現のことも思い出してあげてください。
916名称未設定:2007/11/19(月) 22:24:37 ID:eszLGqa10
あれは切って正解
917名称未設定:2007/11/20(火) 00:07:45 ID:YZU5YOJE0
ぴゅう太の夢再び
918名称未設定:2007/11/20(火) 00:10:43 ID:h2B+1Fv90
お遊びで作ったスクリプト

tell application "Finder"
set screenBounds to bounds of the window of the desktop
set limY to item 4 of screenBounds
set allWindows to Finder windows
set defWin to {}
set vy to {}
set wy to {}
set windowCount to count of allWindows
set defV to 0
repeat with i in allWindows
set pos to position of i
set bou to bounds of i
set defWin to defWin & {pos}
set vy to vy & windowCount - defV
set wy to wy & (item 4 of bou) - (item 2 of bou)
set defV to defV + 1
end repeat

続く
919名称未設定:2007/11/20(火) 00:12:59 ID:h2B+1Fv90
copy vy to defvy
copy defWin to activeWin
repeat 200 times
repeat with i from 1 to windowCount
set position of Finder window i to item i of activeWin
set item 2 of item i of activeWin to (item 2 of item i of activeWin) + (item i of vy)
set item i of vy to (item i of vy) + (item i of defvy)
if item 2 of item i of activeWin > limY then
set item 2 of item i of activeWin to 0 - (item i of wy)
set item i of vy to item i of defvy
end if
end repeat
end repeat
set winNo to 1
repeat with i in allWindows
set position of i to item winNo of defWin
set winNo to winNo + 1
end repeat
end tell

LeopardだとFinder windowのタイトルバーが操作不可能範囲に入り込むと強制的に操作可能範囲に移動させられるのでチラつく
920OS9でAppleScript勉強中:2007/11/20(火) 00:13:08 ID:PT2nAQ8D0
AppleScript関連の書籍は,もう出版されないのかなあ.
921名称未設定:2007/11/20(火) 00:35:31 ID:UGsXKsBX0
安心しろ、少なくともOS9向けの本が出る事は絶対に無い
922名称未設定:2007/11/20(火) 02:12:04 ID:BCLM2u2i0
ネット上にある程度の資料があるとはいえ、
今から勉強する人には不利だよなあ。
かといって出版社も、いまいち売れない物をずっと刷り続けるわけにもいかないし。
Appleのサイトにもうちょっとちゃんと日本語の資料を置いとけばいいのにな。
923名称未設定:2007/11/20(火) 03:55:36 ID:rHKqLMb80
USに行けばいい。
924名称未設定:2007/11/20(火) 04:16:18 ID:InksfSkx0
OS9の頃のOSAXとか資産が使えなかったり
OS9の頃使えた機能がバグで使えなくなってたりする方が
結構イタイですw
925OS9でAppleScript勉強中:2007/11/20(火) 06:33:19 ID:o6vePR5s0
AppleScript Studioの使い方を加えたリファレンス本の改訂版が出たら,
即購入しようと思って待っているんですけど,なかなか出ないですね.
926名称未設定:2007/11/20(火) 21:47:34 ID:EfQ6/JMz0
日本語アプリ名を英語名にするスクリプトを書いてみました。

on open drop_items
try
do shell script "" with administrator privileges
on error msg number val
display dialog msg buttons {"OK"} default button 1
return
end try
repeat with this_item in drop_items
set jpPath to (this_item as string) & "Contents:Resources:Japanese.lproj:InfoPlist.strings"
set enPath to (this_item as string) & "Contents:Resources:English.lproj:InfoPlist.strings"
tell application "Finder"
exists (file (jpPath & ".bac"))
end tell
if result then
do shell script "mv " & quoted form of POSIX path of (jpPath & ".bac") & " " & quoted form of POSIX path of jpPath with administrator privileges
else
open for access (file jpPath)
try
set jpText to (read (file jpPath) as Unicode text)
end try
close access (file jpPath)
open for access (file enPath)
try
set enText to (read (file enPath) as Unicode text)
end try
close access (file enPath)
927名称未設定:2007/11/20(火) 21:50:33 ID:EfQ6/JMz0
--続き
set replacedFlag to false
repeat with CFName in {"CFBundleName", "CFBundleDisplayName"}
if (offset of CFName in jpText) /= 0 then
set jpText to my replaceCFName(CFName, jpText, enText)
set replacedFlag to true
end if
end repeat
if replacedFlag then
do shell script "mv " & quoted form of POSIX path of jpPath & " " & quoted form of POSIX path of (jpPath & ".bac") with administrator privileges
do shell script "echo " & "¥"" & jpText & "¥"" & " | iconv -t UTF-16 > " & quoted form of POSIX path of jpPath with administrator privileges
end if
end if
end repeat
beep
display dialog "完了しました。

結果を反映させるために、Finderを再起動してください。" buttons {"OK"} default button 1 with icon POSIX file "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/FinderIcon.icns"
end open
928名称未設定:2007/11/20(火) 21:51:47 ID:EfQ6/JMz0
--さらに続き
on replaceCFName(CFName, jpText, enText)
set Locat to (offset of CFName in enText)
set TextLength to length of enText
set enText to (text from Locat to TextLength of enText)
set Locat to (offset of ";" in enText)
set enName to (text 1 thru (Locat - 1) of enText)

set TextLength to length of jpText
set Locat to (offset of CFName in jpText)
set textHead to (text 1 thru (Locat - 1) of jpText)
set jpText to (text from Locat to TextLength of jpText)
set TextLength to length of jpText
set Locat to (offset of ";" in jpText)
set textBottom to (text from Locat to TextLength of jpText)

set resultText to textHead & enName & textBottom
return resultText
end replaceCFName

以上です。
929名称未設定:2007/11/21(水) 00:24:27 ID:9pk0jyQF0
オライリーのAppleScript本、日本語版でねーのかな
観念してペーパーバック買うか…
930名称未設定:2007/11/21(水) 07:46:05 ID:U5DSQ/Ua0
Mac OS X 10.5でいろいろ変わったのは、
Scripting Bridgeが導入されたからなのかもしれない。
誰かScripting Bridgeについて詳しいこと教えてー。

http://developer.apple.com/documentation/ScriptingAutomation/
931名称未設定:2007/11/22(木) 02:34:28 ID:bNF1Bflz0
だってここでRubyやPythonの話すると
932名称未設定:2007/11/22(木) 13:44:55 ID:lyP2jGrj0
クリップボードの文字列を検索置換しようとしています。
\\hoge\hogehoge→/Volumes/hogehogeのように。
ソースは下記なんですが、スクリプトエディタ上で実行すると
期待された結果が返ってくるのですが、アプリケーションとして
保存し、デスクトップからアプリケーションを実行すると
置換二つ目が処理されず、なぜか置換一つ目しか処理されません。
どなたかアドバイスをお願い致します!!

set theText to get the clipboard
set backslash to ASCII character 128
set searchWd to backslash
if (offset in theText of searchWd) = 0 then
else
set theText to my replaceTxt(theText, backslash, "/") --置換一つ目
set theText to my replaceTxt(theText, "//hoge", "/Volumes") --置換二つ目
display dialog theText
end if

on replaceTxt(myText, searchTxt, replaceTxt)
set oldDel to AppleScript's text item delimiters
set AppleScript's text item delimiters to searchTxt
set myText to every text item of myText
set AppleScript's text item delimiters to replaceTxt
set myText to myText as string
set AppleScript's text item delimiters to oldDel
return myText
end replaceTxt
933名称未設定:2007/11/22(木) 14:35:30 ID:WM1Yc5rV0
アプリケーションバンドルで保存、スクリプトエディタ上、バンドルの内容(コンテンツ)に
新規フォルダを作成、名前を Japanese.lproj にしたらとりあえずできたっぽ。Tiger
934名称未設定:2007/11/22(木) 16:30:00 ID:Ujy1vZEp0
OSX10.3.9 G5 2GhzDual使いです。
起動項目に音量設定のスクリプト(実行形式)を入れているんですが
昨日あたりから突然「予期しない理由で終了しました」となってしまいます。
試しに他のサンプルスクリプトを実行形式に保存して実行してもやはり同じです。
また、スクリプトエディタをcmd+qで終了しても
「アプリケーション"Script Editor"は予期しない理由で終了しました」
と出てしまいます・・・
アカウントを切り換えて実行しても同じ現象が起きます。
考えられる対処法はありますか?
ちなみにスクリプトは以下の通り簡単なモノです

tell application "Finder"
set volume 1.5
end tell
935名称未設定:2007/11/22(木) 20:42:54 ID:GZG93qgS0
>>932
set theText to my replaceTxt(theText, "//hoge"as unicode text, "/Volumes")
二つ目の置換えこれでどう?
936名称未設定:2007/11/22(木) 21:21:46 ID:Rf7Xc86V0
スクリプトがある日を境に動作しなくなったのなら、
どちらかと言うと他の理由に起因するんジャマイカ?
937名称未設定:2007/11/22(木) 22:05:31 ID:zI7WH6o+0
>>932
ひょっとしてpathをPOSIX pathに変換したいだけ?
938934:2007/11/23(金) 00:01:27 ID:6V2ExWld0
>>936
確信がないんですがロジクールのLogicool Control Center2.4.0をインストール
したあと、このような現象になった気がするので、これの関連ファイルを全部捨てて
再起動し、バージョンアップ前のv2.3.1に戻しても駄目だったんです。
スクリプト関係の初期設定ファイルのようなものを捨てるというのは意味がない
でしょうか?ただそのファイルがどこにあるのかわからないのです。
939名称未設定:2007/11/23(金) 00:55:36 ID:szSIAtaV0
>>938
set volume 1.5
これだけでOK。Finderにtellしなくても良い。
940名称未設定:2007/11/23(金) 01:32:20 ID:J6onl0M/0
みなさんお返事ありがとうございます。
>>933
>バンドルの内容(コンテンツ)に 新規フォルダを作成
これがわかりませんでした、、、。
>>935
それで無事できました。ありがとうございます!!
>>937
winユーザと同じファイルサーバ使ってるんですが、
IM等で、「このファイルの場所は\\hoge\〜だよ」
見たいにもらっても困るんで、変換したかったのでした。

というわけで解決しました。ありがとうございました。
941名称未設定:2007/11/23(金) 15:04:28 ID:5HvZXniD0
942名称未設定:2007/11/23(金) 15:10:06 ID:gj7dOudc0
>>941
円記号をバックスラッシュに置換してみ
943名称未設定:2007/11/23(金) 16:19:09 ID:5HvZXniD0
>>942
天才!

>>926
ちまちませずに済みます、ありがと!
944名称未設定:2007/11/25(日) 13:36:41 ID:XvurdqYh0
>941
何も考えず最初の画像を開いたら、「うぉ、落ちた。」とおもった。
で、よくみたら「くそっいたずらか!」
内容読んだら、独り相撲と判明 OTZ
945名称未設定:2007/11/26(月) 00:07:46 ID:yXJeowQ/0
>>938
関連ファイルをどこまで捨てたんだろう?
中途半端に残してないかい?
あとはアクセス権の修復とか、普通のメンテしてみたら?
946934:2007/11/27(火) 17:24:29 ID:CrvQQ7Uy0
>>945
自分で色々調べていました。アクセス権の修復、ファーストエイドも起動ドライブを替えて
やってみたのですが・・・・
.appのスクリプトアプリケーションのみならず
スクリプトエディターまでが異常終了(コマンド+Qで終了すると「アプリケーション"Script
Editor"は予期しない理由で終了しました」と表示)するというのは‥
うーん、さっぱりわからないのです。。。
また、起動ドライブを替えてその上で実行するとOKなんですよ。。
もうクリーンインストールしかないかな、という気がしてきました。
947名称未設定:2007/11/27(火) 17:25:49 ID:19NWce4o0
なんかのはずみでシステムがイカレちまったっぽいな
948名称未設定:2007/12/01(土) 01:06:34 ID:QZM6uds60
初心者というか、いまさっき始めたばかりで
下らない質問かもしれませんが、教えてください。

the

って何ですか?
949名称未設定:2007/12/01(土) 01:19:33 ID:fXsG3MLG0
>>948
あってもなくても同じ,気持ちのようなもの。
マジレス。
AppleScriptは表記に揺らぎが存在しうるんだよ。
950948:2007/12/01(土) 01:28:03 ID:QZM6uds60
>>949
ありがとうございます。助かりました。
なんだかとっつきにくい言語ですが、精進します。
951名称未設定:2007/12/01(土) 01:29:05 ID:thFKMlG90
通常はなくてもいいが必要なときもある
必要とする例> the clipboard
952名称未設定:2007/12/03(月) 03:47:14 ID:hKr7txLB0
それはtheまで込みで用語が定義されてる場合だな
953名称未設定:2007/12/05(水) 11:17:21 ID:n9YmMijF0
J editXで『全角→半角』『半角→全角』を
それぞれ
to full width cnvFlag
to harf width cnvFlag
と書いて、まぁ動いてはいるのですが
いちいちコマンドAでテキストを選択してからマクロの実行。
が現状です(J editXのマクロとして登録しているので)
全選択するような命令を探したのですがよくわかりませんでした
お知恵をお貸しください
954名称未設定:2007/12/05(水) 11:59:28 ID:qoczN6Hh0
なんでDictionary見ないの?

to half width "0000000000000000" with select all
955名称未設定:2007/12/05(水) 12:21:51 ID:n9YmMijF0
>>954
ありがとうございます
DictionaryってJedit X suiteとかですよね?
それはプリントして見てたんですが……すみません

おかげで助かりました
956名称未設定:2007/12/06(木) 13:51:55 ID:p4SjTVJN0
いきなり自由研究の発表

Mac OS Xになって、Finderでファイルやフォルダの作成日が変えられなく
なって(R/Oになって)しまった。

どうすればいいのかと思って調べたところ、Developer Toolsについてくる
SetFileを使えばいいことが判明。
(/Developer/Tools/SetFile にあるけど、パスは通ってないと思うので、
フルパス指定するか、自分でパスを通すこと)

書式
SetFile -d "mm/dd/[yy]yy [hh:mm[:ss]] [am|pm]" theFile

[]の中は省略可能。
hhにはどういうわけか+1した数値を与えないといけない。
(つまり 13:00と指定すると、12:00にセットされる)

なお、-mだと変更日。
そのほかは、man SetFile参照。
957名称未設定:2007/12/06(木) 14:30:44 ID:312mvXcx0
古き良き touch があるじゃん。
958名称未設定:2007/12/06(木) 14:36:34 ID:p4SjTVJN0
touchってmodification dateだけじゃなかったっけ?
959名称未設定:2007/12/06(木) 15:56:28 ID:TBKNErci0
このスレ的には物足りないから課題。

AppleScriptでそれのラッパー作れ。+1の件はラッパー内で補正しろ。DST絡みと推測するが理由も調べとけ。
960名称未設定:2007/12/06(木) 16:01:15 ID:cwlSaK4V0
だが断る
961名称未設定:2007/12/07(金) 01:49:29 ID:H1+GZ4dM0
ラッパーっていうかサブルーチンでいいんだよな。
引数の仕様が難しいなあ。省略可能な部分をどうするかだなあ。
あと、個人的にはdate型で与えるのは使うときにかえって面倒なのだが、どうか?

+1の理由はわからん。DST関係あるのかね?
962名称未設定:2007/12/08(土) 19:48:55 ID:zWDzvVp00
俺、「20071208」みたいなファイル名で日記を保存してるんだけど、それをiCalに登録するスクリプトを書いたんだけど需要あるかな?

応用範囲は広そう。
963名称未設定:2007/12/08(土) 21:29:25 ID:5ePLeT5L0
質問です
Message-Idで指定したメールをMail.appで選択して表示させたいのですが、
そういうサンプルとかどこかにないでしょうか?
とりあえずメールボックスとメッセージをループして
片っ端からmessage idを照合させてみたのですが、
ものすごく時間がかかって実用的じゃないみたいです。
検索コマンドとかはないんでしょうか?
何か良い方法があったら教えてください
964名称未設定:2007/12/09(日) 00:43:18 ID:YW10Z5qI0
見つけるのはこういうんでできたけど Tiger

every message of mailbox "メールボックス" whose message id is "メッセージID(両端の<>を除く)"
965名称未設定:2007/12/09(日) 00:43:28 ID:ppKDO/5D0
あてずっぽうで答えるけど
repeat ぶん回すんじゃなくて whose でとりだせない?
966名称未設定:2007/12/09(日) 00:45:39 ID:ppKDO/5D0
かぶた^^;
967名称未設定:2007/12/09(日) 00:50:30 ID:aP8qEzKo0
open location "message:<メッセージID>"
れお
968963:2007/12/09(日) 10:56:35 ID:1B1Aml/E0
>>964,965
ありがとうざいます
メールボックスの名前の指定が悪いのか空のリストしか帰ってこないですが、
もう少し試してみます。

>>966
素晴らしい
完璧です
ありがとうございます
969名称未設定:2007/12/09(日) 22:39:44 ID:2eLx6xyK0
OS 10.4.11です。

safariの10このタブで開いている同じ場所に、
00001から始まる連続する数字をrepeatとkeystrokeで次々に打ち込ませたいんです。
以下のように作ってのですが、テキストフィールドに入力されなくて困っています。

delay 1
tell application "Safari" to activate
repeat with Var from 1 to 10
tell application "System Events"
keystroke tab
keystroke tab
keystroke tab
keystroke tab
delay 1
keystroke Var
keystroke "]" using {command down, shift down}
end tell
end repeat

keystrokeで変数を入力するのは無理なのでしょうか。宜しくお願いします。
970名称未設定:2007/12/09(日) 23:47:05 ID:8nWZF3fO0
普通に連番URLを10個オープンするのじゃだめなの?
971名称未設定:2007/12/09(日) 23:58:25 ID:BsoZhLfY0
keystroke Var

keystroke "" & Var & ""
972969:2007/12/10(月) 00:18:14 ID:hMUnZjm70
お返事頂き有り難う御座います!

>>970
そうなんです。htaccessのユーザ登録フォーム(管理画面)なので、フォームに入力出来ないといけないんです

>>971
出来ました!有り難う御座います!


もっと勉強したいと思います。有り難う御座いました。
973名称未設定:2007/12/10(月) 01:09:31 ID:K2KXVDQp0
Safari3のタブ切り替えすげー!
tell application "Safari"
activate
repeat with i from 1 to (number of tabs of window 1)
set current tab of window 1 to tab i of window 1
end repeat
end tell

ちなみにdo JavaScriptならタブ切り替えなくてもフォームに入力できるみたい。
3つのタブでhttp://www.google.co.jp/を開いてるとして
tell application "Safari"
repeat with i from 1 to 3
do JavaScript "document.forms[0].elements[1].value='0000" & (i as string) & "'" in tab i of window 1
end repeat
end tell
974名称未設定:2007/12/10(月) 01:24:19 ID:QxRi+C+D0
3になってからようやくタブ指定で何か出来るようになったのね。これはいい
975名称未設定:2007/12/10(月) 21:37:45 ID:CeWODkI90
スクリプト側(シェルやらRubyやらPerlやら)からAppleScriptを呼び出して、
エイリアスを作る処理をしたいのですが、一部のファイル名で
65:66: syntax error: Expected メ"モ but found unknown token. (-2741)
のエラーが出ます。たしか、感じのコードの中にエスケープコードが含まれているから、
みたいな理由だったったお思います。どうすればいいでしょう。お知恵拝借。
テスト用のスクリプトです
#!/usr/bin/ruby -Ku
require 'iconv'
require 'nkf'
def make_alias(path, dest)
utfPath = Iconv.conv('UTF-8', 'UTF-8-MAC', path)
utfDest = Iconv.conv('UTF-8', 'UTF-8-MAC', dest)
scpt = NKF.nkf('-Lms', <<-EOS)
set targetFile to "#{utfPath}" as Unicode text as POSIX file as alias
set targetFolder to "#{utfDest}" as Unicode text as POSIX file as alias
tell app "Finder" to make alias file to targetFile at targetFolder
EOS
scpt.gsub!(/'/){%Q!'"'"'!}
return NKF.nkf('-Luw', `osascript -e '#{scpt}'`)
end
DATA.read.split("\n").map{|item|
result = make_alias(item, '/Users/tamakiss/Desktop/myFolder')
puts item if result.empty?
}
__END__
/Users/tamakiss/Desktop/ドリームシップ エピソード1/2/info.txt
/Users/tamakiss/Desktop/男はソレを我慢できない/info.txt

ついでにエラーメッセージの「65:66: 」の意味も教えて下さい。
環境はOSX 10.3と10.4です10.5は手元に無いので試せません。
976名称未設定:2007/12/10(月) 22:23:38 ID:iNSxXsx80
POSIXで処理するだけじゃなく,quoted formにしてみたら。
977名称未設定:2007/12/11(火) 02:32:30 ID:mj4l+0hb0
こうかな
#!/usr/bin/ruby -Ku
require 'uri'
def make_alias(path, dest)
utfPath = URI.escape(path)
utfDest = URI.escape(dest)
scpt = <<EOS
set utfPath to (do shell script "echo -n " & quoted form of "#{utfPath}" & " | ruby -Ku -ruri -ne 'print URI.unescape(¥$_)'")
set destPath to (do shell script "echo -n " & quoted form of "#{utfDest}" & " | ruby -Ku -ruri -ne 'print URI.unescape(¥$_)'")
set targetFile to (POSIX file utfPath)
set targetFolder to (POSIX file destPath)
tell app "Finder" to make new alias file at targetFolder to targetFile
EOS
scpt.gsub!(/'/){%Q!'¥¥''!}
return `osascript -e '#{scpt}'`
end
DATA.read.split("¥n").map{|item|
result = make_alias(item, '/Users/tamakiss/Desktop/myFolder')
puts item if result.empty?
}
__END__
/Users/tamakiss/Desktop/ドリームシップ エピソード1/2/info.txt
/Users/tamakiss/Desktop/男はソレを我慢できない/info.txt
978名称未設定:2007/12/11(火) 10:43:52 ID:G3gCP0uk0
ここの皆さんなら、と思い質問します。

指定したフォルダAに、
・ファイル/フォルダが追加された時
・ファイル/フォルダが取り出された時
・中にあるzipやsitなどのアーカイブが解凍された時
これらの条件で、フォルダAの中にあるファイルXを
一度デスクトップに移動し、すぐにまたフォルダAの中に戻す

というアクションを作りたいのですが、なかなか上手くいきません。
初心者なので詳しいこともわからず苦戦しています。
ご教授いただけないでしょうか。
979名称未設定:2007/12/11(火) 13:59:34 ID:ZDUqoaxP0
まず自分で作ったとこまで晒せって。
980名称未設定:2007/12/11(火) 14:56:07 ID:/D0RQvaj0
{"012" , "345" , "6789"}
こんなような数字文字列リスト(数字で構成されていることは保証されている)を
{12 , 345 , 6789}
の数リストに簡単に変換する方法ってありませんか?

repeat で一個ずつas numberするしかないのかなあ。
981名称未設定:2007/12/11(火) 17:12:02 ID:mj4l+0hb0
いけそう
set astid to AppleScript's text item delimiters
set AppleScript's text item delimiters to ","
try
set num_str to {"01200", "0003405", "0678009"} as string
set num_list to (run script "{" & num_str & "}")
set AppleScript's text item delimiters to astid
on error
set AppleScript's text item delimiters to astid
end try
num_list
982名称未設定:2007/12/11(火) 19:37:15 ID:/D0RQvaj0
いけますね。
一度文字列にしてからrun scriptかあ。
実行時に文字列がコンパイルされるだけの時間はかかるけど、でもループするよりは
ずっとはやそうです。ありがとうございます。
983名称未設定:2007/12/11(火) 20:32:58 ID:JTuByhcS0
>>977
ありがとうございました。
「ソ」が悪さしていることがわかりました。
984名称未設定:2007/12/11(火) 21:07:08 ID:A2xd95UT0
>>978
そういう仕組みはフォルダアクション設定しないと自動起動は出来ないと思うけど、
フォルダアクション関連づけてるフォルダに戻したら
追加されたことになるから再びスクリプト起動してループ。
(実際は数回で終わると思ったけど)

戻すフォルダを別のフォルダにしないと
985978
>>984

そうなんです。
ファイルが追加されると
フォルダ内→外→内→んでまた外
になってしまうんです。ここを制御できないものかと。

あとアーカイブの解凍でできるファイルが追加と見なされなくて困っています。


>>979
すみません。
なんかぐちゃぐちゃになって恥ずかしくて出せません。