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

このエントリーをはてなブックマークに追加
1名称未設定
【前スレ】
おもろい、めずらしいアップルスクリプト発表会
http://pc.2ch.net/test/read.cgi/mac/971295440/l50
おもろい、めずらしいアップルスクリプト発表会
http://mentai.2ch.net/mac/kako/957/957215209.html
面白い&便利なアップルスクリプト
http://mentai.2ch.net/mac/kako/962/962044994.html

・OSXのスクリプトに関してはこちら
「ご主人様ご命令を!」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50

・関連スクリプトのまとめ
ttp://members.tripod.co.jp/obto/script/script.html

【入門サイト】
AppleScript入門
ttp://www.apple.co.jp/applescript/begin/index.html
AppleScriptTutor(掌田津耶乃氏)
ttp://www.netjoy.ne.jp/~tuya/AppleScriptTutor/
AppleScript Lab(狩野正嗣氏)
ttp://www.drycarbon.com/applescript/
AppleScript Beginner's(JinJin氏)
http://homepage.mac.com/jinjin/applescript/
2名称未設定:02/07/17 03:42 ID:8TkJmiWA
3名称未設定:02/07/17 03:44 ID:IDRo87SU
>>1
おつかれ!
4名称未設定:02/07/17 03:54 ID:8TkJmiWA
【入門サイト】追加
AppleScriptタコ入門
ttp://www.macos.com/octopus/
AppleScriptユーザーグループ
ttp://www.freeml.com/ctrl/html/MessageListForm/[email protected]
へたスクリプト
ttp://www.freeml.com/ctrl/html/MessageListForm/[email protected]
osaxデータベース
ttp://www.osaxen.com/index.php


正直、2年後に次スレを立てることになるとは思わなんだ・・・。
5名称未設定:02/07/20 05:28 ID:zDE0T44p
書き込みがないね
6名称未設定:02/07/20 06:00 ID:FwEi6Cmn
ブラウザに表示された画像を全部いっぺんに指定したフォルダにつっこんで、
なおかつ強制的に名前を変えてナンバーリングして拡張子を付ける(w
ってスクリプトはムリっすか?
7名称未設定:02/07/20 12:23 ID:eTt4o+Pw
モニターの輝度を時間帯ごとに予め設定しておいて、
起動した時刻に合わせて自動的に輝度を設定してくれる。。。
なんて虫のいいことは出来ますか?
8名称未設定:02/07/20 14:02 ID:4wKS1piD
>>6
できます。がんばってね。
9名称未設定:02/07/20 20:50 ID:03qb9jgn
ふと思ったんだけどできる?/できない?はOSや使用アプリを書いて
くれると判断しやすいかな?

>>6
.jpg、.gif拡張子を判別して抜き出す所が面倒かもね。

>>7
OS 9では色数は設定出来るんだけど輝度は出来ないっぽぃ
輝度はどちらかというとモニタ側のハードだからね。

調べたついでに色数は(OS 9)
monitor depth 現在
max monitor depth 最大
min monitor depth 最小
set monitor depth [数値] で色数の変更みたいですね。
10 ◆9999ZEL. :02/07/21 06:09 ID:WLndxRLB
tell application "Finder"
set X to every disk sort by name
set N to length of X
set M to 0
repeat N times
set M to M + 1
set Y to item M of X
set position of Y to {994, 720 - M * 34}
end repeat
end tell

上の Script の3行目に問題があります.
(X の中身が 1つしかないとき, error になってしまいます.)
これは, 仕様でしょうか ?

また, リスト内のアイテムの数を数える方法は,
' length ' 以外にもあるのでしょうか ?

どうか, 私めにアドバイスを...
11名称未設定:02/07/21 09:55 ID:ceQM3jIl
>>10
最近書いて無いから&時間がないからかなり適当だけど

repeat i to every disk sort by name
みたいな感じ(あってるかどうか、、汗)でリスト内のアイテム
をぐるぐるさせる事が出来たような気がするよ、

12 ◆9999ZEL. :02/07/21 10:07 ID:xZOzqqxo
>>11
回答ありがとうございます.
さっそく, 試してみます.
結果は, またのちほどレポートします.
13 ◆9999ZEL. :02/07/21 11:49 ID:muA86jdp
>>11
おかげさまで, 解決しました.

AppleScript リファレンス で, 調べてみると...
repeat with Y in X と言う形があって, とっても便利そう...
(Y には, X の要素を一つづつ順番に代入される. )
(さらに, 自動的に loop 脱出. <-- 無限 loop にならないところが, イカス.)

tell application "Finder"
 set N to 0
 set X to (every disk that ejectable = true) sort by name
 repeat with Y in X
  set position of Y to {994, N * 51}
  set N to N + 1
 end repeat
end tell

これで, Removal Disk(Disk Image も含む.) のアイコン並び替え Script 完成.
14名称未設定:02/07/21 12:26 ID:/itEcFdJ
それだとボリューム(13ならリムーバブルディスク)が1つだけのときに
Xにlistじゃなくてdiskが入っちゃって悲惨なことになるみたいね・・
set X to X as list
ってのを入れてやるといいみたいです。
15 ◆9999ZEL. :02/07/21 13:43 ID:U4bL4AFr
>>14
鋭い指摘, ありがとうございます.

>ボリュームが1つだけのときに
>Xにlistじゃなくて
あっ, なるほど...
確かに, repeat 以下で error になります.
これで, ' length ' が使えない理由も, わかったような気がします.

つまり, 対象が複数でない時は, list 形式にならないってことですね.
目から, うろこです.
もうちょっと, 考え直してみます.
16 ◆9999ZEL. :02/07/21 14:02 ID:SiemGwoY
>>14
>set X to X as list
なんと, 答えまで書いていただいていたのですね.
さっそく, 修正しました.
重ねて, お礼を申し上げます.
17名称未設定:02/07/21 22:30 ID:tgsuAJ58
を、帰って来たら無事に解決していた。
as list っすか、、ナイス指摘>>14
18にゃあ:02/07/22 07:20 ID:XPbsxbo+
>>14
なるほど
スマートな方法ですね
ぼくなんかこんな風にやってましたよ

set X to (every disk that ejectable = true)
if (count X) > 0 then set X to X sort by name

Xの中身がリストのとき
それをさらにリストに変換してもエラーは起こらない、っていうわけですね
ありがとうございます
いままでに書いたスクリプトを見直してみます

>>16
お久しぶりです
19名称未設定:02/07/22 12:49 ID:cIb2H5Zd
iTunesスレ6あたりでどなたかが作ってたタグ編集用スクリプトが良かったので
お勉強がてら改造して遊んでたんですが、こんなんできました。どうでしょう?

iTunesにて、コンピレーション物のタグを
 曲:タイトル / アーティスト  アーティスト:V.A.
 曲:タイトル         アーティスト:各アーティスト
これら相互に変換するためのスクリプトでし。

set oldDelim to AppleScript's text item delimiters

(display dialog "区切り文を入力して、アーティスト欄をどちらにするか選んでください" ツ
buttons {"キャンセル", "V.A.", "アーティストごと"} default button 1 default answer " / ") as list
set {AppleScript's text item delimiters, chooseButton} to result

tell application "iTunes"
activate
set trackList to selection in browser window 1
 repeat with i_track in trackList
  if chooseButton = "V.A." then
   set name of i_track to name of i_track & AppleScript's text item delimiters & artist of i_track
   set artist of i_track to "V.A."
  else
   set trackInfo to name of i_track
   set name of i_track to text item 1 of trackInfo
   set artist of i_track to text item 2 of trackInfo
  end if
 end repeat
end tell

set AppleScript's text item delimiters to oldDelim
20名称未設定:02/07/22 14:23 ID:XX1/ASTh
>>19
デリミッタを使う時はtry文でエラー処理した方が安心だよ。

iTunesは参考にさせていただきます。 thanx
21 ◆9999ZEL. :02/07/22 17:28 ID:EPEEbiUB
>>18
また会えて, 嬉しいです.
AppleScript って, スマートな書き方ができる反面, 変なところで融通が効かない...
文句言っているよりも, 慣れることのほうが大切なのかもしれません.
22名称未設定:02/07/22 18:33 ID:ci4pRb8O
iTunesといえば、起動時にSoundJamなら前回終了時に再生してたトラックの中断地点を
覚えてくれてるのに、iTunesだと何も選択されていない状態になっちゃって自力で思い出さなければ
ならないのが不満だったので、終了時に再生してたトラックを覚えておいてもらうスクリプトを
試しに作ってみますた。

iTunesが起動してる時は演奏中のトラックを記憶して終了、起動してない時は起動して前回
終了時のトラックを再生という感じにしたかったのですが、
「iTunesが起動してるかどうか」を調べる方法がよくわからなかったのでとりあえず
「set frontmost of process "iTunes" 〜」をtryしてみるという形にしてみたら
一応思ったように動いているみたい・・
もっとスマートな方法があるんじゃないかと思うけど

property NowTrack : ""
property NowVolume : ""

tell application "Finder"
try
set frontmost of process "iTunes" of application "Finder" to true
tell application "iTunes"
set NowTrack to current track
stop
quit
end tell
tell application "Sound Scripting"
set NowVolume to sound volume
end tell
on error
tell application "iTunes"
try
set volume NowVolume
end try
try
play NowTrack
end try
end tell
end try
end tell
23にゃあ:02/07/22 19:38 ID:7paxPrvF
>>22
>「iTunesが起動してるかどうか」を調べる方法がよくわからなかった
activateを使いましょう
このコマンドは便利ですよ
対象となるアプリが起動しているときはそれを前面にして
起動していないときはそれを起動してくれます
24にゃあ:02/07/22 19:42 ID:7paxPrvF
>>22
tell application "iTunes"
25にゃあ:02/07/22 19:45 ID:7paxPrvF
すいません。手許が狂ってしまって......。

tell application "iTunes"
activate
......
end tell

こんな感じになります。

>>21
旧板であなたを捜してたのは僕です。
26名称未設定:02/07/22 21:41 ID:PVa7GBjf
tell application "Finder"
set Active_List to every process that visible is true
if Active_List contains {process "iTunes"} then
activate
display dialog "起動してる"
else
activate
display dialog "起動していない"
end if
end tell
27名称未設定:02/07/22 23:13 ID:6HpP/6U1

tell application "Finder"
 set iTunesRunning to creator type of processes contains "hook"
end tell
28 ◆9999ZEL. :02/07/23 06:36 ID:Y5OSUnss
>>25
察しがついていました.
こちらのほうは, 変な人物は出没しないようです.
雑談は, あまりできない感じなのが, ちょっと, つらいところですが...
29名称未設定:02/07/23 10:10 ID:1Nz5J9aG
さがりすぎ
30 ◆9999ZEL. :02/07/23 18:43 ID:q93O8Z0B
tell application "Finder"
 set X to (every disk that ejectable = false) sort by name
 set Y to (every disk that ejectable = true) sort by name
 set X to X as list
 set Y to Y as list
 set N to 0
  repeat with Z in X
   set position of Z to {994, 690 - N * 35}
   set N to N + 1
  end repeat
 set N to 0
  repeat with Z in Y
   set position of Z to {994, N * 51}
   set N to N + 1
  end repeat
end tell

あいかわらず, Volume Icon 並び替えにこだわっています.
Removal Volume は, 上から...
Removal Volume でないものは, 下から並べ替える Script ですが,
もっと, スマートに書けるかもしれません.
ご意見, ご批判, いただけると嬉しく思います.

邪魔なようでしたら, 別スレッドを立てることも考えております.
こちらも, 合わせて先輩方のご意見をうかがいたく思います.
31にゃあ:02/07/23 19:11 ID:/LO0c6qg
>>22
考えてみれば、activateしてしまうと
いままで起動していたのか否か判別がつかないですよね
>>26さん、>>27さんの方法がよいのではと思います
下手なアドバイスをして申し訳ありません

>>30
こうしたら、1行だけでも減らせるのではないでしょうか?

set {M, N} to {0, 0}
repeat with Z in X
 set position of Z to {994, 690 - N * 35}
 set M to M + 1
end repeat
repeat with Z in Y
 set position of Z to {994, N * 51}
 set N to N + 1
end repeat

変数をふたつに分けた上で、まとめてsetするわけですね
32 ◆9999ZEL. :02/07/23 19:53 ID:sMSPKTck
>>31
なるほど...
initialize をまとめてやってしまうわけですね.
さっそく, 修正しました. ありがとうございます.

>変数をふたつに分けた上で、まとめてsetするわけですね
ほかにも, 方法はあると思いますが, 取り合えずこんな形で...
(できれば, loop を一つだけにしたい...)
最近, 思うのは, Script にする前の考え方(flow chart に相当する部分) が, 大切で,
その部分しだいで, できあがる Script も変わってくるような気がします.

また, そこが面白いところですが...
33名称未設定:02/07/23 19:53 ID:KwSmmQGN
tell application "Finder"
 set X to (every disk sort by name) as list
 set {M, N} to {0, 0}
 repeat with i in X
  if ejectable of i then
   set position of i to {920, M * 51}
   set M to M + 1
  else
   set position of i to {920, 690 - N * 35}
   set N to N + 1
  end if
 end repeat
end tell

大差ないかな。。汗
34 ◆9999ZEL. :02/07/23 20:52 ID:NSEOqtrQ
>>33
さっそく, 試してみました.
(すぐ試せるのが, 面白く, 良いところ.)

面白い考え方ですね.
ただ... Event Log を見ると, ステップ数が多いような気が...
(どうか, 気を悪くしないでください.)
3533:02/07/23 21:13 ID:KwSmmQGN
いやあ、今まで「履歴」って知りませんでしたw
こりゃ便利っすね。

たしかに自分のはいちいちejectable参照するから手間かかりますね。
これってやっぱよくないことなんですかね?単純に遅いってことかな?

ちなみに私、>>19でもおんなじことやってたりしますw
36 ◆9999ZEL. :02/07/23 21:32 ID:fTrJkg3Y
>>35
>こりゃ便利っすね。
ある程度の動作確認ができますね.

>これってやっぱよくないことなんですかね?
きちんと, 動作するから, よろしいのではないでしょうか ?
処理対象が多くなると, 動作時間が長くなるようですが...
( Volume アイコンの並び替え程度では, さほど問題にならないと思います.)
37にゃあ:02/07/23 21:56 ID:ht4NIkC7
>>35
そうですね
演算の重複は、できる限り避けた方がスピードの向上につながるでしょう

>>34
そこでこんなのを考えてみました

tell application "Finder"
 set {L, X, Y} to {0,(every disk that ejectable = false), (every disk that ejectable = true)}
 set {W, M, N} to {(X as list) sort by name, 690, L * 35}
 my A(W, M, N)
 set {W, M, N} to {(Y as list) sort by name, L * 51, 0}
 my A(W, M, N)
 set N to 0
 repeat with Z in Y
  set position of Z to {994, N * 51}
  set N to N + 1
 end repeat
end tell

on A(W, M, N)
 tell application "Finder"
  repeat with Z in Y
   set position of Z to {994, M - N}
   set L to L + 1
  end repeat
 end tell
end A

「repeatを1回だけにしたい」とのことなので、サブルーチンを使ってみました
でも個人的には、この場合
repeatを2回にする方がすっきりしてるのではないかと思いますが......。
38にゃあ:02/07/23 22:00 ID:YiLTtqmK
またやってしまいました
最初のtellハンドラにおける以下の文は不要です

set N to 0
repeat with Z in Y
 set position of Z to {994, N * 51}
 set N to N + 1
end repeat
39名称未設定:02/07/23 22:30 ID:PMB/uRPe
わたしも、ループは分けたほうがいいと思います。
将来「volume以外のデスクトップアイテムも整列させたい」なんていう
追加仕様をいれたくなることは十分考えられるのですが、そのときに
ループは分けてあるほうが、書換が楽です。


40名称未設定:02/07/24 00:31 ID:eYDRKBAS
ちゃんと検証してないけど、これでどうだ
スッキリさせることにこだわりました
サブルーチンは>37氏を参考にしました

tell application "Finder"
set move_disk to every disk that ejectable is false
set fix_disk to every disk that ejectable is true
my set_position(move_disk, 994, 690, 35)
my set_position(fix_disk, 994, 0, -51)
end tell

on set_position(the_item, X, Y, Z)
tell application "Finder"
set item_list to (the_item sort by name) as list
repeat with i from 1 to (count of item_list)
set position of item i of item_list to {X, Y - (i - 1) * Z}
end repeat
end tell
end set_position
41にゃあ:02/07/24 02:19 ID:FDkfAHx+
またもやショック!
>>37のスクリプトはまともに動作しません
tellハンドラ2行目の変数Nと4行目の変数Mには、数値0が収められてしまうからです

>>39
禿胴

>>40
>count of item_list
これは、count item_listかnumbber of item_listかlength of item_listのことですよね?

問題は変数item_listの中身が、フィルター参照形式で得られたリストだっていうところにあります
フィルター参照形式に対してはitemの指定が無効になるのです
敢えてitemの指定を行いたい場合、repeatを使ってitemに値を収めてやらなくてはならないのです
そうするとスクリプトが長くなってしまいますよね......
う〜ん。やっぱりrepeatは2回に分けるのがベターでしょう
42にゃあ:02/07/24 02:34 ID:2S74R0ng
というわけで、書き直してみました

tell application "Finder"
 set {X, Y} to {every disk that ejectable /= true, every disk that ejectable = true}
 set {X, Y, M, N} to {(X as list) sort by name, (Y as list) sort by name, 0, 0}
 repeat with Z in X
  set position of Z to {994, 690 - N * 35}
  set M to M + 1
 end repeat
 repeat with Z in Y
  set position of Z to {994, N * 51}
  set N to N + 1
 end repeat
end tell

どうでしょ?
見た目にもシンプルで、エレガントではないかと思いますが......
43 ◆9999ZEL. :02/07/24 08:58 ID:PxJq8i3l
>>37
>サブルーチンを使ってみました
まだ, サブルーチン call の方法をけんきゅうしてましぇ〜ん(;_;)

>repeatを2回にする方がすっきりしてるのではないかと思いますが......。
そのようですね.
おもしろいことに, リストの中身が {} (<-- null )の時には,
loop そのものがスキップされるように見えます.

>>39
>追加仕様をいれたくなることは十分考えられるのですが、
なるほど...
拡張性も大切ですよね.

>>42
まとめて set を追求したわけですね.
この案, いただき !!!
さっそく, しゅうせいしま〜す.
44 ◆9999ZEL. :02/07/24 10:19 ID:n7Bxapl0
>>42
#42 の Script は, error が発生するようです.
原因は ' (X as list) sort by name ' の部分.
( ' sort by name ' が reference の filter コマンドであるためと思われます.)
んで, 結局, 次のようにせざるを得ませんでした.

tell application "Finder"
 set X to (every disk that ejectable/=true) sort by name
 set Y to (every disk that ejectable = true) sort by name
 set {X, Y, M, N} to {X as list, Y as list, 0, 0}
  repeat with Z in X
   set position of Z to {994, 690 - M * 35}
   set M to M + 1
  end repeat
  repeat with Z in Y
   set position of Z to {994, N * 51}
   set N to N + 1
  end repeat
end tell
45にゃあ:02/07/24 12:03 ID:gOptw3K1
>>44
これではどうでしょうか?

tell application "Finder"
 set {X, Y} to {(every disk that ejectable/=true), (every disk that ejectable = true)}
 set {X, Y, M, N} to {(X as list) sort by name, (Y as list) sort by name, 0, 0}
 repeat with Z in X
  set position of Z to {994, 690 - M * 35}
  set M to M + 1
 end repeat
 repeat with Z in Y
  set position of Z to {994, N * 51}
  set N to N + 1
 end repeat
end tell

目指せ!エレガント!!
46にゃあ:02/07/24 12:12 ID:gOptw3K1
僕のスクリプトは、環境に依存するものが多く
みなさんのお目にかけられるものは多くありませんが
その中でも、これは便利!って思うものを紹介させて頂きます
ドロップしたボリュームをSpeed Diskで最適化するっていうやつです

property A0 : {}
property A1 : {}

on open A2
with timeout of 8000000 seconds
try
set {A0, A1} to {{], {]}
tell application "Finder"
repeat with C0 in A2
if disk (name of C0) exists then
if (local volume of C0 = true) and (startup of C0 = false) then set A0 to Ao & C0
end if
end repeat
set D to count A0
if D = 0 then
beep of "
display dialog "Please drop only local and non-startuo volumes." with icon caution buttons {"OK"} default button 1
else
display dialog "May I only optimize these volumes, or also wipe free space?" buttons {"Cancel", "Wipe", "Optimize"} default button 3
set B to button returned of result
if B /= "Cancel" then
repeat with C1 in A0
set A1 to A1 & (position of C1)
end repeat
open application file "Speed Disk" of startup disk
tell application "Speed Disk"
repeat with D1 from 1 to D0
set C2 to item D1 of A0
if B = "Optimize" then
optimize C2 with verifying directories and verifying data without verifying media and wiping free apace
else
optimize C2 with verifying directories, verifying data wiping free apace without verifying media
end if
end repeat
quit
end tell
repeat with D2 from 1 to D0
set position of (item D2 of A0) to ((item (D2 + 2 - 2) of A1), (item (D2 + 2) of A1))
end repeat
beep
end if
end if
end tell
on error Err0 number Err1 partial result Err3 to Err4
beep of 2
set AppleScript's text item delimiters to ","
display dialog (Err0 & return & "Error Cord : " & Err1 & return & "Result List : " & (Err3 as string) & return & "Expected Type : " & (Err4 as string) & return & return & ((current date) as string)) with icon caution button {"OK"} default button 1
set AppleScript's text item delimiters to ""
end try
end tim out
end open

tell application "Finder"
open application file "Speed Disk" of startup disk
end tell
47にゃあ:02/07/24 12:13 ID:gOptw3K1
長くてすいません

使い方
単数/複数のボリュームをドロップすると、Speed Diskが最適化してくれます
ハードディスク・リムーバブルディスクを問いません
間違ってファイルやフォルダをドロップしても、ちゃんと識別します
ネットワーク上のボリュームや起動ディスクは
Speed Diskの仕様上、最適化できませんから、除外するように設定しています
また単なる最適化のほかにも、空き領域抹消のオプションが選べます

特徴
ボリュームを最適化すると、アイコンの位置が乱れることがありますね
でも、安心してください
元にあった位置を再現します!

欠点
ロックされたボリュームは、コマンドの制約により定義できません
エラートラップを設けているので実害はありませんが......
一方、MS-DOSフォーマットのボリュームに関しては
最適化の対象から自動的に除外することができません
全くお手上げです
くれぐれもドロップしないようにお願いします

付記
MacOS7.6.1上のSpeed Disk 3.5.2
ならびにMacOS8.6上のSpeed Disk 6.0にて動作確認済みです
48 ◆9999ZEL. :02/07/24 12:51 ID:xXSjHGyn
>>45
問題があるのは,
set {X, Y, M, N} to {(X as list) sort by name, (Y as list) sort by name, 0, 0}
の部分なんですけどぉ〜...
ついでに...
reference の部分を2行に分けたのは,横に長くなるのを嫌ったためれふ.

>>45-46
大作ですね.
まさか, Speed Disk が Scriptable なんて,思っても見ませんでした.
でも,僕が使っているのは PlusMaximizer...
(PlusMaximizer と DiskWarrior を RAM Disk にコピーする Script を使ってまふ.)
(こうすると Anchor Free にできるのだにゃん.) <-- Startup Volume は,しかたない
4933:02/07/24 12:59 ID:98sIkYXh
>>45等の、(X as list) sort by name は駄目(というか無意味)です。
sortのあとでlistにしてやらないと意味がなくなっちゃいます。
対象ディスクが1つだけのときに (X sort by name) as listとくらべてみてください。
50にゃあ:02/07/24 13:19 ID:7rTZHhQq
>>48
かさねがさね、申し訳ありません
またしてもタイプミスです

エラーの原因はシンタックスエラーではないか、と思います
{sort (X as list) by name, sort (Y as list) by name, 0, 0}
これで動くはずです
いえ、動いてください。お願いします

帰宅したら、Macを立ち上げて検証します
51にゃあ:02/07/24 13:21 ID:7rTZHhQq
>>49
ご指摘の通りです
5240:02/07/24 22:22 ID:J0UsJMdd
>>40を検証してみましたところ
ディスクのリストが空の時にエラーになる様ですね
修正

tell application "Finder"
set move_disk to every disk that ejectable is false
set fix_disk to every disk that ejectable is true
my set_position(move_disk, 994, 690, 35)
my set_position(fix_disk, 994, 0, -51)
end tell
on set_position(the_item, X, Y, Z)
tell application "Finder"
if the_item is not {} then
set item_list to (the_item sort by name) as list
repeat with i from 1 to (count of item_list)
set position of item i of item_list to {X, Y - (i - 1) * Z}
end repeat
end if
end tell
end set_position

>>41
御指摘の意味がいまいち分かりかねますが…
リストが空の場合以外ではエラーは出ないんですが、出ます?
こちらOS 9.1です
フィルタ参照形式でもitem数のカウントは出来ますよ

tell application "Finder"
set fix_disk to (every disk that ejectable is false) sort by name
count of fix_disk
end tell

結果ウィンドウを見て下さい
53国境警備隊妨害員遊撃隊:02/07/25 03:08 ID:NXXz/v7e
>>52
>御指摘の意味がいまいち分かりかねますが…
7.xと8.6では、フィルタ参照形式に対して任意の項目の項目を指定することができませんでした
つまり、item i of item_listのような書き方ができなかったのです
但し、count item i of item_listのように項目数を数えることは可能です
AppleScriptもバージョンが上がって使いやすくなっているみたいですね

>>39さんの仰有る通り、実用的なスクリプトにとって柔軟さは欠かせません
その点からすれば、>>42のスクリプトは確かに有用でしょう
しかし、前言を翻させて頂きます
エレガントさという点では、サブルーチンを使った>>52の方が勝っていると思います
いやあ、美しいですね。>>52のスクリプトは
54名称未設定:02/07/25 10:17 ID:2fzbmzbU
WipeInfoにIEのキャッシュ消させようとしてたら
初期設定フォルダの中身ごっそり全部消されそうになりまちた。

はっはっは。
5552:02/07/25 22:21 ID:jZFusnZo
>>53
>7.xと8.6では、フィルタ参照形式に対して
>任意の項目の項目を指定することができませんでした

それは知りませんでした
正直、何をスッとぼけたことぬかしてんのかと思ってました
はじめてのMacがOS 9.04でしたので、どうかお許しを
初心者が出しゃばってスレ汚しスマンです
おとなしくROMってます
56教えてちょ:02/07/26 01:10 ID:aPqmImdg
「グラフ計算機」に入れると面白い数式ってありますか?

このスレの住人さんなら知っているかもと思いました・・
57名称未設定:02/07/26 02:31 ID:B9GMCCKl
>>56
昔、おっぱいをシミュレートした数式をこの板で見た。気がする。
58 ◆9999ZEL. :02/07/26 08:18 ID:zYXsrMMx
>>56
無視するのも気の毒なので,一応,お返事:
GraphicCalculator は,ずいぶん前に,ちょこっと遊んだ程度です.
という訳で,僕に限っては,どれだけのことができるのかさえも,おぼつかない次第.
ほかの誰かが答えてくれると,いいですね.
59にゃあ:02/07/26 10:58 ID:5rHOK/cE
>>55
いえいえ。どうかお気になさらずに
僕の方こそ、連日連夜の睡眠不足のお陰でミスを連発し
挙げ句の果てに、コテハンまで間違えるていたらくでした
ROMに専念なんてことは言わずに
こんなスクリプトができたゾ、とか
そいつはおかしいんでないの、とか
いろいろ聞かせてくださいね
60Barracuda ◆9999ZEL. :02/07/26 17:18 ID:EkeLw8D3
>>59
なんと,多重人格...
おったまげただぁー.

ところで, Global Variable って, 別々の Script 間でも有効なのでしょうか?
Type/Creator 変更 Script を作ろうとして,ゆきずまってまふ.
(いっそ,Droplet にでもしてやろうかしらん. <-- 実は,こちらも未研究.)
61にゃあ:02/07/26 20:18 ID:D2QE6eTv
>>60
>Global Variable って, 別々の Script 間でも有効なのでしょうか?
グローバル変数を全く別のスクリプト同志で共有することは不可能のようです
プロパティもまた然り
異なるスクリプト間で変数をやり取りするには
スクリプトオブジェクトを定義しなければならないみたいですね
詳しくは、「AppleScriptリファレンス」P.111以下を参照してください

>Type/Creator 変更 Script を作ろうとして,ゆきずまってまふ.
>いっそ,Droplet にでもしてやろうかしらん
Type/Creatorの変更には、確かにDropletを使った方が手軽でしょう
Dropletを覚えると、スクリプトの幅が広がりますよ

元国境警備隊妨害員後方部隊より
62名称未設定:02/07/27 23:59 ID:PSPeQtRR
OSA Menu入れたらメニューバーのファイルのあたりが
チカチカチカチカ明滅するようになってウザイ。
63 ◆9999ZEL. :02/07/28 05:42 ID:HJE5q0Cc
>>61
回答ありがとうございます.
Type/Creator をチェックする Script は,簡単でした.
ところが,その発展形として変更できるようにと考えると一筋縄では行かない.
(User Interface に当たる部分をどうするかってことにつきます.)

アイディアとしては...
1:チェック Script と,変更 Script の二つに分ける.
(こうするとデータの受渡が必要になる.)
2: 一つの Script で処理する.
(データの受渡は,問題ではなくなるかわり,UI の部分が,めんどくさい.)

Type/Creator 変更は CM Tools を使えば簡単なので,
わざわざ Script でやるまでもないのですが...

>>62
OSA Menu って,僕も試しては見ましたが,
一々MenuBar まで pointer を持っていかなければならないのが,欠点です.
CSM(Control Strip Module) で,同様な働きをするものを見つけましたが,
MacOS 9.1 の環境では,うまく働いてくれないようでした.

結局, FinderPop だのみの,今日このごろです.
64にゃあ:02/07/28 08:28 ID:oz7YLSSa
>>63
最も単純なアルゴリズムはやはりアイディア2でしょう
つまりDropletにするわけです
UIとしては次のふたつが考えられます

(1)ダブルクリックでダイアログをふたつ表示し、それぞれタイプとクリエータを入力する
(2)ダブルクリックで既存ファイルを指定し、そのタイプとクリエータを得る

(1)の場合、ResEditやNorton Disk Doctorなどを使うか、あるいは別のスクリプトを用意する等の方法により
予めタイプとクリエータを調べておく必要があります
(2)の場合、指定したファイルからタイプとクリエータを直接得るので、(1)のような準備作業が不要です
従って、オススメは(2)ですね
あとはon open Variable〜end openのハンドラ内に
タイプとクリエータ変更のスクリプトを記述するわけです
65にゃあ:02/07/28 08:54 ID:DjzDkET3
追記
Dropletを作成する際、グローバル変数ではなくプロパティを用いるとよいでしょう
グローバル変数の場合、スクリプト実行後は代入した内容を保持しませんが
プロパティでは内容が保持されています
前回と同じ値を代入したい時、手間がひとつ省けます
66にゃあ:02/07/28 09:29 ID:rY+8XzpJ
というわけで、タイプとクリエータ変更のアルゴリズムを考えてみました

ダブルクリックの部分
(1)既存ファイルを指定し、そのタイプとクリエータを得る
(2)結果を表示する
ドロップの部分
(1)ドロップされた項目がファイルか否かを調べる
(2)ファイルが0個の場合はその旨を表示し、スクリプトを終了する
(3)スクリプトに保持されているファイルとクリエータの値がヌルの場合はその旨を表示し、スクリプトを終了する
(4)スクリプトに保持されているファイルとクリエータの値を表示し、確認を促す
(5)その値を変更する場合は、再びファイルを指定してタイプとクリエータを得る
(6)結果を表示し、確認を促す
(7)タイプとクリエータを変更する

どうでしょ?
67コリン ◆jVColinE :02/07/28 11:34 ID:3nIvfrbT
>>56

Macで学術系ソフト&研究室のMac・2
http://pc.2ch.net/test/read.cgi/mac/1018789103/83
移植しておいたよ。
誰もいなさそうだけれど。

僕は数学苦手だから勘弁ヱbんして…
68 ◆9999ZEL. :02/07/28 13:01 ID:EKvHXiKD
>>64
(1) のデータ受渡のアイディアとして...
1: Clip Board を利用する
2:TexEdit Plus (<-- Scriptable !) を立ち上げて,そこに書き込む.

' 1 ' は,案外手ごろな方法かもしれません.
ただ,場合によっては,誤動作の恐れがありますが...
(それを防ぐための処理がどうしても必要になる...困ったもんだ !!!)

' 2 ' は,第二の Clip Board として僕がしばしば使う手です.
ただ,これは一般的とはいえないのが,難点です.

どちらにしても,練習問題ってところですね.
実用性からいうと,どうでも良いような...
69 ◆9999ZEL. :02/07/28 13:20 ID:ORt4zLHP
>>65
勉強になりました.

>>66
(1),(2) の部分はすでに,完成しています.

で, Droplet の件ですが,
Script 本体を(Alias も含めて) Desktop 上に表示させなければならない点が欠点.
(FinderPop からというのは,すごく魅力的です.)
(ワンクリックで,ターゲットが select 状態になるので...)
でも,練習問題としては,面白いので,いろいろやってみます.

結果は後程レポートします.
70 ◆9999ZEL. :02/07/28 13:43 ID:UC9iZHW8
>>67
どうして,ここを?
それは,ともかく,リンク先を拝見させてもらいました.
でも,あまり関係ないような...

Graphic Calculator は,3次元表示なので,
z=f(x,y) という形になるのね.
(なんと,偏微分までも扱える...)
だから,2変数関数関連の本を洗ってみるのがよろしいかと...

>誰もいなさそうだけれど。
ここが? それとも,リンク先が?

>勘弁ヱbんして…
???
71にゃあ:02/07/28 17:45 ID:xY2dGbG1
>>68
クリップボード経由のデータ受け渡し、って確かに誤動作が多そうですね
特に、G3とかG4を載せてるMacでは顕著なのでは?
あまりに処理が高速すぎ
データがクリップボードに収まらないうちに次ステップに移行したりして......
多分、delayコマンドを使えば何とかなるでしょうけど

>>69
デスクトップにエイリアスを置く習慣がない人にとって、Dropletは使いにくいかも?
僕なんかは、ポップアップウィンドウを4つほど並べて、それぞれエイリアスを配置してます

>>70
いずれも人がいませんねぇ(w

PS.僕は賢者なんかじゃありませんよ。でも、ありがとうございます
72 ◆9999ZEL. :02/07/28 19:09 ID:E0rXKgYL
>>71
>データがクリップボードに収まらないうちに次ステップに移行したりして...
え? そんなことがあるのですか? w
Cripboard は,汎用的に使われるので,
別の無関係のデータが残っている可能性を心配したのですが...
どちらにしても,あらかじめ,データを加工して渡し,
受け取ってから decord(?) しなおすことになりそうなので,以外に面倒そう...

>ポップアップウィンドウを4つほど並べて、それぞれエイリアスを配置してます
僕も,以前は Popup Window をずらずらと並べてたりしてました.
最近では,同じように Alias 専用のフォルダーを用意して,
そのフォルダーの Alias を FinderPop Items の中に放り込むようにしています.
Sub-Menu から,するすると一発なので,やめられません.

>いずれも人がいませんねぇ(w
そのおかげで,多少の雑談をしていても,文句を言われないっと.
' AppleScript 道場 ' といった趣旨のスレッドを立てることを考えてもいたのですが,
とりあえずは,今のままでも問題なさそう...

>PS.僕は賢者なんかじゃありませんよ。
ご謙遜を...
僕は尊敬してますよ.
あそこで,うだうだやっている人よりは,貴重な情報をいただいています.
おっと,こんなことを書いているのを発見された日には...
(なぜか,こういうことには目ざとい人たちが多い...)
73名称未設定:02/07/28 21:26 ID:W0vfWurd
>>72
> >いずれも人がいませんねぇ(w
> そのおかげで,多少の雑談をしていても,文句を言われないっと.

雑談といってもApple Scriptに関係してるんで、
別にいいんじゃ無いかな。勉強になるし。
でも、

>PS.僕は賢者なんかじゃありませんよ。
>ご謙遜を... (以下省略)

こういう書き込みはうざい。
メールなりメッセンジャーなり旧板なりで、個人的にやってくれ。
74名称未設定:02/07/28 21:27 ID:W0vfWurd
うわ、書き込みをageで書いてしまった。
すいません。
75名称未設定:02/07/28 22:22 ID:PcgkXLGs
--わたしが普段使っているやつです。1/2
property Ctype : "ttxt"
on run
set CT to my formalName()
if CT is not "" then
set Ctype to CT
end if
my setCreator()
end run

on open itemList
tell application "Finder"
set fname to (name of (path to current application))
set orgdelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"."}
set Fnlist to text items of fname
set AppleScript's text item delimiters to orgdelimiters

set CT to my formalName()
if CT is not "" then
set Ctype to CT
else
my setCreator()
end if

repeat with aItem in itemList
if (aItem as text) does not end with ":" then
set creator type of aItem to Ctype
else
set creator type of (every file in aItem) to Ctype
end if
end repeat
end tell
end open
7675:02/07/28 22:22 ID:PcgkXLGs
--つづき(2/2)
to setCreator()
set CT to ""
repeat until length of CT is 4
display dialog "Exchange creator type to..." default answer Ctype
copy text returned of the result to CT
end repeat
set Ctype to CT
set ca to (path to current application)
tell application "Finder" to set name of ca to ("Xcreator." & Ctype)
end setCreator


to formalName()
tell application "Finder"
set fname to (name of (path to current application))
set orgdelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"."}
set Fnlist to text items of fname
set AppleScript's text item delimiters to orgdelimiters
end tell
if (number of Fnlist ウ 2 and (length of item 2 of Fnlist) is 4) then
set rbuf to item 2 of Fnlist
else
set rbuf to ""
end if
return rbuf
end formalName
7775:02/07/28 22:23 ID:PcgkXLGs
「どうやって指定するか」のところを、2重に作成しているので
ちょっと長くなりました。
実際に変えている部分は短いのに。
78名称未設定:02/07/28 22:36 ID:AvFu0BSi
Finder上のアイテムがフォルダかどうかを判別するためには、
やっぱり、ends with ":" とかするしかないですか?
一応オブジェクト指向やのに泥臭くて抵抗ある…。
79名称未設定:02/07/28 23:07 ID:PcgkXLGs
Finderでkind of itemを見る方法、
info for を使う方法
など、あるんですが、ends with ":" が、一番速いんです。
80名称未設定:02/07/28 23:18 ID:AvFu0BSi
ふみゅふみゅ、そうでしたか。勉強になります。
81にゃあ:02/07/28 23:54 ID:bupJydNg
>>73
申し訳ありません。以後、慎みます

>>75-78
スクリプトのコアは、確かにわずかな時間で書くことができますね
でもいろいろな場面を想定してオプションを付加していくと
どうしてもアルゴリズムが複雑になり、全体として長いスクリプトになってしまいます
そして幾多の労苦を厭わず練り上げたスクリプトが、実用品として完成した喜び
スクリプトの醍醐味は、その辺にあるのではと思っています
但し、他人にはなかなか伝わらないでしょうけど(w
ところで僕の場合
ドロップされた項目がフォルダか否かを調べるにはこんな風にやってます

if folder (aItem as text) exists then

folderのところをfileとかdiskに書き換えたら、fileもしくはdiskか否かを検査できます
82 ◆9999ZEL. :02/07/29 04:21 ID:10iy96CX
>>73
申し訳ないです.
やっぱり,別スレッドを立てるべきでしょうか?
そのために,お伺いを立てたのですが...
以前,FileMaker のスレッドを立てて失敗した経験があるものですから...
(あまり,スレ立てには,積極的にはなれません. )
83名称未設定:02/07/29 10:31 ID:Aqh9QiL3
>>75-76
>set ca to (path to current application)
>tell application "Finder" to set name of ca to ("Xcreator." & Ctype)

↑ここがすごく気になったんですけど
要するに>>75氏はアプリの名前を全て変更して使ってるんですか?
このスクリプトには有効でしょうけど他に不都合ないですか?
ま、よけいなお世話ですけどね…

アプリに対してクリエータを問いかける方法が、名前変更しなくていいし
すっきりすると思いません?

tell application "Finder"
set Ctype to (creator type of (path to current application))
end tell
8475:02/07/29 11:14 ID:OC659x9D
つまりですね。
どういうクリエイタにするかのインターフェースに自分の名前を
使っているんです。
"Xcreator.8BIM"だと、"8BIM"に変更するし
"Xcreator.ttxt"にリネームすれば"ttxt"に変更するというわけ。

逆に単独で実行させたときにはダイアログで変更先クリエイタを
問い合わせて、その結果を自分の名前に反映させる。というわけでした。

ほかに、「コメント」欄を使うという考え方もできると思います。


85名称未設定:02/07/29 11:50 ID:bFWy/kko
見た目で分かるように名前にクリエータの4文字を使うわけでっか
じゃあ
Adbe Photoshop → Xcreator.8BIM
Adbe Illustrator → Xcreator.ART5
PictureViewer → Xcreator.ogle
って感じになってんの?
う〜ん???
やっぱり直接アプリにクリエータを問い合わせる方がよくないすか?
クリエータって4つの文字列で見るよりアプリの名前の方が
視覚的にも分かりやすいんじゃないかなぁ
単独起動の場合の、ダイアログに入力する手間も省けるし

いや、余計なお世話だけどね
聞き流して下さい
8675:02/07/29 12:26 ID:OC659x9D
>>85
いい意見を言っていると思うのに

>いや、余計なお世話だけどね
> 聞き流して下さい

 これがぶちこわしているよ。これがあるために、全体の論調がたんなる「ぼやき」に
なっちゃってる。もったいないぞ。

 
87名称未設定:02/07/29 12:35 ID:vw0HiGhm
>>86
とおりすがりの者ですが...84の書き方がかなり自己完結的な
ふうに受け取れるので85はそのやりかたを否定しないように
なんとか提案したんだと思うよ。

テキストだけだと些細な事ですれ違うし、お互い他意は無いと
思うので丸く収まるように願う。珍しい良スレだし。
88名称未設定:02/07/29 13:39 ID:hYGRBzLX
85>>
ダウンロードした画像のクリエータを変更したい時とかは>>84の方法の方が良いんじゃない?
変更したいクリエータなんて毎回決まってるだろうし。
89名称未設定:02/07/29 13:52 ID:IAcQ5A4d
>>75
copy text returned of the result to CT

set CT to text returned of the result
では何か違うんでしょうか?(処理速度、メモリ効率など)
普段下を使ってるので、利点があるのなら変えようかと思いまして。
9073:02/07/29 15:58 ID:fEE5qcTU
>>81-82
こちらこそきつい言葉遣いになって、申し訳なかったです。
雑談といっても、有意義なやり取りがなされていると思っています。
ですが、ちょっと個人的すぎるやり取りのように感じたものですから。
出過ぎたレスだったと思います。すいません。
91 ◆9999ZEL. :02/07/30 18:17 ID:2VQ6NN2A
>>73
いえいえ,こちらこそ.
92 ◆9999ZEL. :02/07/30 18:42 ID:BUP0UFCD
Type/Creator 変更 Script を自分なりに作ってみました.
Sub-Routin なども練習してみたのですが,error 出まくりで,あきらめました.
結局,ダイアログを2回出すという方法に逃げてしまいました.
力任せな感じで,美しさからは,ほど遠いものになってしまいました.
(おまけに,FinderPop からは,まともに動作してくれないようです.)
(やはり,Droplet がベストなのかも...)

property C : {}
property T : {}
tell application "Finder"
 display dialog "select the action: Load/Release" buttons {"Load", "Release"}
 if button returned of result = "Load" then
   set C to creator type of selection
   set T to file type of selection
 else
   display dialog C & " : Creator" & "
" & T & " : Creator" & "
   " buttons {"Both", "Type", "Creator"}
   set Sel to button returned of result
   if Sel = "Both" then
    set creator type of selection to C
    set file type of selection to T
   end if
   if Sel = "Type" then
    set file type of selection to T
   end if
   if Sel = "Creator" then
    set creator type of selection to C
   end if
  end if
end tell
93FMP+Apple Script:02/07/30 21:06 ID:XfsA06we
 ファイルメーカープロで、困ってます。
 どなたか、助けて下さい。
 ファイルメーカースクリプトで、メッセージ選択 や、スクリプト一時停止/続行
 が実行されると、returnか、enterまたはマウスクリックが無ければ先に
 進みません。
 これを解決するために、Apple Scriptで、returnか、enterを
 キーボードで、押したことにするという方法はないでしょうか?
 set dataでファイルメーカーにASCII character13を送ってみました
 がダメでした(下の全て、ダメでした)。
tell application "ファイルメーカー Pro"
set data window 1 to ASCII character 13
set data window 1 to return
set data field 1 of window 1 to ""
set data field 1 of window 1 to ASCII character 13
set data field 1 of window 1 to ASCII character 9
end tell


 マルチポストがルール違反なのは承知してますが、大変困ってます。
 何卒、何卒、御教示下さい。
94名称未設定:02/07/30 21:20 ID:E1hdSP8G
>92
この手の操作でキャンセルがないのは非常につらいです。
95名称未設定:02/07/30 21:37 ID:Y3STfrVg
>>93
直接の回答にならないけど、しかし、そもそも何のためにメッセージ
選択やスクリプト一時停止/続行を実行させているのだろう?
ユーザーにreturnか、enterかを実行させるためなのでは?
96FMP+Apple Script:02/07/30 21:47 ID:XfsA06we
>95
 スクリプト一時停止/続行に関しては、タイムアウトが設定出来ますので、
 これを短く(1秒とかに)する事で回避出来ます。
 しかしながら、メッセージ選択に関しては、タイム設定がそもそも無いので
 デフォルトボタンを選択する場合でも、キーかマウス入力が必要になります。
 アップルスクリプトにこだわるのは、「IBM ViaVoice」を使って、スクリプト
 クライアント から、音声ナビゲーションをファイルメーカーで実現するためです。
 ですから、enterかreturnの出力が是非とも必要になってるのです。
97 ◆9999ZEL. :02/07/30 22:03 ID:QHdNXZZA
>>93
僕も FileMaker4.0 を持っています.
おもしろそうだとは思いましたが,質問の意味が,今ひとつ理解できません.
次の部分です.
できたら, おおまかな flow などが,わかると理解しやすいかもしれません.

>メッセージ選択や、スクリプト一時停止/続行が実行されると、
>returnか、enterまたはマウスクリックが無ければ先に進みません。


>>94
僕も下手をするとアプリをだめにしかねない危険性を感じています.
もうちょっと,改良してみます.
98FMP+Apple Script:02/07/30 22:25 ID:XfsA06we
>97 : ◆9999ZEL. 様
 処理の分岐にメッセージ選択をつかってます。

 メッセージ選択 1.処理A 2.処理B をスクリプトに入れていた場合、
 「メッセージを選択して下さい。」
   [処理B][処理A]<--デフォルト

 となって、リターンかエンターを入れなければ、処理Aが先に進まない と
 いう意味です。勿論、押せば良いのですが、先に書いたようにVia Voiceを
 使って、音声で入力させたいのです。または、一定間隔でreturnやenterを
 出力させれば、事実上、タイムアウトを設定できると考えたのです。
99 ◆9999ZEL. :02/07/30 23:35 ID:SsrgehYr
>>98
とりあえず,同じような状況が再現できるかどうか試してみます.
Via Voice は使ったことがないので,あまり,お役に立てないかもしれませんが,
調べられるだけ調べて,気がついたことがあれば,レポートします.

ところで, FileMaker の Script とボタンは密接な関係にありますよね.
ボタンの代わりに,音声でコントロールしたいのだと考えて正しいのでしょうか?
100にゃあ:02/07/31 00:16 ID:lzSJdi2v
>>93
>Apple Scriptで、returnか、enterを
>キーボードで、押したことにするという方法はないでしょうか?
AppleScriptでは任意のキーストロークをエミュレートすることはできません
いまお使いの環境にQuicKeysをプラスすれば可能になります
但し、QuicKeysに対してAppleScriptの条件分岐を認識させるのには
一工夫が必要でしょうけれど......
101名称未設定:02/07/31 00:28 ID:rhD1nbpi
>>98
ちゃんと見てないで書いていますが、
そもそも処理を一時的に停止させるなら3つスクリプトを用意
した方が良いのでは?、、、

1、前処理
2、A処理
3、B処理

とこんな感じ? これで対応させるのが一般的じゃないですかね?

僕の中で自動処理はエラー以外で停止させないものだと考えて
ますし自分だったらたぶんこうするかなと、、。
102にゃあ:02/07/31 03:24 ID:16YEmVMj
>>92
ひとつ目のダイアログが若干使いにくいのではないでしょうか?
プロパティがヌルのときは、直ちにクリエータとファイルタイプを記録し
その結果を表示した方がいいでしょうし
またキャンセルボタンも用意しておいた方が何かと便利でしょう

property C : {}
property T : {}

tell application "Finder"
if C = {} and T = {} then
set (C, T) to (creator type of selection, file type of selection)
display dialog C & " : Creator" & return & T & " : Creator" buttons {"OK"} default button 1
else
set Act to display dialog C & " : Creator" & return & T & " : Creator" & return & return & "select the action: Cancel/Change/Continue" buttons {"Cancel", "Change", "Continue"} default button 3
if button returned of Act = "Change" then
set (C, T) to (creator type of selection, file type of selection)
else if button returned of Act = "Continue" then
set Sel to display dialog C & " : Creator" & return & T & " : Creator" buttons {"Both", "Type", "Creator"}
if button returned of Sel = "Both" then
set (creator type of selection, file type of selection) to (C, T)
else if button returned of Sel = "Type" then
set file type of selection to T
else
set creator type of selection to C
end if
end if
end if
end tell
103名称未設定:02/07/31 05:41 ID:6R3EzYP0
>>98
OS 9 でデフォルトボタン押すだけなら「S穫di's Additions」という
OSAXが使えると思います。
activateした後に
TypeText "
"   --改行を入力
でリターンキーが押される筈です。
他にもQuickeys やprefebPlayer(だったっけ?)
CursorOSAXとかいうのも使えるかもしれません。
104にゃあ:02/07/31 05:48 ID:e7+YzVch
>>103
S穫di's Additionsについては知りませんでした
OSAXで処理できるなら、QuicKeysを使うよりはるかに簡単に済むかと思います
QuicKeysは分岐処理に対してあまり強くありませんから
105 ◆9999ZEL. :02/07/31 06:11 ID:UvgXRf30
>>98
' メッセージ選択 ' をやっているのは FileMaker の Script でしょうか?
4.0 では,そのような動作は, Field 操作のときに出るだけで,
Script では,用意されていないようでしたが...
AppleScript の動作のようにもみえますし...

それと,>>101 の人の意見に賛成です.
106FMP+Apple Script:02/07/31 07:00 ID:OK5vgXsS
>103 S穫di's Additionsを入手しましたので、試してみます。
  結果は追って御報告いたします。
>105 FMPスクリプトを定義する一覧画面の、下〜方にありました。
  ボタンを選び、status(メッセージ)で分岐させます。
107にゃあ:02/07/31 07:16 ID:tuo68hEU
>>102
FinderPop用に書き直してみました

property C : {}
property T : {}

tell application "Finder"
set X to selection
if C = {} and T = {} then
set (C, T) to (creator type of X, file type of X)
display dialog C & " : Creator" & return & T & " : FileType" buttons {"OK"} default button 1
else
set Act to display dialog C & " : Creator" & return & T & " : FileType" & return & return & "select the action: Cancel/Change/Continue" buttons {"Cancel", "Change", "Continue"} default button 3
if button returned of Act = "Change" then
set (C, T) to (creator type of X, file type of X)
else if button returned of Act = "Continue" then
set Sel to display dialog C & " : Creator" & return & T & " : FileType" buttons {"Both", "Type", "Creator"}
if button returned of Sel = "Both" then
set (creator type of X, file type of X) to (C, T)
else if button returned of Sel = "Type" then
set file type of X to T
else
set creator type of X to C
end if
end if
end if
end tell
108FMP+Apple Script:02/07/31 07:32 ID:mqFGhuZ6
>103〜105様
 結果を御報告いたいします。
 御指導に従い、下記の方法を試した結果、
--TypeText (ascii character 3) ViaVoiceが勝手に終了してしまう。
--TypeText "ここで改行" ダメだった。フロントエンドプロセッサーに”ああ”と入ってしまう。
--TypeText return ダメだった。
でした。
 そのあと、tell application "ファイルメーカー Pro"を止めて、
TypeText "|<-" 
 だけにしたら、ファイルメーカースクリプトのスクリプト一時停止/続行
 及び メッセージ選択のデフォルトボタンが問題なく選択出来ました。
 viaVoiceの音声による制御も出来ました。

 たった半日で、問題解決できたのは、一重に皆様のご協力と、2CHの
 凄いところと感謝しております。
 これでまた、ファイルメーカーとapple scriptの新しい関係が、ViaVoice
 を交えて作れそうです。

 御指導、誠にありがとうございました。
109 ◆9999ZEL. :02/07/31 08:00 ID:EevQEkyf
>>107
creator type of X ,file type of X という表現が使えないようです.
(なぜか,必ずエラーになります.)

>>108
う〜ん,自己解決ですね.
お役に立てなくて,すみません.
110にゃあ:02/07/31 08:04 ID:0umTrJLt
>>108
おめでとうございます
なんの力にもなれなくて......

>>109
バグフィックス版をお送りします

property C : {}
property T : {}

tell application "Finder"
set X to selection as strings
if C = {} and T = {} then
set (C, T) to (creator type of file X, file type of file X)
display dialog C & " : Creator" & return & T & " : Creator" buttons {"OK"} default button 1
else
set Act to display dialog C & " : Creator" & return & T & " : FileType" & return & return & "select the action: Cancel/Change/Continue" buttons {"Cancel", "Change", "Continue"} default button 3
if button returned of Act = "Change" then
set (C, T) to (creator type of file X, file type of file X)
else if button returned of Act = "Continue" then
set Sel to display dialog C & " : Creator" & return & T & " : FileType" buttons {"Both", "Type", "Creator"}
if button returned of Sel = "Both" then
set (creator type of file X, file type of file X) to (C, T)
else if button returned of Sel = "Type" then
set file type of file X to T
else
set creator type of file X to C
end if
end if
end if
end tell
111 ◆9999ZEL. :02/07/31 08:10 ID:iSwkgCDg
>>106
確かにありました.("show message") <-- 英語版なので...
失礼しました.
112 ◆9999ZEL. :02/07/31 08:28 ID:YzaS/rAP
>>109
>バグフィックス版をお送りします
う〜ん,最後の状態が維持されたままで,更新されません.
(FinderPop を使わなくてもです.)
(このテーマは,区切りをつけてもよろしいのではないかと...)
11352:02/07/31 11:53 ID:5kP8PHRW
ドロップレットでやるのがいいんでないかと
え〜まずダブルクリックで起動させて変更後のファイルタイプとクリエータの
モデルとなるサンプルファイルを選択します、で、ダイアログで確認しますが
この時フィールドに直接入力してもいいです
"OK" ボタンでこのファイルタイプとクリエータは保持されます
実際の変更はドロップレットとして行います
保持された値を変更したい時はまたダブルクリックします

property szType : ""
property szCreator : ""
on run
repeat
set theFile to choose file with prompt "サンプルファイルの選択"
tell application "Finder" to set {bufType, bufCreator} to {file type of theFile, creator type of theFile}
set dialogReply to display dialog ("以下のファイルタイプとクリエータを保存します" & return & "直接入力も可能です") default answer bufType & "," & bufCreator buttons {"reset", "OK"}
if button returned of dialogReply is "OK" then
set {szType, szCreator} to my text_to_list(text returned of dialogReply)
exit repeat
end if
end repeat
end run

on text_to_list(thisText)
set oldDelimin to AppleScript's text item delimiters
set AppleScript's text item delimiters to ","
set theList to every text item of thisText
set AppleScript's text item delimiters to oldDelimin
return theList
end text_to_list

on open itemList
tell application "Finder"
repeat with theFile in itemList
set {file type of theFile, creator type of theFile} to {szType, szCreator}
end repeat
end tell
end open
114 ◆9999ZEL. :02/07/31 20:12 ID:iTHpGRc4
>>113
実は,僕もあいかわらず,しつこく作り込んだりしてます.(未完成)
Core の部分は,単純なので,まさに UI の練習問題というところですね.
同じテーマで作られた Script を見比べるのも,
作者ごとの個性が出ていて,面白いです.
115名称未設定:02/07/31 23:56 ID:dX4vj+th
うちではType/creator変更等の単純作業には CMScript を使ってます。
FinderPopほど高機能ではないけれど、コンテキストメニューから
AppleScript を実行出来るので大抵の事は出来るし、
スクリプトをOSAMenu と共用する事もできるので便利です。
うちの環境ではフォルダ内のファイル数が多いと上手く機能しない
場合も有りますが、そう言う時はOSAMenuを使ってます。
この不具合はOS X の仕様に合わせて改竄された Finder のせいではないかと
疑ってますが、まぁCMScript も新しいものではないので仕方ないかな。

Classic環境じゃない OS 9 を主に使っているなら試してみて下さい。
直接スクリプトと関係ない話で申し訳ないんですが
FinderPop や Droplet 以外にもこんなのも有ります ってことで...
116名称未設定:02/08/01 01:41 ID:T37yZYBn
>>114
ウザイから旧板に帰れ
117名称未設定:02/08/01 03:41 ID:IWlnCByt
>>114
帰る必要はないけど読点の使い方をなんとかしてくれ。切り過ぎだ。
118名称未設定:02/08/01 04:22 ID:IPubzpKr
句読点に「てん」「まる」を使わずに「カンマ」「ピリオド」を
使うヤシが結構いるけど、それ流行ってるの?それともカコイイと思ってやってるの?

なぜ全角な日本語に半角の句読点が出てくるのか理解できんのよ。
漏れが世間知らずなだけで、本当はカンマとビリオドが全盛だったりして・・・。
119名称未設定:02/08/01 04:43 ID:9NgVnukc
>>118
ああ、その話にふれちゃいけないよ
ウンチク始められると本気でめんどくさいから

あと、君の基準が正しい。
120名称未設定:02/08/01 05:00 ID:/tZEg3ag
おお、このスレにもようやく夏が
121一行野郎:02/08/01 06:47 ID:j4WEpYsu
if button returned of (display dialog "ここは" & return ツ
& "\"おもろい、めずらしいアップルスクリプト発表会\"です。" & return ツ
& "スレと関係ない話はご遠慮下さい。" buttons {"うるせぇ", "わかりますた"} ツ
default button 2) is "うるせぇ" then ツ
display dialog "おめでとう、あなたは夏厨と認定されますた。" buttons {"鬱氏"} ツ
default button 1 giving up after 10
122 ◆9999ZEL. :02/08/01 18:52 ID:PLLPCWlD
>>115
面白い情報だと思いました.
さっそく, Sherloc を呼び出してサーチ.
運良くヒットしてダウンロード成功.
でも,うまく動作してくれないみたい. え〜ん.
(実は, ReadMe さえもよく読んでいません. )

>>121
試しにコピペしてみたら,きちんと動作するのにびっくり !!!
立派なジョークソフトだと思いましただぁ〜.
123暇野郎:02/08/01 19:47 ID:/tZEg3ag
set mes to return & return & return & return & return & return & return & return & return & return & return & return & return & return
set {btn, timer} to {"OK", 3600}
dialog(mes, btn, timer)
if gave up of result is true then
set {mes, btn, timer} to {"ヽ( `Д´ )ノウワーン 地図出ねーよ!", "ガカーリ", 4}
dialog(mes, btn, timer)
end if
on dialog(mes, btn, timer)
display dialog mes buttons btn default button 1 giving up after timer
end dialog
124 ◆9999ZEL. :02/08/01 20:15 ID:AqDv7fXf
>>123
ナンセンスソフト大賞 !!!
ところで, time out 時間が長すぎません?
二番目のダイアログを見られる人は,多分いないと思います.
125にゃあ:02/08/03 00:03 ID:1D7eh/DG
>>113
亀レスですいません

ドロップされたもののなかにフォルダやボリュームが混じっていた場合
エラーが起きてスクリプトが直ちに終了しますよね
するとドロップされたファイルの一部については
処理を施せない可能性が生じてしまいます
repeat with theFile in itemList
try
set {file type of theFile, creator type of theFile} to {szType, szCreator}
on error
end error
end repeat
こうすれば確実な動作をします

ダイアログの値をリストに分解するのは一箇所だけなので
ここではサブルーチンを使わなくてもよいのではないでしょうか?

ダブルクリック部でダイアログをリピートさせる手法には脱帽しました
126にゃあ:02/08/03 00:05 ID:1D7eh/DG
すいません
end errorはend tryの間違いです
127名称未設定:02/08/03 00:09 ID:ogwzbKZi
初心者な質問で場を汚してしまいそうですが...

OS 9.1のAppleScriptで上手く実行されていたAppleScriptを
OS 9.2.1以降のAppleScriptで実行させると、ファイルやフォルダ名に
日本語が含まれていた場合、うまく処理出来ないという不具合が
あったと思うのですが、これをコード側かOSAXなどで回避する
方法はありますか?
128名称未設定:02/08/03 00:38 ID:TxAppN72
Akua Sweetsとかいうのを入れてあると良いということを聞いた事があります。
129名称未設定:02/08/03 00:49 ID:vxCRaQ70
>127
 こんな方法、間違っていたらごめんして。
 当方も今まで動いていたフォルオダー関連のスクリプトが動かんごとなったけん、
 次の方法を、試したとばい。
 騙されたとおもって、試してみんね。

 方法
 1.システムフォルダーのスクリプティング機能追加の中に
 2.システム9.1からコピーしてきた標準機能追加を標準機能追加91とか
  適当にリネームして突っ込んでみれ。これで標準機能追加が2つ。
 3.上級者に怒られるかも知れんけど、うちでは、8.6用ば突っ込んで
  動いとっけん、教えとく。

 結果を教えて。
130名称未設定:02/08/03 01:01 ID:w9QjuzNI
>>127
AppleScript 1.8.3 の変更点に
>>・ Allows scripts to work with files and folders whose names contain accented or other special characters.
という記述を見つけたので、ひょっとしたら直ってるかも。
誰か確認した人はいませんか?

おらとこさまだ1.6だで、試してねーだよ。ゆるしてくんろ。
131127:02/08/03 03:19 ID:v6TSseAX
みなさん、助言ありがとうございます。

>>128
ありがとうございます。探してみます。

>>129-130
やはりそれが手っ取り早いですね。
ただ、自分の作った、あるスクリプトが数人の方に需要があるのですが、
いちいちそれを説明するのがおっくうだったのでソース側で回避できれば、
と思ったのですが。
AppleScript1.8.3に関しても調べてみます。
132名称未設定:02/08/03 03:24 ID:rUyeXY3V
>>130
AppleScript1.8.3って出てるんですか?
どこで落とせます?
133127:02/08/03 03:39 ID:v6TSseAX
てかAppleScript1.8.3ってOS X用アップデータなんですね。
Classic環境で実行させるスクリプトなんでちょっと使えないです。
助言をいただいたのに申し訳ない。
134名称未設定:02/08/03 03:57 ID:df70Ga8e
>>132
ここから落とせます
ttp://www.apple.co.jp/ftp-info/index.html
135名称未設定:02/08/03 04:55 ID:w9QjuzNI
>>133
AppleScript 1.8.3 for Mac OS 9 - Release Notes
http://www.apple.com/applescript/macosx/release_notes/183OS9.html
には
>>It is available as an independent Software Update for Mac OS 9.1 and later, and requires CarbonLib version 1.4 or later.
と書いてあっただよ。

だども、英語版のみだっただ。すまぬ。
136127:02/08/03 05:06 ID:v6TSseAX
>>135
.comの方にはあったんですね、こちらの早とちりでした。
どうもすみませんでした。
英語版でも正しく日本語を処理出来れば良いのですが
(おそらく大丈夫かと思いますけど)。

とりあえずダウンロードして使ってみます。どうもありがとうございました。
137127:02/08/03 05:53 ID:ydzHOuNv
事後報告です。

英語版AppleScript1.8.3をインストールしようとしたところ、英語版MacOS9.1以降を用意しろボケと
言われ、インストール出来ませんでした。

しかし、英語版OSでは出ているアップデータが何故日本では発表されないんでしょうね。
138名称未設定:02/08/03 11:06 ID:f5Q+/K+O
iTunesでstop of trackが取得できないんですがどうしてでしょう
139名称未設定:02/08/03 11:59 ID:XTRDpiG4
>>137
TomeViewerでファイルを取りだして手動インストール。
今OS9.2.2(日本語版)に入れてみたけど、英語版だからとって
特にこれといった問題は感じないし、パスに日本語が混じってい
ても大丈夫っぽいね。まぁ、あれこれやって細かいところまでは
確認してはいないのでなんとも言えないけど、オイラんところ
では今のところは問題ないよーだよん。
140名称未設定:02/08/03 12:37 ID:wYYqxRl+
>>138
finish of track
141名称未設定:02/08/03 15:19 ID:f5Q+/K+O
>140
finishだとユーザー変数扱いになっちゃうんですが…
142名称未設定:02/08/03 16:27 ID:HmfXWdb7
遅レスすいません。

>>62
うち(MacOS 9.1) では、OSA Menuを 1.2.3 d7 に入れ替えると、
メニューの点滅問題は解消しました。
www.lazerware.com/FTP/OSA_Menu1.2.3d7.sit

>>63
OSA Menuだと、キーボードショートカットを各メニュー項目に
自由に割り当て出来るので、ある程度操作の利便性は確保できる
と思うのですが・・・
143名称未設定:02/08/03 16:31 ID:d+w14iaC
>>138
 あ、ほんとだ。動詞のstopを先に認識しちゃってますね。

tell application "iTunes"
set thetrack to track 1 of library playlist 1 of source 1
start of thetrack -- OK
stop of thetrack
end tell

144138:02/08/03 16:42 ID:f5Q+/K+O
ああ、なるほど…
ちょっと調べてきましたが、stopは再生/停止のstopとかぶってるから
使えないという仕様ミスのようで。
そこでiTunes3ではstopをfinishに変更して使えるようにしましたと、、
そしてiTunes3はOS Xオンリーと、、はあ。。
145名称未設定:02/08/03 19:08 ID:d+w14iaC
自分さえ良ければいいなら(w)、iTunesをResEditで開いて
aeteリソース/ID=0/iTunes Suite/Classesのtrack/Propetiesのstop
をfinishにリネームしてしまう
という手はあります。
146140:02/08/03 20:18 ID:QSvqDLPZ
>>144
ちゃんと用語説明みて書き込んだんですが
iTunes 3だけでしか使えないとは知りませんでした、スマソ
147140:02/08/03 21:17 ID:QSvqDLPZ
>>144
しらべてみると
生データで書く方法が有効みたいです
ヌclass pStpネ
これでやってみてください、構文確認で「stop」に直されますが
内部的には停止の「stop」と区別してるみたいです
検証はiTunes 2.04 & OS 9.1でやりました
148144:02/08/03 21:56 ID:f5Q+/K+O
>147
それ調べてるときにチラっと見かけたんだけどよくわからなくて挫折してました。
そのまんま書けばよかったんですね。うまくいきました。
thanks!

>145
やらなくて済みそうです(笑)
149名称未設定:02/08/03 21:59 ID:d+w14iaC
ああ。そうか、その手がありましたね。
150名称未設定:02/08/03 23:49 ID:Xntwj6NK
日本語入力フロントエンドプロセッサーにATOK8を使用してます。
スクリプトで、ATOKが起動している時は、キーボードをUSに、
USの場合は、何もしないように判断させて、切り換える方法は有りますか?
151にゃあ:02/08/04 00:11 ID:6xL7GJqN
>>150
KT7.1.2〜OS8.6のAppleScriptでは不可能ですが、QuicKeysを使えば実現できます
OS9以降についてはインストールしていないのでお答えできません
152名称未設定:02/08/04 02:08 ID:yzOMEzun
>>151
あんたここに常駐してるコテハンだよね
事実上質問スレと化してるスレでOS 9以降は分からないって…
AppleScriptも仕様変更されてるだろうから
混乱を招かない様にだまってた方がいいんじゃないの?
悪気はないんだろうけど
153名称未設定:02/08/04 02:31 ID:poHjDysl
>>152
夏だからね
154名称未設定:02/08/04 02:48 ID:6FFXxegp
あえてiTunes Library Managerを自力で作ってみました。とっくに存在してるの知ってますが
ここで晒してダメ出ししてもらうのが目的なので気にしません。

-------------------------------------------------------------------------
tell application "Finder"
 activate
 set docFolder to alias "Macintosh HD:書類:iTunes:"
 set LibBox to (docFolder as string) & "iTunes 2 Library Files:"
 set currentLib to (docFolder as string) & "iTunes Music Library (2)" as alias
 
 if exists process "iTunes" then quit application "iTunes"
 
 if not (exists container LibBox) then
  make folder at docFolder with properties {name:LibBox}
  set comment of currentLib to "default"
  return
 end if
 
 set LibBox to LibBox as alias
 set LibList to ((comment of currentLib) as list) & (list folder LibBox without invisibles)
 set newLib to choose from list LibList default items comment of currentLib
 if result = false then return
 
 if newLib as string /= comment of currentLib then
  set name of currentLib to comment of currentLib
  move currentLib to LibBox
  
  set newLib to (LibBox as string) & newLib as alias
  move newLib to docFolder
  set comment of newLib to name of newLib
  set name of newLib to "iTunes Music Library (2)"
 end if
end tell

tell application "iTunes" to activate
-------------------------------------------------------------------------
155154:02/08/04 02:49 ID:6FFXxegp
特徴:
・duplicate with replacingを使うと上書きせずに元ファイルがゴミ箱に溜まってうざいので
 単純に複数ファイルをリネームしつつ入れ替えるだけにしました。
・素人が作ったので危険。

使い方:
・iTunes2、OS9専用です。
・ライブラリファイルのあるフォルダパスを手動で書き換えといてくださいw
・初めて実行するとライブラリファイルと同じフォルダにiTunes 2 Library Filesってフォルダができるので
 ここに入替用ライブラリファイルを“別の名前にして”入れておいてください。
・なおライブラリファイルのコメント欄を利用するため勝手に書き換えますw

わかっている問題:
・iTunesが起動している時はまず終了させるようにしたんですが、なぜか最前面にあるときは
 quit appが遅れをとって上手くいきません。ライブラリファイルが上書きされて酷い目にあうかも。

156127:02/08/04 02:56 ID:WIpTiM63
>>139
ありがとうございます。
TomeViewerで取り出すのも考えたんですが、不安定になるのが
怖くて躊躇していました。ご報告ありがとうございます、やってみます。
157名称未設定:02/08/04 03:10 ID:YAe/UdBG
>>151
とりあえず、OS9.21で QuicKeys3.5.3 が動いてるし、QuicKeysXも有るよ。
QuicKeysからAppleScriptを使ったり、その逆も出来る。
AppleScriptに対応してないアプリもQuicKeysを通してAppleScriptから
制御出来るからこの組み合わせは最強だね。

>>150
の件でQuicKeysを使うのは条件判断が難しそうだけど、
なんの解決策もヒントになりそうな情報も書いてない
>>152-153
よりはましだから気にスンナ。
158 ◆9999ZEL. :02/08/04 03:34 ID:6hq5goY5
>>152
僕は,いいんじゃないかと思うけど...
自分で確認できる範囲で,答えるのは悪いことではないんじゃないかなぁ?
未確認の範囲をきちんと明言しているわけだし...
あなたが言うように,悪気がないのは明白ですよ!
159152:02/08/04 03:37 ID:yzOMEzun
>>157
あれ?なんか怒ってる?
いや、おれはこのスレは好きなのよ、参考にさせてもらってる
だからこそ古い環境でのアドバイスは控えた方がいいんでないかと
っていうか、あんたこのスレ読んでる?
160名称未設定:02/08/04 04:00 ID:YAe/UdBG
>>155
とりあえず
>>わかっている問題:
に関してだけ
considering application responses
if exists process "iTunes" then tell application "iTunes" to quit
end considering
delay 2
上記のように
最前面にある時はtell app "iTunes" to quit の方が速いかもしれません。
ステップ毎の処理が必要で、時間の掛かる処理が間に入る場合は
レスポンスを考慮する構文ブロック内に遅れる処理を入れるか、
又は、次のステップに移る前にディレイを入れるか、又はその両方にすれば
上手く逝くかもしれません。
検証はしてません。ゴメン

>>159
すまん、怒ってる訳じゃないんだ。
>>153 みたいなレスを呼び込む事になるから
スレの趣旨と余り関係ない>個人に意見するようなレスは
控えたほうがいんでないかと思っただけで。
それにOS8.6 とか使ってる人もまだ結構いるしね。
161にゃあ:02/08/04 04:35 ID:HKRDUyXm
>>157-160
スレの空気を乱してしまい、申し訳ありません

>>150にはATOK8とあり、またIMではなくFEPとの表現でしたので
かなり古い環境をご使用ではないかと判断し
7.1.2〜8.6までのOS環境におけるスクリプト制御の可否についてお答えすれば充分かと考えた次第です

>>150の場合、QuicKeysにおけるアルゴリズムはごく単純です
メニューからUSを選択するショートカットを作成しておき
ATOKが動作しているか否かに関わらず、このショートカットを実行するだけで構いません
既にUSが選択されているときに再びUSを選択しても、実際には何ら変化はなく
それこそが期待していた動作だからです
162157:02/08/04 05:01 ID:YAe/UdBG
>>161
いや、スレの空気を乱したのは俺だった。申し訳ない。
>>150の件は見事な推察で恐れ入りました。
なるほど、ATOK8なら古いシステムだろうし
Quickeys使うなら条件判断は最初から必要ないですね。
163にゃあ:02/08/04 05:35 ID:FrBPRQcn
>>162
いえいえ。とんでもない
僕の方こそアドバイスの言葉が足りなくて......

AppleScriptとQuicKeys
両者の足りないところを補い合うようにして使えば
本当に快適な環境が実現しますね
164名称未設定:02/08/04 10:32 ID:JMq1gvBw
>>142
おお、そんな隠しダマがあったんですね。
チカチカしなくなりました。ありがとう。
165154:02/08/04 17:20 ID:6FFXxegp
>160
残念ながらやっぱりあまり上手くいかないようです。
delayを延ばしたりしてみましたが空白の時間が増えるだけでした。
結局これを確実に避けるには、iTunesが起動していたら終了を促す
メッセージを出して一旦スクリプトを終了させるのが妥当なのかも。
…なんか悔しい。
166名称未設定:02/08/04 22:52 ID:Nk5tUEta
>>165
とにかく終了を待ってからってのはどう

if exists process "iTunes" then tell application "iTunes" to quit
repeat while exists process "iTunes"
delay 1
end repeat
167名称未設定:02/08/04 23:31 ID:6FFXxegp
>166
固まりますた。
168166:02/08/04 23:35 ID:Nk5tUEta
>>167
マジか!?いや、すまん
ほんとうに、すまん!わるかった
169名称未設定:02/08/05 02:15 ID:YkolX9PC
すまん、ワラタ
170160:02/08/05 06:49 ID:QbtWauQu
>>165 お役に立てなくて残念です。
知ってると思うけど・・・スクリプトエディタでログ(履歴)を
表示して実行すると止まる問題点が表示されて分かりやすいですよ。

まずは、問題点の切り分けの為に
tell application "Finder"
 activate  
 if exists process "iTunes" then quit application "iTunes"
 if not (exists container LibBox) then
  make folder at docFolder with properties {name:LibBox}
  set comment of currentLib to "default"
  return
 end if
end tell
最初の部分だけで正常動作するか?というのはどうですか。
上手く動いたら次のステップを追加してまた確認という感じで
修正していけばそのうち上手く行くでしょう。
まぁ、あきらめずに思いつく事をいろいろとやってみて下さい。
considering ブロックでtell app "Finder" ブロック全体をかこむとか
問題の箇所だけtell app "Finder" ブロックからはずすとか
問題のアプリが最前面にこないように他のプロセスをactivate するとか

どうしても上手くいかなければ、CarbonLib や
AppleScript 機能拡張をアップデートした方が良いのかも。
171名称未設定:02/08/05 15:20 ID:qhdZVn2V
あの、電話番号一覧表を作っているのですが、なかなかうまくいきません。
どうすればいいのか教えてください
172名称未設定:02/08/05 15:25 ID:clabCVfB
>>171
な、なんだ誤爆か!
とりあえずエクセル使っとけゴルァ。
173 ◆9999ZEL. :02/08/05 20:08 ID:yuiTiApu
>>171
(どうせ,冷やかしなんだろうけど...)
お使いのアプリを書いてね.
まさか, AppleScript で,やる おつもりではないでしょうね ?!!!
(でまかせを書いたけど,できるのだろうか...無理に違いない...)
174名称未設定:02/08/05 20:17 ID:mSZmZ6p5
>>173
シッシッ!
175154:02/08/05 20:23 ID:rfjrJFAH
>168
いや、command+.で終了はできるんでそんなにダメージはなかったですけどね。

>165
いろいろ検証してみたところ、
1.iTunesがすでに起動していて、かつ最前面のとき
2.iTunesを終了させて、さらにFinderなどで処理を続行するスクリプトを
3.OSA Menuなどのスクリプトメニューから実行。
した場合にかぎってどうしても終了処理が遅れてしまうようです。
ちなみにiTunes以外のアプリでも同様のようでした。

ひょっとしたらスクリプトの記述でどうこうなる話ではないのかもしれません。
それになんだかあまりにも場面が限定的なのでどうでもいいような気もしてきました。
せっかく皆さんにいろいろ考えてもらったのに申し訳ないですが。
コンパイルしてアップルメニューなどから使う分には問題なさそうなので
そうやって使ってください・・つうかスクリプト自体の需要がないかw
176154:02/08/05 20:25 ID:rfjrJFAH
後半は165ではなく>170でした。
177名称未設定:02/08/06 20:20 ID:6lhw9erC
2chを見るのにNetscape3.01Jを使っているので
"ttp://"で始まるURLを開く奴のNetscape版が
欲しいので皆さんのを参考にしながら色々やって
みましたが、選択した文字列を取り出せません。
今は以下の様な物で「選択+コマンドC+実行」と
しています。Netscapeにもselectという命令が
あるようですが出来ないのでしょうか?

tell application "Netscape Navigator 3.01 [ja]"
activate
set theUrl to get the clipboard
make new window
set bounds of front window to {0, 36, 640, 480}
OpenURL ("http://" & theUrl) to front window
end tell
178名称未設定:02/08/07 11:10 ID:5P/ummJZ
>>177
丁度その話題は前スレあたりであったと思うので
探してみて。で、結論からいうとネスケは選択文字列の
取得は駄目なんですよ。

漏れは、RbでコマンドCのキーイベントを発生させて
コピーしてASでオープンして対処してます。
179177です:02/08/07 20:28 ID:18wR8zzJ
>>178
なるほど、選択文字は取得出来ないんですね…
ありがとうございました。
さっき AppleScript Lab を見ていて Menu Events
http://www.magma.ca/~awolsp/
というOsaxを見つけたので落として使ってみましたが

Select Menu Item menu title "編集" menu item text "コピー"

と書くと、ねすけがコピーしてくれる様になりました。
なんとか「選択+実行」で見れそうです。
次はGoogleと翻訳に挑戦してみます。
どうもありがとうございました。
180名称未設定:02/08/08 04:57 ID:oBO0bH5C
>>179
お、面白いすね。自分もそれ入れてみました。thanx
181名称未設定:02/08/11 11:38 ID:x232qGU5
電卓欲しかったので書いてみました。足し算しかできませんが…。
入力欄に直接『1+2+3』などとタイプして使うものです。
引き算もしたいのですがどうすればいいでしょう…助言おねがいします。

on run
calcMode()
end run

on calcMode()
display dialog "calc mode : 計算を入力して下さい。" default answer "" buttons {"キャンセル", "OK"} default button "OK" with icon note
set inputText to text returned of result as string

set lastDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to "+"
set listText to every text item of inputText --数字摘出
set AppleScript's text item delimiters to " + "
set equationText to listText as string --表示数式設定
set AppleScript's text item delimiters to lastDelim
set N to length of listText --項数

set calcAnswer to 0
repeat with M from 1 to N --計算ルーチン
set anserItem to text item M of listText
set calcAnswer to calcAnswer + anserItem
end repeat

display dialog equationText & " =" default answer calcAnswer buttons {"他の計算", "キャンセル", "コピー"} default button "コピー" with icon note
set nextStep to button returned of result
if nextStep is "他の計算" then calcMode()
if nextStep is "コピー" then set the clipboard to calcAnswer as string
end calcMode
182にゃあ:02/08/11 13:54 ID:oHVBBYIM
>>181
set AppleScript's text item delimiters to " + "が
2回も出現する意味が理解できないのですが......
また、表示数式設定の部分は不要ではないでしょうか?
ふたつ目のダイアログでdefault answer inputTextとすれば充分だと思います
ふたつ目のダイアログに対する分岐処理は、ifハンドラをふたつ並べるのではなく
else ifを使ってひとつに纏めた方が
AppleScriptの内部におけるステップ数を減らすことが出来ますよ
>>181だと「他の計算」を選択した場合
「nextStep is "他の計算"」が真である旨の評価した後
更に「nextStep is "コピー"」が偽である旨の評価しなくてはなりません
else ifを使えば不要な処理を省けるというわけです

>引き算もしたいのですがどうすればいいでしょう
計算式を入力する際、「1-2+3」という普通の書き方ではなく
「+1,-2,+3」のようにコンマで区切れば減算も交えることが出来ます
但し、括弧付きの計算は処理不能ですけれども......

calcMode()

on calcMode()
set inputText to text returned of (display dialog "calc mode : 計算を入力して下さい。" default answer "" buttons {"キャンセル", "OK"} default button 2 with icon note)
set AppleScript's text item delimiters to ","
set listText to every text item of inputText
set AppleScript's text item delimiters to {}
set calcAnswer to 0
repeat with N from 1 to (count listText)
set calcAnswer to calcAnswer + (item N of listText)
end repeat
set nextStep to button returned of (display dialog inputText & "......" default answer calcAnswer buttons {"他の計算", "キャンセル", "コピー"} default button "コピー" with icon note)
if nextStep = "他の計算" then
calcMode()
else if nextStep = "コピー" then
set the clipboard to calcAnswer as string
end if
end calcMode
183質問です。:02/08/11 14:52 ID:fD9vW4Fs
 初心者ですが、アップルスクリプトに付いて教えて下さい。
 システムはOS 9です。

キー バッファーを初期化(クリアー)したいのですが、適当なosax
があれば、教えて下さい。

あと、repeat〜end repeat文は、回る回数に制限があるのか教えて下さい。

宜しくお願い致します。
184名称未設定:02/08/11 20:09 ID:2W2KNnUL
>>181
tell application "スクリプト編集プログラム" to activate

此れ最強。
185 ◆9999ZEL. :02/08/11 20:47 ID:5EXPG5o6
>>183
>repeat〜end repeat文は、回る回数に制限があるのか教えて下さい。
AppleScript リファレンスで調べてみました:
次のような statement が用意されています.

・repeat〜end repeat <-- 無限 loop
・repeat n times<-- n 回 loop する.
・repeat until ... <-- 条件 ... が false の間,loop (true になると loop 脱出)
・repeat while ... <-- 条件 ... が true の間,loop (false になると loop 脱出)
・repeat Cnt from A to B <-- ' Cnt ' が A から B まで increment されながら loop
・repeat with Y in X <-- list X から, 一つづつ item を Y に代入しながら loop
186名称未設定:02/08/11 22:33 ID:mnPC2Edi
>>185
ないです。
ただし、カウンターに変数を使っているものは、その変数の上限の制限は受けます。
187名称未設定:02/08/11 22:36 ID:mnPC2Edi
冗談みたいなもんなんだけど

display dialog "計算式を入力してね" default answer ""
set shikiStr to text returned of the result
run script shikiStr
188187:02/08/11 22:38 ID:mnPC2Edi
187ではスクリプト編集プログラムの中でしか答が見られないですね...
最後の1行の代わりに..

set kotaeStr to run script shikiStr
display dialog kotaeStr
189にゃあ:02/08/11 22:52 ID:mkw3QGc7
>>188
Great!!
190名称未設定:02/08/12 00:26 ID:+KXHft/U
display dialog (run script (text returned of (display dialog "計算式を入力してね" default answer "")))
191187:02/08/12 00:59 ID:qxZNbUf3
DEBUGがたいへんだからっていう理由で、1行野郎はやめちゃったのです。
Script WizardとかScripterとか使っても、ラインブレイクなんだもん。
192183:02/08/12 02:02 ID:Uzv7yWrv
>185,186
 repeat の繰り返しに制限が無いことは解りました。
 ありがとうございます。
   ・・・ 何でとまるんだろう・・・(泣。
193名称未設定:02/08/12 02:07 ID:9H5yt/2F
>>192
exit repeatでとまるよう
if文つこうてな
194名称未設定:02/08/12 04:16 ID:GSpDnbB+
>192
晒してみさらせ
195変数に付いて。:02/08/12 21:34 ID:1Nr12XxE
前回終了した変数(string)を、次回起動時も保持する方法はありますか?

具体的には、自分自身のスクリプトが延べ何回使用されたかが分かるように
したいのですが。
196名称未設定:02/08/12 21:55 ID:iaFXIj40
string(文字列)って書いてるけど、使用回数(integer)が分かればいいんだよね?
ようは起動の度にインクリメントしてけばいいんだよね?
propertyを使えば値を保存しとけるんで、こんなんでどう?

property aNum : 0
set aNum to aNum + 1
display dialog aNum
197195:02/08/12 23:14 ID:KqDWMd8f
>196
 propertyで出来ました。ありがとうございました。

 持っている本 ダニーグッドマンのAppleScriptハンドブックの索引では
 propertyは別の事?で載ってました。他に良い参考書があれば、御教示
 下さい。
198名称未設定:02/08/12 23:15 ID:9H5yt/2F
ていうか>>195,185は
>>1の【入門サイト】のトコ読んでるんでしょうか?
読んでないとなると後いくつの質問に答えなければならんのだろうか(鬱
199添削きぼんぬ:02/08/13 00:08 ID:uld6Vi0L
--iTuns2のラヂオチューナで録音。URL Trackをselectして実行
try
set fnum to 0
tell application "iTunes" to ツ
set the_stream to item 1 of address of selection
if the_stream is "" then return
set pls to ((path to desktop folder) as text) & "strm.pls"
considering application responses
tell application "Finder" to ツ
if exists file pls then move file pls to trash
tell application "URL Access Scripting" to ツ
set convfile to download the_stream to ツ
file pls replacing yes with progress
tell application "Finder"
update desktop
set cnt to 3
repeat until exists convfile or cnt イ 0
set cnt to cnt - 1
delay 2
end repeat
end tell
end considering
if cnt イ 0 then error number 3205
set fnum to open for access convfile
set strm to read fnum using delimiter {return, "="} as text
close access fnum
set fnum to 0
if (item 3 of strm) is "0" then error number 4081
on error msg number num
tell me to activate
if fnum > 0 then
close access fnum
set num to 3205
end if
if num is -2753 then
set dmsg to "これは URL Track ではありません"
set dbtn to {"まちがえますた"}
else if (num is 3205) or ("URL Access" is in msg) then
set dmsg to "接続に失敗しました"
set dbtn to {"なけてきますた"}
else if num is 4081 then
set dmsg to "放送してません"
set dbtn to {"ざんねんですた"}
else
set dmsg to msg
set dbtn to {"OK"}
end if
display dialog dmsg & return & ツ
"終了します" buttons dbtn default button 1 ツ
with icon note giving up after 10
return
end try
tell application "iTunes" to convert convfile
200自ら添削:02/08/13 00:22 ID:uld6Vi0L
>>199
早速、訂正 17行目
×repeat until exists convfile or cnt イ 0
○repeat until (exists convfile) or (cnt イ 0)
200げと(泣
201名称未設定:02/08/13 00:28 ID:mQwr4Elo
構文チェックすると最後の
convfile が不正って出るけど、俺だけか?
202182:02/08/13 01:28 ID:hJAQuKbB
>>182
しばらくここをチェックしてなかった182です。
AppleScript's text item delimiters to 〜 を
数値の抽出と計算式の表示のためにつかってます。
元の計算式がみづらいので、数字と演算記号の間にスペースを
いれたかったので、2回目は+の両はじに半角スペースが
あります。

>>187-190
脱帽です。
それを参考にいろいろいじってみます。
203にゃあ:02/08/13 03:41 ID:AB+cG9vJ
>>202
なるほど
204Scriptでwaitは?:02/08/14 13:44 ID:ePe285+J
以前、キーボードスクリプトでATOK8を切る方法を尋ねた初心者です。
その後度々ご迷惑をお掛けしており、不勉強で申し訳なく思っております。
ご教示頂いたQuickeysは高価なので、以下のスクリプトで実現しようとしてますが、
時々上手くいきません。また、最後の1文を追加すると、もう駄目です。
原因は、スクリプトが実行を待たずに勝手に進んでいるためと思いますが、
repeat文でウェイトをかけても無駄のようです。スクリプト中のウェイトの
かけ方をご教示下さいますよう、お願いします。
以下スクリプト本体です。

--スクリプティング機能拡張フォルダーにCursor OSAX と、S穫di's Additionsが必要です。
property first_clic : {777, 10} --最初のクリックの座標(保持出来る様になってます。)デフォルト 777,10
property second_clic : {777, 60} --2番目にクリックする座標(保存出来る様になってます。)デフォルト 777,60
set init_pos to {HorizontalMouseLocation, VerticalMouseLocation} --このスクリプト終了時に復帰する座標を保持します。
set now_pos to {0, 0} --現在マウスがいる場所を記録するリスト
set first_clic to first_clic --前回終了時に設定されていた1番目のクリック場所をセット
set second_clic to second_clic --上に同じく、2番目のクリック場所をセット
set x to 0
set y to 0
if (OptionIsDown) then --if Option Key is Down then init Position
-- オプションキーで、first_clic と、second_clicの場所を初期化します。
repeat --number is not change then exit
set x to item 1 of first_clic
display dialog "Step 1:1st Mouse X Position is:same is set end" default answer x buttons {"SET"} default button 1

set x to (text returned of result) --as number -- as list
set x to x as number

if x is not equal to item 1 of first_clic then
set item 1 of first_clic to x
else
exit repeat --値に変更が無ければ、次の設定項目(y)

end if
beep
MoveMouse first_clic --確認のため、設定位置へ移動します。
repeat 100 times
repeat 5000 times
end repeat
end repeat
end repeat
-- 2へ続く
205その2です。:02/08/14 13:46 ID:ePe285+J
--その2
--1st clic y position set
set y to item 2 of first_clic

repeat --number is not change then exit
set y to item 2 of first_clic
display dialog "Step 2:1st Mouse Y Position is:same is set end" default answer y buttons {"SET"} default button 1

set y to (text returned of result)
set y to y as number

if y is not equal to item 2 of first_clic then
set item 2 of first_clic to y
else
exit repeat

end if
beep
MoveMouse first_clic
repeat 100 times
repeat 5000 times
end repeat
end repeat
--if select_button is "OK" then exit repeat
end repeat


repeat --number is not change then exit
set x to item 1 of second_clic
display dialog "Step 3:2nd Mouse X Position is:same is set end" default answer x buttons {"SET"} default button 1

set x to (text returned of result) --as number -- as list
set x to x as number

if x is not equal to item 1 of second_clic then
set item 1 of second_clic to x
else
exit repeat
end if
beep
MoveMouse second_clic
repeat 100 times
repeat 5000 times
end repeat
end repeat
--if select_button is "OK" then exit repeat
end repeat
206その3です:02/08/14 13:48 ID:ePe285+J
--その3
--2nd clic y position set
set y to item 2 of second_clic
repeat --number is not change then exit
set y to item 2 of second_clic
display dialog "Step 4:2nd Mouse Y Position is:same is set end" default answer y buttons {"SET"} default button 1

set y to (text returned of result) --as number -- as list
set y to y as number

if y is not equal to item 2 of second_clic then
set item 2 of second_clic to y
else
exit repeat

end if
beep
MoveMouse second_clic
repeat 100 times
repeat 5000 times
end repeat
end repeat
--if select_button is "OK" then exit repeat
end repeat
end if

--main
MoveMouse first_clic
PressButton

repeat 100 times --ここでプルダウンメニューが表示されるまで、待ちたいのですが、repeat文ではダメのよう。
repeat 5000 times
end repeat
end repeat

MoveMouse second_clic
repeat 50 times
repeat 5000 times
end repeat
end repeat

PressButton
repeat 300 times
repeat 5000 times
end repeat
end repeat
beep
--MoveMouse init_pos --この1文で動かない

--何卒宜しくお願い致します。
207名称未設定:02/08/14 14:25 ID:1lJTQAeW
>>204
delayじゃだめなの?
208名称未設定:02/08/14 14:26 ID:wQRWN5GK
彼はバージョンがふるいのではなかったか?
209名称未設定:02/08/14 15:10 ID:d4vzmBDX
>207
delayも--iTuns2のラヂオチューナ ・・・で見て、試して見ました。
どうも、スクリプトが終了した後に、キーボードバッファー?から、
遅れて出力されて切り替わるようです。動作を見てますと、このスクリプト
がrepeat文やdelayを使っても、CPUを占有して放さない様に思え、終了後に
tyeptext文やpressbutton文が実行されている様に思えます。考え方が間違って
いるかもしれません。希望としては、typetextの直後に、画面に反映して欲しいと
思ってます。
>208
OSは9.2.2と8.6を交互に使用してます。AppleScriptは1.6、PowerMac7300/166を使ってます。
前回のレスでバージョンを明記しなかった事をお詫び致します。
210強制U.S.きりかへ:02/08/15 06:30 ID:GBNx8dnB
(*
MenuEventsを使っても出来そうな気がするが
どうでしょ?>MenuEvents使ってるひと

OS8.6で使えるかはわからないけど、そこまでしてやりたいなら・・・

純正のキーボード追加OSAXとHyperCardを使います
まずHyperCardで新たなスタック"ScriptChenge"を作成し
そこにUSfontに設定した入力可能なカードフィールド"US"を作成
さらにカードボタン "USscript"を作成し
on mouseUp
click at loc of cd fld "US"
end mouseUp
この様なスクリプトを設定
下のAppleScriptを実行

HyperCardから直接AppleScriptでやってもいいし
日本語への切替も同様の方法で出来るでしょう
*)

set font and keyboard script synchronization to true
tell application "Finder" to open alias "HD:ScriptChenge"
tell application "HyperCard"
tell card button "USscript" to mouseUp
set font and keyboard script synchronization to false
quit
end tell

(*
HyperCard はAppleScriptではやりにくい事も簡単に出来るし
AppleScriptのインターフェイスとしてもDialogDirectorなどより
簡単に使えるので、いろいろ試してみて下さい。
*)
211名称未設定:02/08/15 06:50 ID:GBNx8dnB
(*
>>209
CursorOSAXもカーソル位置取得以外の
Mouse操作なんかには実際はあんまり使えない気がする
AppleScriptは基本的にイベントドリブンなので
リアルタイムな感じの処理には向かないみたいです

たぶんダメだと思うけど
*)
MultiTask
repeat until (MouseDown) = true
MoveMouse first_clic
PressButton
end repeat
delay 2
repeat until (MouseDown) = true
MoveMouse second_clic
PressButton
end repeat
(*
などとしてみたらどうでしょう?
delayの他にSleep Commands などのOSAXも有りますた
*)
212訂正。。。:02/08/15 06:54 ID:GBNx8dnB
>>210
×Chenge
○Change


ウトゥ.....逝ってきます
213名称未設定:02/08/20 01:22 ID:PbSPzkdG
OSXで、常駐して
再前面のウインドウを強制的にカラムにするってやつ
出来ないですか?
214名称未設定:02/08/20 01:23 ID:PbSPzkdG
最前面ですた。
つまりカラムにしまくってくれるってことす。
215名称未設定:02/08/20 12:58 ID:X2PjYqZF
>>213
「ご主人様ご命令を!」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50
216名称未設定:02/08/20 21:25 ID:3356MxEH
選択して実行すると対象を片っ端からロックする、というのを習作として作ったんですが、
これ自体はうまく動作しているのですが、これをドロップレットにしようとして悩んでます。
ドロップレットではselectionが使えないためref folders of selection以下の再帰的な参照渡しができません。
速度を追求してこの形になったのでできればrepeatで1つ1つ処理するようなことは
避けたいのですが、上手い方法ないでしょうか?

set theLock to true
tell application "Finder"
activate
set locked of files of selection to theLock
set folderList to a reference to folders of selection
repeat while contents of folderList /= {}
set locked of files of folderList to theLock
set folderList to (a reference to folders of folderList)
end repeat
beep
end tell
217216:02/08/20 22:56 ID:3356MxEH
自己解決しちゃいました。第一階層だけ個別にしてやるだけでよかったでした。
スレ汚しごめん。

repeat with theItem in fileList
if last character of (theItem as string) = ":" then
repeat while contents of theItem /= {}
set locked of files of theItem to theLock
set theItem to (a reference to folders of theItem)
end repeat
else
set locked of theItem to theLock
end if
end repeat
218OS 9だとこんな感じか?:02/08/21 01:30 ID:+22vrhpE
>>213
--実行後、自動的に終了しない アプレットで

property last_container : ""
on idle
tell application "Finder"
try
set front_container to ツ
(container of (front container window)) as alias
on error
set front_container to (path to desktop folder) as alias
end try
end tell
if last_container is not front_container then
tell application "Coela"
activate
open front_container
end tell
set last_container to front_container
end if
return 1
end idle
219名称未設定:02/08/21 03:01 ID:QIhHTe07
>>216
--選択して実行、またはドロップ
lock_it()

on open selected_items
tell application "Finder" to select selected_items
lock_it()
end open

on lock_it()
tell application "Finder"
activate
ignoring application responses
set locked of selection to true
end ignoring
end tell
beep 2
end lock_it
220名称未設定:02/08/21 09:56 ID:KAsMuHmn
>>216-217
もう解決したみたいだけど
ドロップレットの場合はスクリプト内でselectionに変換すればいいんじゃないか?

on run
main()
end run

on open drop_items
tell application "Finder" to set selection to drop_items
main()
end open

on main()
--実行ルーチン
end main
221216:02/08/21 12:20 ID:WNnYh5pw
>>219,220
おお。
select 〜
set selection to 〜
どちらもOKでした。selectすっかり忘れてました…
2人ともありがと。

関係ないけど、selection使うと、処理中にボリュームアイコンとか
クリックしちゃうととても悲惨なことになりますな。。
222名称未設定:02/08/21 15:59 ID:vKjHjeDc
>>216,219,220
ん? というか、ドロップレットでもFinderからselectionを
フツーにゲットできますが?

on open
tell application "Finder"
set drop_items to selection

end open

ちなみに、こうするとエイリアスをドロップするとオリジナルのパスを
取得してしまう問題を回避できます。
223名称未設定:02/08/23 19:46 ID:VAK5Tvzl
初心者な質問で恐縮ですが、OS9のスクリプト編集プログラムで
OS9で使う為に書いたスクリプトを「OSXアプリケーション」で
コンパイルしたら、OSXでもフツーに使えてしまうんでしょうか?
わざわざ、「OSXアプリケーション」という選択肢が用意されて
いるから出来るのかなぁと淡い期待を持っているのですが。
よろしくお願いします。(OSXは持っていないので試せません)
224名称未設定:02/08/24 01:57 ID:aWtP03fQ
保全ハゲ
225名称未設定:02/08/24 16:28 ID:AgeCnNlD
ヨイショ
226名称未設定:02/08/24 16:52 ID:YUc//CiJ
>>223
検証してないっすけど、OS 9アプリ間でのスクリプトを
クラシック環境で使うのは平気でしたよ。

あまりUIがないし普通に実行出来るんじゃないっすかね?
227名称未設定:02/08/25 07:05 ID:tLUmAk1b
AppleScript1.8.3だと、なぜかアプリ保存の選択肢は"Application"一つしかないす。
OS ×と9に分かれてるのは1.7まですか?

×と9じゃAppleScriptのバージョンが違ったりする事も有るから
×用アプリとして保存しても実際動作するかはビミョ〜と思ってたっす。
228223:02/08/25 17:43 ID:2n2/Kd5X
>>226,227
そうですか、期待薄ってトコですかね。最新版だと選択肢が
ないって事は尚更ですね。
229名称未設定:02/08/25 20:11 ID:lYLSIvv6
>>223
一応、使えますよ。
選択肢がないのは全部OSX用アプリとして
コンパイルされるからなんじゃないのかな。
ただ、OS9とOSXじゃ書き方で動いたり動かなかったりなんで
OSX用はOSXで実証してみないとだめなんじゃないかな。
230名称未設定:02/08/26 05:56 ID:SmfFJYOC
蛇足。
OS X用をOS 9で動かすとメモリ余計に食うみたいだから、
足りないって言われたら情報ウインドウで増やすといいよ。
231名称未設定:02/08/26 22:47 ID:jw9kLw74
クリエーターを変えるスクリプトを作ってみたのですが、
下から三行目でエラーとなってしまいます。どこが逝けないのか
皆目見当がつきません。ご指摘お願いします。


property crt : ""

set it1 to choose file
tell application "Finder"
set knd to kind of it1
end tell
if knd is "アプリケーション" then
display dialog "このアプリのクリエータを登録します。" & return & crt as string buttons {"キャンセル", "OK"} default button 2
set crt to file creator of (info for it1)
tell application "Finder"
set name of (path to me) to crt
end tell
else
set it1 to it1 as string
tell application "Finder"
set (file creator of file it1) to crt
end tell
end if
232名称未設定:02/08/26 23:12 ID:mcu9uCOX
>>231
×file creator
○creator type
233名称未設定:02/08/26 23:19 ID:jw9kLw74
>>232
書き直してみましたが、やはりエラーになります。
OS9.1J、スクリプト編集プログラムJ1-1.6です
234名称未設定:02/08/26 23:23 ID:jw9kLw74
>>232
もう一回やり直したら、上手くいきました。ありがとう。
235名称未設定:02/08/27 00:05 ID:H2AUII0H
>>234
Finder の用語説明が見にくいのなら
>>2 のサイトにある用語辞書シリーズを激しくおすすめ
236234:02/08/27 00:59 ID:iZ9J0yhw
>>235
Finderと実行アプリでクリエータを呼び出すレコード名が違ったので
ちと混乱してしまったのでした。
237名称未設定:02/09/01 10:50 ID:uZXH+7x0
捕手
238名称未設定:02/09/06 02:57 ID:ZrtO1rob
キープ
239名称未設定:02/09/06 11:04 ID:iPHP1RLt
OSA Menuについて日本語で詳しく載ってるところ知りませんか?
どうも Preferences の設定とかわからないッス…。
240名称未設定:02/09/06 11:42 ID:mzKug7He
Use Simple Menusにチェック入れとけば万事OK
241名称未設定:02/09/06 13:48 ID:oid3LI2P
>>239
「Script factory」
http://www.MacOS.com/scriptfactory/

コンテンツ「Monologueの」あたりにOSA Menuの話があるので
一応読んでおくと良いと思ふ。
242名称未設定:02/09/07 10:22 ID:D8OzF2Zy
>240
それやると Preferences を変えたい時にいちいち初期設定
捨てて再起動しなきゃならんのよね…。

>241
ありがとう。
でも、そこを読んでも動くスクリプトと動かないスクリプトが出来てしまう…。
やはり全部 Finder からアプリケーションとして動かすしかないのか…。
243名称未設定:02/09/07 13:54 ID:YgJU/vIB
option + About OSA Menu...
244名称未設定:02/09/11 19:03 ID:L8NqREBQ
sage
245名称未設定:02/09/14 06:19 ID:+odswgfJ
キボンヌscriptネ
246名称未設定:02/09/17 11:16 ID:xxyVX/LM
どなたかよろしく
ランダムに並んだ数字のリストを {2,5,4,1,3}
順番どおりに並べるのって {1.2.3.4.5}
どうすればいいんでしょうか?
247名称未設定:02/09/17 20:38 ID:8bKEUAFx
>>246
高速なソートの仕方って自分も知りたいんだけど、AppleScriptでは無理っぽい
248名称未設定:02/09/17 22:03 ID:w6YQl90u
>>246
有料か要登録のOSAXしか見つからないねぇ。
...ダミーでファイル作ってソートさせるか?!
249名称未設定:02/09/18 12:03 ID:LaoMQzMK
>>247-248
ありが?ォ
何か専用のコマンドが用意されてて
簡単にソートするというわけにはいかないんですね
じゃあリストからひとつひとつ取り出しつつ
比較して並べ直すというスクリプトを組めと…(;´Д`)

リストはせいぜい数百個程度なのでそれほど高速化にはこだわらなくてもいいので
なんとか作ってみます、ありがとうございました
250名称未設定:02/09/18 18:37 ID:S9DMYK0N
>246,247,248
GTQ Programming Suite(1993-1998)
にそのまんまSortというOSAXがある。テキストも数もsortできる模様。
Case SensitiveなsortもOKのようだ。
osaxen.com/gtq_scripting_library.html
に今でもある。9でも動くぞ。
251名称未設定:02/09/18 18:41 ID:S9DMYK0N
2
252251:02/09/18 18:53 ID:S9DMYK0N
ぐは。
まちがった。Chimera挙動不審......
253249:02/09/19 11:38 ID:IgYi1i+h
一晩かけてソートルーチン作ってみましたが…

on sort_list(thelist)
set outList to {}
repeat until thelist is {}
set minItem to 1st item of thelist
repeat with i from 1 to (length of thelist)
if minItem is not less than (item i of thelist) then
set minItem to (item i of thelist)
set minItemNum to i
end if
end repeat
set end of outList to minItem
set thelist to my remove_list(minItemNum, thelist)
end repeat
return outList
end sort_list

on remove_list(n, thelist)
if n is 1 then
set thelist to rest of thelist
else if n is (length of thelist) then
set thelist to rest of (reverse of thelist)
else
set thelist to items 1 thru (n - 1) of thelist & items (n + 1) thru (length of thelist) of thelist
end if
return thelist
end remove_list
254249(つづき):02/09/19 11:39 ID:IgYi1i+h
処理速度が問題で、以下のようなスクリプトで
数字のリストを作ってベンチマークしてみたところ
100個のリストだと2秒程でできるんですが200個にすると10秒
300個で30秒、500個ではハングしたのかというくらい加速度的にかかる時間が増えていく
ここはこうしたら高速になるよというのがあればよろしこ

on run
set thelist to {}
repeat 100 times
set end of thelist to random number 1000
end repeat
sort_list(thelist)
end run

>>250
うん、すなおにOSAX使った方がよさそうですね
255249:02/09/19 12:01 ID:IgYi1i+h
>254はOS9.1で試した結果なんですが
いまOS X(10.2)で試してみたら全然速い!
300個で10秒ぐらい
すばらしい
256名称未設定:02/09/19 13:19 ID:rMIQHuGn
>>253
プログラムを見る限り、選択ソートを使ってるようですね。
動作を速くしたいというなら、クイックソートを使ってみては?
ただ不安定になってしまうけど。
257名称未設定:02/09/19 17:20 ID:HCj4LNrO
ソートはアルゴリズムの典型的な勉強例になるよなあ。
258名称未設定:02/09/19 19:30 ID:puozZTOb
on CombSort(aList, ascending)
set nData to length of aList
set gap to nData
repeat
set gap to (gap * 10) div 13
if (gap = 0) then
set gap to 1
else if (gap = 9) or (gap = 10) then
set gap to 11
end if
if ascending then
set idx0 to 0
set idx1 to idx0 + gap
else
set idx1 to 0
set idx0 to idx1 + gap
end if
set nLoop to nData - gap
set exchanged to false
259名称未設定:02/09/19 19:31 ID:puozZTOb
repeat nLoop times
set idx0 to idx0 + 1
set idx1 to idx1 + 1
set tmp0 to item idx0 of aList
set tmp1 to item idx1 of aList
if (tmp0 > tmp1) then
set item idx0 of aList to tmp1
set item idx1 of aList to tmp0
set exchanged to true
end if
end repeat
if (not exchanged) and (gap = 1) then return
end repeat
end CombSort

on run
set thelist to {}
repeat 300 times
set end of thelist to random number 1000
end repeat
CombSort(thelist, true)
thelist
end run
260名称未設定:02/09/20 23:26 ID:42D1hUfD
サイズもバラバラで沢山有るCDシングルからのAIFFファイルを
1枚のCD−Rの限界サイズできっちり収めたい
サイズもバラバラで沢山有る文書を
フロッピーの限界サイズできっちり収めたい
と言う場合には
アップルスクリプトではどうしたら良いんでしょうか?
アルゴリズムだけでもいいのでよろしくおながいします。
261249:02/09/21 09:27 ID:dVbmKgt8
>>256
そのクイックソートとやらで作ってみました
速いです、感動です、ありがとう
>258-259氏のスクリプトは私の>253のものより三倍ぐらい速いですが
これはもっと速いです、500項目でも1秒、1000個でも10秒かかりません

on QuickSort(thelist)
set listCount to (length of thelist)
if listCount is 1 or listCount is 0 then return thelist
set pivotItem to some item of thelist
set lessList to {}
set greatList to {}
set equalList to {}
repeat with i from 1 to listCount
set szItem to (item i of thelist)
if pivotItem is greater than szItem then
set end of lessList to szItem
else if pivotItem is less than szItem then
set end of greatList to szItem
else
set end of equalList to szItem
end if
end repeat
return QuickSort(lessList) & equalList & QuickSort(greatList)
end QuickSort
262 :02/09/21 10:39 ID:Q5x5R4XZ
>>261
お疲れさまですた。
ところでスクリプトを見て思ったけど4行目set pivotItem to some item of thelist
じゃなくてset pivotItem to 1st item of thelistというように決め打ちしてしまい、
7行目set equalList to {pivotItem}
8行目repeat with i from 2 to listCount
とした方がrepeatを一回減らせるんで多少速くなるかも。
でも実際やってみたらほとんど変わらんかった。
263261:02/09/21 20:30 ID:e6lhyKB5
>>262
確かにそうすると少し速くなるはずですね
この方法は比較する基準の値に何が選ばれるかという「運」で
速度が変化するので分かりにくいですが
速くなると思います
AppleScriptで大きなリストの扱いによる速度の低下は
「大きなリストからアイテムを取り出す時」に起こるそうです
ですから計算の数は増えてもいいので
リストをうまく分割することに重点を置けばもっと速くなるかも
264名称未設定:02/09/28 22:22 ID:PLoM57J3
終わらせないぞ。
自動化君ここ来ないかな。
265名称未設定:02/10/01 06:04 ID:m16U4tOF
リストハッシュをサポートしてくれれば解決しそうだなぁ。
266名称未設定:02/10/04 09:59 ID:/Sxhv4L1
あげます。
267名称未設定:02/10/11 21:26 ID:r3nOuIjN
268名称未設定:02/10/13 09:13 ID:kWCs88FG
すみません。音量の調整をするにはどうかけばよいのでしょうか
音がうるさいソフトがあり、使う時には音をミュートしているのですが
めんどうなのでスクリプト化してアイコン一発で使えるようにしたい
と考えています
269268:02/10/13 09:18 ID:kWCs88FG
ためしに、これでは駄目でした
なんでだろう?

tell application "おえかきv1.3(OSX)"
set volume 0
activate
end tell
set volume 1
270名称未設定:02/10/13 09:20 ID:1VCyI1k3
>>268

tell application "Finder"
set volume 0
end tell
271268:02/10/13 09:36 ID:kWCs88FG
>>270

ありがとうございました。
音は確かに消えました。
でも、ソフトが終了すると音量の復元をさせようとすると
うまくできません。
下記の内容では音量の再現がソフト開始前に実行されてしまいます

tell application "Finder"
set volume 0
end tell

tell application "おえかきv1.3(OSX)"
activate
end tell

tell application "Finder"
set volume 7
end tell
272名称未設定:02/10/13 09:59 ID:1VCyI1k3
>>271
スクリプトがソフトの起動終了を監視しているわけではないので。
1段目のスクリプトは音量を7にするだけのスクリプト、
2段目のスクリプトは単におえかきが「立ち上がるだけ」のスクリプト、
3段目のスクリプトは音量を7にするだけのスクリプトなのです。

273名称未設定:02/10/13 09:59 ID:N98ntI7d
>>271
>でも、ソフトが終了すると音量の復元をさせようとすると
>うまくできません。

同時には無理だよ...
ソフトを終了させた後に、別で作った音を戻すスクリプトを
起動しないとね。漏れはOSX使って無いんで分らないんだが
スクリプトメニューみたいのついてるんだっけ?
終了&音量復帰っていうスクリプトを通常の終了の代わりに
使えばいいんじゃない?
274名称未設定:02/10/13 09:59 ID:1VCyI1k3
>>271

訂正
スクリプトがソフトの起動終了を監視しているわけではないので。
1段目のスクリプトは音量を0にするだけのスクリプト、
2段目のスクリプトは単におえかきが「立ち上がるだけ」のスクリプト、
3段目のスクリプトは音量を7にするだけのスクリプトなのです。

275名称未設定:02/10/13 10:04 ID:Sp2BMZEP
>>268
どのハード使ってるの?
キーボードに音量調節が無いやつ?
276268:02/10/13 10:15 ID:kWCs88FG
ああ、いろいろ教えてくだすってありがとうございます
でも簡単にはいかないようですね
2段目と3段目の間に wait するような命令が入ればよいのですが
見つかりませんね。過去ログみてますが repeat するしかないようですね
でも repeat するとCPUのパワー無駄にしないか心配です

>終了&音量復帰っていうスクリプト

これは別ファイルにするってことでしょうか
うーん、別にしても同じ結果にならないかなー

>>275

いま使用しているのは iBook です。OS10.2
キーボードには調整があります。
しかし、使うのが親なのでできるならアイコン一発で
わずらわしいことはさせたくないなー、なんて考えていました

すみません。ご迷惑かけてます
277名称未設定:02/10/13 10:15 ID:QuQGg7p9
ってゆーか、OSAXなのにFinderにtellする意図は?
set volumeってゆうOSAXなんだから1行でいいじゃん。
278268:02/10/13 10:26 ID:kWCs88FG
>>277

なんですか〜 OSAX って
すみません。いつもは win なもので
調べてきます
279名称未設定:02/10/13 11:07 ID:Ds9dZk0P
>>277
ほんまやねぇ。
OS 8時代からのスクリプトをコンパイルし直して使ってたから
気づかんかったよ。
それはそうと、OS Xの音量は0.5単位で調整できんのかな?。
OS 9だとできてたんだが、Xだとうまくいかんみたいなので。
280名称未設定:02/10/13 22:40 ID:W0M8xVl4
OS 9だけど、iTunes使う時に
起動用スクリプト(アプリ起動+それまでの音量を記録してから前回iTunesを使ってた時の音量に変更)
終了用スクリプト(iTunesを使ってる最中の音量を記録してから元の音量に戻す+アプリ終了)
っていう二つのスクリプトを作って使ってるよ
281名称未設定:02/10/13 23:14 ID:JHH3cwvF
set volume だと音量設定しかできない。
現在の音量を取得する命令があれば、ひとつのスクリプトで済むのだが。
282名称未設定:02/10/13 23:24 ID:R2Sqmq31
>>281
できるか?

音量の取得は標準で入ってるSound Scriptingでできなかったかな
いまOS Xなんで検証はできんが
用語説明読む限りではできそう
283名称未設定:02/10/14 00:06 ID:3OLpTzcc
if (sound volume) is not 0 then
set sound volume to 0
else
set sound volume to 8
end if

これでひとつのスクリプトで済みますた
284名称未設定:02/10/14 00:47 ID:nQay4c2+
>>283
あぁ、なるほどね。ひとつで済むってそういう意味か。
監視じゃないのね。
でもやっぱ起動する時はScriptダブルクリックで起動してもらって
終了する時はスクリプトメニューから終了スクリプトを
起動してもらうのが自然な流れっぽいと思うんだが。

これインスコしる↓
http://www.apple.com/applescript/script_menu/
285268:02/10/14 11:43 ID:yRNzwUho
終了用スクリプト、
ってどうやって登録するのですか?
286名称未設定:02/10/14 11:48 ID:FdXPAfOU
これでどうだー

try
if (sound volume) is not 0 then --音量が0でなければおえかき起動
set svol to sound volume --現在の音量を保存
set sound volume to 0 --音量を0に
activate application "おえかきv1.3(OSX)" --おえかき起動
else --音量が0ならばおえかき終了
quit application "おえかきv1.3(OSX)" --おえかき終了
set sound volume to svol --保存しておいた音量に戻す
end if
end try


ほんとはプロセス取得でおえかきの起動終了を判断すべきなのだが、
当方OS9なもんでOSXのプロセス取得の仕組みが同じかどうかわからず。
とりあえずtryでエラー回避。

287名称未設定:02/10/14 16:09 ID:ir6zB5MG
>>285
http://www.zdnet.co.jp/macwire/0110/17/c_browsing_2.html

>>286
現在の音量を保存...って起動処理が終わった時点でそのスクリプトは
一旦終了するんじゃ?
288名称未設定:02/10/14 16:31 ID:OXNwQ+eZ
prop
289名称未設定:02/10/14 17:12 ID:/3q/Vgl5
そっか、
property svol : sound volume
が必要か。
290名称未設定:02/10/14 18:08 ID:/3q/Vgl5
こうかな?

property svol : sound volume --現在の音量を保存
try
if (sound volume) is not 0 then --音量が0でなければおえかき起動
set sound volume to 0 --音量を0に
activate application "おえかきv1.3(OSX)" --おえかき起動
else --音量が0ならばおえかき終了
quit application "おえかきv1.3(OSX)" --おえかき終了
set sound volume to svol --保存しておいた音量に戻す
end if
end try
291268:02/10/14 21:04 ID:nwJL5y6T
わー、いろいろとありがとうございました。
でも残念ながら上手く行かないですね
もういろいろ考えるのも時間がもったいないので
思いきってソフト側で音を止める設定をつけていただけないか
作者様にお願いをしました。

いや、でもスクリプトっていろいろあるのですね
勉強になりました。皆様ありがとうございました。
292名称未設定:02/10/14 22:54 ID:cZPWWieD
>>291
>もういろいろ考えるのも時間がもったいないので

ガ━━━━(・Д・;)━━━━━ン!
293名称未設定:02/10/14 23:17 ID:bCjxmmPP
>>293
ソフトをただ消費するだけの側にまわってしまったか。
俺は寂しい。
294名称未設定:02/10/14 23:20 ID:1zuO4H/O
>>293
自分に言い聞かしているのかい?

と、まぁお約束の突っ込みを。

悩む時間がもったいないか・・・。悩む時間が楽しいんじゃないかと言ってみるテスト。
295名称未設定:02/10/14 23:58 ID:02yjUDfY
set volume 0
tell application "おえかきv1.3(OSX)" to activate

on idle
tell application "Finder"
if "おえかきv1.3(OSX)" is not in ツ
name of (every application process) then
set volume 7
tell me to quit
end if
end tell
return 1
end idle
296名称未設定:02/10/20 01:44 ID:SmUpCh2X
アップルスクリプトでWindowsの「デスクトップを表示」のような
ことできません?
この機能、Macにもあればすごい便利だと思うんだけど。
297名称未設定:02/10/20 01:59 ID:dwQ9oFxN
>>296
Win使ったことないんで分からんのだが
デスクトップを表示って何がどうなるの?
298名称未設定:02/10/20 02:17 ID:SBh4L5ZA
>>297
俺もよくわからんが、Finder以外を隠す→デスクトップが前面にでる
ということなんじゃないかな?。
単にFinderを前面に出すなら、activateコマンド一つだが・・・
あるいはOS Xでデスクトップフォルダの内容をウインドウに表示する
ってことかも?。
299名称未設定:02/10/20 02:28 ID:esx61S0o
あらゆるウインドウを一度にタスクバーにしまうやつだと思われまする。
300名称未設定:02/10/20 02:34 ID:dwQ9oFxN
Finder以外を隠す、だったらAppleScript使うまでもないよね
301名称未設定:02/10/20 02:47 ID:Eo2l6ErY
おいらはむしろ、[option][command][W]の動作がWindowsにもほしいよ
302296:02/10/20 02:52 ID:SmUpCh2X
すみません、説明が足りなくて。

>>299 の方が近いです。
OSXを使ってますが、特にCD-ROMを使ってると、
この機能(クリックひとつで)があれば便利だと感じます。
303名称未設定:02/10/20 03:42 ID:dGv2tIYu
>>302
option押しながらDockのFinderアイコンをクリック。
304名称未設定:02/10/20 04:23 ID:dwQ9oFxN
OS Xでいつでもデスクトップ上のアイテムを見えるようにしたいなら
ドックにDesktopフォルダ入れといて右クリック
305名称未設定:02/10/22 23:23 ID:K7/oaqq9
フォルダをダブルクリックして開いた時に、その中の沢山あるフォルダの中の任意の
フォルダも一緒に開くようにするフォルダアクションをつけたいのですが…
誰か分かる方いらっしゃったらお願いしますです。
306名称未設定:02/10/23 00:04 ID:Rst/eFIe
>>305
フォルダアクションのつけ方が解らないの?それとも
フォルダアクションハンドラの書き方が解らないの?
ちなみにフォルダを開くにはFinderにopenさせるだけなんだけど
本家アポーで調べるよろし

http://www.apple.com/applescript/folder_actions/
307305:02/10/23 00:31 ID:dg7RMDBu
早速のレスとても有り難いのですが英語が全く分かりませんヽ(´Д`)ノ…
あと、書くの忘れていましたがOS 9です。
構文の書き方が分からないのです。

例えば、Aというフォルダがあって、その中にBからZまでのフォルダがあったとします。
で、Aのフォルダを開いたと同時にKのフォルダも開くというような事です。
308名称未設定:02/10/23 01:03 ID:Rst/eFIe
>>307
ああOS 9か、すまん
検証はしてないがこれでどおでっか?3行目の"K"は任意の名前ね
これをコンパイル済みスクリプトで保存して
目的のフォルダにコンテクストメニューから「〜つける」でいけるはず

on opening folder thisFolder
set containerPath to thisFolder as string
set folderName to "K"
tell application "Finder" to open item (containerPath & folderName)
end opening folder
309名称未設定:02/10/23 01:27 ID:dan1f6jf
>>307
自分は307ではないが、
308さんのスクリプトを実行すると、
自分の環境ではエラーがでました。
自分のパソコンでは上手く機能したけど、
これでは、どう?

on opening folder X
tell application "Finder"
open {folder "A" of X, folder "C" of X}
end tell
end opening folder

Xという名前のフォルダの中に、
フォルダA,B,Cを作って、ためしてみてね。
動くようだったら、
{}内の、""内に任意のフォルダ名を入れてね。
本当はもっと自由度の高いスクリプトを書けると良いんだけど、この程度の実力しかないもので.....
310308:02/10/23 01:31 ID:Opt77teT
>>309
あっ、エラー出た?
そりゃすまん、>307にも、すまん
311名称未設定:02/10/23 01:49 ID:dan1f6jf
>>310
すいません。
エラー出なかったです!
「K」という名前のフォルダを作り忘れてました。
マジですいません!!
312名称未設定:02/10/23 15:46 ID:Vy05lu0e
>>311
ワロタ
313307:02/10/23 19:27 ID:jj3+CtaO
>>308
今やってみたら出来ましたヽ(´▽`)/〜♪!!
本当に感謝です!
自分ももっと勉強してこのスレで教えられるようになりたいです。

しかし、30分で出来てしまうとは…
314307:02/10/23 19:30 ID:jj3+CtaO
すいません>>309さんも御協力ありがとうございましたヽ(・∀・)ノ!!
315名称未設定:02/10/27 13:29 ID:pz9OSfW1
age
316名称未設定:02/10/27 13:48 ID:nHIW1G+p
>315
実行誤り
age変数は定義されていません
317名称未設定:02/10/27 20:13 ID:ZDCGpz8N
http://www.amazon.co.jp/exec/obidos/ASIN/4883373207/ref=sr_aps_b_3/250-4794215-4243400
Studioの使い方まで載ってるけど高いなあ。本屋で見たけど、電話帳みたいに厚いし
318318:02/10/28 01:06 ID:vcbv6lhH
書き込んだテキストの黒色以外の文字を抽出
するためのスクリプトなんすけど、
バイト単位で文字を消していくので処理が遅くて、
使い物になりません。
どなたか、Jedit持ってる方、ヨロピク!
環境↓
AppleScript J1-1.4
MacOS 9.04
Jedit4
(続く↓)
319318:02/10/28 01:10 ID:vcbv6lhH
(続き)
tell application "Jedit4"
activate
select document 1
copy document 1
make new document
paste document 1
select document 1
tell document 1
select byte 1
get number of byte of selection
set X to result
repeat
select byte X
if fore color of selection = {0, 0, 0} then
delete selection
else
set X to X + 1
end if
select byte X
data size of selection
if result = 0 then exit repeat
end repeat
end tell
end tell
(おわり)
320 ◆ftPf.M4w3U :02/11/01 01:06 ID:iNHZMALg
アップルマークから「このコンピュータについて」を出すことを考えた。

tell application "Finder"
activate
open about this computer
end tell

成功したがもうひとつ(不要な)ウインドウが出ます。
日本語アップルスクリプトでは出なかったのに・・・
どう修正すればいいのでしょうか?

どなたか御教授下さい。
321名称未設定:02/11/01 11:24 ID:Ok6yEwus
>>318-319
どういうテキストを扱うのか分からんのだが
文字色だけで区別したいならbyteじゃなくて
style run単位で比較すれば少しは速くなるかと
>319のbyteをstyle runに置換するだけでもいいと思うけど
違うパターンで作ってみた
一応検証済み、環境は 微妙に違うけど大丈夫でしょう
OS 9.1、AppleScript 1.5.5、Jedit 4.0.5

tell application "Jedit4"
activate
set theName to name of document 1
set newText to make new document
tell document theName
repeat with idx from 1 to (count of style run)
if fore color of style run idx is not {0, 0, 0} then
insert style run idx at after last byte of newText
end if
end repeat
end tell
end tell

>>320
不要なウィンドウって何?試したけど出なかった
322名称未設定:02/11/01 11:33 ID:B4ridQB0
>>320
日本語AppleScript って、懐かしいね。

アプリケーション "Finder" について
アクティベート
このコンピュータについて を開く
以上

こんなんだったっけ?
323bloom:02/11/01 11:34 ID:ro68ckhA
324名称未設定:02/11/01 13:45 ID:9WUv8MQq
>>320
 「結果」ウインドウのこと?
325318:02/11/01 16:21 ID:Ap7Jh2L2
318です。321さん有り難うございます。
パーフェクトっす!
感動しました!
repeat文内は難しくて、全然わからないっすけど、
おれも、いつか321さんみたく書けるように
勉強したいと思います。
「ゼンマイびゅんびゅん」で。
326 ◆ftPf.M4w3U :02/11/02 09:56 ID:V7EzA0QB
>>322
そうそう( ・∇・)
いまだに日本語が気に入ってる。
英語が苦手だから。
327 ◆ftPf.M4w3U :02/11/02 10:12 ID:CP5h5GAX
>>321>>320
自己解決しますた。
「結果」ウインドウでした。
実行専用で保存したら出なくなりました。
初歩的ミスでカコワルイ。
逝ってきます。

328名称未設定:02/11/05 00:04 ID:E22l21c3
メールボックスが一杯にならないように
Macを起動したまま出かけるときに
受信と一緒にスケジュールで実行させている

on run
tell application "Microsoft Entourage"
set keitai_mail to "携帯アドレス"
set subject_mail to "一人でがんばってます…"
set content_mail to "とりあえず、受信しました…"
make outgoing message at folder "送信トレイ" with properties {subject:subject_mail, address:keitai_mail, content:content_mail}
send
end tell
end run

身内が突然入院することになって、数日留守にしなければならなくなり
メールの受信確認をどうしようと思いOE用のがネット上にあったので
流用させてもらったはいいがスケジュールで実行するとエラーになり
on run~end runの存在を知るのに朝方までかかってしまいました。

アップルスクリプトをもっと勉強したいと思いました…。
329名称未設定:02/11/08 18:06 ID:qMGYtp8o
たとえばスクリプト↓

display dialog "hello"

にアイコンを入れるにはどうすればいいのでしょうか?
330名称未設定:02/11/08 23:32 ID:0ACv4qIm
display dialog "hello" with icon note --or caution or stop だったっけ
アプレットとかOSAXとかどこかにアイコンリソースが無いとダメだけど
331名称未設定:02/11/09 02:22 ID:ei3KTO/l
Reseditでアイコン埋め込むとか
332名称未設定:02/11/09 19:40 ID:lha/xZAz
display dialog "hello" with icon <iconNameOrNo>

<iconNameOrNo>は、stop, note, cation のどれか
(これらは システムリソースのを使うから、別に
スクリプト側に持たせなくてもいい)
あるいは、ICON(or cicn)リソース番号。
これも、システム標準のものはそれをそのまま使える。

display dialog "hello" with icon -16396

とか。


333名称未設定:02/11/12 02:19 ID:TOdYWGGP
on idle

tell application "Finder"
set current view of window 1 to column view
end tell

return 1
end idle

OSXにて。Finder最前面のウインドウを常にカラム表示にする。
カラムが好きなんだけど、さりげなくフォルダを開いたら
アイコン表示になっていてブチギレたことは御座いませんか。
このスクリプトは常駐して強制的にカラム表示にするものです。
ぽちっとボタンを押してアイコン表示に戻しても、すぐに
カラムに切り替えます。
334名称未設定:02/11/12 02:20 ID:TOdYWGGP
「自動的に終了しない」アプリケーションにして使ってね
335名称未設定:02/11/12 22:53 ID:JusMrDrg
すみません、ちょっとお聞きしたいことがあります。
ある特定のアプリケーションを起動後すぐにウインドウを
閉じさせる、という作業をスクリプトで自動化したいんですけど
そういうことはApple scriptで出来るんですか?
336名称未設定:02/11/12 23:04 ID:yTTxZpYn
>>335
launch 命令を使えば、そのソフトをウインドウを開かずに起動させることは出来る。
どのソフトでも100%そうなるわけではないが。
というのじゃだめ?
337名称未設定:02/11/13 03:39 ID:+MHuDhyS
>>336

えっそんな事ができるんですか?良かったら教えてください。
338名称未設定:02/11/13 04:52 ID:uwwKASVE
とりあえず>>2の辞書集を放り込め。話はそれからだ。
339名称未設定:02/11/13 05:52 ID:Q4w2smDh

フォーサイトあたりで、ツール、書籍などひとまとめにして
「まるごとAppleScript」として販売してもらいたいね。
340名称未設定:02/11/14 00:55 ID:WF1WeLqZ
ちょっと質問。
Apple Scriptで、
HDからOSたち上げ→RAM Diskを作る→そのRAM DiskにHDを丸ごとコピー→
→起動ディスクをRAM Diskに変更→再起動
てな感じでできないかな?
できそうだったら、教えてくださいm(_)m
341名称未設定:02/11/14 05:07 ID:yRM+jZKD
340さんが環境を書いてないので、僕の環境(MacOS 9.2.2)を前提として書きます。
AppleScriptで出来る出来ないを○×で書くとこんな感じになります。

△ RAM Diskを作る
○ そのRAM DiskにHDを丸ごとコピー
○ 起動ディスクをRAM Diskに変更
○ 再起動

RAM Diskの作成についてですが、MacOS に標準でついてるメモリコンパネでは出来ません。
ただし、ramBunctious というシェアウェアを入れれば AppleScript で出来る様です。
ぶっちゃけ、タダではできないってことです。

ramBunctious
http://www.vector.co.jp/soft/mac/hardware/se039996.html

なお起動ディスクの変更も、MacOS 8.x系はAppleScriptでは出来ません。
(回避する方法はあるはずです。試した事ないので断言できません。)
342名称未設定:02/11/14 06:18 ID:NBdidYGR
tell app "メモリ" to set state of RAM disk to active

これでRAMディスク「入」にはできるぽいけど。
それより最近の機種ってRAMディスクブートできないんじゃなかったっけ?
ましてramBunctiousじゃ絶対無理。
343 ◆ftPf.M4w3U :02/11/14 20:49 ID:NRm3aByH
>>342
コンパネの起動ディスクで指定して
Finderの特別メニューからシステム終了でなく
再起動すれば1回だけRAMディスクブート出来たはず。
システム終了したら駄目ですよ。
344名称未設定:02/11/14 23:54 ID:d6CE0yT/
tell application "Chinpo"
set Chin to Chinpo
repeat
if noGirlFriend then
set position of migite to {0, 0}
set position of migite to {0, 100}
else
insert Chin
eject Chin
end if
end repeat
end tell

いつまでもイクことが出来ません。
イキ方を教えて下さい。
345名称未設定:02/11/15 03:48 ID:gyG4E+GG
>344
終了判定がないので気付かずに無限ループしてると思われ。
try構文つかってみたら?
346名称未設定:02/11/15 08:58 ID:p2q8E7kB
>>344
たまにはmigiteをhidariteにすべし
347名称未設定:02/11/15 19:45 ID:nonfZGYU
>>344
ハゲシクワラタ
348名称未設定:02/11/15 23:32 ID:Jn+yfu1R
いや、べつに
349名称未設定:02/11/15 23:47 ID:JeSpX/ee
つか>>345の冷静なレスがナイス。
350名称未設定:02/11/16 11:32 ID:qFxoQfLi
下記のようなASにてファイルメーカーのフィールドに
エクセルのデータをコピペ作業しています。
ちなみにASはファイルメーカー内に格納して使用しています
(レコード毎に取込みするexcelのセルと張付けるFMのフィールドが異なるため
ASはテンプレートを使ってレコードごとに作成→実行しています)
このままでも目的には沿っているのですが、コピペ故に
(また、コピペするセルが1レコード当たり30〜50あるため)
かかる時間を短縮できないものかと思っています。
理想としてはファイルメーカーのフィールドに直接(アプリ切替無しで)
エクセルのデータを入れることが出来れば....なのですが、
はたしてこのような事は可能でしょうか?
お力添えください。

tell application "Finder"
activate
select file "fix.xls" of folder "fix" of folder "excel_data" of startup disk
open selection
end tell
tell application "Microsoft Excel"
Activate
Select Range "A1B2"
set CutCopyMode to false
CopyObject Selection
end tell
tell application "ファイルメーカー Pro"
activate
go to cell "データ1" of current record
paste
end tell
....以下コピペ部分延々繰り替えし
351名称未設定:02/11/19 00:23 ID:fgktm/3V
>>350
状況が違うかもしれないが、わしが昔やってた方法は
エクセルからCSV出力>ファイルメーカーでリレーション
その値をフィールドに固定
と言う感じでした
取り込むセル位置が不定ならエクセルで前処理するか
ファイルメーカーに全部取り込んで整形する必要があるかも
352名称未設定:02/11/22 13:41 ID:XW7ZLaBK
良スレage
353名称未設定:02/11/26 02:21 ID:2dq8bolV
どなたかご教授願います。
on idle の return を1秒以下(0.5秒とか)に設定する事は可能ですか?
354名称未設定:02/11/26 11:46 ID:tPPBvVkH
うましかな私に教えてください。
あらかじめ複数のフォルダ名をテキストで作っておいて
そのテキストファイルをドロップすると
フォルダ作成+名前をつける
という簡単そうなスクリプトはどうかけばよいんですか?
355名称未設定:02/11/26 12:43 ID:TpgYSoRU
>354
on open nameFile
tell application "Finder"
activate
set filenum to open for access file nameFile
try
repeat
make folder with properties {name:read filenum before return}
end repeat
end try
close access filenum
end tell
end open

これでど。テキストは1つずつ改行すること。
356名称未設定:02/11/26 23:48 ID:/ayEBUsB
できんかった。
357名称未設定:02/11/27 00:11 ID:CkpRQ7gf
nameFileはリストです。
358名称未設定:02/11/27 08:50 ID:O/fjevI5
? できるぞ。
359名称未設定:02/11/27 11:45 ID:bOjxs6W7
>>354
>>355
activateの次の行に
set nameFile to item 1 of nameFile
を入れてみるとか。
360うましか354:02/11/27 16:19 ID:5HflFCFE
>>355>>359様ありがとうございました。
当方OS9.14ですが
on open Droplist
tell application "Finder"
activate
set nameFile to item 1 of Droplist
set filenum to open for access file nameFile
try
repeat
make folder with properties {name:read filenum before return}
end repeat
end try
close access filenum
end tell
end open
で動きました。デスクトップで起動したのでフォルダが画面いっぱいになったのは驚きましたが。
text名のフォルダにおさめるようにしたらいいのですね。
361名称未設定:02/11/30 02:42 ID:KPsW1yN3
9.14?
362名称未設定:02/12/02 05:09 ID:k7ElQyVz
いまさらOS9で、IEでダウンロードが途中で途切れた複数のファイルの続きを
MacGetでダウンロードするためのAppleScriptって作ったんだけど需要ありますか?
ナローバンドだとかなり重宝するんだけど。

1,Finderで選択された複数のファイルについて、
  コメントに書き込まれたURLとそのファイルのパス(保存場所)を読みとる
2,MacGetのリスト形式のテキストファイルを作り、手順1で読んだ情報を元に書き込んでいく
3,できたリストのファイルのファイルタイプとクリエータをMacGet用にしてMacGetで開く

という感じ。
実際はリピート文を使っているので手順1と手順2は交互に進みます。
363名称未設定:02/12/02 07:58 ID:feuMtFrh
>>362
IEにはリジュームD/L機能がついとるし
複数ファイルD/Lするなら最初からMacGet使ってるだろうし
使い所が分らん。
364名称未設定:02/12/02 10:54 ID:fh7xEV/8
>363
IEのバグ知らんのか?
365362:02/12/03 05:04 ID:twGNhevi
>>363
IEのリジューム機能?そんなものはないです。(w
たしかに使える時もありますが、(ftpの時の方が使えるような気が。)
ちょっとデータが途切れるとすぐあきらめるし、
途中までしか落としてないのに完了した事にしちゃって最初からやり直さないといけなくなったり、
IE5からダウンロードマネージャーに新規登録できなくなったし、イマイチなのです。
ブロードバンドしか使った事がない人にはわからないかもしれませんが。
初心者の人が「ダウンロードしたのに解凍されない!」という問題にぶつかったうちの何割かは
ダウンロードに失敗しているのだと思われます。

IEの利点は、
いちいち登録とかしなくてもクリックでDLが始められるところ。
サーバー側でいろいろしかけてあっても(cgiで実際のDLのURLに飛ばすとか)とりあえず簡単にDLが始められるところ。
画像ならDL後クリエータ、ファイルタイプを設定した上でプレビューとアイコンを付けてくれるところ。
URLをコメントに書き込んでくれるところ。

もちろんM_Loaderとかも使ってますけどね。
366362:02/12/03 05:08 ID:twGNhevi
余談ですがYellow_DもURL書き込んでくれるがイマイチこんじょーなしな点でIEに似てると思います。。
367名称未設定:02/12/06 16:27 ID:0GwNtryE
fumufum
368名称未設定:02/12/07 19:13 ID:Wzu9MZ8b
すみません。
開いたウィンドウを閉じるにはどうすればいいのでしょうか

tell application "Finder"
activate
select files of folder "DATA:ねこ"
open selection
close folder "DATA:ねこ" <-------------できない
end tell
369名称未設定:02/12/07 19:37 ID:58ELF95F
>select files of folder "DATA:ねこ"
って、「ねこ」フォルダの“中身”を開いてるんでしょ。
なのに
>close folder "DATA:ねこ"
で「ねこ」フォルダを閉じようとしても無理さね。
370名称未設定:02/12/07 19:54 ID:Wzu9MZ8b
>>369
回答ありがとうございます
フォルダーのねこ画像をプレビューソフトで表示する
という機能ですが、あと一歩なんです
開いたウィンドウを閉じることができれば...
環境はOSXです

>>close folder "DATA:ねこ"
>で「ねこ」フォルダを閉じようとしても無理さね。

うむむ、単純にウィンドウを閉じることができればいいんです

tell application "Finder"
activate
select files of folder "DATA:ねこ"
activate "DATA:ねこ"
close folder "DATA:ねこ" <-------------できない
end tell

とやってもエラーが出るので
close命令が間違っているのは明白なのです
命令さえ分かれば...。
371名称未設定:02/12/07 20:13 ID:58ELF95F
・・・なにがしたいのか全然意味わからんが。
372368:02/12/07 20:26 ID:Wzu9MZ8b
>>371
ただsageしたいだけなんだろう
スクリプト知らないなら口挟むな!!

373名称未設定:02/12/07 20:30 ID:F/LVxLsR
tell application "maka-you"
sage
374名称未設定:02/12/07 20:37 ID:58ELF95F
なるほど。これが週末というやつか…
375名称未設定:02/12/07 20:40 ID:7x+jfqzt
なるほど。これが休日出勤ってやつか…
376名称未設定:02/12/07 21:00 ID:C/NX0dWX
WEB上の画像ファイルを定期的にダウンロードできるスクリプトないですか?
377名称未設定:02/12/07 21:05 ID:875qxgPe
>>368

> select files of folder "DATA:ねこ"
> open selection
ねこフォルダの中のファイルを選択して、そのファイルを開く

> close folder "DATA:ねこ" <-------------できない
ねこフォルダを閉じる(ねこフォルダが開いていれば閉じるでしょう)

あなたは一体どのウィンドウを閉じたいのですか?

>>370

> select files of folder "DATA:ねこ"
ねこフォルダの中のファイルを選択する

> activate "DATA:ねこ"
ねこフォルダを最前面に出す

> close folder "DATA:ねこ" <-------------できない
ねこフォルダを閉じる(ねこフォルダが開いていれば閉じるでしょう)

あなたは一体何をしたいのですか?
378名称未設定:02/12/07 21:30 ID:vNKreiyy
とじるのはフォルダじゃなくてウインドウだろうと
379名称未設定:02/12/07 22:08 ID:ywrdMYsG
いやきっとフォルダそのものに対して操作を加えるので
openしたファイルはcloseするというファイル操作の基本を。
380名称未設定:02/12/08 01:21 ID:P0vpl0K/
なんとなくageてみよう
381368:02/12/08 01:23 ID:lKRZyMXL
>>378-379
その通りでーす。単純にウィンドゥを閉じたかったのでーす

tell application "Finder"
activate
select files of folder "DATA:ねこ"
selection open
close window "ねこ"
end tell
382名称未設定:02/12/08 01:25 ID:miz4NPD3
たぶんいちいちウィンドウ開かなくてもできる処理だろうな。
>>368には難しすぎるだろうが(ぉ
383368:02/12/08 01:47 ID:lKRZyMXL
>>382
またネチネチとやーだねー。パソコン好きには
なぜこういうバカが多いいのかね。
もっと上手くできるなら手本を示すべきでしょうが
カラッポくん。
384名称未設定:02/12/08 02:06 ID:mzyyx2wG
ごめん なさいね 私のせいよ
ふたりの心 もてあそんで
ちょっぴり楽しんでたの 思わせぶりな態度で
だから
けんかをやめて ふたりをとめて
私のために あらそわないで
もう これいじょう
385名称未設定:02/12/08 02:06 ID:k5s6lKU9
手本を示すまでもないような。
386名称未設定:02/12/08 02:47 ID:uTZajQXd
たぶん>>372の書き込みがなければ丁寧な解説があったと思うのだが・・・。
>>371=>>369なのに、なぜ>>372で豹変したのか気になる・・・。
387名称未設定:02/12/08 03:32 ID:+WpRS1TH
>>386
単にID確認しなかっただけかと。
388名称未設定:02/12/08 05:30 ID:fJGcpRTb
いろいろ事情があるんだな。
389名称未設定:02/12/08 06:21 ID:ib3WLWv7
あげ
390名称未設定:02/12/11 01:20 ID:+c+SsG//
あげー
391名称未設定:02/12/11 23:23 ID:+sQhpU7l
>>383
ていうか、ひとに聞く態度じゃないね。

パソコン好きにはバカが多いいだって。

それに加えてカラッポくん。

カラッポくんはどちらなのか。


#答え書いてあるのに。
392名称未設定:02/12/13 18:53 ID:4URZnmrx
Finderでmoveすると、違うボリュームの場合、duplicate動作になってしまうんだけど、
この仕様、なんとかならんだろうか。いったいどういう理由があるんだろう。
Finder上のD&D操作の場合は、コマンドキーを同時に押しておくことで、
コピーではなく、移動として扱うことができるのだが、
AppleScriptのmoveの場合はそういうオプションも見当たらないし…
393名称未設定:02/12/13 23:24 ID:cXp1yfxt
OSAMenuって「ソ」がダメ文字なんだね。
394名無しさん@Emacs:02/12/14 00:15 ID:xguwQl0m
奇数区29点の文字全部ダメそうだね。
395aki:02/12/14 13:28 ID:SMt6nzIS
FileCut
-----------------

set tempPath to "MacHD:FileCutList.temp" --path of temp file
set exlist to ""

tell application "Finder"
set theItemList to selection
if theItemList is {} then
if exists front window then
set exlist to ((target of front window) as alias) as string
else
display dialog "Nothing to FileCut" with icon 1
return
end if
else
repeat with theObj in theItemList
if exlist is "" then
set exlist to (theObj as alias) as string
else
set exlist to exlist & return & (theObj as alias) as string
end if
end repeat
end if
end tell

----
続く
396aki:02/12/14 13:29 ID:SMt6nzIS
FileCut 続き
-------------

--display dialog exlist

try
set fileNum to open for access file tempPath with write permission
set eof fileNum to 0
write exlist to fileNum
beep
end try
close access file tempPath

---
FileCut 終わり
397aki:02/12/14 13:31 ID:SMt6nzIS
FilePaste
---------------

set temppath to "MacHD:FileCutList.temp" --path of temp file

try
set tempfile to open for access file temppath
set theItemList to read tempfile using delimiter {return} as text
on error
display dialog "read error"
return
end try
close access tempfile

--display dialog theItemList

tell application "Finder"
--set theTarget to target of front window
--display dialog (theTarget as alias) as string

--
続く
398aki:02/12/14 13:32 ID:SMt6nzIS
FilePaste 続き
---------------


-- Youpi Key has bugs
--if ((target of front window as alias) as string) does not end with ":" then
--display dialog (target of front window as alias) as string
--set theTarget to container of target of front window
--end if

--move theItemList to folder ((target of front window) as string)
repeat with theObj in theItemList
--display dialog theObj
if exists theObj as alias then
if container of (theObj as alias) is target of front window then
display dialog "can not"
else
try
duplicate theObj as alias to (target of front window) as alias
delete theObj as alias
end try
end if
else
display dialog "file not found" & return & theObj with icon 0
end if
end repeat
end tell

---
FilePaste終わり
399aki:02/12/14 13:43 ID:SMt6nzIS
・FileCutで選択したFinder項目のパスリストをtemp fileに書き込む
・FilePasteでそれらのリスト項目アイテムをFinderの選択フォルダに移動

ScriptMenuから実行するのを推奨。
QuickeysやYoupi Key、Big Cat等のユーティリティから実行した場合、
日本語を含むパスを扱えなかったり、空白スペースを含むパスを
扱えなかったりする等のバグがあった。
本当はmoveで移動させたかったが、>>392の理由で、
一つずつコピーした後、ゴミ箱に捨てている。
400aki:02/12/14 13:51 ID:SMt6nzIS
両方とも一行目で指定しているtemp fileのパスをそれぞれの環境に合わせて、
各自設定して下さい。
401名称未設定:02/12/14 15:04 ID:SMt6nzIS
あ、こっちはClassic向けか。スレ間違えちゃった。
上のファイルのカットとペーストはOS X向けで。
Classicでも使えると思うけど…。
402名称未設定:02/12/15 16:45 ID:4Bunw+KC
>>392

へ?違うボリュームへの移動ってつまり、HDからMOとかでしょ?
複製になって当たり前だと思うのだが。。

そーいやOS X用じゃないけどコピー、カット、ペースト作って使ってるよ。
かなりごちゃごちゃしたスクリプトだけど。
403名称未設定:02/12/15 17:06 ID:DA3GJuV6
>>402
もちろん内部的な動作としては複製になるんだけど、
その場合も外見上の動作としては、移動元ファイルの掃除をして、
形としてインテリジェントに移動する手段が欲しいってこと。UNIXのmvのように。
Finder上ではその手段があったけど、AppleScriptではそれが見当たらなかった。

内部HDDを複数持っている時、ユーザはボリュームの区別をことさらに意識しない。
場合によって同じような操作が、移動になったり、複製になったりするのは疑問。
404名称未設定:02/12/15 17:16 ID:4Bunw+KC
>>403

コマンド押しながら・・で見た目上〜 っていうのはOS Xですか?
OS 9で試してみたら普通に複製でした。

えーと、まずコピー&ペーストでは複製だから気にしなくていいですよね?
カット&ペーストの時は僕はたしか元ファイルをゴミ箱にぶちこんで、ペーストが指示された時にmoveしてたような気が。
あ、↑は自分が作った時の話です。

もしもOS X限定でよいのなら、AppleScriptからTerminalのコマンドが使えるらしいから、mvとやらを使えばいいのでは?
405名称未設定:02/12/15 17:24 ID:DA3GJuV6
コマンド押しながらは、OS Xの話です。
mvは2バイト文字や空白スペースや特種文字に考慮する必要があるので、
気軽には使えない。
MvMacは異なるボリュームへの移動自体ができない(エラーが出る)
406名称未設定:02/12/15 17:27 ID:4Bunw+KC
あと、OS9だとスクリプト自身や、初期設定フォルダなどのパスを得られたのでテンポラリファイルなどは固定パスじゃなくてもよかったのですが。。
あと、ファイルには文字列以外も記録できるのでパス文字列でなくてもよさそう。

リピートのとこは複数一括処理できませんか?
試してみないでケチばかりつけてすんません。
407名称未設定:02/12/15 17:27 ID:4Bunw+KC
>>405
なるほど。
408名称未設定:02/12/15 17:35 ID:DA3GJuV6
moveが文字通り移動として使えるなら、
普通に一括処理できるんだけど、(一応コメントアウトして書いてる)
それはできない(わからない)ので、複製して元ファイルをdeleteしている。
この処理を一括すると、途中でエラーが出た場合ややこしいので、
ひとつずつリピートしています。

初期設定フォルダは利用してもいいかも。
ファイルの文字列以外の記録はよくわからなかった。
エイリアスのリストを記録できるなら、そっちのほうがいい。
409名称未設定:02/12/15 17:51 ID:4Bunw+KC
>>408
アップルスクリプトのファイル自身にpropertyとして変数を保存できます。それが一番簡単と思います。
OS Xで相対パスが使えるなら他のスクリプトから読み込むのも可能。

たしかに一括にすると途中でエラーが出た時面倒ですね。速いけど。

僕はペースとしてから捨てるんじゃなくてカットした時点で捨てるっていう乱暴な方法にしてたんで一括でやってたんですけど。
その方がワープロなどでのカットの動作に近いし。
作った時点ではWindowsでそのへんどういう動作するかも知らなかったというのもありますが。
410名称未設定:02/12/15 18:06 ID:4Bunw+KC
お、おれのヤツOS X用にコンパイルしなおしたら基本的なとこは普通に動くみたい。
ちょっとここにスクリプト本文出すにはでかすぎるけど。

ただし動作は俺のヤツの方がにぶいかも。ログ機能とかごちゃごちゃつけてるし。
411名称未設定:02/12/15 21:15 ID:DA3GJuV6
>>409
>アップルスクリプトのファイル自身にpropertyとして変数を保存できます。それが一番簡単と思います。
なるほど、それ忘れてた!
store script 使ったら、エイリアスのリストで保存できた。
移動した元ファイルの参照もできるようになった。
Youpi Key経由でもパスに2バイト文字や空白スペースを含むファイルを扱えるようになった。
^xにファイルカット、^vにファイルペーストに割り当てて、いい感じになったー。
リピート処理もやめてみた。エラー処理は気にしないで、速度優先してみた。
412名称未設定:02/12/15 21:24 ID:DA3GJuV6
FileCut
-----

set FileCutListPath to ((path to preferences) as string) & "FileCutList"
set FCL to load script file FileCutListPath
set pFileCutList of FCL to {}

tell application "Finder"
set theItemList to selection
if theItemList is {} then
if exists front window then
set pFileCutList of FCL to {((target of front window) as alias)}
else
display dialog "Nothing to FileCut" with icon 1
return
end if
else
repeat with theObj in theItemList
if pFileCutList of FCL is {} then
set pFileCutList of FCL to {theObj as alias}
else
set pFileCutList of FCL to pFileCutList of FCL & {theObj as alias}
end if
end repeat
end if
end tell
store script FCL in file FileCutListPath replacing yes
413名称未設定:02/12/15 22:18 ID:DA3GJuV6
FilePaste
------

set FileCutListPath to ((path to preferences) as string) & "FileCutList"
set FCL to load script file FileCutListPath
set theItemList to pFileCutList of FCL

--display dialog theItemList

tell application "Finder"
set theTarget to (target of front window as alias) as string
--display dialog (theTarget as alias) as string

-- Youpi Key has bugs
--if ((target of front window as alias) as string) does not end with ":" then
----display dialog (target of front window as alias) as string
--set theTarget to (container of target of front window as alias) as string
--end if

--move theItemList to folder ((target of front window) as string)
duplicate theItemList to folder theTarget
delete theItemList
end tell
414名称未設定:02/12/15 22:20 ID:DA3GJuV6
FileCutList -- これは初期設定フォルダに置く
------
property pFileCutList : {}

415名称未設定:02/12/16 16:59 ID:uIAReqW1
このスレに何度も登場してる
open for access~close accessについて
エラー処理をしといた方がいいというのは分かるんですが
見るたびにtry構文の仕掛け方が違うんですね
どれが正解なんでしょう?
例えば少し上の>>397では
try
open for access file FilePath
(*いろいろな処理*)
end try
close access file FilePath
ってなってますが、これだとファイルを開くことに失敗した場合
ファイルを閉じることができない(もともと開いてないから)と
エラーになると思います
416415(つづき):02/12/16 17:02 ID:28nTp9mp
書きなれていらっしゃる方は定形文として扱ってると思うので
教えてほしいです

1.Appleが配付してるサンプルの例
try
open for access file FilePath
(*いろいろな処理*)
close access file FilePath
on error
try
close access file FilePath
end try
end try

2.AppleScriptリファレンスの例
open for access file FilePath
try
(*いろいろな処理*)
on error errorMsg number errorNum
close access file FilePath
error errorMsg number errorNum
end try
close access file FilePath

3.鳶氏のAppleScript Dictionary
try
open for access file FilePath
(*いろいろな処理*)
end try
close access file FilePath
417名称未設定:02/12/16 17:50 ID:bX3kiaya
>>416
397だけど、丁寧に書くなら、1と2を合わせたり、いいんじゃないでしょうか。

try
open for access file FilePath
(*いろいろな処理*)
close access file FilePath
on error errorMsg number errorNum
try
close access file FilePath
end try
error errorMsg number errorNum
end try

個人的には、AppleScriptが自分でエラーを吐いてくれれば、それで意味がわかるので、
397などは開発効率から適度に簡略化した(手を抜いた)コードになってました。
418名称未設定:02/12/16 19:47 ID:xsedd6WQ
open
try
 処理
end
close

俺はこれだけ。
最も致命的な事態(開いたファイルが閉じれない)だけ避けられればいいので。
419名称未設定:02/12/16 20:00 ID:pjPG4CST
俺が気になるのはcloseするのをファイルパスで指定するべきか
ファイル参照番号で指定するべきかだなあ。
どう使い分ければいいのかわからん。
420415:02/12/17 21:04 ID:RRQ0ka/Y
レスくださった方有り難うございました
参考にさせていただきます
421名称未設定:02/12/18 02:17 ID:4I6D/XP5
OSXで、キータイプをエミュレーションできるOSAXって無いですかね。
422名称未設定:02/12/24 11:23 ID:S20vn0Ta
おっと、やばい、保守!
423名称未設定:02/12/26 06:57 ID:lwOVh0B7
コソーリage
424名称未設定:02/12/26 15:06 ID:u6/kliEo
on replace_text(theText, searchStr, replaceStr)
set AppleScript's text item delimiters to searchStr
set itemList to every text item of theText
set AppleScript's text item delimiters to replaceStr
set theText to itemList as string
set AppleScript's text item delimiters to ""
return theText
end replace_text

↑テキスト置換のスクリプトなんですが
大文字と小文字を区別しない様にしたくて
調べるとconsidering、ignoringを使えばいいらしい
というとこまでは分かったんですが
うまく行きません、どうかアドバイスをよろしく

set theText to "MICROSOFT & microsoft"
ignoring case
replace_text(theText, "Microsoft", "Apple")
end ignoring

どこが間違ってるんでしょうか?
425名称未設定:02/12/26 17:22 ID:bF9s6ZbE
http://rira.moo.jp/sharp/
http://www.geocities.co.jp/Playtown-Part/7565/

2002/12/26
ブレオブ2、久しぶりすぎて話が見えてこない…
これじゃクリアできても寂しいと思い、
もう一度最初からプレイすることにしました。
子供リュウ君、頭のてっぺんでくくってて可愛いv
これクリアしたら3〜5(新作は名前違うんだよね?)も
貸してくれるとのことなので、張り切ってクリア目指して
頑張ります!特に一番新しいシリーズのニーナが
細く小さくて可愛いので、早く会いたい♪


↑イヴもクリスマスも明けもゲームしかないのかこの人は
426名称未設定:02/12/27 15:17 ID:blZ2DlhK
>>424
経験上、区切り文字を使った置換の場合は大文字小文字が区別されると思う。
あと試すとすれば、replace_text()の中でignoreを指示してみるとか?
文字列置換はOSAX使うのが速いんじゃないかな?
オレはMacJPerl通すけどね。OS XならTerminalで。。
427名称未設定:02/12/27 18:11 ID:R/Yf5eej
ignoring caseブロックで、

set X to "cd"
set Y to "abcdef"
set AppleScript's text item delimiters to "CD"

X = AppleScript's text item delimiters     →true
Y contains AppleScript's text item delimiters  →true
text items of Y               →{"abcdef"}

バグかな?
428424:02/12/28 12:20 ID:xapvyy79
>>426-427 どうもです
ignoringは文字列の比較の時しか有効でないということですかね
区切り文字は大文字小文字を区別する、あとoffsetも試してみましたが
ignoringを無視して区別するみたいです
OSAXやテキストエディタを使うことにします
サンクスでした

set theText to "ABCDE"
ignoring case
theText is "abcde"
--true

set AppleScript's text item delimiters to "ab"
set theText to (text items of theText) as string
theText is "abcde"
--true
set AppleScript's text item delimiters to ""

offset of "ab" in theText
--0
end ignoring
429名称未設定:02/12/28 16:42 ID:y0MsXWsG
超初心者質問ですみません。
アップルスクリプトでワイルドカードを使うにはどうしたら良いのでしょうか?

終了時に特定のフォルダ内にある、特定の文字を含むファイル
(abc.d,abc-1.d,abc-2.dなどファイル先頭にabcを含む、または最後に.dを含む)を
削除する削除するスクリプトを作りたいのですが、本で調べてもさっぱり解らず困っています。
どなたかご教授お願いします。
430名称未設定:02/12/28 18:46 ID:oXLfo0Z/
ASではデフォルトでは高度な文字置き換え、検索はできないよ。
http://homepage1.nifty.com/ton_b/AppleScript/Tips/index.html
ここの「文字列」の項を見て解決できないようであれば、
Tanaka's OSAXとか探せ。
431名称未設定:02/12/28 18:47 ID:o7+xCjO6
>>429
アップルスクリプトのよいとこはいろんなアプリケーションを利用できる事です。
ワイルドカードとか使いたい場合、ボクだったらMacJPerlを通します。これはOS 9の場合ね。
OS Xだったらシェルスクリプトを実行させたらいいんでなかでしょか。
ほかにOSAXを使う手があるかもしれません。詳しくはだれかフォローしてください。
432429:02/12/28 19:24 ID:J0pv5CBG
>>429,430
レスありがとうございます。
うーん、簡単には出来ないようなのですね。

書き込んだ後も本を調べていたのですが
repeat with ~ in ~に
「リストの要素を1つずつ拾いながら、リストの要素の個数会だけ繰り返す」
と説明があったので、使えるかも?と思ったが
repeat with NAME in ALLNAME
if NAME end with ".d" then
select file NAME of folder "efg"
delete selection
end repeat
(↑多分、構文むちゃくちゃなんだろうな…)
フォルダ内の全てのファイル名をリスト(ALLNAME)に入力する方法が解らなかった…。
433431:02/12/28 19:44 ID:o7+xCjO6
>>432
tell app "Finder"
tell every file of folder "なんとか" of disk "Macintosh HD" whose name end witn ".d"
delete
end tell
end tell

で駄目かね。なんか眠いので試してないが。「Finderのフィルタ」で調べてみて。
434名称未設定:02/12/28 19:52 ID:2ItEoN6t
ワイルドカードってのは「正規表現」のひとつだと思うけど、
AppleScriptはこれをサポートしてないよ。
435431:02/12/28 20:05 ID:o7+xCjO6
>>434
あふぉ。今までのやりとりを無視すんな。
436名称未設定:02/12/29 00:27 ID:dCPJWn4p
>>432
フォルダの中にある全てのアイテムの名前を
リスト化するには
list folderっていうコマンドがあるけど
たぶん>>433氏の方法でいけると思う
437名称未設定:02/12/29 04:43 ID:w4JvKOCP
OS 9 なら多分 RegEx Commands OSAX が使えると思います
438名称未設定:02/12/29 11:34 ID:VH/B9Zoq
>>429
ファイル名を contain でチェックすれば良いんでない?
439431=433:02/12/29 12:38 ID:wh2Y9CEp
>>438
だからそれを具体的に書くと>>433になるやん。end withかcontainかの違いでしょ。
440名称未設定:02/12/30 12:47 ID:LSytmRqQ
OS 9.2ですが、
イラレのショートカットとぶつかるので
ファインダーのショートカット
 コマンド+タブ でアプリ切り替え
をアップルスクリプトで使用 可/不可 切り替えたいんですが
誰かスクリプトをうpして下さい
よろしくお願いします。
441名称未設定:02/12/30 13:11 ID:fIi+yzXu
こいつのイラレは割れ物
442431=433:02/12/31 04:07 ID:QTD7U5TQ
>>440
>アップルスクリプトで使用 可/不可 切り替えたいんですが

と言った場合スクリプトを作ろうって事だよな?普通。その質問かと思えば

>誰かスクリプトをうpして下さい
ハァ?
んなスクリプト作れねーよ。
なに勝手に作れるって決めつけて人使おうとしてるんだよ。作れそうかどうかぐらい調べてから来いボケ。
資料そろえて作れそうだけどわからんって段階になってから来いや。だったら作ってやってもいい。

こんなソフトありませんか系のスレでキーボードショートカット切るソフトねーか聞いてこい。
それかスレ立てるまでもない質問のとこで、こういう事がしたいのですがどんな手段がありますかみたいな感じで聞いてこい。
いずれにしろ自分の態度は反省した方がいいぞ。
443名称未設定:02/12/31 04:43 ID:wE0r8jDu
>>442
大晦日ぐらいおちけつ
444440:02/12/31 08:21 ID:+O+kYYK8
おはよう。

>>442
いや、作れるだろ。
finderでプログラム切り替えのショートカット
不使用にできるんだから
Macヘルプでできるんだが、
それを記録する事ができないんで困っていたんだけど
プログラム切り替えのウィンドウの外観をカスタマイズする
スクリプトがあるからそれを調べてみるよ。

つーか、なんで突っかかってくるんだよ。
ま、
>>442,みなさん、良いお年を。
445440:02/12/31 08:57 ID:i9LxQ2cf
>>444で書いたスクリプト何処から落としたんだか見つからん。
プログラム,切り替えで検索してたのを
アプリ,切り替えで検索したらもっとそれっぽいのが出てきた。
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=applescript+%83A%83v%83%8A%90%D8%82%E8%91%D6%82%A6&lr=
が、軒並み404になってる。
ちょっと時間ができたら、見つけてうpします。
でわ。
446440:02/12/31 09:20 ID:i9LxQ2cf
そう言えば、過去スレに>>444で書き込んだスクリプト
紹介したような気が…。
とりあえず、アプリ切り替えon/offのみのスクリプト
http://mac-energy.com/base.php?modo=kate1&keywd=syte
見つかりました、お騒がせしました。
でわ、良いお年を。
447名称未設定:02/12/31 13:50 ID:VcALGTwa
こいつは半角厨
448442:02/12/31 14:56 ID:QTD7U5TQ
>>444
すまん。知らなかった。できるんだな。俺が厨だった。
つかFinderでOFFにできるの?
バックグラウンドアプリケーションの「アプリケーション切替」を終了してもcommand+Tabは有効なんだけどなぁ。。
ちょっとこの板、スレと文化が違うような気がしてキミの行動に面食らってしまった。
で、キミの目的のスクリプトは、ぐぐったらすぐ見つかったぞ。いったいどんな検索をしたのかと小一時間(略
「アプリケーション切替 ショートカット」だよ。
449442:02/12/31 15:34 ID:QTD7U5TQ
追伸:他人の作品やそのページのアドレスの直リンを貼るのをうpとは言わん。
   それと、サイト作成者の意図を汲んでマナーを守れよ。
450442:02/12/31 15:41 ID:QTD7U5TQ
あー、くそ、作っちまったじゃねえかよって簡単だしな。

tell application "アプリケーション切替"
if keyboard cycling active then
set keyboard cycling active to false
else
set keyboard cycling active to true
end if
end tell

コンパイルの仕方ぐらい勉強しろ。
451442:02/12/31 18:57 ID:QTD7U5TQ
おら、ついでにcontrol+tabで切り替えできるようにするスクリプトだよ。
連書きすまん。

tell application "アプリケーション切替"
--get cycling keystroke
--結果:{class:keystroke, key:tab key, modifiers:{command down}}
set key of cycling keystroke to tab key
set modifiers of cycling keystroke to control down
end tell

--tab key のとこは、down arrow keyとか、F1 keyとかも使える。詳しくは用語説明を見よ。
452名称未設定:03/01/01 19:39 ID:pc2wy6p6
tell application "アプリケーション切替"
set keyboard cycling active to not (keyboard cycling active)
end tell

でも、451のほうがいいね。
453442:03/01/01 19:59 ID:7KUkRcR3
>>452
なるほど!>>450は基本の教科書的?書き方ですが、現在の値の逆にするって事でそれだけで済むんですね。
勉強になります。

あけましておめでとうございます。
454名称未設定:03/01/06 13:09 ID:yXA+ORDz
今年もよろしく
455名称未設定:03/01/09 01:59 ID:7JYQE2E3
むずい
456名称未設定:03/01/09 03:16 ID:9e0W9SGX
OS 9なんですけど、メニューの実行を監視する方法ってありますかね?
たとえばメニューから「ゴミ箱を空に」が実行されたタイミングで何かをやるとか。
そういう事出来る機能拡張とかバックグラウンドアプリとかご存じでしたら教えてください。
457名称未設定:03/01/09 23:14 ID:m+ICh9vd
使ったことないけどAkua Sweetsになんかそんなのが有ったような
なかったような
458名称未設定:03/01/13 10:41 ID:UEKSG9jd
アクアスイーツは動かないのも多かったような
459440:03/01/16 00:32 ID:YonEOz4w
>>442
>>452
thx.

ランチャーのウィンドウの枠を無くしたいんだけど
教えてください。
一応自分で書いてみたんだけど全然ダメだった。
本買おうかな。

tell application "Finder"
copy button returned of (display dialog "枠はいるの? "buttons{"あり","なし"} default button 2) to as_0
if as_0 is "あり" then
tell application "ランチャー"
set frame visible of palette to true
end tell
else
tell application "ランチャー"
set frame visible of palette to false
end tell
end if
end tell
460名称未設定:03/01/16 17:24 ID:arqvvLL0
>>459
ランチャーってOS9のコンパネフォルダに入ってるランチャー?
うーん、これまたスクリプトで制御できるのかどうか私は知らない。。
スクリプト編集プログラムからは用語説明が開けないし。。という事は制御できない可能性大。

見た目をいじりたければどっちかというとResEditでリソースを編集する事になると思う。
でもプログラムそのものをいじらないと本格的な変更は無理でしょう。
気に入るランチャープログラムを探す方がよいかも?
461名称未設定:03/01/19 01:50 ID:lntPIrbs
Safariで「select」が効かないのはつらいな。
462459:03/01/19 06:53 ID:2cgYXy69
>>460
なるほど。
thx.
463名称未設定:03/01/19 07:36 ID:/Zo2bPpu
>>461
それって、selected textが得られないとか?

ネコミはできるんかな。。HotGoogle改造してネコミ用に出来るかなーと思ったらあっさりつまずいた。
464山崎渉:03/01/23 02:24 ID:ghhLiS5+
(^^)
465ColinCreevey ◆ColinCNMuA :03/01/25 02:04 ID:ISBpTl0A
パート4まで行った良スレだよ!
落ちてたまるか。

464 名前:山崎渉 メェル:(^^)sage 投稿日:03/01/23 02:24 ID:ghhLiS5+
(^^)
は、闇の魔法。
ホグワーツのみんなで、闇の魔術に対抗する方法を考えよう!
466名称未設定:03/01/25 03:53 ID:1u05jnIq
起動ディスクコンパネいじってみようと思ったら
用語辞書見ても記録使ってもうまくいかねー。。
467名称未設定:03/01/25 14:48 ID:yVQ01KOY
>>466
これじゃだめ?

tell application "起動ディスク"
set startup system folder alias to alias "システムのパス"
end tell
468名称未設定:03/01/25 14:56 ID:1u05jnIq
>>467
レスサンクスです。
コンパイルしようとすると
「構文誤り、この(application constant or consideration)のあとにapplication constant of cnsiderationを書く事はできません。」
となって
「startup system folder alias」がハイライトされます。
OS 9.2.2
AppleScript J1-1.6
です。
469名称未設定:03/01/25 15:13 ID:yVQ01KOY
>>468
もしかするとas1.6だからかな?
470名称未設定:03/01/25 15:56 ID:8nUip0vc
うちもstartup disk aliasは問題ないけどstartup system folder aliasはエラーがでる。
でも構文は通ってるよ?
471名称未設定:03/01/25 15:58 ID:1u05jnIq
>>469
かもですね。
でもバグ回避のために1.6にバージョンダウンされてるんですよね?
(自分で下げたんじゃなくて本体購入時から1.6です)
スクリプト機能拡張とぶつかってるかもしれないって事はあるんでしょうか?
純正以外外して試したほうがいいのかな。。
472名称未設定:03/01/25 16:07 ID:8nUip0vc
スルーか…
473名称未設定:03/01/25 16:16 ID:1u05jnIq
>>470
エラーは出るけど構文チェック通るんですか?
ASとOSのバージョンは一緒ですか?
474名称未設定:03/01/25 16:29 ID:8nUip0vc
9.1
1.6
475名称未設定:03/01/25 16:58 ID:1u05jnIq
えーとそれで構文通ってちゃんと動くって事なんですかね。
476名称未設定:03/01/25 17:12 ID:MVF90hsV
初心者です。
apple scriptが常にCD-ROMドライブを監視していてマウントされたら、
あるプログラムを実行みたいなことができますか?
すれ違いでしたら誘導お願いします。初心者スレ見つからなくて。
477名称未設定:03/01/25 18:02 ID:1u05jnIq
>>476
OSは?
478467:03/01/25 18:09 ID:3gdFFxpn
ちなみにうちは9.2.2で1.8。
OSXをアップした時にかわったような・・・。
479名称未設定:03/01/25 18:27 ID:1u05jnIq
>>478
1.8入れてみるべしですかね?ジャガー買おうかな。。
480名称未設定:03/01/25 18:46 ID:8nUip0vc
1.8.3は本家(us)にだけあるよ
でもやぱりダメだたよ
481467:03/01/25 18:52 ID:3gdFFxpn
実を言うと、辞書を見て書いてもうまくいかなくて、
「記録」でやったのだ。
system folder alias といいながら、システムフォルダではなく
システムスーツケースを指定しているのも変なんだよなあ。
482名称未設定:03/01/25 18:58 ID:8nUip0vc
>システムスーツケースを指定

それを先におしえてくれよw
1.6でも問題なくできるじゃん。
483466,468,471,479:03/01/25 19:02 ID:1u05jnIq
>>481,482
そ、そんな罠が。。(脱力
484466,468,471,479:03/01/25 19:06 ID:1u05jnIq
でも記録でやるとうちの場合
set ヌclass sysfネ to
ってなるんですよね。
で、記録やめて編集して再コンパイルしようとすると失敗する。
485名称未設定:03/01/25 19:16 ID:8nUip0vc
なった。
エディタ再起動したら直った。
486466,468,471,479:03/01/25 19:31 ID:1u05jnIq
>>485
うお、ほんとだ!ありがと!
エディタ再起動したらstartup system folder aliasでコンパイルできるようになった。
ヌclass sysネはだめだけど。

なんで??
なんか予約語がぶつかってるくさいんだけどなー。。
487466,468,471,479:03/01/25 19:33 ID:1u05jnIq
ついでに聞いちゃいますけどOS Xの場合はどうやればいいんですか?
本を見ても環境設定については触れられていないんですけど。
用語説明も何のものを見ればいいのやら。。
488467:03/01/25 21:16 ID:3gdFFxpn
>>487
OSXの場合は直接ASコマンドでいじるのはまだ不可能らしい。

こっちのスレに外部コマンドを使った例がある
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50

AS以外はサパーリわからん・・・
489466,468,471,479:03/01/25 22:57 ID:1u05jnIq
>>488
THX!やっぱりターミナルを叩くんですね。
blessってのが起動フォルダを変更できるソフトなんでしょか?
私もASは日本語の頃から使ってましたがそれもブランクありでいーかげん、
OS X環境整えるお金なしでますますだめぽになって来ました。。
490まったくの初心者:03/01/27 01:46 ID:Ya0IQRZ+
スレ違い&既出でしたら申し訳ありませんが

フォルダの「表示オプション」、「常に名前で並べる」というのを
ボタン一発でバッチ処理してくれるスクリプトってありませんか?
レベルが低い話で申し訳ないですが、どうかよろしくお願いします!
491名称未設定:03/01/27 02:11 ID:ELl7QdFD
ほい。

tell application "Finder"
tell front window to set spatial view arrangement to arranged by name
end tell

一番手前に開いてるウインドウに対して有効。
492まったくの初心者:03/01/27 13:27 ID:ifsszdZl
>>491
おおおおおおお!ありがとうございます!
感謝!!
493名称未設定:03/01/29 07:07 ID:tKSU1P+e
質問厨でごめんなさい。スレ違いだったら更にごめんなさい。

ファイルをドラッグ&ドロップして、
そのファイルの修正日をその操作を行った日時に変更し、
書類フォルダに移動するというスクリプトを作りたいと思ってます。
アップルスクリプトで作ることは可能でしょうか?
494名称未設定:03/01/29 08:21 ID:ii+v63wY
>>493
ヨユーで。基本的なものだから練習と思って作ってみそ。
複数処理の高速化とかは知らないとできないけど、
(参考にすべきところを知っていればすぐわかるが)
それはのちのちって事で。
495名称未設定:03/01/29 18:25 ID:98yYhUV3
初心者ですいません。。。OS9でTurboMemというソフトを起動させて
隠し、音量を0.1にするというスクリプトを書いたつもりなんですが、
うまく動いてくれません。。。これです↓


tell application "TurboMem"
open selection
end tell

tell application "Finder"
tell process "TurboMem" to set visible to false
end tell

set volume 0.1

TurboMemは起動するんですが、
隠すのがうまくいきません。。。TurboMemが起動してる状態で実行す
るとちゃんと隠してくれるんですが・・・。どなたか解決法を教えてく
れないでしょうか???
496名称未設定:03/01/29 18:38 ID:rnP5d+Il
まずopen selectionは意味不明なのでactivateにでもしといて。

んで本題のほうは、TurboMemの起動処理が遅いので立ち上がりきらないうちに
processチェックしにいっちゃってるのがダメっぽい。
とりあえず間にdelay 3ぐらい挿んでおけば一応うまくいくみたい。待ち時間ができちゃうけど…
497名称未設定:03/01/29 18:51 ID:98yYhUV3
>>496
待ち時間を設けないと無理みたいですか・・・。隠すの無理っぽいし、
起動さしてFinderを前面にくるようにします。ありがとうございまし
た。

tell application "TurboMem"
activate
end tell
tell application "Finder"
activate
end tell
set volume 0.1

別にこれで無駄な部分ないですよね・・??何せ初スクリプトなもので
・・・・。
498名称未設定:03/01/29 19:06 ID:YUTrW7b7
今頃ながら>>27の実質一行のスクリプトでアプリが起動してるかどうか調べられるのを知って
感動しますた

>>495のtell app "Finder"の直後に
repeat
if creator type of processes contains "ここにアプリのクリエータタイプ" is true then exit repeat
end repeat

を置くのはどないでしょ
TurboMemっていうののクリエータタイプ知らないので調べてみて
499493:03/01/29 20:42 ID:tKSU1P+e
>>494
レスありがとうございます。
見様見真似で以下のようなスクリプトを書いてみましたが、
ファイル修正日を変更するのがうまくいきません。
もう少し頑張ってみます。スレ汚しでスミマセン。

on open dropFiles
tell application "Finder"
set CurrentDate to current date
set modification date of dropFiles to CurrentDate
move dropFiles to folder "Documents" of desktop
end tell
end open
500名称未設定:03/01/29 21:23 ID:33EkHXiK
500頂きま〜す!
501名称未設定:03/01/29 21:27 ID:JsWVH6/A
>>498のrepeatはターゲットのアプリが起動してなかったら
無限ループになるんじゃ。

それって大丈夫なのか?
502名称未設定:03/01/29 22:08 ID:vuLnDOSE
>>499
>>355-360あたりにヒントが。
503名称未設定:03/01/29 23:42 ID:zRuRpg75
>>495 TurboMem は使ってないけど、起動遅いアプリで試してみますた。
おいらんとこの環境(OS9.2.2)では全体を
with transaction 〜 end
で囲ってやるとうまくいきますた。
でも、ちょっと遅い…

504493=499:03/01/30 01:00 ID:yD/MA6de
>>502
ありがとうございます。
>>360を参考に書き直してみましたが、

duplicate dropFiles to "Macintosh HD:ユーザ:xxx:Documents" with properties {modification date:CurrentDate}
delete dropFiles

with propertiesの箇所で構文エラーが起きてしまいます。
申し訳ありませんが、どのように書き直せばいいか
教えていただけないでしょうか

505名称未設定:03/01/30 01:34 ID:JnxWHCNL
>>504
とりあえず、dropFilesをアイテムに分解してみたの?
それから、duplicateは多分with propertiesを使えないと思うんだけど。
>>499の dropFilesをアイテムに分解すればちゃんと使えるよ。
506493=499=504:03/01/30 03:23 ID:yD/MA6de
>>494, >>502, >>505
改善の余地はたくさんあると思いますが、一応目指すものができました!
いろいろ教えていただいてありがとうございました!

on open dropFiles
 tell application "Finder"
  set CurrentDate to current date
  repeat with thisItem in dropFiles
   set modification date of thisItem to CurrentDate
   move thisItem to folder "Macintosh HD:ユーザ:xxx:Documents"
  end repeat
 end tell
end open
507494:03/01/30 07:53 ID:bYDFdswU
>>506
おめでとう。という事で高速版。
ただしこれはOS Xでは動かない。OS XのASが未完成だから。
鳶嶋工房というところに行くと役に立つTipsがあるよ。

on open fileLst
tell application "Finder"
set butu to a reference to every document file of selection
set modification date of butu to current date
move butu to folder "書類" of startup disk--ここは好きなのに変えてけれ
end tell
end open
508493=499=504=506:03/01/30 10:31 ID:yD/MA6de
>>507
うう、高速版まで書いていただけるとは。感激。
OS 9以前のAppleScriptなら一括処理できたんですね。

初めてAppleScriptを触ってみましたが、すごく面白いです。
いろいろ作りたくなってきました。
このスレや鳶嶋工房で勉強するです!
ホントお世話になりました。多謝です!
509名称未設定:03/02/02 19:47 ID:0w2BfVCG
3日前からアップルスクリプトをいじり始めた超初心者です。
環境は、パテーション切ってOS9.2.2、OS10.2.3+classic用OS9。

通常はOSXを起動ディスクにしています。
んで、OS9を使っていた際の再起動用に「もいちどOS9で起動しろ!」
っていうスクリプトを作りたいのですが、まったく上手く行かず…。

もしよろしければ、お手本を見せていただけませんでしょうか?
510名称未設定:03/02/02 20:21 ID:61fu6xCQ
511名称未設定:03/02/02 20:43 ID:0w2BfVCG
>>510
リンク先見ましたが、ちょっと分からなかったです…。。
上記の環境(パテーション切ってOS9.2.2、OS10.2.3+classic用OS9。
通常はOSXを起動ディスクにしています。)で、

「0S9を使っていて、もう一度(起動ディスクではない)OS9で
再起動させたい。」場合もこれでOKなのでしょうか?

厨でスマソ。
512名称未設定:03/02/02 21:03 ID:BNX9WvLe
option押しで起動したんなら次もoption押せばいいだろ
513名称未設定:03/02/03 02:12 ID:4Uu6MtPK
>>511
起動ディスクの操作なら
スクリプト編集プログラムの「記録」で記録できるよ。
514名称未設定:03/02/03 05:42 ID:C/QR0sVY
>>513
スクリプト自体が上手く書けないので、どうしようもないでつ。
515名称未設定:03/02/03 12:18 ID:erNiYLj0
>>514
キミの日本語がよくわからない。正直、殴りたいくらいイライラする。
「0S9を使っていて、もう一度(起動ディスクではない)OS9で再起動させたい。」って何?
あるパーティションのOS 9で起動していて、別のパーティションのOS 9で起動したいの?
通常がOS Xとか言うから余計わからん。何がしたいんじゃ。

手本。もとは>>510のとこでもらったヤツだけど簡易化してる。説明も付けた。
ttp://pc.2ch.net/test/read.cgi/mac/1032115716/221-222
それともう一つ。上で書いたように、OS9から別パーティションのOS9で再起動するヤツ
--ここから
tell application "起動ディスク"
activate
set startup system folder alias to alias "HD2:システムフォルダ:System"
end tell
tell app "Finder"
end tell
--ここまで
ハードディスクの名前は自分の環境に合わせて変えろ。
手本っつーか答えじゃねーかよ。これでできんとか言ったら殺す。
516名称未設定:03/02/03 12:58 ID:Jdo7PpcF
>>515
横から申し訳ないけど、なんかスゲェワロタ。
優しいね(・∀・)
517名称未設定:03/02/03 15:23 ID:erNiYLj0
>>515
自己レスっつーか補足。
よく見たら最後の再起動の部分が抜けてたのでほかの手本を参考にして自分で書いてみてや。
518490まったくの初心者:03/02/06 00:24 ID:yTVK0vVo
今頃&厚かましいと承知の上なんですが、
>>491さんが作って下さった
tell application "Finder"
tell front window to set spatial view arrangement to arranged by name
end tell
というスクリプトなんですが、更にズームボックスを押した状態でフォルダを閉じる
という機能をどうかプラスしては頂けないでしょうか!?
自分で記録機能を使ってみましたが、いまいちよくわかりませんでした。。。
何度も申し訳ないですが、どうかお願い致します。。。
519名称未設定:03/02/06 01:54 ID:etodU5Dm
>>514
皆さんがアドバイスされてるのは
起動ディスクを変更するスクリプトです
起動ディスクをOSXのままOS9で再起動するスクリプトは
無理なんじゃないかな>>512氏の言うようにするのが良いかと
的外れならすまん
520未だに初級者:03/02/06 23:30 ID:9JS90A7D
>>518
今後の為にも、記録の使い方を憶えた方が良いかも。

スクリブト編集プログラムで新しいスクリプトウインドゥ開いて
"記録"ボタン押してから
Finderでズームボックス押して、ウインドゥ閉じて
スクリプト記録"停止"したら下のが出来たよ。
tell application "Finder"
activate
set zoomed of container window 〜 to true
close container window of 〜
end tell

後は、教えてもらったスクリプトにこれを追加すれば良いんでない。
tell application "Finder"
tell front window
set spatial view arrangement to arranged by name
set zoomed to true
close
end tell
end tell
521名称未設定:03/02/09 09:58 ID:1Z0Mjg4P
超初心者な質問で申し訳ないのですが、
OS9のセレクタ経由、もしくは直接にプリンターを切り替える機能を付加する
OSAXを探しています。
ご教示下さい。
522名称未設定:03/02/09 10:12 ID:WeH4SslA
>>521
デスクトッププリンタは標準で入ってるOSAXで操作できる
デフォルトプリンタの切り替えはこんなんあったけどどお
ここの下のほうのUsePrinter
http://www.lazerware.com/software.html
今ぐぐってみただけで俺は使ってないのだが
523名称未設定:03/02/09 10:20 ID:WeH4SslA
>>521
まだあった
ここのset printer to
http://osaxen.com/gtq_scripting_library.html
524名称未設定:03/02/09 17:46 ID:Q0si/v8k
Resorcererを操作しようとしたら、そもそも開いたファイルにtellすることすら
どうやったらいいかわからなかった・・鬱。
525521:03/02/10 23:27 ID:Ey6i9DHl
>522,523様
 ありがとうございます。早速トライしてみます。
526名称未設定:03/02/16 12:47 ID:3893ABG2
OSX用のosaxが少ないなぁ。
田中ズosax移植きぼん。
527名称未設定:03/02/16 13:27 ID:q9U4wup/
Jon's commandsきぼん
528名称未設定:03/02/16 13:55 ID:KvTPrPXz
今のところOS XのOSAX作ってるのって飯盛さんくらい?
Tanaka's OSAXって使った事ないんだけどdo shell scriptで代用できません?
あと、Appleのホームページ見てたらメニューとかもコントロールできるようになるみたいですね。
529名称未設定:03/02/16 14:05 ID:q9U4wup/
メニューが操れるようになったら最強やな
530名称未設定:03/02/16 14:37 ID:KvTPrPXz
ttp://www.apple.com/applescript/GUI/


これなんだけど、俺の勘違いかな?
だれか英語がわかる人お願いします。
531名称未設定:03/02/16 15:23 ID:Sloq4GDI
>530
メニュー操れますね。記録できたら最強なんだけど
532名称未設定:03/02/18 00:12 ID:Y+Es1hxZ
URL Access ScriptingのDownloadコマンドで実行しているダウンロード作業を
例えばダウンロード作業に10秒以上かかった時点でキャンセルする、みたいなことは可能でしょうか?

tell application "URL Access Scripting"
try
 with timeout of 10 seconds
  download "http://〜"
 end timeout
end try
quit
end tell
だと、「ダウンロードの接続が確率するまで」に10秒以上かかる場合はtimeout処理をしてくれるのですが。。

help me please!
533名称未設定:03/02/18 02:09 ID:jZq4UvoX
新規フォルダを作成したとき
毎回任意の名称をつけられる
そんなスクリプトが欲しいのですが
いろいろ調べてみても
さっぱりわからないので
ご指導お願いします
534名称未設定:03/02/18 02:19 ID:zm9B/xR8
Finderで新規フォルダを作成すると毎回任意の名称をつけられますが。
535名称未設定:03/02/18 02:28 ID:N0PgYe7s
>>532
難しいですね。AppleScriptは複数の処理の同時進行できないから
進行中の処理を外から制御したりできないすもんねー。うーん。。
downloadの次の行にどうでもいい処理をなんか挟むのはどうですか。
そこまで実行するのに指定時間以上かかったらタイムアウトになりますよね。。
駄目かな。

>>533
つまり、デフォルトの名称である
「名称未設定」を変えたいということ?
フォルダが作成された時点ですでに希望する名称になっててほしいんだよね?
それはOS9以前ならシステムのリソースいじった方が速いかもね。。

自動的に日付けなどの複雑な名称にしたいなら
1:Finderからフォルダを作成せずに、アップルメニューやスクリプトメニューからスクリプトを実行してフォルダを作るようにする

2:フォルダアクションでフォルダを監視して、新しい項目が追加されたら
  「名称未設定」で始まる名称のフォルダの名前を変えるスクリプトを付ける

て感じかなあ。
536名称未設定:03/02/18 02:30 ID:N0PgYe7s
ただし仕様上、フォルダアクションは開いているフォルダしか監視できないという。。
OS 9だと閉じたフォルダに対しても作用できるようにする機能拡張がありますが。
OS Xだとそもそもフォルダアクションが搭載されたのがジャガー以降だったかも。

(フォルダアクションはフォルダナビゲーションとは別ものです)
537533:03/02/18 08:44 ID:jZq4UvoX
やろうとしてるのは
1.新規フォルダ作成スクリプト実行
2.ダイアログ入力画面から希望のフォルダ名入力
3.新規フォルダできあがり
ってかんじです
ダイアログ入力画面を使用するのはむりなんでしょうか?
538名称未設定:03/02/18 10:13 ID:N0PgYe7s
>>537
いまいちやりたい事(それによって得る便利さ)がわからんけど簡単。
さて、ここまで言って後は答えの一例を書くくらいしかないのだが、
どうします?
(つーか二度めの書き込みでもOSすら書いてないし、これから先も細切れの応答になりそう)

どういう風にして何を調べて何をどこまでやって、どこが駄目だったのかって話があれば
アドバイスのしようもあるのだが。

display dialog

choose folder

make new folder at 〜 with properties {name:"〜"}

でも調べてみては?
539名称未設定:03/02/18 10:29 ID:Y+Es1hxZ
>>537、これで良いかな?

tell application "Finder"
display dialog "フォルダ名" default answer "" buttons {"キャンセル", "OK"} default button 2
set fnm to text returned of result
make folder with properties {name:fnm}
end tell
540名称未設定:03/02/18 10:32 ID:N0PgYe7s
>>539
それだと場所指定が抜けてる。

>>537
さあ、ここまで書いてくれた人がいたから頑張れ。
541名称未設定:03/02/18 11:09 ID:061Z3cTA
>いろいろ調べてみても
>さっぱりわからないので

ありえない
542名称未設定:03/02/18 12:49 ID:wqMo/kAl
>>537
一体何がやりたいの???
キーボードからファイル名(フォルダ名)を入力するんだったら、
AppleScriptを使う必要なんか無いと思うんだが。
Finderでファイルを選択している状態でリターンキーを押すと
ファイル名を変えられるのを知らないとか???
543名称未設定:03/02/18 18:09 ID:N0PgYe7s
>>823,845
Disk Copyで容量ぶんのイメージ作ってからDisk Copyで焼くようにしても同じ?
544名称未設定:03/02/18 18:11 ID:N0PgYe7s
>>543は操作ミス。ごめん。

>>542
その可能性もあるんだけど(w
オープンセーブダイアログみたいなので任意の場所に作るのと、名前をつけるのが
セットじゃ無いの?
何かもっと大きなスクリプトのうち一部としてフォルダを作る場面と考えれば納得行くかも。
545名称未設定:03/02/19 01:38 ID:fbAnXT0Y
>>537
答えを書くのもどうかと思ったが・・・。
まあ初心者だとちょっとしたところでつまづくので。

set theFol to choose folder
repeat
tell application "Finder"
display dialog "フォルダ名を入力" default answer "" buttons {" cancel ", " OK "} default button 2
set theResult to result
set nameOfFolder to text returned of theResult
set btnResult to button returned of theResult
if btnResult is " cancel " then
exit repeat
else
make folder at theFol with properties {name:nameOfFolder}
end if
end tell
end repeat

OS X 10.2.3ならこれでできるはず。
OS 9.xでも動くと思うけど検証してない。

546名称未設定:03/02/19 01:49 ID:fbAnXT0Y
537を読むと連続して作りたいとは書いてないなぁ。
なんか勘違いのレスだったかもしれん。
547名称未設定:03/02/19 01:56 ID:Bm9+ot2P
まあ、このスレで「こういうスクリプトを教えて」という場合、
具体的な用途を書いてくれたほうがいい。
そうじゃないと言っている意味が分からないこともあるし、
スクリプトより効率のいい方法があるかもしれないし。
548名称未設定:03/02/19 09:54 ID:70Slxo7m
ほんまもんの初心者だった場合は
display dialogで入力した文字列を変数に収めてFinderに渡す
っていうことをイメージすること自体が出来ないかもしれないし
理解できればかなりな進歩だと思うので
スクリプトを使わないほうが便利だとしても
あえてスクリプトでやる方法を教えてあげたらいいんじゃないの
549533:03/02/19 10:09 ID:dpmjfB3q
皆様、すいません
当方 OS9.2.2 です
で、>>543 さんので無事動きました
ありがとうございます

僕の説明がおかしかったです。
手入力でやるのではなく
あらかじめいくつかの名前を登録しておいて
そこから選択してフォルダ名がつけられればいいなと思ってたんです。
新規フォルダ作成 を選んだら
「どの名前のフォルダで作りますか」
と聞いてきて
ネット上で住所とか入力するときに都道府県などを選択する部分みたいな感じで
新規フォルダ名を選べればいいなと思ったんです。

スレ汚しすいませんでした。
ありがとうございました。
550名称未設定:03/02/19 13:01 ID:l755+ceU
>>549
あふぉか。。
出してもらった回答を否定して細かい注文つけるような事を言って
どうしようという。
その部分ができないっていうなら最初からそういう聞き方しろよ。

>>545氏の例があればそんなもん簡単に作れるぞ。
手入力を選択にするくらい頭使えよ。。
あとは自助努力。

本買え。「AppleScriptリファレンス」とか。
OS9の本だけどOSXでも使えるし。
どんな手が使えるか調べる手段や知識がなけりゃ
実現したい事のために何をどう組み立てるか考えようがないしな。

とりあえず今回はchoose from list調べて使え。
検索エンジンのYahooとかGoogleくらい知ってるよな?
そういうので調べな。
551名称未設定:03/02/19 15:42 ID:lOTXOrte
>>549、コレでよいかな?

property LST : {"新規フォルダ", "本気フォルダ", "狂気フォルダ", "発狂フォルダ"}

tell application "Finder"
set fnm to (choose from list LST with prompt "ファルダ名を選択 :" OK button name "コレにする" cancel button name "ヤメ") as string
if fnm is not "false" then
make folder at desktop with properties {name:fnm}
end if
end tell
552名称未設定:03/02/19 16:53 ID:l755+ceU
>>551
ヒマなのか?(w
553名称未設定:03/02/20 21:23 ID:sK1DXs5H
>>551
使えるようで使えない。かな?
554名称未設定:03/02/28 17:38 ID:PMClLlc4
コソーリsage
555名称未設定:03/03/01 14:24 ID:i3NiV9FN
☆ チュー ☆ Squeak ☆ チュー ☆
http://pc.2ch.net/test/read.cgi/mac/1046446110/
Squeakスレです。
556名称未設定:03/03/03 01:35 ID:jeu/Uar3
sage
557名称未設定:03/03/03 23:13 ID:J3W4FCm8
> ただし仕様上、フォルダアクションは開いているフォルダしか監視できないという。。
> OS Xだとそもそもフォルダアクションが搭載されたのがジャガー以降だったかも。

Jaguarでようやく実装されたフォルダアクションですが、9と違って開いていない
フォルダの監視も出来ます。つまり、フォルダに項目が追加されたら開く、という
9では出来なかったことができるです。

実際にやってる例をつけやう。こいつを付けると
・何かファイルが追加されると開く
・ファイルが全部取り除かれると閉じる
・ファイルが入っているのに閉じるとまた開く
という動作をするようになる。付けるのは
FolderActionManagerを使うと楽。
http://www.apple.co.jp/downloads/macosx/utilities/folderactionmanager.html
558557:03/03/03 23:13 ID:J3W4FCm8

on adding folder items to this_folder --after receiving added_items
tell application "Finder"
if ((every file of this_folder) is not {}) then
ignoring application responses
open this_folder
end ignoring
end if
end tell
end adding folder items to
on removing folder items from this_folder --after losing deleted_items
tell application "Finder"
if ((every file of this_folder) is {}) then
ignoring application responses
close window of this_folder
end ignoring
end if
end tell
end removing folder items from
on closing folder window for this_folder
tell application "Finder"
if ((every file of this_folder) is not {}) then
ignoring application responses
open this_folder
end ignoring
end if
end tell
end closing folder window for
559あれ?:03/03/07 00:14 ID:4zIGSKWC
デスクトップの再構築をやるには
rebuild desktop
で出来た記憶があるのですが、記憶違いでしょうか?
OS 9.1です。
560名称未設定:03/03/07 09:38 ID:8mR+23dL
>>559
そんなのあったっけ?
すべてのアプリケーションとFinderを終了させるスクリプト作って、
Finder起動時にcommand+option押してたけど。
561名称未設定:03/03/07 14:29 ID:bEYht7Hw
Finderの用語として、有効なのか無効なのかわからんupdateってのはある。
特定のフォルダの内容についてデスクトップファイルの更新かけたりする命令。

おれも>>560氏と同じ事やってるな。

>>559は、言われてみればそんな気も。。。だがAppleScrptリファレンスには載ってないしなあ。。
ttp://www.google.com/search?q=rebuild%20desktop%20applescript
562名称未設定:03/03/09 11:41 ID:B2b0T2Of
http://216.239.39.100/search?q=cache:9frCBgUoZdYC:developer.apple.com/ja/technotes/tn2010.html+%E5%86%8D%E6%A7%8B%E7%AF%89+desktop+applescript&hl=ja&lr=lang_ja&ie=UTF-8&inlang=ja

else if execution state is rebuilding desktop then
beep 4 -- 現在デスクトップファイルを再構築中

何だっけ。
563名称未設定:03/03/09 16:43 ID:pI+j68OJ
わ、すごい。
execution stateって知らなかったよ。おもしろそう。
しかしデスクトップ再構築中に呼び出されるってどんな状況?
564名称未設定:03/03/12 20:24 ID:LhvFYVEn
起動時にドライブのアンマウントをしようとおもって
tell application "Finder"
put away disk "名称未設定" without asking
end tell
っていうスクリプト組んで起動項目に突っ込んだんですが
MacOS9.1/AppleScript1.5.5
の環境ではダイアログを表示せずに動くのに
MacOS9.0.4/AppleScript1.4.3
ではダイアログが表示されてしまいます。
2番目の環境でもダイアログを出さないようにする方法は無いでしょうか?
565名称未設定:03/03/12 20:30 ID:xlEoBJpY
AppleScriptのバージョンを上げたらいいのではないでしょうか。
566564:03/03/12 20:36 ID:LhvFYVEn
>>565
9.0.4だと1.4.3ガ最新だとおもうのです。
少なくともアップルからおとしてきた1.6は動かないと思う。
1.5.5を移植するにしてもどのファイルを動かせばよいのか判らない。
567名称未設定:03/03/12 23:55 ID:Bsid+LHQ
思うじゃなくてやってみれ
インストーラがダメならTomeViewerで抜け
568名称未設定:03/03/13 00:14 ID:jigpHGB4
>>566
機能拡張に入ってるAppleScript本体と、スクリプティング機能追加のフォルダ。

ただし動かなくなっても責任持てん。
569564:03/03/13 00:41 ID:iqlKEjSM
>>567,568
ありがと。インストーラに弾かれたんで自力ではできないって意味でした>>566の「思う」
アドバイスの通りやってみるよ

でも9.0.4以前の環境ではダイアログを出さないようにする標準的な手段てないのかな?
570名称未設定:03/03/13 00:45 ID:iGxUaYgW
put away without askingってFinderの機能だよね。
AppleScript変えて直るものなんでしょうか。
without askingが効いてなくてダイアログが出るのか
それとも違う原因で出るダイアログなのかがよーわからん。
一体どんなダイアログが出てるんだ?
571名称未設定:03/03/13 00:58 ID:jigpHGB4
そもそもB's Crewを使うと起動時にマウントするかどうか変更できる。
(初期化が必要だったかもしれんけど)
572名称未設定:03/03/13 01:46 ID:KyCRnjE1
tell application "Disk Copy"
unmount disk "Kiwi"
end tell

ちょっとばかばかしい気もするけど、こういうのはあります。
573564:03/03/13 02:04 ID:iqlKEjSM
>>572
なるほど発想のてんかんですね。

まだみなさんにきいた方法何も試していないのですが。試したら報告します。
574名称未設定:03/03/20 17:38 ID:Ed3mlzGj
read命令で一度に読み込めるのは何バイトまででしょうか?
ネット上を駆けずり回ってみたんですが見つかりませんでした。。(ハァハァ
教えて下さいマシ。
一応、tyr&errorで20000でNG、19000でOKな感触を得たんですが、
ギリギリまで読みたいので。。。
57560:03/03/21 00:07 ID:ww+pC1wB
だれか指定したフォルダに書類を移動させるスクリプト作ってくれ
HD死んでもう作る気無い…
576名称未設定:03/03/21 00:18 ID:TXr3nekh
>>575
動くかどうかしらんけどこんなんでいいの?
アップルメニューに放り込んでちょ。
Finderで選択中のものを、フォルダ選択ダイアログで選んだとこに移動。
パーティションまたいでいるときの処理はしてないからその場合複製になる。
つーか、全然試してないから動くかどうか知らない。(w

tell app "Finder"
activate
set butuList to selection
set basyo to choose folder
tell butuList
move to basyo
end tell
end tell
577名称未設定:03/03/21 05:02 ID:ciuTxAgL
>>574
OS 9 以前ならTanaka's osax 使えばもっと読み込めるとおもいまつ。
578名称未設定:03/03/21 06:40 ID:TXr3nekh
>>574,577
エディタ使う手もある。読み込み量はエディタの能力によりけり。
正確なところはちょっとわからね。俺も以前トライしたとき調べたような気もしたんだが。
579574:03/03/21 06:52 ID:jIAceN7j
>>577,578
さっそくありがとうございます。なるほど、
他のソフトとの連携という線で試してみます。

追記:19000でもだめでした18000くらいがラインのようです。
580名称未設定:03/03/22 18:20 ID:23/riTwn
保守
581名称未設定:03/03/22 21:55 ID:RcmOlwD0
読み込める量って、データ量だけじゃなくて行数にも依存しとったかも。勘違いだったらスマソ。
582名称未設定:03/03/23 00:18 ID:OSxgBhrr
すいませんが詳しい人教えて下さい。
アップルスクリプトの中で「"」を使いたいのですが、アップルスクリプトの
構文に使う"〜"の一部と勘違いされて構文確認でエラーが出ます。
「"」を使うためには何か特別な書式があるのでしょうか?
宜しくお願いします。。
583名称未設定:03/03/23 00:22 ID:rHG7G0RR
>>582
半角の¥を"の前に打つのです。
584名称未設定:03/03/23 01:40 ID:OIF0MdX8

ああ、do shell scriptとかやってるのかな?それともPerlの本文埋め込みか。
\だらけでわけわかめになるよね(w 楽しいけどさ。
外部ファイルから読み込んだほうが賢いけどね。たぶん。
585582:03/03/23 01:51 ID:prdAOXg4
>>583
解決しました。ありがとうございます。助かりました。
>>584
HTML作成を自動化しようとしてました。
586名称未設定:03/03/23 01:53 ID:OIF0MdX8
>>585
なるほどHTMLか。
テキスト処理は適宜Perlを呼び出して使うようにすると速くできまっせ。
587名称未設定:03/03/26 23:15 ID:KsfQOi1I
すいません、ちょっと質問です。
ダイアログに"を含む文字列を表示させたいと思い、
>>583を見てその通りにやってみたのですが、巧くいきません。

display dialog \" & "この文字列とか" & \"

↑のような表記で良いのでしょうか?
ちなみに、PBで作成してAS Studioで動作させる予定です。
588名称未設定:03/03/27 00:15 ID:d0D9N45W
エスケープ文字列って何か調べてみそ。

display dialog "\"こんなんどうです\""

AS Studio使うなら、display alertが好きかも
589587:03/03/27 01:19 ID:crOX8c5K
>>588
ありがとうございます、解決しました!
エスケープ文字列はちゃんと調べてみます。
590587:03/03/27 04:49 ID:crOX8c5K
解決してねえ(;´Д`)
Script Editorで試したら巧くいったんでPBでもやってみたら、
\"の\がバックスラッシュになって、その時は良いんだけど、
それからもう一度構文確認すると、アラート……なんでやねん。
これってPBのバグ? それとも、また漏れ間違えてるの?
591名称未設定:03/03/27 04:56 ID:d0D9N45W
がんがれ(w
592名称未設定:03/03/27 04:59 ID:9PpYzOj0
>>590
バックスラッシュになるのは問題ないと思うけど
それ以上はおれはXerで無いので勘弁
593587:03/03/27 06:48 ID:crOX8c5K
……で、出来ますた(゚∀゚;)>
徹夜して何やっとんのかと自分にツッコミ。夜明けのハイです自分。

バックスラッシュに変わってしまった\はビルドすればOKでした。
まあいざとなったらビルド後のパッケージ開けて直接スクリプトを
弄ろうかとも考えてましたが、まあ何とかなりました。サンクスです!
594名称未設定:03/03/30 02:13 ID:KFhPUpFY
ftp://ftp.apple.com/research/sk8

SK8ってどうなん?
595名称未設定:03/03/30 02:23 ID:5yfcpML3
30代からの使用をおすすめします。



桃井からのお知らせでした。
596名称未設定:03/03/30 02:28 ID:KFhPUpFY
SK8

9.2だと立ち上がりもしねえなああ
597超初心者:03/03/30 18:09 ID:CuUmYLme
testとゆう書類を不可視ファイルにしたいのですが、
エラーが出まくって、困ってます。
だれか教えてください。
598名称未設定:03/03/30 18:17 ID:81+Q3X9d
>>597
http://klablog.okiraku-pc.net/logs/current-bbs/161/xqqrlz.html
このあたりが参考になるだろう。
599名称未設定:03/03/30 18:25 ID:eMuWkLbe
すいません、SK8って何?
>>594のリンク先はftpで、ReadMeも置いてないし。
解説してるサイトとかあったら教えてください。

OS X用のもの?それとももっと古いもの?
600597:03/03/30 20:40 ID:CuUmYLme
>>598
ひどい
601名称未設定:03/03/30 21:19 ID:QBwXnfja
参考にするまでもなく実践してるもんな。
602名称未設定:03/03/31 19:58 ID:1xMwU06Q
そもそも、AppleScript で書類を不可視にすることはできないような気も。
603600:03/03/31 21:26 ID:GMnfVWWr
>>602
自分なりに作って見たのですが分からない…もうだめぽ
604名称未設定:03/03/31 23:07 ID:1xMwU06Q
どういう環境で
どういうスクリプトを組んで
どういうエラーが出たのよ?
605名称未設定:03/04/01 00:51 ID:abQyNeb0
File Visibility 使っとけ
606名称未設定:03/04/01 10:56 ID:B+LmkY+v
607600:03/04/01 12:48 ID:YtjI5TQW
ワーイいっぱい釣れたよー
608名称未設定:03/04/02 12:39 ID:c+VFpOPY
OS9でiTunes 2.0.4を使用しているのですが、iTunesの再生中の
曲を次の曲に移動させるスクリプトってどう書くのでしょう??
ファンクションキーに割り当てて使おうと思ってるんです。自分で
やってみたら、次の曲に行くんですが、それまで使っていたアプリ
が最前面に来ず、必ずFinderが最前面に来てしまうんです。。
どう書けばいいんでしょう?
609名称未設定:03/04/02 12:46 ID:ey79zdEM
おねがいだから、こういうの聞くときは
自分の書いたスクリプトを提示してくれ。
610名称未設定:03/04/02 16:37 ID:o3IrIVzb
Finderが前面に来るって事は、
・tell app "Finder"している
・ファンクションキーからアプリを実行するとFinderが前面に来る

のいずれかが考えられるな。
後者の可能性が強い気がするので、この場合コンパネの機能でファンクションキーに割り当てるのをあきらめて
OSAメニューを使ったりするべしと。Drag Thingとかでもよさげかな?
611名称未設定:03/04/02 23:01 ID:ciYU+P0d
>>610
tell application "iTunes"
activate
(以下、スクリプト)

てな感じで、"activate"を入れればいいのでわ?・・・って、そういう問題ではないのか・・・。
612名称未設定:03/04/02 23:24 ID:o3IrIVzb
>>611
いや、相談者の希望はおそらく、iTunesを前面に出さずに、今作業中のソフトが前面のまま
(たとえば2chブラウザとかWebブラウザとか)
iTunesの操作をしたいのだと思う。
613名称未設定:03/04/02 23:50 ID:U9/dSOVD
逆転の発想でいきましょう。

まずAppleScriptの最初に、
現在アクティブなアプリの名前を取得して変数に入れておく。

しかるのちに、iTunesに指令を送り、
その後、さっきアクティブだったアプリを activateして終了。

これでどう?
614名称未設定:03/04/03 00:06 ID:0NyYf9Wy
現在アクティブなアプリって取得できたっけ。
たぶんファンクションキーからスクリプト呼んだ時点でスクリプト自身がフロントモストになるし。
615名称未設定:03/04/03 00:52 ID:DFBnIUTh
tell app "iTunes"
next track
end

これでなんの問題もないんですが。
616名称未設定:03/04/03 00:59 ID:YXfxOwqg
>>612

ファンクションキーじゃなくて、アップルメニューじゃダメかな。
617名称未設定:03/04/03 01:12 ID:0NyYf9Wy
ということを>>610で書いたつもり。
618名称未設定:03/04/03 01:16 ID:YXfxOwqg
>>617
スマソ。やっと、わかった。
って、オレがわかったって、しょーがないんだが(W
619名称未設定:03/04/03 10:19 ID:p3OTOZLo
Quickeys上でApplescriptを書いて、ファンクションキーに割り当てれば
バックグラウンドできりかえできるよ。
playpause, next track, previous trackの3つを揃えると快適だね。
620名称未設定:03/04/03 11:28 ID:TfVMMuwU
おお〜。知らぬまにこんなにもレスが。。

>>609
>>610


621608:03/04/03 11:31 ID:TfVMMuwU
ミスった・・・・


>>609 -610
>>615 と同じスクリプトを書いて使ってました。

>>613
すいません。。。まだそういうスクリプト書けるレベルじゃありません・・・。

>>616
ファンクションキーの方が便利なので出来たら・・・。

>>619
Quickeysですか。試してみます。
622名称未設定:03/04/03 13:20 ID:0NyYf9Wy
OSA menuにキーボードショートカット割り当てられなかったっけ?
623名称未設定:03/04/04 00:04 ID:CQaYxbHq
>>613 の方向で無理矢理やってみた
これを自動的に終了しないアプリにしてファンクションキーに割り当てすればいけるはず
return の間隔は各自調整してくれい

事前に起動しておかないといけないけど、、、

property currentapp : ""
on idle
set capp to (path to frontmost application as text)
if capp is not (path to me as text) then ツ
set currentapp to capp
return 3
end idle
on reopen
tell application "iTunes"
next track
end tell
tell application currentapp to activate
end reopen
624名称未設定:03/04/04 00:53 ID:ZfGtqqRT
>>623

三秒ごとに現在のアプリケーション取得するのかい!(w

それでも希望通りの動作を実現できちゃったとしたらすごいかも。
625名称未設定:03/04/04 01:02 ID:CQaYxbHq
>>624
ツッコミありがとう。だから無理矢理なんでつ。
3秒が気に入らなければ1秒でも、return無しの気まぐれ動作でも好きにしてくれい。
うちの環境では動いとるよん。
626名称未設定:03/04/04 01:43 ID:ZfGtqqRT
returnなしのデフォルトは30秒じゃなかったっけ?

OS Xならマルチタスクの恩恵で平気なのかな?マシンの性能も上がってるし。。

ちょっと前ならマシン全体のパフォーマンスがガタガタでしょうね(w


これ実行中に、ほかのAppleScript実行しようとしたらどうなるんでしょ。
627名称未設定:03/04/04 02:36 ID:CQaYxbHq
G3にOS9.2.2で動いてまつ。
確かに他のプロセスでリアルタイムな処理が有るとガタガタになるかも。
って疑似マルチタスクでもこれくらいはいけるんでないの。
628名称未設定:03/04/04 03:03 ID:ZfGtqqRT
そうか、、。やっぱ68KのKT7.5で始めた俺の感覚は古いのかな?

フォルダの名前をリアルタイムで変更して実現する時計(w
とか作って、Finderの動きがカクカクなって笑った事とかありまして。
629名称未設定:03/04/04 03:11 ID:CQaYxbHq
おいらもはじまりは030にKT6.0.7だで、気持ちは分かるで。
今でもCPUに負担が掛りそうとかメモリ食いそうな処理とかは
無意識に避けようとしてしまう自分が情けない。
630名称未設定:03/04/04 06:54 ID:lFrk24J2
質問です。

2つあるのですが、まず、Tanaka's OSAXでファイル名置換のドロップレットを
作っています。

on open drop_items
display dialog "さがす語は?" default answer "0"
set D_search to text returned of result
display dialog "入れ換えたい語は?" default answer ""
set D_replace to text returned of result
tell application "Finder"
repeat with obj in drop_items
set name of obj to xReplace name of obj search D_search replace D_replace
end repeat
end tell
end open

こうすると、ファイル名内のヒット文字全部を置換してしまいます。
冒頭最初のヒット文字だけ、末尾最初のヒット文字だけを置換するには
どうすればよいでしょうか。

もう1つですが、命令先アプリが起動していない時は命令をキャンセルする
スクリプトは、どう書けばよいのでしょうか。
631名称未設定:03/04/04 11:52 ID:wuA90KR3
>630の2
if (processのリストに目的アプリが含まれているか) then
end
632名称未設定:03/04/04 12:56 ID:lFrk24J2
>>631
>>26-170を参考に、思ったものが作れました。
ありがとうございました。
633名称未設定:03/04/05 00:36 ID:l5lBaGte
>>630
xReplaceてなんですか?
OS X用のTanaka's OSAXがもう出てるんでしょうか?

OS 9用では
MT Replace〜search〜replace〜with case sensitive and only first hit
で最初のヒット文字列はいけるでし。

でも、末尾はどうしよう?
ファイル名なら短いから、文字列全部ひっくり返して入れ替えてから元に戻すってのはどう?

末尾の時は下の様な処理でファイル名とさがす語を逆さまにしてリプレイスしたら
また元に戻すってかんじでどうですか。
on reverse_text(textobj)
set texttmp to every text item of textobj
set rtext to ""
repeat with str in texttmp
set rtext to str & rtext
end repeat
return rtext
end reverse_text
634名称未設定:03/04/05 01:02 ID:EfgvGSfU
OSXだとPerl呼べるよな。
635名称未設定:03/04/05 01:09 ID:CJ+Qzpjn
OS 9でもPerl使う。楽だもん。
636名称未設定:03/04/05 01:31 ID:EfgvGSfU
OS9のMacPerlってちょっと長いやつ書くとメモリ不足で落ちるんだよなあ・・・
637名称未設定:03/04/05 01:38 ID:CJ+Qzpjn
Perlの長さの方でメモリ不足に?
大量のファイル(数百)で無理だったりしましたが。
MacJPerlのメモリ不足であれば割当て増やしてしのげませんか?

たしかに僕は100行越えるコードは書かない人だけど。
638名称未設定:03/04/05 02:08 ID:AvIGmiZt
>>633
ありがとうございます。頂いたものをさっそく試してみます。

Tanaka_osax_2.0.1
http://mtlab.ecn.fpu.ac.jp/tanaka_osax.html
OS9でも使えます
639名称未設定:03/04/05 02:13 ID:AvIGmiZt
>>638
訂正、
xReplaceはv1.3の名前で
MT Replaceがv2.0.1の名前でした
うちのはv1.3のままでした。
640名称未設定:03/04/05 02:41 ID:Zwfrfz5T
ちなみにOSAX無しだとこんな感じ?(動作確認不足)

on replace_first(the_str, search_str, replace_str)
if search_str is not in the_str then return the_str
set ASTID to AppleScript's text item delimiters --デリミタ待避
set AppleScript's text item delimiters to search_str
set temp_list to text items of the_str
set replaced_part to (item 1 of temp_list) & replace_str & (item 2 of temp_list)
set temp_list to rest of temp_list
set item 1 of temp_list to replaced_part
set result_str to temp_list as text
set AppleScript's text item delimiters to ASTID --デリミタ復帰
return result_str
end replace_first

on replace_last(the_str, search_str, replace_str)
if search_str is not in the_str then return the_str
set ASTID to AppleScript's text item delimiters --デリミタ待避
set AppleScript's text item delimiters to search_str
set temp_list to text items of the_str
set replaced_part to (item -2 of temp_list) & replace_str & (item -1 of temp_list) --変更点
set temp_list to reverse of (rest of (reverse of temp_list)) --変更点
set item -1 of temp_list to replaced_part --変更点
set result_str to temp_list as text
set AppleScript's text item delimiters to ASTID --デリミタ復帰
return result_str
end replace_last
641名称未設定:03/04/05 02:46 ID:EfgvGSfU
>>637
いやあ・・・そのとき書いていた奴をいま開けてみたら
600行くらいでした
AppleEventを直叩きしたりDialogDirector呼んでみたり・・いま見ても無茶してましたな
642名称未設定:03/04/05 05:09 ID:CJ+Qzpjn
AppleEventの生書きはおもろいですよね。
MacPerl MLはもはや過疎の村っつーか無人の場所になってますが。。
あそこで終わりがた?にAppleEventの事をあれこれ訊いてるのが僕です(w
教えてくれたのが>>641さんだったりして(w

600行はすごいですねー。いまだかつてそんなコードを書いた事がないです。
ASでもPerlでも。

MacPerlでタスクが占有されるっていうか、実行中にほかの作業ができなくなる感じは
味わった事あるんですけどね・・。

>>640
うおう。AppleScriptな定石でやるとやっぱしたいへんですな。
643630:03/04/05 10:26 ID:J6bi9PVm
>>633-640
頭から探す方は出来ました。ありがとうございました。

よく考えたら、ファイル名の後ろから探して最初のヒット文字だけを置換する
という状況は、あまりないのかなと思いながら、ハンドラ2例を
組み込もうとして、手を焼いています。しばらく寝かせます。
644名称未設定:03/04/05 12:11 ID:BIgRO2wH
AppleEventの生書きってどうするとですか?
AppleScriptみたいにAppleEventの用語辞書みたいなものがあるのでしょうか?
645名称未設定:03/04/05 18:48 ID:CJ+Qzpjn
なんでいきなり九州弁やねん。

えー、私のつたない説明でよければ。こげんするとですよ。

AppleEventの生書きは、AppleScript、Mac(J)Perl、REALbasicなどで使われます。
手段としては、(私の知ってる方法は)AppleScriptを使います。
まず、AppleScriptで目的の処理(に近いもの)を書きます。
で、Mac OS(9以前)には、AppleEventを記録するフリーウェアのコンパネみたいなのがあるので、
さっき作ったAppleScriptを実行しながら記録。
で、あとは記録されたもんをいじるだけです。
Mac(J)Perlでの具体的な使用法は
MacPerl入門とかいう本に載ってます。
場合によりけりですが、AppleScriptを呼び出すより多少速度が稼げたりするようです。

AppleScriptでも、tell app "アプリ名"でアプリケーションを探すのを避けるためとかで
<<>>こんなカッコで囲まれたAppleEventなものが登場する事アリ。
646名称未設定:03/04/05 19:01 ID:CSk9as/U
Outlook Expressで自動的に指定されたメールアドレスにメールを送るスクリプトを
友達を頼りに作ったのですがエラーが出てしまって困ってます。
だれか救助をキボンっす。。。

tell application "Outlook Express"
  make message at end of mailbox "送信" of mail folder ""
    tell message 0
      set field "To" to 送信先アドレス
      set field "Subject" to メールタイトル
      set field "" to 本文
    end tell
  queue message 0
647名称未設定:03/04/05 19:03 ID:x4DmIXC6
はじめまして。
最近AppleScriptの勉強をはじめた者なのですが、ひとつ質問させて下さい。
特定の時間になったらAというフォルダの中身をごみ箱に移動させるというのは
これは可能でしょうか?
648名称未設定:03/04/05 19:11 ID:kgyMSlyA
>>646
答えられる人がいるかもしれないけど、
どういうエラーが出たのか書かないと答えるのが面倒かもしれない。

>>647
可能です。
649646:03/04/05 19:29 ID:CSk9as/U
>>648
説明不足ですみませんでした。
Outlook Expressの場所を指定しなくてはいけなくなるし(当たり前)
画像を添付したり、HTMLで送るなど考えていたのですが、
もうだめぽって感じでして。てゆうかアップルスクリプトじゃ無理なのかと思いまして。
実行ボタン押すと「構文誤り」とゆう文章が出て来てしまって…
itinititubusitimatta-
650名称未設定:03/04/05 19:50 ID:kgyMSlyA
>>649
Outlook Expressを使ってないので良く分からないけど、
スクリプトを見た感じではスクリプトの一番最後に
end tell
を入れ忘れているという単純ミスっぽい気もする。
651644:03/04/05 22:35 ID:BIgRO2wH
>>645
ご丁寧にありがとですよぅ
CaptureAEですねぃ
色々いじくってみますよぅ
652646:03/04/05 22:53 ID:CSk9as/U
tell application "Outlook Express"
make message at end of mailbox or "送信" of mail or folder ""
tell message 0
set field "To" to 送信先アドレス
set field "Subject" to メールタイトル
set field "" to 本文
    end tell
  queue message 0
end tell
こんな風に変えてみたけどまだ駄目です…
Outlook Expressのせいではないと思うのですが…
653名称未設定:03/04/06 01:04 ID:4e++8Nxn
アップルメニューに「最近使った...」ってのがありますよね。
あれのフォルダーバージョンみたいなのアップルスクリプトでできませんでしょうか?
654名称未設定:03/04/06 01:24 ID:9uHmEORt
>>653
Window Monkeyみたいな機能ね。できない事はないと思う。
フォルダアクションでできないかなあ。
ところでOSは?9より前なのはわかるけど、細かいとこ。
655名称未設定:03/04/06 03:20 ID:4e++8Nxn
>>654
MacOS J1-9.1です。フォルダアクションですか。研究してみます。
656名称未設定:03/04/06 03:56 ID:7DgP5kd4
フォルダアクションは対象となるフォルダが特定出来ない状況では使えないと思うんだが。
常駐型アプレットでcontainerwindow監視するしかないかも。
657名称未設定:03/04/06 04:08 ID:9uHmEORt
全部のフォルダに対してフォルダアクションを付ける。
さらに、新規のフォルダが作られた場合にはそのフォルダにフォルダアクションを付けるような
フォルダアクションを作る。

これで全てのフォルダに対して有効なフォルダアクションができると思う。
658名称未設定:03/04/06 05:11 ID:7DgP5kd4
出来たらスクリプト見せて下さい
659657:03/04/06 05:21 ID:9uHmEORt
>>658
え〜、めんどくさい(w



でも作ってみたいな。OS Xでもフォルダアクション使えるみたいだし。
フォルダアクションスクリプトができたとして、全てのフォルダにフォルダアクションを付ける作業が。。
もちろんそれもスクリプトでやるにしても、再帰でスタックオーバーフローになってやり直しの繰り返しだろうなあ。
OS X入れてるからディレクトリも深いし。

OS 9に関しては俺はWindow Monkey登録ユーザなのでいらんのですけどね。

ぜんぜん具体的に考えてないから本当に可能かどうか不明ですけど、OS 9でやるなら、
閉じてるフォルダでもフォルダアクションを有効にする機能拡張が必要かな。
660653:03/04/06 13:26 ID:rJWtLL4S
>>656,657、色々ヒントを頂きましたので
container windowsをチェックする方法でプロトタイプを作ってみました。
が、make new aliasのところでエラーになってしまいますねん。
repeat内のxがcontainer window of folder "システムフォルダ" of startup diskみたいに
container window ofがついてるのがマズイようなので、
stringに変換してデリミタで削ろうと思ったんですが、string変換でエラーになって出来ません。
あともう一歩。。。
----------------------------
tell application "Finder"
--repeat
set check1 to container windows
delay 5
set check2 to container windows
if check2 is not check1 then
repeat with x in check2
if x is not in check1 then
make new alias folder to x at desktop
end if
end repeat
end if
--end repeat
end tell
661名称未設定:03/04/07 07:11 ID:rPUi7FBn
>>660
item of (container window of...で folder... が得られます。
常駐型に関しては>>623の on idle を参考にして下さい。
662653:03/04/07 22:53 ID:ybT/k9AJ
>>661, おかげさまで出来ましたよぅ。
あとは記憶数制限をつければ完璧。
ただ、ちょっと重いかも。。。

property check2 : {}

on idle
tell application "Finder"
set check1 to container windows
end tell
if check1 is not check2 then
repeat with x in check1
try
if x is not in check2 then
tell application "Finder"
set nm to name of (item of x)
if ((file nm of folder "最近使ったフォルダ" of folder "アップルメニュー" of folder "システムフォルダ" of startup disk) exists) is false then
make new alias to (item of x) at (folder "最近使ったフォルダ" of folder "アップルメニュー" of folder "システムフォルダ" of startup disk)
end if
end tell
end if
end try
end repeat
end if
set check2 to check1
return 1
end idle
663名称未設定:03/04/07 23:17 ID:wFMoad4B
軽くするにはフォルダアクションだ!(w

記憶数の制限部分だけでもフォルダアクション使ってみたら?
(最近使ったフォルダの中を監視して、ファイル数が一定数越えたら古いのから捨てる)
全部一つのスクリプトでやろうとせんでいいのよ。
664名称未設定:03/04/07 23:47 ID:ybT/k9AJ
>>663
ふぉるだあくしょんて、サパーリワカラン。
暇だったら書いてちょ(w
665名称未設定:03/04/08 13:24 ID:2D3s78GS
>>664
うーん。それが、今俺は俺で自分でずっと作ってるのが煮詰まってるから、
口だけみたいでスマンけど、ちょい無理。

Appleのサンプルが、システムフォルダの中のScriptフォルダあたりに入ってるはず。

で、OS 9だとノーマルの状態じゃあ、開いているフォルダにしか有効じゃないから、
閉じてるフォルダにも有効にする機能拡張がいるんだけど、それもちょっとURLがわからない。
(ファイルを保存してるMOが、OS Xじゃ開けないのだ。)スマソ。
666名称未設定:03/04/08 13:39 ID:Z51CmYjH
property num : 5 --項目数
property recentFolders : "System_9:Desktop Folder:test:" --エイリアスを収めるフォルダのフルパス

on opening folder theFolder
tell application "Finder"
if (count of alias file in folder recentFolders) is greater than or equal to num then
set aliasLists to every alias file in folder recentFolders
delete last item of (sort aliasLists by creation date)
end if
make new alias to theFolder at folder recentFolders
end tell
end opening folder

Finder上で開いたフォルダに対してだけなら、こんなかんじ
実用性は低いかも…
1行目変数”num”は保存するエイリアスの上限項目数
2行目はエイリアスを収めるフォルダです
うちで検証した時のパス(デスクトップに”test”というフォルダ)なんで変えて下さい
既に同じエイリアスがある場合は考えてません、エラーにはならないみたいです
フォルダアクションをつけまくる作業は大変でしょうけど
アイドルハンドラで重くなるよりはこちらの方行がいいかと
検証 OS9.1 AppleScript 1.5.5
667名称未設定:03/04/09 06:04 ID:Id248vZq
>閉じてるフォルダにも有効にする機能拡張がいるんだけど、それもちょっとURLがわからない。
これでつか?
http://files.macscripter.net/Prog_Utilities/Folder_Actions_Plus_1.1b3.hqx

でも、ディスクのエイリアスとかがアップルメニューに入ると禿げしく重くなる
気がするんでつが…大丈夫なんでしょか。
668名称未設定:03/04/09 06:38 ID:Xpfx6klH
>>667
ソレだ!
スマソ。自分じゃ使った事無いのだ。

ディスクのエイリアスをアップルメニューに入れるのは、もともとあまり推奨される使い方じゃないぞよ。
アップルメニューオプションの初期設定が死にませんか?
アプリのエイリアスを整理したフォルダとか、特定のフォルダのエイリアスにしとった方がいいと思うけど。
あと、アップルメニューオプションをオフにして、代わりにFinderPopでアップルメニューのサブメニューを実現させる。
669初心者です。よろしくお願いします。:03/04/11 04:13 ID:rU9p9J7s
3日前からはじめる決意を固めたアップルスクリプトの超初心者です。
入門者向けのサイトを見たりして勉強してる次第であります。(田舎なもんで書籍が
無いのです・・・)
初心者スレでもないのに不躾とは思いますが、わからないことがあったので質問させ
ていただきます。
たとえばdesktopのAというフォルダに1〜31(つまり日付ですね)までのフォルダが
あって、それぞれの中に数字3桁のフォルダが複数あったとします。
で、それをダイアログで入力させてファイルをデスクトップに取り出す、というのを
やってみようと思い、自分なりに書いてみたんですがダメでした。
全く知識も無く書いたんで、めちゃくちゃ恥ずかしいんですがこんなかんじです。
ちなみにOS 9を使ってます。

set DialogReply to (display dialog "日付を入力して下さい。" buttons {"OK"} default button 1 default answer "")
set hizuke to text returned of DialogReply
set DialogReply to (display dialog "3桁の数字を入力して下さい。" buttons {"OK"} default button 1 default answer "")
set suuji to text returned of DialogReply
tell application "Finder"
  copy folder suuji of folder hizuke of folder "A" to desktop
end tell

どこがダメなんでしょうか?
670名称未設定:03/04/11 04:17 ID:aa9aUAHM
ダメじゃないじゃん。
671名称未設定:03/04/11 04:23 ID:p0pqNUxk
copy folder suuji of folder hizuke of folder "A" of desktop to desktop
でどうだろうか。
あと、copy よりは duplicate の方が良い。
672名称未設定:03/04/11 04:27 ID:p0pqNUxk
すまん。実際に試してみたら、
copy folder suuji of folder hizuke of folder "A" to desktop
でもOKだった。

挙げられているスクリプトでOKだと思うんだが、
何か文法とは別のところに原因があるのではないか?
なるほど。
別のところに問題があると。
もう一度確認してみます。ありがとうございました。
ダメじゃないと言われてすごく嬉しいです(感涙
674名称未設定:03/04/11 05:29 ID:QasEoCOC
OS 9の一部には、バグだらけの駄目駄目AppleScriptが搭載されているが、それとは関係なさそう。。だよね。
出来ました!!
上のヤツではデスクトップのフォルダでやってますけど、実際はパーティション切ってる
OS Xのボリュームからやってたんです。
んで、書き直してデスクトップからやってみたらできました。
何か関係ありますかね?
単なる入力の間違いかなぁ・・・
今度はこれの最後に"OK""キャンセル"のボタンで繰り返すか否かってのにちゃらんげして
みます。
ゆっくり、少しずつ学んでいきたいと思ってますので、今後ともよろしくお願いします。

ありがとうございました。
出来ました!!
昨日のヤツの頭にrepeatを入れて、最後に

 set DialogReply to (display dialog "続けますか?" buttons {"続ける", "やめる"} default button 2)
 set abutton to button returned of DialogReply
 if abutton = "やめる" then
  exit repeat
 end if
end repeat

で、出来ました。
おかしいところがあるのかもしれませんが、とりあえずは動いたので感動です!
皆さんに少しでも近づけるようこれからも頑張っていきたいと思います。
677名称未設定:03/04/15 23:17 ID:svnk0FX8
OS9.2.2??????????????????
????????????????????????????????????
???^^; mount disk "HDD" ?????????????????
??????????????????????????
??????????????????????????????????
????????????????????????????
?????????????????????????
AS??????????????????????????????
????????
??????????????????????????????????
678677:03/04/15 23:21 ID:svnk0FX8
リロードしてから書いたのに・・・ごめんなさい!!

教えて下さい。アンマウント中のボリュームをマウントする
スクリプトと言うのは作れますか?
mount disk "HDD" とかやってみたんですができません。
今はエイリアスを作ってそれを呼び出しているんですが、
そうするとマウントしたボリュームの第一階層がウィンドウで開かれる為、
それを閉じる無駄な動作を入れたりして、遅いんですよね。
ディスクを作る度にエイリアスを作るのも面倒なので、
ASから直でアンマウント中のボリュームを叩けたら、と思うのですが
無理でしょうか?
具体的な用途は、アンマウント中のボリュームから起ち上げ直すためです。
679名称未設定:03/04/15 23:24 ID:4uKBwwyb
っていうかいい加減2chブラウザ使うかIE使え。
680677:03/04/15 23:26 ID:svnk0FX8
すみません。。IEにしました。
あとペーストミスしました、環境はOS9.2.2です。。。
681名称未設定:03/04/16 04:48 ID:cYNbrT/i
682山崎渉:03/04/17 15:33 ID:MF3/Dc32
(^^)
683名称未設定:03/04/17 22:32 ID:IYA+t179
文句なし
名スレ保守
684678:03/04/18 02:51 ID:UInsHpYE
>>681 レスありがとうございます。
 が、私はアンマウントではなくてマウントしたいんですね。
 DiskCopyはイメージのマウントしかできないので
ダメでした。Disk First Aidにボリュームの検証をさせるって
言う手もあるんですが、それよりだったら>>681に書いてる
今の方が早いので。。
 何かいい手はないですかねぇ。。
>>684
実は僕も会社のMacでサーバーに接続する時に同様のことで悩みました。
エイリアスのopenだとウィンドウ開いちゃうんですよね。
で、考えた揚げ句に思いついたのが、オリジナルの表示です。
これでウィンドウを開くことも無くマウントできるのですが、OS9.0以前だと何故か
エラーが出てしまいます。
ダメですか?
686684:03/04/18 03:12 ID:UInsHpYE
>>685 (゜□゜**)ソレダ!!!!!

 やった〜ありがとうございます!!!
オリジナルを表示ってなんだっけかな〜Finder見てみます。
あ、でもどっちにしてもエイリアスが必要なのか。
ま、高速化できるからいいや! よく思い付きましたね〜尊敬!です!
ありがとうございました!!
687名称未設定:03/04/18 03:29 ID:wAWd4NiW
ネットワークあんまり使ってないのでアレだけど、

マウントしたいサーバーのエイリアスじゃなくて、

そのサーバーの中のファイルのエイリアスだったらどうなるの?

それだったら、開いた後勝手に閉じる(終了する)AppleScriptのエイリアスでも使えば。。。

だめ?
688名称未設定:03/04/18 03:48 ID:KSICkC2p
>>685
685さん、それいい考え!
さっそくそれを使ってAS書いてみました。
…とはいってもオリジナルを表示するだけなんで楽なもんです。

tell application "Finder"
activate
try
reveal original item of alias "SCSI_HD:"
end try
end tell

この場合、マウントしたいボリュームがSCSI_HDです。
tryで囲んでいるのはSCSI_HDがエイリアスではないため、
エラー表示を無視して処理をするためのものです。
作成時の注意として、マウントしたいボリュームをマウントさせた状態で
使うだけでしょうか。
687さんの考えのように、ずっと mount volume でなんとか出来ないかと、
なぜかAppleTalk関連をいぢってました。
689688:03/04/18 04:10 ID:KSICkC2p
自己レス

activate いらないっすね。
> 作成時の注意として、マウントしたいボリュームをマウントさせた状態で
> コンパイルするだけでしょうか。
が正しいですね。使うってなんだよ…
687さんの考えってのも全然読んでないです。ゴメンなさい

>>687
687さんが言っておられるのはこんな感じなんでしょうが、
tell application "Finder"
open file "SCSI_HD" of disk "data" --data の中にある SCSI_HD のエイリアスを開いている
close container window of disk "SCSI_HD" --開いた SCSI_HD のウインドウのクローズ
end tell
マウント→ウインドウオープン→ウインドウクローズより、
マウント→(エラー部分とばし)の方が速いです。
アプリケーションのファイルなどなら、起動時間があったりしてなおさら
時間がかかると思います。

690687:03/04/18 10:25 ID:wAWd4NiW
すまソ。目的とかもいまいち飲み込めないままに思いつきをてきとーに書いただけでした。
>>686-688
お役に立てたようで嬉しいです。
まだまだ若輩ものですので、これからも宜しくお願いします。
692名称未設定:03/04/20 00:18 ID:le35miiy
>>689
それを作るとノートンが…漏れだけ?つーかウイルスソースだったらマンセー
693山崎渉:03/04/20 04:00 ID:ZHDoPsUy
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
694名称未設定:03/04/20 05:41 ID:5qUJ7i2v
こちらも良スレ保守
695名称未設定:03/04/21 22:22 ID:+gyF6DWQ
StuffItCommands最強。
696名称未設定:03/04/23 00:10 ID:NAJfdmef
スクリプト編集プログラムに落ち癖がついた。
Mac起動したてなら問題なくつかえるのにしばらくたってから
エディタ立ち上げて、ファイル開いたりしようとすると
タイプ2とか3エラーで落ちる・・これはなんのせいなんだろう?
697名称未設定:03/04/23 05:43 ID:ydkXTlCN
いれ直してみたり初期設定捨ててみたりキャッシュ消してみたり(OS X)したら?
698名称未設定:03/04/23 05:45 ID:ydkXTlCN
二重カキコスマソ。
わざとじゃないのよ、MacMoeが落ちただけ。
699名称未設定:03/04/23 05:48 ID:ydkXTlCN
二重カキコしてないじゃん・・・
あぁ、みっともない。自作自演してるみたいだ。

てことで、逝ってきます。
700名称未設定:03/04/23 10:09 ID:OeccxiX7
iTuneが再生しているMP3のパス(絶対、相対)を取得するAppleScriptってありませんか?
Appleのサイトで見つけた「iTunes Scripts Mac OS 9」には含まれていませんでした。
701名称未設定:03/04/23 10:38 ID:yagsw7xz
>>700
今OS XなんでOS 9の場合の検証はしてないが
10.2 iTunes3では
location of current track
これでいけたよ
702700:03/04/23 11:05 ID:OeccxiX7
>>701
ありがとうございます!
MP3の入っているフォルダ名を取得することも可能でしょうか?
703700:03/04/23 11:06 ID:OeccxiX7
すみません、間違えました。
× フォルダ名
○ フォルダのパス
704700:03/04/23 11:33 ID:OeccxiX7
: で切って出来ました。
705700:03/04/24 12:51 ID:ooCRx2qp
AppleScript → CapureAE → REALbasic
と、移植してるのですが REALbasic で動いてくれません。助けて下さい。以下ソースです。

Function GetCurrentTrackPath() As String
Dim ae As AppleEvent
Dim obj As AppleEventObjectSpecifier

ae = NewAppleEvent( "core", "getd", iTunes )
obj = GetPropertyObjectDescriptor( obj, "pLoc" )
ae.ObjectSpecifierParam("----") = GetPropertyObjectDescriptor( nil, "pTrk" )

//---CaputureAE---//
//Process("iTunes").SendAE "core,getd,'----':obj
//{form:prop, want:type(prop), seld:type(pLoc), from:obj
//{form:prop, want:type(prop), seld:type(pTrk), from:'null'()}}, &csig:magn(ヌ00010000ネ)"

If ae.Send Then
If ae.ReplyDescList <> Nil Then
Return ae.ReplyDescList.StringItem(1)
End If
Else
//AEError
End If
End Function
706696:03/04/25 00:48 ID:QBY/2sad
だぁめだー!わかんね
>697もやったしコンフリクトも完全ではないけど検証してみたけど
どうにも原因不明・・
しかもスクリプト編集プログラムだけじゃなくてSmileでもダメとは…
707名称未設定:03/04/25 06:00 ID:I40kUyrw
>>706
まず初心者質問スレの>>1を音読どぞ。
コンフリクトの検証って事は?OS 9?
AppleScriptと何かの機能拡張がぶつかってるか、OSAのコンフリクト?があるか、
まあわしらにわかる事ではないわな。
地味に検証してがんばっちくり。
708名称未設定:03/04/25 07:57 ID:As18JZdu
>>705
RBは全く使ったことが無いがtrack propertyのlocation propertyを得るなら
ae.ObjectSpecifierParam("----") =
GetPropertyObjectDescriptor(GetPropertyObjectDescriptor(nil,"pTrk"),"pLoc")
でしょう。
709名称未設定:03/04/30 04:43 ID:k+NsLCS1
良スレ保守
710名称未設定:03/05/05 17:47 ID:UDJliVNW
property ResStr : "保守"
711名称未設定:03/05/06 01:23 ID:y/x1cFsw
たまにはage
712名称未設定:03/05/06 02:57 ID:eNiTjkpe
だれかiTunes4関係とかでおもろいの知らない?
713名称未設定:03/05/06 03:02 ID:Pvtawfpx
環境設定の出力装置の切り替えってスクリプトでできるんだろうか?
「内蔵」と「USB」があって、よく間違えてしまうし面倒。
714名称未設定:03/05/11 04:01 ID:4QgHxJKn
どなたか、フォルダ中のQuicktimeムービー全てを
連続で別名で保存するアップルスクリプトを激しくお願いします
1つ保存完了するのを待ってまた次・・というのが面倒で・・
715名称未設定:03/05/11 04:39 ID:ncP+7G9Z
別名で保存??
どういう事がしたいのかもう少し説明きぼんぬ。
716名称未設定:03/05/11 07:22 ID:4QgHxJKn
>>715
同一の元ファイルを参照した細切れ動画が多数あって、
元ファイルがないと再生時エラーが出てしまいますよね
その他不便なので、全てのファイルを独立再生形式で保存し直したいのです。

複数を同時に独立再生形式で保存することができないし
その間他の作業もできないので(ダイアログが全面に出る)
これを1発で、あわよくば寝ているときにやらせたい、という訳です。
素材はエロ動画です。
あ、OSは9です。。
717名称未設定:03/05/11 12:18 ID:9pnbhL2O
>>716
>素材はエロ動画です

という事は、MPEG-1か。
ならばQT Playerで独立再生形式で保存するなんて事はやめとけ。
それで出来上がるトンチンカンなファイルは、
QuickTime Playerのみで再生できる完全俺様仕様。

悪いことは言わん。
MPEG-1ファイルは、ダウソしたまんまの状態で保存しときなさい。
718名称未設定:03/05/11 17:53 ID:4QgHxJKn
>>717
元ネタはいろんなエロDVDで
それを自エンコしたMotion JPEGのQTムービーです。
ファイルは自分しか見ないので、mpegよりは
切り張りの編集が楽なQTムービーのほうがいいので。。
719名称未設定:03/05/11 18:03 ID:9mtQJhCV
>>718
Appleが配布してるサンプルスクリプトは?
希望のものがあったかどうか覚えてないけど調べてみたらどうかしら
720名称未設定:03/05/13 06:48 ID:ZhUng99b
>>719
レスありがとうございます。なんとか作ってみました。。
(beforeフォルダの動画をafterフォルダへ新規保存)

tell application "Finder"
activate
select file "001.mov" of folder "before" of disk "HDD"
open selection
end tell
tell application "QuickTime Player"
activate
with timeout of 600 seconds
save movie "001.mov" in file "HDD:after:001.mov" as self contained
end timeout
close movie "001.mov" saving no
end tell

とりあえず「記録」コマンドで出来上がったスクリプトに、
タイムアウトのエラーが出ないように
with timeout of 〜を加え(応答待ち時間無制限て出来るのでしょうか?)、
上の「001.mov」の文字(数字)を002、003以下略と変えた命令文をひたすらつけ足した
この上なくブサイクなApplescriptを作ってみたら、一応動作しました。

でもこれだと他のファイルに全く応用が出来ませんので、
選択ファイルもしくはフォルダのドラッグドロップで
複数ファイルを一括新規保存するスクリプトのヒントだけでも
ご教授いただけないでしょうか。。
Photoshopのバッチみたいなやつを。。

ttp://member.nifty.ne.jp/junnama/enjoyscript/applescript26.html
ここらあたりが参考になるっぽいのですが、
よく分かりませんです。
721名称未設定:03/05/15 18:35 ID:TJWFqPf3
iMovieでテレビを予約録画したいんですが、
スクリプトがわかりません。

set sttDate to date "2003年 5月 15日 木曜日 6:23:30 PM"
set endDate to date "2003年 5月 15日 木曜日 6:23:50 PM"

set isRecFlag to false

repeat until ((current date) > endDate)
if ((current date) > sttDate) then
if (isRecFlag = false) then
tell application "iMovie" to start recording
set isRecFlag to true
end if
end if
end repeat

tell application "iMovie" to stop recording

他のソフトのサンプルスクリプトを参考にしてるので、
recordingでエラーになり実行できません。
読み込みの命令を何と記述すればよいか分かれば何とか
なるの思うですが。
またもや壁にぶつかってしまいました。
folderAというフォルダ内にあるファイルのうち、修正日から5日経過したものをゴミ箱へ、
というのをやりたいのですが、3つか4つ目の処理をしたところで、修正日を取得出来ない
旨エラーが出てしまいます。
こんなかんじです。

set fivedaysago to day of ((current date) + 5 * days)
tell application "Finder"
   repeat with fileA in folder "folderA"
     set mdfdate to modification date of fileA
     set dayofmdf to day of mdfdate
     if fivedaysago = dayofmdf then
       delete fileA
     end if
   end repeat
end tell

自分なりに調べたのですが、解決法がわからないです。
是非ともご教授下さいませ。
723名称未設定:03/05/17 03:15 ID:NHELwWBv
>>721

それにしても平気でマルチする人多いなあ。

あるアプリケーションを使ったスクリプトを書く時は、そのアプリのアイコンを
『スクリプトエディタ』のアイコンにドラッグ&ドロップしてやると
そのアプリで使える命令などがわかる。
これを最初に見なければどうしようもない。
(ただしOS XではGUIを操作する方法が用意されてるのでこの用語以外の事もできるけど)

この用語はアプリのバージョンが違えば変わる事がある。
うちのOS X 10.2.6に入っている iMovie 3.0.2では
用語には『DoCommand』の一語しかなかった。しかも説明が書いてない。
Googleで検索してもそれらしいものはひっかからない。

ようするに、このソフトはスクリプトに対応してるとは言いがたい。
GUI Scriptingでどうにかするっきゃなさそうやね。
724名称未設定:03/05/17 03:29 ID:SzyYKrJF
>>722
tell application "Finder"
set today to date "00:00:00" of (current date)
delete (every file in folder tmpfolder whose ツ
creation date < today)
end tell
うちではこんな感じでやってるけど
上の(current date)は((current date) + 5 * days) にすればいいかも。
day of 〜とかは必要なんかな?
時間まで正確に5日でないとダメすか?
725名称未設定:03/05/17 03:35 ID:NHELwWBv
>>722

OS書いてね。

こっちはOS X 10.2.6です。

おおむね間違い無いように思います。
> repeat with fileA in folder "folderA"
この部分でちゃんと場所が示せてないだけじゃないの?
実験で僕が書いたのは
> repeat with finder_item_A in folder "folderA" of desktop
desktopはデスクトップを指し示す予約語(最初からAppleScriptで用意されてる)
こういうのを使わないなら
>....of folder "ほにゃらら" of.....of desk "なんとかHD"
という風にデスクまで入れてちゃんと場所を書かないと駄目。


それから、
>if fivedaysago = dayofmdf then
の部分は
>if dayofmdf is fivedaysago then
でもいいけどまあどうでもいい。

そして、わりと根本的な問題として、
>set fivedaysago to day of ((current date) + 5 * days)

>set fivedaysago to day of ((current date) - 5 * days)
の書き間違いでしょ?
>>724
ありがとうございます!!
なるほど、こういうふうに書けばいいんですね。
なんとなくdateの扱いかたがわかったような気がします。
それにしてもたしかにday of 〜 っていらないですね。なんでこうしたんだろ・・・
しかも - 5 * days とすべきところが + 5 * days になってるし・・・
あと、すいません。後学のために質問させていただきたいのですが、上記の repeat with 〜
はあんなかんじであってるでしょうか?
エラーが出るんでやり方がまずいのかなぁ、と思いまして。

何にしてもこれで今日は安眠できそうです。
ありがとうございました。
727名称未設定:03/05/17 04:01 ID:NHELwWBv
>>722
あー、あともう一個根本的な事。>>724さんの書いてる事と重なるけど、
今あなたのスクリプトはうまく日付けの部分を取り出してるけど、
これだと月をまたいだときの動作がおかしくなるでしょ?
date型のままで不等号を使って大小を比較した方がいいんじゃないの?

OS XだとFinderのフィルタが働かないみたいだから、結局以下のような感じか。

set fivedaysago to ((current date) - 5 * days)
tell application "Finder"
repeat with finderItemA in folder "folderA" of desktop
if modification date of finderItemA <= fivedaysago then
delete finderItemA
else
log "5日前より新しい"
end if
end repeat
end tell
>>725
すいませんOS忘れてました・・・9.2.2です。
desktop上のフォルダでやったのであのように書いたのですが、desktop上の場合でも
〜 of desktop とちゃんと指定したほうがいいんですね。勉強になります。

>そして、わりと根本的な問題として、
>>set fivedaysago to day of ((current date) + 5 * days)
>は
>>set fivedaysago to day of ((current date) - 5 * days)
>の書き間違いでしょ?

その通りです・・・すいません・・・
いまOS Xで書き込んでるので、明日またパスの指定をきちんとして検証してみます。
実際には>>724さんのやり方の方が処理速そうなんで、こっちでいくと思いますけど(w

ご指摘ありがとうござました。
>>727
day of ((current date) - 5 * days)
これだと1日の場合 - 4 とかになっちゃうんですかね?
このへんも明日検証してみたいと思います。
重ね重ねご指摘ありがとうございました。
730名称未設定:03/05/17 07:53 ID:NHELwWBv
>>728
OS XだとFinderのフィルタが使えない
731名称未設定:03/05/17 14:56 ID:Xfu9Jez1

いろんなとこ見てるんだね。
あきらめれ。ってことですね。
そうじゃないかと思ってたけど、やっぱりそうでしたか。
732名称未設定:03/05/17 16:14 ID:NHELwWBv
>>731

そんなカキコじゃだれかわからん。w
これであきらめる奴ならあきらめれ。>>721
今後のスクリプト作成に結びつくように基礎的な事のアドバイスを書いたまで。
やりたい事がある時だけ即席で解決策を他人に出してもらおうとする
『教えてクン』が増えるとイヤなので。

サンプル見て改造してみるくらいのチャレンジ精神があるなら見込みがあるかと思ったが。
733名称未設定:03/05/17 17:40 ID:wL3Toxj+
>>729,731、これ参考にして頑張りぃ

set A to date "2003年 2月 27日 木曜日 4:38:31 AM"
set B to date "2003年 3月 5日 水曜日 4:38:31 AM"

if (B - A) is greater than 5 * days then display dialog "賞味期限切れの恋"
734名称未設定:03/05/17 18:02 ID:NHELwWBv
>>733

>>731>>721だよ。たぶん。
735733:03/05/17 20:01 ID:wL3Toxj+
>>734
う、そうなのか。じゃ>>731はGUI Scriptingでがんがれ(w
やってみました。
で、結果なんですが、〜 of desktop とパスを指定しても同じでした。
やり方としては、>>722での "folderA" 内に if に当てはまるファイルを6つくらい
入れておいて実行。ってかんじです。
3つめまではゴミ箱へ行くのですが、4つめのところでエラーが出ました。
なんでだろ・・・
もひとつの day of ((current date) - 5 * days) ですが、今現在の日付(5/18)から、
set A to day of ((current date) - 18 * days) としてみたところ、30と表示しました。
こっちは問題ないみたいです。
Finderのフィルタっていうのはわからないです、すいません・・・
あ、OSはともに9.2.2です。

>>733
それを見たとき、日付同士の引き算?とか思ったのですが、set C to (A - B) としてみて
納得いたしました。
こんなんも出来るんですねぇ、なるほど。
試しに+だとどうなるかと思ってやってみたらエラーが出ました(w
で、これを日数で出したい時は / 86400 とかじゃないと駄目なんでしょうか?
day of (B - A) では駄目だったもので。
あぁ、そっか day は日付であって日数じゃないからか、なるほど。
と、書き込んでる途中で気づきました。
まだデータについてきちんと理解できてないですね・・・

ともかくおかげで非常に勉強になりました。
>>734さん、>>735さん ありがとうございました。
>>731さん頑張って下さい。

737名称未設定:03/05/18 05:15 ID:akRa+ow/
>>736
>やり方としては、>>722での "folderA" 内に if に当てはまるファイルを6つくらい
>入れておいて実行。ってかんじです。
>3つめまではゴミ箱へ行くのですが、4つめのところでエラーが出ました。
>なんでだろ・・
ここがキーワードですな。
イベントログ見ると
get modification date of item 1 of folder "hogehoge"
の様にitem 1とインデックスで指定されてるから
3個削除したらフォルダ内に3個のファイルしかなくなって
item 4を参照できないからとまるんでは?

以下適当
set fivedaysago to day of ((current date) + 5 * days)
set delFile to {}
tell application "Finder"
--フォルダの項目をリストに保存
repeat with fileA in folder "hogehoge"
set end of delFile to fileA as alias
end repeat
--そのリストを元に削除するか調べて削除
repeat with fileA in delFile
set mdfdate to modification date of fileA
set dayofmdf to day of mdfdate
if true or fivedaysago = dayofmdf then
display dialog fileA as string
delete fileA
end if
end repeat
end tell
738名称未設定:03/05/18 07:10 ID:cpgvRlRx
>>736

あれれ?>>724さんのやり方でやるんじゃなかったの?

tell app "Finder"
delete every file in folder "folderA" of desktop whose modification date is not greater than ((current date) - 5*days)
end tell

とかで行けない?(OS Xじゃフィルタが効かないので試してない)
Finderのフィルターってのは『whose なんとか is なんとか』で条件しぼるやり方の事ね。

>>737
ぐわっ、実際に捨てるとこまでやってなかったからその問題に気付かなかったよ。
ええい!こうなったら本気で作った俺様の超美麗スクリプト(ウソ)をば!!
動作確認OS X 10.2.6

set fivedaysago to ((current date) - 5 * days)
set gomiList to {}
tell application "Finder"
repeat with finderItemA in folder "folderA" of desktop
if modification date of finderItemA イ fivedaysago then
set end of gomiList to finderItemA
else
log "5日前より新しい"--スクリプトエディタから実行するとイベントログに出ます
end if
end repeat
delete every item of gomiList
end tell
739名称未設定:03/05/18 07:14 ID:cpgvRlRx
げ!化けた。すまん。
>>738の半角カタカナで『イ』ってなってるとこは
『is not greater than』でよろしく。
ちなみにスクリプトエディタのスタイル指定で演算子のとこは英文フォントにしておいた方が
ちゃんと不等号などの記号が出て良いです。
>>737
レスありがとうございます。
つまり、"folderA" 内に、A.B.C.D.E.F の6つのファイルがあった場合、それぞれ
item 1 〜 6 ですよね。んで、A が if に当てはまって削除されたら、残りの
ファイルが item 2 〜 でなくて、item 1 〜 になるからってことですよね?
エラーの内容が item 4 の修正日が取得出来ないことをいってるのはわかったん
ですが、こんなふうになってるなんて見当もつきませんでした。
勉強になりますです。

>>738
レスありがとうございます。
はい。>>724さんのを使わせてもらおうと思ってるのですが、後学の為にも原因
を知りたかったもので。
こんなことでお手を患わせてすいません・・・

>Finderのフィルターってのは『whose なんとか is なんとか』で条件しぼるやり方の事ね。
ふむふむ。これってOS X じゃ使えないんですか。
OS X は普段あまり使わないので知りませんでした。
そのうち使えるようになったりしないですかね?

で、書いていただいたスクリプトなんですが、>>737さんのはまず始めにリスト
を作成して、その後そのリストから該当ファイルを選んで削除、ってかんじで、
>>738さんのはリストを作成すると同時に該当ファイルを選別してるんですよね?
で、最後にまとめて削除。
つまり削除する前にリストを作成してしまうと、件のエラーは回避できる、と。

んー、勉強不足を改めて痛感いたしました。なるべく自分で解決するようにはして
いるのですが、まだまだ努力せねばいけませんね。
せめてエラーの原因くらい特定できるようにならないと・・・
でも今回は伺うことでいろいろと参考になり本当によかったです。

皆さんどうもありがとうございました。
741名称未設定:03/05/19 20:21 ID:SMcnsift
OS9.2.2のデスクトップに、AppleTalk経由のOS7.6.1のディスクを
マウント&アンマウントする、2つのスクリプトアプリケーションがあります。
次レスに乗せますが、これを、1つに合体させたいのですが、どうすればいいでしょうか?

3つの状態に対応させようとしてるんですが、
【a.ATalkがオフの時 →ATalkをオンにし、ディスクをマウントする】
【b.ATalkがオンでディスク未マウントの時 →ディスクをマウントする】
【c.ATalkがオンでディスクマウント済の時 →ディスクを片付けて、ATalkを切る】
条件分岐がFinderとネ設定スクリプトにまたがっていて、しかも、
tell〜end tellの中に入れられないmount volumeもあるので、
tell appをどう入れ子にすればいいのかさっぱりです。
742名称未設定:03/05/19 20:22 ID:SMcnsift
【1つめ,ATalkがオフならオンにし、ディスクをマウントするスクリプトapp】
tell application "ネットワーク設定スクリプト"
open database \r begin transaction --(\rは改行してあります)
set ATflg to AppleTalk active of AppleTalk options 1
if ATflg = false then
set AppleTalk active of AppleTalk options 1 to true
end if
end transaction \r close database
quit
end tell
mount volume "ディスク名" on server "サーバ名" as user name "ユーザ名" with password "パスワード"

【2つめ,ディスクがあったら片づけて、ATalkを切るスクリプトapp】
tell application "Finder"
activate
if exists disk "ディスク名" then put away disk "ディスク名"
end tell
tell application "ネットワーク設定スクリプト"
open database \r begin transaction
set AppleTalk active of AppleTalk options 1 to false
end transaction \r close database
quit
end tell
743名称未設定:03/05/19 21:27 ID:vmt3O0zc
tell ネ設定
 if ATがON
  tell Finder
   if ディスクあり
    【c】
   else
    【b】
   end
  end
 else
  【a】
 end
end

mount volumeがtellブロックに入れられないってのがわからんのだが
744名称未設定:03/05/20 08:04 ID:eQz9GLNN
>>743
mount volumeは、「標準機能追加」モジュールの命令文らしいです。
31行のが作れました。今テスト中です。
ありがとうございました。
745川崎くん ◆N3i.Qu1SoY :03/05/21 11:59 ID:XJNOUdPo
クラシック環境のAppletで、
特定のアプリケーションで開きたいときにはどうしたらいいのでしょうか?

on open DropList
tell application "Finder"
open every item of DropList
end tell
end open

これじゃうまくいきません。
746川崎くん ◆N3i.Qu1SoY :03/05/21 12:01 ID:XJNOUdPo
on open DropList
tell application "Finder"
open every item of DropList with application "Photoshop"
end tell
end open

の間違いでした。
よろしく添削お願いします。
747名称未設定:03/05/21 12:17 ID:uUhzwRXk
>>746

Finderをスクリプト編集プログラムにドラッグ&ドロップして
用語辞書の『Open』を見るとよかったかもしれませんね。
(おれはAppleScriptリファレンスで調べてますが)

on open drpList
tell app "Finder"
open every item of selection using path to app "Photoshop"
end tell
end open

でできませんか?

目的がわからないけど、ドラッグ&ドロップでアプリケーション指定で開くランチャーには
『Drop Reception』がありますよ。
ttp://www.din.or.jp/~abu/DropReception/
748川崎くん ◆N3i.Qu1SoY :03/05/21 17:09 ID:XJNOUdPo
>>747
サンスコです。自社開発の画像取り込みソフトで、
コンパクトフラッシュのアイコンをドロップすると
自動的に特定のフォルダに取り込み後に
人の名前と日付を元に連番でファイル名を変更して、
さらにサムネイルをつけた後にファイルをロックして
コンパクトフラッシュの該当ファイルを削除したいだけなのです。
一度にできるのはやっぱりアップルスクリプト(+サムネイル付加専用アプリ)かなと思って開発中です。
(サムネイルを付加する目的には
Graphic Converterなどのアップルスクリプトアウェアのアプリを
直接制御してもいいのですが、よくわからなくて)

やってみます。
749名称未設定:03/05/22 04:12 ID:sCwquOVH
>>748
>サンスコです。自社開発の画像取り込みソフトで、
川崎クンって、そういう仕事してたのね。
750山崎渉:03/05/22 04:22 ID:wmfA4iPb
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
751名称未設定:03/05/22 18:35 ID:bl5GlxTl
セレクタでプリンタを切り替えるスクリプトは可能でしょうか?
もし可能であれば簡単でいいので手本を見せていただきたいのですが。
752名称未設定:03/05/22 22:23 ID:bh70mI0S
>>751
OSAXを使わないとできなかったと思います
こちらのGTQ Scripting Libraryのset printer toです
http://osaxen.com/gtq_scripting_library.html
使い方は簡単で
set printer to "プリンタ名"
です
753あぼーん:あぼーん
あぼーん
754名称未設定:03/05/31 01:49 ID:ytmAccXW
補習
755Untitled:03/06/01 03:42 ID:m+EzVvpX
複数のテキストファイルから1行目だけを
集めるドロップレットを作ったのですが、
ドロップレットの場所をデスクトップから
他のフォルダに移すとエラーで使えなくなります。
どなたか、何が問題なのか教えてください。

on open droppedItem
tell application "Jedit4"
activate
make new document
set newfilename to name of result
repeat with aFile in droppedItem
--set numString to "1"
set allInfo to info for aFile
if allInfo's file type is "TEXT" then
open aFile
activate
set para1 to paragraph 1 of document 1
insert para1 at end of document newfilename
close document 1 saving no
--set numString to ((numString as integer) + 1) as text
end if
end repeat
end tell
end open
756名称未設定:03/06/01 10:07 ID:JN6U+JD1
>>755
うちで試してみたけどエラーでませんでした
エラーメッセージはなんと言ってきますか?
場所を移動させたという以外の原因は考えられませんか?
うちの環境は
OS 9.1 AppleScript 1.5.5 Jedit4.0.5 です
757Untitled:03/06/01 14:32 ID:m+EzVvpX
OSX 10.2.6 ScriptEditor 1.9です。
Could not run the script "Collect title-paragraph" because of a program error.
-1408
editボタンを押すと、
Couid not run a script editor because of a disk error.
-38とでます。
スクリプトエディターのディスクエラーって?なんでしょう...。
758名称未設定:03/06/01 15:10 ID:KwFf8yXY
とりあえず、エラーの有る辺りのスクリプトが分からないとバグ取りのお手伝いは出来ないような。
つか、もしかして、エラーの意味を知りたいだけとか?
759Untitled:03/06/01 16:29 ID:m+EzVvpX
上の上がそうです。どうでしょう?
760名称未設定:03/06/01 17:07 ID:sEzQ44eT
>>759
Jeditのバグじゃない?
Jedit使わずに同じこと試してみてわ?
というわけで作りました
使い方は同じ、デスクトップ上に
Pickup_Line_1.txtという名前のJedit書類ができるので
実行後開いて
うまくいったらJeditのバグ、バージョンアップとか考えたら
761760(つづき):03/06/01 17:08 ID:sEzQ44eT
on open droppedItem
tell application "Finder" to set newText to make new file at desktop with properties {name:"Pickup_Line_1.txt", creator type:"JED3"}
set lineList to {}
repeat with theText in droppedItem
set openedTheText to open for access theText
try
set theLine to read openedTheText until return
on error
close access openedTheText
end try
close access openedTheText
set end of lineList to theLine
end repeat
set outText to lineList as string
set openedNewText to open for access newText as alias with write permission
try
write outText to openedNewText
on error
close access openedNewText
end try
close access openedNewText
end open
762Untitled:03/06/01 21:23 ID:m+EzVvpX
760の方、ありがとうございます。
Jeditは最新版を使っています。
作っていただいたドロップレットも、場所を移動すると
エラーが出て使えなくなっちゃいます。
デスクトップに置いてあるフォルダーに入れただけなんですけどね...。
OS X特有の問題でしょうか?
でも、作っていただいたスクリプトのほうが
実行速度が10倍ぐらい早いので驚きました!
使わせていただきます...。
763名称未設定:03/06/01 23:15 ID:sEzQ44eT
>>762
うちでは移動させてもエラー出ませんよ
同じOS 10.26ですけど
お使いの環境特有の症状じゃないかなあ
原因はわからんけど
764名称未設定:03/06/03 21:57 ID:39vE1GTz
suだのsudoだの
do shell script
するときってパスワードはどうやって渡せばいいんですか?
os 10.2です
誰か教えて下さい。
765名称未設定:03/06/03 22:32 ID:XPgOdKjc
766名称未設定:03/06/03 22:38 ID:39vE1GTz
thx
767名称未設定:03/06/04 05:31 ID:Bb6W+8yj
>>762-763

パスに日本語が含まれるかどうかは関係なし?
デスクトップに置いてあるフォルダって奴の名前は?半角英数ですかい?
あと、たぶんPerlつこたがはやいで。
768Untitled:03/06/04 22:03 ID:69n2QhTb
いろいろ実験して、ついに原因がわかりました!

テキストファイルの入ったフォルダとこのドロップレットは、
デスクトップに置いてある1つのフォルダに"一緒"に入れて
使おうとするとエラーになるので、
このデスクトップのフォルダが壊れているのかと
思ったのですが、いろいろ実験した結果、
この同じフォルダに "Contentsという名前のフォルダ"があると、
エラーになります。なんかの予約名なのでしょうか?


実行スピードについては、AppleScriptだし、
こんなモンかなと思っていました。
他に自分が作ったヤツで、複数のテキストファイルを、
ヘッダーを挿入しながら連結するドロップレットがあるんですが、
処理を目で追えるほど低速です...。わかりやすくていいんですけど...。
Jeditを通すからいけないんですよね...。
769名称未設定:03/06/11 01:29 ID:Hpu5+DGi
ScriptEditor2.0Betaを入れみました。
ちょっとクールになっててかっこいいです。
770名称未設定:03/06/11 03:26 ID:HkwxRgio
>>769
>ScriptEditor2.0Beta
こんなものがあったのか。
さっそくダウンロード
検索できるのがいい!

しかし、かなりまえからあったのか。
http://www.apple.com/downloads/macosx/apple/applescripteditor.html
771名称未設定:03/06/13 00:28 ID:38t7hdFg
にしてもプロジェクトビルダーの気合いの入りように比べたらどうだ
もうちょっと便利機能載せて欲しいと思うが
772名称未設定:03/06/13 00:45 ID:KW/fYKS7
ProjectBuilderのように重くはなってもらいたくないので、
この方向でおながいしたいのだが、これはど

まあ、Scriptableになってほしいな。
773名称未設定:03/06/13 03:09 ID:wY2puRNx
β使った感想

フォントの設定がセーブされないようなので
起動時に設定しないといけないのでめんどくさい。
そのままだと日本語が化ける。
コンパイルできないのもありました。
あんまり、つかえないなぁ
774名称未設定:03/06/13 19:02 ID:lw8Rfu+J
display dialog "にほんご"

が化けちゃいますよね、実行させると。
775名称未設定:03/06/13 22:07 ID:N9OrJqgU
>>774
ウニコードにシル
776名称未設定:03/06/14 02:52 ID:IzO8RyFi
こんなBeta版に日本語が使えることを望んじゃだめですよ。
777ホセ、ムーニョス、デ、サントス、ココ、アリスタチア、エッセンブラ、リ、セスティオール、ロベルト:03/06/14 03:55 ID:L7//82Nn
イエ〜〜〜〜〜〜〜〜〜〜〜


7 7 7 7   7   7    7 7 7  
778名称未設定:03/06/14 20:58 ID:IXeYoJcl
β結局捨てました・・・
Smileはカーソルがクリックした位置に入らないから
捨てたしなぁ。
みんな何で書いてるの?
779名称未設定:03/06/14 21:59 ID:fBMSR/9K
mi
780名称未設定:03/06/14 22:20 ID:dgODXEac
ミミカキエディット
781名称未設定:03/06/14 23:01 ID:IXeYoJcl
すでにあるコンパイル済みスクリプトをmiで開いても空っぽなので、
コンパイル済みスクリプトから編集できないのかとスルーしてたけど、
miで作成保存するとmiで保存できるコンパイル済みスクリプトに
なるのか。知らなかったよ・・・。
miでつくったのはScript Editorでも編集できるんだね。
osacompileの-d、-rあたりの違いなのかな。
これからmiで行ってみます、情報サンクス
OS X 10.2.6
782名称未設定:03/06/14 23:03 ID:IXeYoJcl
>>781
>miで保存できるコンパイル済みスクリプトに
「編集できる」でした
783luc:03/06/14 23:06 ID:IzO8RyFi
AppleScriptとVectorScriptを組み合わせて
VectorWorks図面をいじりたいんですけど、
AppleScriptからの変数をVectorScriptにわたせますでしょうか?
VectorWorksってDo Scriptしかつかえないんですけど...。
784名称未設定:03/06/15 01:32 ID:F8YfMQ59
VectorScriptなんて初耳な言語だけど
テキストファイルから情報を読み取る機能くらいあるんでしょ。
だったらファイル経由で情報をやり取りすれば宜し。
785luc:03/06/15 17:55 ID:3c4eSH5i
複数のファイルの図面番号を一気に連番に書き換えるスクリプトを
作りたいんです。
VectorScriptってのはVectorWorksファイル上で動く
Pascal系のスクリプト言語で、開いているその図面上のオブジェクトなら
全ていじれるんですけど、他のファイルはいじれないんです。
じゃあ、AppleScriptかってわけなんですけど...。
786名称未設定:03/06/15 18:40 ID:+xCMoQd8
クリップボード経由もだめかね

あとはApplescriptGUI
http://www.apple.com/applescript/GUI/
とかしか思いつかないな
787名称未設定:03/06/18 15:02 ID:hyoxVy2n
GUIscriptingはエラーがでますね。
UI scripting betaインスコしたけど日本語環境では駄目なのでしょうか。

788名称未設定:03/06/18 16:37 ID:rlf51n9z
ジャイアンスクリプト教えてくれ!!
789luc:03/06/19 01:22 ID:7c7d49tO
AppleScriptとVectorScriptの連携のやつ、
テキストファイル経由で出来ました。
でも、まどろっこしいやり方になりますね。
Perlとかだと環境変数にAppleScriptの変数を引き渡しできますよね。
790marvin ◆O2marvinJE :03/06/19 12:11 ID:aD7gUnE2
Netscape4.xを操作するスクリプトを書こうとしてるんですが...
window 1 と指定すると手前のウィンドウの事になると思いますが
ユニークIDで指定して操作する場合どう記述したら良いでしょうか?
791marvin ◆O2marvinJE :03/06/19 13:48 ID:aD7gUnE2
あ、window [myID]か。

792marvin ◆O2marvinJE :03/06/19 14:00 ID:aD7gUnE2
あっ、とか言って全然違うし...
こっちこっち
window {unique ID:myid}
793名称未設定:03/06/19 16:56 ID:noHvKLJY
IEなどでは、selected text やselectionなどが使えるがsafariでは使えない。
UIscriptingもいまひとつということで、どのへんが便利かは別としてこんなのを書きました。
スクリプトエディタで実行するとうまくいくんですが、コンパイルするとうまくいきません。
なぜでしょう。
--使用方法:ttp~など不完全なURLをクリップボードにコピーして実行

tell application "Safari"

set surl to the clipboard as text
if surl contains "://" then
set text item delimiters of AppleScript to "://"
set surl to text item 2 of surl
end if
set curl to "http://" & surl
open location curl
end tell
794名称未設定:03/06/19 17:34 ID:ay2vZdXf
tell application "Safari"
の次に
activate
を付け加えるとどうですか?
漏れは9erだからわからないけど…
795名称未設定:03/06/19 19:48 ID:noHvKLJY
>>794
う〜ん。駄目でしたっす。謎
796名称未設定:03/06/19 21:22 ID:J9/pl+JI
>>793
うちで試したらうまくいきましたよ
なんでかしら?、バージョン?
797名称未設定:03/06/19 21:51 ID:noHvKLJY
>>794,796
原因がわかったような。safariの表示フォントをOsakaにしてました。
その他、欧文フォント系なら大丈夫でした。(NewYorkとか)
ありがとでつ。でも、少し割り切れない。。。
798名称未設定:03/06/20 15:54 ID:JosE8XeQ
do java..の練習をしてみました。
tell application "Safari"
repeat with i from 1 to the count of documents
do JavaScript "self.moveTo(0,0);self.resizeTo(800,600)" in document i
end repeat
repeat 5 times
do JavaScript "self.moveTo(0,0)" in document 1
do JavaScript "self.moveTo(0,30)" in document 1
do JavaScript "self.moveTo(30,30)" in document 1
do JavaScript "self.moveTo(30,0)" in document 1
do JavaScript "self.moveTo(0,0)" in document 1
end repeat
open location "http://tenki.or.jp/qua/quake_2.html"
end tell
799名称未設定:03/06/25 03:22 ID:41BlJ5b2
次期アポースクリプトはどうなるんだろうか
800名称未設定:03/06/27 11:24 ID:D3xEKAE6
早くGUI Scriptingでハァハァしたい
801名称未設定:03/06/27 13:24 ID:aR+BNNVi
Windowsの方でAppleScriptに相当するものって何になるの?
単純な作業の繰り返しのときに「こういうときにAppleScriptみたいなもんが
使えたらなあ」ってオモタ

ファイル名の変更にMS-DOSプロンプトを使ってみたらファイル名が8文字
までとかなんとかで上手く出来なかった
ツール類はたくさんあるみたいだけど
802名称未設定:03/06/27 13:42 ID:XaJJBML+
Windows Scriptってのがあったように思うけどデフォルトではインストールされないし認知度も果てしなく低い
803名称未設定:03/06/27 18:20 ID:8e/bbV5m
>>801-802
Windows Script Hostというのがあります
デフォルトで入ってます
メール系のウィルスはほとんどこのWSHで書かれています
AppleScriptと比べると、とっつきにくいけど
非常に高機能という印象です
Win板に専用スレがあるしネット上にもソースに事欠かないので
調べてみては?
804名称未設定:03/06/27 18:30 ID:aR+BNNVi
>>802-803
おぉ〜、さんくすこ。全く知りませんでした
早速調べたいと思います。ありがとうございました
805名称未設定:03/06/28 22:57 ID:p98hAGtu
sayってすごい便利だと思う。
ダイアログ出さずにユーザーに簡単な情報を伝えれると言うところが。
beepだと誰が鳴らしたかわからない時があるけど
say "mosi mosi"とかわかりやすくできる。
806名称未設定:03/06/29 02:07 ID:ArsBPQWw
>>801-804
ASの入門書書いてる掌田さんが雑誌連載とか入門書とか書いてるよ。
実際の記述はVBScriptとか使う事になるのかな。
807名称未設定:03/07/01 00:36 ID:BhKAuaxT
■■■■■   SuperCollider   ■■■■■
http://pc.2ch.net/test/read.cgi/mac/1056107326/l50

貼ったと思ってたら、貼って無かったようですね。
SuperColliderのスレッドです。よろしく。
ずいぶん前にフリーになりました。Θ
808名称未設定:03/07/01 19:18 ID:jZoowSD8
ScriptEditorの最新ベータ。
一見、良さげだったけど、使いもんにならんです。
809名称未設定:03/07/01 20:07 ID:c3Bq850K
>>808
どう「良さげ」で、どう「使いもんにならん」か書かないと
「ScriptEditorに開発版がある」という情報しかない。
810名称未設定:03/07/01 22:10 ID:tR2GGu9k
最新ってあるので最近新しいのが出たと思ったけど
http://www.apple.com/downloads/macosx/apple/applescripteditor.html
Post Date:12/23/02
でした。
こいつは769あたりですこし話題になってます。
811名称未設定:03/07/02 00:08 ID:Bjxsq5G8
>>810
>>808じゃないけど、>>769より後に出た新しいβ版の方だと思う。
うちでも、コンパイルしたスクリプトを開こうとしただけで落ちるし
新規に作って保存しようとしても落ちる。どうにも使えない。
多分、すでに引っ込めたんじゃなかろうか。
812名称未設定:03/07/02 02:55 ID:5tsWGodi
>>811
そんな歴史があったのか・・・
正式版はパンサー待ちかなぁ
813名称未設定:03/07/07 05:22 ID:sLUbzPnH
エディタ以前にOSのスクリプト対応度とか日本語の扱いとかこまごました問題とか
純正ソフトのSafariのAS対応とかまじめにやっちくりー。。
814名称未設定:03/07/08 20:33 ID:lx7r7Cqr
set c_path to /User/hoge/Desktop/hogehoge/test.txt
open for access c_path

とかやると、"Bad name for file" とか言われてファイルが開けないんだけど、どうしたらいいですか?
815名称未設定:03/07/08 21:05 ID:kjLLvOQy
>>814
open forの引数は文字列、Posix pathを直接扱えません。
alias形式などに直してから、渡しましょう。
816814:03/07/08 21:47 ID:EYTfFlVj
>>815
レスサンクス。上手く行きました。
817名称未設定:03/07/09 23:44 ID:wBRti3ex
AppleScript で iTunes のプレイリストのウインドウサイズを変更したいのですが、
リファレンスみてもさっぱり、サンプル集にも参考になるものがないし…。
どなたか分かる方おられませんか?

iTunes AppleScript サンプル
ttp://www.apple.com/applescript/itunes/
818名称未設定:03/07/10 01:06 ID:lipZwcYZ
>>817
tell application "iTunes"
set theWindow to window 1
--[左,上,右,下]
set bounds of theWindow to {0, 22, 988, 600}
end tell
819817:03/07/11 00:37 ID:5cEdA27w
>>818
boundsを使えばよかったんですね…
しかも window 1 でいいんすね…
Finder の形式で考えが固まってたのでわからなかったです。
ありがとうございました。
820名称未設定:03/07/12 22:07 ID:Z7pkFq5H
スクリプトの書き方について教えて下さい。

Safariで特定のページのテキストボックスに
何か文字を入力して送信(ボタンを押した動作)をさせたいと思います。
たとえば、パスワードの入力のような感じですが
やり方をどう調べていいかわからない次第です。

過去ログをSafariで検索したり、googleはみてみました。
教えて君ですみませんが、何をどう調べていいのかもわからないので
最初の一歩を踏み出す助言をお願いします。
821820:03/07/12 22:15 ID:Z7pkFq5H
いまのところ

tell application "Safari"
activate
set "q" of document 1 to "."
end tell

までしかできていません。
qという名前のついたテキストボックスにピリオドが入ればいいのですが。
822名称未設定:03/07/12 23:49 ID:4FS/pq/N
>>820
Safari自体にフォームへの自動入力があるので
可能ならそっちを使った方が楽ですが、
試したところ
tell application "Safari"
activate
do JavaScript "document.forms[0].elements['FROM'].value='ななし'" in document 1
do JavaScript "document.forms[0].elements['mail'].value='sage'" in document 1
do JavaScript "document.forms[0].elements['MESSAGE'].value='p2の書き込みウインドウに書き込みテスト'" in document 1
end tell
の様にAppleScript + JavaScirptでできました。
document.forms[0].submit()で送信もできるかもしれませんが
テストしてないのでできたら教えて下さい。
823名称未設定:03/07/13 00:06 ID:vkq7CtAe
ここは初心者が質問させてもらってもかまわないのでしょうか?
おもいっきりスレ汚しすいません。
OSは9.2.2です。
ラベルを変更させるスクリプトを作りたいのですが
あるフォルダをドロップして、そのフォルダ内にさらにフォルダが含まれていた場合に一番下の階層まで全てスクリプトを適用させたいのです。
しかし、このくり返しの部分をどうしたらよいのか見当がつきません。
どうかアドバイスを
824名称未設定:03/07/13 02:22 ID:EphejziB
>823
再帰的な構文を書けばいいんです。
825名称未設定:03/07/13 05:13 ID:p8vdflcH
on open dropitem
 tell app "Finder"
  if dropitem is folder then
   my open dropitem
  else
   --ラベルをつける
  end
 end tell
end

>>823さん、こんな感じでどうでしょう。
細かいとこは自分でしれ
826823:03/07/13 09:31 ID:LHp6c3GH
>>824
>>825
レスに感謝。

827名称未設定:03/07/13 17:36 ID:uocPRDWv
>>822
>>820さんではありませんが、参考にさせて頂き、映画総合データベースにて
タイトルで検索するスクリプトを作ってみました。"document.forms[0].submit()"でオッケーでした。

set Title to text returned of (display dialog "調べたい映画の題名は?" default answer "題名")
tell application "Safari"
activate
set URL of document 0 to "http://www.stingray-jp.com/allcinema/prog/index2.php3"
delay 15
do JavaScript "document.forms[0].elements['frmHeadSearchTxt'].value=" & "'" & Title & "'" in document 1
do JavaScript "document.forms[0].elements[1].checked =true;" in document 1
do JavaScript "document.forms[0].submit()" in document 1
end tell

ただここが重いので、delayで一旦ストップさせてますけど、
ページ全体を読み込んだかどうかの確認を取る方法がないものなんでしょうか。
828名称未設定:03/07/14 02:43 ID:LnfrfdYE
ここって、postメソッドしか受け付けないのかな?
getメソッドも受け付けるなら、ここのフォームをurlに変換して、
サハーリさんに渡せばいいような。
http://www.stingray-jp.com/allcinema/prog/?frmHeadSearchTxt=タイトル
みたいな感じで。
829827:03/07/14 11:02 ID:dM7Epc1s
>828
おお、そんな方法が!と、やってみましたが、どうもダメなようです…
とりあえず「〜allcinema/prog/?frmHeadSearchTxt=タイトル」や、
「llcinema/prog/search/?frmHeadSearchTxt=タイトル」などでは、
普通にもとの検索画面が表示されます。
830828:03/07/14 22:31 ID:crqwFDvX
set URL of document 0 to "http://www.stingray-jp.com/allcinema/prog/search.php3?%E6%A4%9C%E7%B4%A2&frmHeadSearchTxt=star&frmHeadSearchType=0&frmHeadSearchOpt1=all"
これでどうでしょう?「star」を含むタイトルを検索しています。
日本語タイトルを検索する場合はたぶんエンコードしないと逝けないでつ。
あと、これってOSX向けの話題なので、ややすれ違いな感じが。
ここまで引きずっておいて、なんだけど。
831827=829:03/07/14 23:18 ID:dM7Epc1s
>830
わざわざ有難うございました〜JavaScriptはさっぱりなんで、検索しながら悪戦苦闘してました。
OS X向けというか、アップルスクリプトからもちょいズレてますね。どうもすみません>ALL
832名称未設定:03/07/14 23:30 ID:I4w/Xahg
化けなきゃいいが

set p1 to "'$text = <STDIN>;'"
set p2 to "'$text=〜s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;'"
set p3 to "'$text=〜s/\\\\s/+/g;'"
set p4 to "'print $text'"

set the clipboard to "ポケット"
set theTitle to do shell script "pbpaste | perl -e " & p1 & " -e " & p2 & " -e " & p3 & " -e " & p4
tell application "Safari"
activate
set url1 to "http://www.stingray-jp.com/allcinema/prog/search.php3?"
set url2 to "frmHeadSearchTxt=" & theTitle & "&frmHeadSearchType=0&frmHeadSearchOpt1=all"
set URL of document 1 to (url1 & url2)
end tell
833山崎 渉:03/07/15 10:13 ID:34L7LbqJ

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
834山崎 渉:03/07/15 14:21 ID:/6SaCgsj

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
835820:03/07/15 17:47 ID:ZvtYU9A3
>>822
ありがとうございます。
JavaScriptを使うのですか、まったく気づきませんでした。
スクリプトエディタから用語説明を開けるのですが、
あまりに項目が少ないので困っていましたが、
JavaScriptを使うのが正しいのですね、ありがとうございます。

>>827
ありがとうございます、参考にしてみます。
836820:03/07/15 23:58 ID:ZvtYU9A3
>>822
試してみたところ、目的のページでは駄目でした。
SafariのDebugメニューで、Show DOM Treeや
Show View Treeで見てみるとフレームが2つあります。

ここから先はAppleScriptというより
JavaScriptの話になるのかも知れませんが

リファレンス/オブジェクトリファレンス
http://www.scollabo.com/banban/java/object.html

を見てみると、documentの下にframeがないのです。
また、AppleScriptの用語説明でも

do JavaScript reference
in document

となっていて、documentをframeに替えるとエラーになります。
お手数ですがご指導下さい。

837名称未設定:03/07/16 00:37 ID:nOy486xC
"再帰"というのがどうも理解できないんですけど...。
テキストファイルに拡張子をつけるドロップレットなんですけど
動くようにするにはどう書いたらいいんでしょうか?
on open dropitems
tell application "Finder"
repeat with obj in dropitems
set extension hidden of obj to false
if class of obj is folder then
my (items of obj)
else
set name of obj to my addextensionname(obj)
end if
end repeat
end tell
end open
to addextensionname(thefile)
set recordofit to (info for thefile)
set current_filename to name of recordofit
if current_filename does not contain "." then
if file type of recordofit is "TEXT" then
set addedName to current_filename & ".txt"
return addedName as string
else
return name of recordofit
end if
end if
end addextensionname
838名称未設定:03/07/16 13:05 ID:AdLiEB9k
apple script の知識はほとんどありません。基本的な html と css なら使えます。(関係ないか…
itext pro のプレファレンス → オプション → 背景色を任意のものに切り替える script が欲しいのですが、
そういったものは作れますでしょうか。また、既存のもので、そういうものをご存じの方はいらっしゃいますか。
扱うテキストによって、白背景と黒背景をプチプチと切り替えたいのですが…。
839名称未設定:03/07/16 14:15 ID:Q3+3QYv8
>838
itextって使ったことないけど、アップルスクリプトに対応してますか?
きちんと対応していれば簡単そうですけど...。
840名称未設定:03/07/16 15:06 ID:v3hZfz7D
>>838
対応してなさそうね。
対応しているエディタで文字色帰るとかしたら?
841名称未設定:03/07/16 22:01 ID:mf2OOw6w
>>837
再帰処理とはスクリプト内で自分自身を呼び出すということです
検証してたら何か分からなくなってきたので(OS Xめ!)
かなり変更されてますが参考にしてみてくれ
あとFinderのclassはアイテムを「Finderの」アイテムにしてやらないと
class folderは取れません
エイリアスの場合は種類が何であれすべてclass aliasになります
一番手っ取り早いのはselectしてFinderのアイテムに変換することだと思います
一応検証したけど動かなかったらまたレス下さい
842つづき:03/07/16 22:01 ID:mf2OOw6w
property the_ext : ".txt"

on open drop_items
tell application "Finder"
select drop_items as list
my re_name(selection, the_ext)
end tell
end open

on re_name(item_list, the_ext)
tell application "Finder"
repeat with i in item_list
if class of i is document file then
set extension hidden of i to false
if file type of i is "TEXT" then
set the_name to name of i
if the_name does not contain "." then
set new_name to the_name & the_ext
set name of i to new_name
end if
end if
else
if class of i is folder then
my re_name(items of i, the_ext)
end if
end if
end repeat
end tell
end re_name
843837:03/07/17 01:48 ID:2wMk3x4/
>842
書いていただいたスクリプトなんですが、
ちゃんと動作します。再帰の意味は解りました。
再帰ってうまく使えばきれいに書けるのがいいですね。
でも、フォルダーかどうかを判定するのって
基本的なことなのに、結構ややこしいです...。
844名称未設定:03/07/17 02:46 ID:ZYoBkKbe
>>838
iTextはLight Wayの弟分だから、独自のマクロ積んでるんじゃないの?
845名称未設定:03/07/22 01:11 ID:2AGBj1Sw
フォルダアクションつかってFetchで自動アップロードってのをつくってみました。
とりあえずこんなかんじです。

on adding folder items to folderA after receiving addeditem
tell application "fetch"
put into transfer window "なんちゃらかんちゃら" item addeditem
end tell
end adding folder items to

で、これにフィルタで特定のファイルだけってのが、どう考えてもわかりません。
例えばファイル名の最後に"/"が付いているものは除く、みたいにやりたいのですが、
どうすればいいでしょうか?
846845:03/07/22 01:16 ID:2AGBj1Sw
すいません、OSは9.2.2です。
847733:03/07/22 12:40 ID:tXX9m6yY
>>846
●《文字列1》ends with《文字列2》●
文字列1の末尾が文字列2で終わっているかどうかをチェックします。

AppleScript入門教室より
ttp://www.h5.dion.ne.jp/~tuyano/AppleScriptTutor/
848名称未設定:03/07/22 13:06 ID:UzwiWMC6
repeat with 〜 in 〜で個別に判定するとか、

tell app "finder"
select addeditem
set X to (items whose (name does not end with "/")) of selection
end
とか
849845:03/07/22 14:41 ID:2AGBj1Sw
>>847-848
ありがとうございます。
848さんのでやってみたら見事に出来ました。
有り難くつかわせて頂きます。
850845:03/07/23 00:19 ID:27mcUS6i
と思ったらエラーが出るようです・・・

on adding folder items to folderA after receiving addeditem
tell application "Finder"
select addeditem
set senditem to (items whose (name does not end with "/")) of selection as alias
end tell
tell application "Fetch"
with timeout of 60000 seconds
put into transfer window "なんたらかんたら" item senditem
end timeout
end tell
end adding folder items to

四行目で指定された、ファイル名が"/"で終わるものだとエラーが出るようです。
ちゃんと動きはするんですが・・・
どこかおかしいところありますか?
851名称未設定:03/07/23 09:32 ID:iUL4BM+8
順にもしも〜だったらどうなるか追って行けばわかる。
変数の変化を追うのも定石。
/で終わるものしかなかったときにsenditemはどうなる?
すると終わりから四行目はどうなる?

つーか最初はスクリプト編集エディタ上から実行できる形式で
履歴ウインドウでバグ取りしてから
形式を変えたほうがいいよ。
852名称未設定:03/07/23 21:12 ID:DvtZnuK9
たしかこんなかんじで・・・

on adding folder items to folderA after receiving addeditem
tell application "Finder"
repeat with allitem in addeditem
if addeditem ends with "/" then
set senditem to allitem as alias
tell application "Fetch"
with timeout of 60000 seconds
put into transfer window "なんとかかんとか" item senditem
end timeout
end tell
end if
end repeat
end tell
end adding folder items to

ちょっといま他所から書き込んでるので実際のものと違うかも、ですが。
とにかく今度こそ出来ました。
>>851さん助言有り難うです。
853名称未設定:03/07/28 20:50 ID:teJbe3Wr
行末にタイムスタンプのあるログを行ソートする方法はないでしょうか。
AppleScript以外の方法でもいいです。
854名称未設定:03/07/29 22:55 ID:PnqnVG5R
>>853
各行を入れたリストと
各行から取り出したタイムスタンプを入れたリストを作れば
できると思います。
855名称未設定:03/07/30 00:05 ID:DGuSnz72
>>854
どうもです。
試しにファイルメーカーで作ってみます。
ちなみに、自動化したい作業は、
ログ結合 --> コード変換 --> 行内の置換処理 --> 行ソート
--> 隣接重複行削除 --> ファイル名の整列
です
ログ結合にTextChain、コード変換にふみづかいを使っています。
856名称未設定:03/07/30 00:16 ID:XbitWzQU
>>855
perlがこういう処理が得意分野っぽい。
857名称未設定:03/07/30 00:45 ID:PQF/kevd
>>856
ふにゅ、明日本屋で見てきます。
858名称未設定:03/08/01 07:26 ID:HVJFiRsK
ageときます。
859山崎 渉:03/08/02 02:10 ID:EjhDFmQC
(^^)
860名称未設定:03/08/06 08:44 ID:1TcyD5HR
何度も検索かけたんですが欲しい答えが見つからないので質問します。
クウォークの文字や画像ボックスなどにかけられるロックは
スクリプトで操作可能ですか?
861名称未設定:03/08/06 09:13 ID:++fci+bO
>>860
QXの用語辞書くらいみろよ。無いなら、ない。
862名称未設定:03/08/06 11:40 ID:CfEOoik2
>>860

可能。 以上。
863名称未設定:03/08/06 19:43 ID:ZqweG45P
864名称未設定:03/08/06 19:43 ID:ZqweG45P



865名称未設定:03/08/06 19:44 ID:ZqweG45P






866名称未設定:03/08/06 19:45 ID:ZqweG45P









867名称未設定:03/08/06 19:47 ID:ZqweG45P
DTP DQN





は 首 で


868_:03/08/06 19:48 ID:MKRdqtH8
869名称未設定:03/08/06 19:58 ID:FNF87D0o
OS8.6でアプリケーション切換ウインドウを右下に表示するスクリプトが
あったはずなのですが、どなたがご存知の方いらっしゃいますか?
クリーンインストールの際に消えてしまって途方に暮れています。
今のところファインダーからドラッグ&ドロップで代用しているのですが
なんかしっくりこないので…
870名称未設定:03/08/06 21:18 ID:g1wv2op0
871名称未設定:03/08/06 21:24 ID:g1wv2op0
>>869
参考に汁

tell application "アプリケーション切替" to ツ
set {keyboard cycling active, icon size of palette, names visible of palette, frame visible of palette, constraint of palette, ツ
orientation of palette, position of palette, anchor point of palette, button ordering of palette, quit delay} to ツ
{true, small, true, true, one monitor, ツ
vertical, lower right, lower right, alphabetical, 2}
872名称未設定:03/08/07 00:02 ID:yzcAOQIS
>>871
そうやって嘘教えるなよ。
873名称未設定:03/08/08 05:41 ID:ZkGAfj1T
>>869

そういうのは、「こんなソフトを捜しています」スレに書きなはれ。
ここはスクリプトを作る人が来るスレ。

ちょっと用語辞書見ればすぐ作れる。
おれは右上縦、右下横、消去、の三つ書いて使ってたよ。
874名称未設定:03/08/08 07:10 ID:uOO0Lpff
>873
アドバイスありがとうございます。
逝ってきます。
875名称未設定:03/08/12 19:52 ID:pTev6bnP
疑問に思ったんだけど、>>852みたくファイル名を参照する場合に複数の
キーワードをつかいたい(例えば"/"か"*"ではじまるもの、みたく)ときは
どうすればいいの?
文字列だと or つかえないっしょ?
全部をif、else ifで指定しないと駄目?
876名称未設定:03/08/12 20:09 ID:9f1KJXfW
"/"ではじまる物リストと"*"ではじまる物リストを繋ぐとか。
877名称未設定:03/08/13 00:20 ID:TPvQnu0v
if (file_name starts with "/") or (file_name starts with "*") then〜
じゃ駄目なの?
878名称未設定:03/08/13 16:44 ID:OINWmLYn
>>876-877
なるほど、それでいいのね。
さんけぅ。
879名称未設定:03/08/14 15:21 ID:3KcMfrnF
慣れないうちは
if file_name starts with "/" or "*" then
とやっちゃって「動かねー」って悩むんだよな
880あぼーん:あぼーん
あぼーん
881名称未設定:03/08/16 12:54 ID:14zcdeU7
すいません、質問させて下さい。先週、Mac を買いました。
Mac には AppleScript というスクリプトがあることを知りました。
それで、iTunes で MP3 にアートワークを埋め込んだのですが、
このアートワークを AppleScript で取り出すことが可能であれば教えて頂けないでしょうか。
環境はOSX10.2.6, デベロッパーツールです。ヒントでも結構ですのでよろしくお願いします。
882881:03/08/16 17:08 ID:14zcdeU7
Mac(OSX)の凄さを実感中!
ところで、以下のようなのはどうやって調べるのでしょう。
iTunes4以降が知りたいです。
ttp://www.oomori.com/applescript/00000120/idx00120.html
883881:03/08/16 17:16 ID:14zcdeU7
なんか出来そうです。面白い!
884881:03/08/16 19:38 ID:14zcdeU7
tell application "iTunes 4.0.1"
 if selection exists then -- オブジェクトが存在する?
  set n to (item 1 of index of selection) -- n=何曲目
   --if artworks of track n exists then --アートワークがn曲目に存在する?
    --display dialog "存在する場合の処理"
   --end if
 end if
end tell

アートワークの存在を確かめることが出来ません。ヘルプ。
885名称未設定:03/08/16 22:57 ID:msr1jIMe
>>884
existsの動きがよく分からんね
アートワークが存在しない場合は空リストを返すみたいなので
これで回避してわ?

tell application "iTunes"
if not artworks of selection is {{}} then
display dialog "存在する場合の処理"
end if
end tell
886881:03/08/17 21:51 ID:Qh3VIolQ
>>885
ありがとうございます。スマートで感激しました。
set img to data of front artwork of current track
上記で、img にPICT形式のアートワークをセットすることが出来たと思うのですが、
これをPICT形式のファイルで書き出したいです。ヒントを頂けないでしょうか。
887881:03/08/17 21:58 ID:Qh3VIolQ
すみません、as picture が抜けてました。
set img to data of front artwork of current track as picture

set the clipboard to img
でクリップボードへの転送を確認しました。
888881:03/08/17 22:10 ID:Qh3VIolQ
save という関数?を見つけました。頑張ってみます。
889881:03/08/17 22:47 ID:Qh3VIolQ
出来たーーーー!write で書き出せました。お騒がせしましたm(_ _)m
890名称未設定:03/08/17 23:42 ID:oxdR9Lyj
OS Xで印刷ダイアログをスクリプトで操作しようと思ったら、
何に対してtellすればいいのでしょうか?
891名称未設定:03/08/18 00:02 ID:trnHhwJ/
>>890
一応プリントセンターがスクリプタブルになってます
具体的に何が出来るのかまでは私はチョット知りません スマソ
調べてみてください

http://www.apple.com/applescript/print/
892名称未設定:03/08/18 00:28 ID:OgEkH1j9
>891
なるほど。プリントセンターですか。ありがとうございます。
でもサンプル見てもいまいち僕には意味解らないです...。
複数ファイルの連続印刷ユーティリティを作ってみようと思ったんですけど...。
893881:03/08/18 12:19 ID:nyIqc4KU
また壁に当たりました…。

set theFile to "test.pict"
set fileRef to (open for access file theFile with write permission)
write img to fileRef
close access fileRef

これで保存は出来たのですが、ファイルの上書きが出来ません。
test.pict が既に存在すると、

AppleScript Error
"Duplicate file name test .pict(-48)"

というエラーが出ます。with write permission を指定したのですが、
これでは駄目なのでしょうか。お助け下さい。
894名称未設定:03/08/18 12:28 ID:dBZ3jIIj
同名のファイルがあったら、それをゴミ箱に移動するのは駄目?
895881:03/08/18 12:56 ID:nyIqc4KU
なるほど…。それでもいけますね。ありがとうございます。
しかし、常駐させるのでゴミ箱が大容量になってしまいます。
バックグラウンドでUNIXコマンドの rm を使えば何とか…。
896881:03/08/18 13:14 ID:nyIqc4KU
do shell script "rm " & theFile
でいけました。ありがとうございます。もう一踏ん張りだ。
897881:03/08/18 13:52 ID:nyIqc4KU
>>885
> if not artworks of selection is {{}} then

これは、iTunesで選択(色帯)している曲がターゲットですよね。
iTunesで再生している曲をターゲットにしたいのですが、どうしたら良いのでしょうか。
898881:03/08/18 14:00 ID:nyIqc4KU
selection を current track としただけでは駄目でした。
899881:03/08/18 15:13 ID:nyIqc4KU
if artworks of current track exists then
なんか、最初にやってたのでいけました。
900名称未設定:03/08/18 15:57 ID:B4cgW1NQ
>>881
もし良ければ、完成したら公開して下さいね。
お願いします。
発展すると面白いものができそうですね。
私はスクリプトでアートワークを制御できると思っていませんでした。
というか発想がなかったです。
901名称未設定:03/08/18 17:24 ID:nKRRSEqa
書く前に考えろ
902名称未設定:03/08/18 21:31 ID:BSI3X63U
>>881
このスレは君のメモ帳ではないので‥
ま、いいか
903名称未設定:03/08/18 23:22 ID:j9+yfEtl
こんなん作ったんですが、誤動作しないか心配です。
代替ゴミ箱のつもりだったんだけど、どうせなら問答無用で消してもらおうかと。
rmコマンドのオプションを「-drp -f」に変えると復元不能になって恐い。

on open theItem
set theItem to quoted form of the POSIX path of theItem
do shell script "mv " & theItem & " ~/DustShoot_dir"
end open

on run
set file_list to do shell script "cd ~/DustShoot_dir;ls"
display dialog file_list & return & "を削除します。"
if button returned of result is "OK" then
do shell script "rm -dr -f ~/DustShoot_dir;mkdir ~/DustShoot_dir"
end if
end run

最新50しか読んでないので、似たようなのがガイシュツだったら申し訳ない。
904881:03/08/18 23:46 ID:nyIqc4KU
>>902
ゴメン。AppleScript で何が出来るのか分からないので手探りで。
辞書の使い方も慣れてきたのでもう大丈夫です。

>>900
konfabulator の widget というのに移植しました。使い込んでから向こうのスレで晒します。
905名称未設定:03/08/30 06:29 ID:OOFNq+1Z
クリップボードに送った全角英数文字のURLなどを、半角英数に変換する
スクリプトを作りたいのですが、そういうコマンドってありますか?
906名称未設定:03/08/30 09:50 ID:w5vq/tss
>>905
標準ではそういうコマンドはありません
でも需要は多いでしょうから
OSAXで探せばあるかもしれませんし
フリーウェアとして公開されてる変換スクリプトもあると思います
もちろん自分で作るのも良いかと
907906:03/08/30 10:02 ID:w5vq/tss
>>905
ちなみに
大文字を小文字にするスクリプトは
ASCII numberを調べてそれが65から90の間だったら
32足して元に戻すだけです
かなり簡単なので作ってみては?
908名称未設定:03/08/30 15:22 ID:OOFNq+1Z
>>907
目から鱗ものです・・・・・どうもでした。
909名称未設定:03/08/30 15:50 ID:OOFNq+1Z
あ、1バイト文字と2バイト文字の相互交換は無理なのか・・・・・あほだ俺
910名称未設定:03/09/01 00:48 ID:3YQWvz8W
OE5.02の迷惑メールの設定で
色をつけるとか開封済みにするとかはあるんだけど
削除済みのフォルダにいれるっていうアップルスクリプトほしいんですが
どうすればいいのか、ぜんぜんわからないのです...

教えて下さい。
911名称未設定:03/09/01 00:58 ID:PzA3SLPL
>>905
OSXはPerlが使えるし、DropPerlerとかで作るほうが。
912名称未設定:03/09/01 01:31 ID:g5ncmdTG
>>911
ここって基本的に OS9のスレじゃなかったっけ?
913名称未設定:03/09/01 01:52 ID:PzA3SLPL
違いますよ
914名称未設定:03/09/01 13:51 ID:gm72tlqb
誰が決めたわけじゃないけど
ここはAppleScriptのみで
Perlとか使う場合はこっちの方がいいんじゃない

「AppleScript,Perl,Shell」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1055091471/
915名称未設定:03/09/03 01:34 ID:LM26xH2g
>>905
アルファベットなんて文字数限られるから、全角半角変化するレコード作っといて、
そこから引っぱればあっさり出来そうなヨカーン。
916名称未設定:03/09/03 23:56 ID:xSYOwWGr
>>915
それもそですね。手元に、タイプクリエータ変更のドロップレットがあったので
改変にトライしてみます。

Perlは、解説本を物色中です。(まだ)
917名称未設定:03/09/04 23:14 ID:gZVoSWj4
Transliterate OSAX
つかえば。
918名称未設定:03/09/07 00:09 ID:V52F+Xg8
>>917
あっ、これはいいですね。どうもです。
これを置いてあるサイトの人すごいなぁ。
919名称未設定:03/09/10 20:51 ID:kJH/orP/
>>917を使って、できました。クリップボード内の文字列を2バイトと1バイトの
交互に書き替えます。半角カナには対応していません。

property smJapanese : 1
property smMaskAscii1 : 4
property smMaskAscii2 : 8
property smTransAscii1 : 2
property smTransAscii2 : 3
set src to the clipboard
set srcTop to ASCII number (character 1 of src)
if srcTop ウ 127 then
set the clipboard to (Transliterate src srcMask 8 target 2 scriptCode 1)
else
set the clipboard to (Transliterate src srcMask 4 target 3 scriptCode 1)
end if
display dialog "Result:" & return & (the clipboard)
920名称未設定:03/09/12 00:10 ID:8gJV8UWO
クリップボード用にもう1つ。置換です。
置換用文字列をいくつでも登録できます。

set theText to the clipboard
set srcStr to {" ttp:", " tp:", " p:", " "}
set rplStr to {"http:", "http:", "http:", ""}

repeat with i from 1 to count srcStr
set AppleScript's text item delimiters to (item i of srcStr)
set theList to every text item of theText
set text item delimiters to (item i of rplStr)
set theText to theList as string
end repeat

set the clipboard to theText
display dialog "Result:" & return & (the clipboard)
921名称未設定:03/09/12 00:26 ID:pFqksWBD
んじゃ、わたしもひとつ
・クリップボードのテキストのスタイルを消すスクリプト
http://www.satimage.fr/software/en/softx.html#osax
Satimage.osax
が必要です。

set theText to the clipboard as string
set theText to change "'" into "'\"'\"'" in theText
set theText to do shell script "echo '" & theText & "'"
set the clipboard to theText as string

AppleScript's text item delimitersで
置換したらできないケースがあったので
置換できるosax探して試したら動いた。
ところで任意のスタイルを設定できる方法か
osaxって無いですか?
922名称未設定:03/09/15 11:31 ID:pi6TUyJl
keep
923名称未設定:03/09/17 06:14 ID:sJEvv1Gh
>>921
QuoEditのサイトで公開されてるOSAXに、それらしいものがありました。

ttp://www5c.biglobe.ne.jp/~quo/
924名称未設定:03/09/17 06:44 ID:LPGtBOtF
OSAMenu123d7.sit
AppleScript183.smi.bin
日本語OS9にインストールしてみた人いませんか?
925名称未設定:03/09/18 06:09 ID:rXDym7S6
OS9.2.2でAppleScript1.8.3とOSA Menu1.2.3d7
快適に使用してます。
926名称未設定:03/09/18 07:48 ID:Ozr8IhBX
>>925
そうですか。うちでも入れてみます。
日本語OSでも、option+E起動でインストールできますよね。
ちょっと手が空いてるのでリリースノートをみてこよっと。
927名称未設定:03/09/18 18:31 ID:5qglxU1w
>>923
情報ありがとうございます。
日本語フォントを設定できないので
いろいろ試したところCocoaアプリでは無効になるようです。

テスト用スクリプト

set theText to create styled text of "こんにちは。Halo" with properties {font:"Osaka−等幅", size:14, color:{0, 0, 60000}}
scrap style info of theText--確認用
set the clipboard to theText

AppleWorksにペーストするとOsaka−等幅で表示されるが
TextEditにペーストするとサイズ、色は指定どおりだが
フォントは日本語部分がヒラギノ角ゴ、半角部分がHelveticaになる。
AppleWorksのOsaka−等幅の文字をコピーして
TextEditに貼付けるとやはりフォントがOsaka−等幅にならない。
TextEditからAppleWorksにコピー&ペーストするとフォントも
ちゃんと反映される。

テスト環境:
X 10.2.6
AppleWorks 6.2.7
TextEdit 1.2
928名称未設定:03/09/20 15:36 ID:hxofqs0v
フォルダ内のファイルリストを生成するスクリプトなんですが、
パス表記じゃなくてファイル名だけのリストにするには、どう改造すればいいでしょうか?

on open dropItem
set fPath to "Macintosh HD:Desktop Folder:filelist.txt"
tell application "Finder"
open for access file fPath with write permission
my doInfoData(dropItem, fPath)
close access file fPath
end tell
end open
on doInfoData(allItems, fPath)
tell application "Finder"
repeat with obj in allItems
set objName to obj as text
set isHere to (folder objName exists)
if isHere = true then
set allObjItems to every item of obj
my doInfoData(allObjItems, fPath)
else
write objName to file fPath
write return to file fPath
end if
end repeat
end tell
end doInfoData
929名称未設定:03/09/20 23:35 ID:KTuCHMX3
>>928
そこまで書ける人に
アドバイスすることじゃないような気もするが
普通にFinderに名前を尋ねるんじゃだめなの?
あとパスが取れてるなら名前だけ抜き出してもいいし
見当違いならすまん
930名称未設定:03/09/21 05:59 ID:FucN4QFs
>>929
ぜんまいびゅんびゅんから引っこ抜いてきたスクリプトなんですよ。
一体どの変数がパスを拾っているんだか、もう皆目。
最後のコロンまでをパスから消すgrep式すら書けないスキルです・・・・・
931名称未設定:03/09/21 09:46 ID:iXO2kj2y
objにパスが入るので
name of obj
で。
932名称未設定:03/09/21 19:59 ID:55nywPvZ
>>931
それをやると、うちの環境では、ドロップしたフォルダの名前だけしか
writeされなくなるんですが。
933名称未設定:03/09/21 21:13 ID:1iuW3RJ0
>>932
その環境をなぜ書かない?
せめてOS Xか9.xかぐらいは書いたら
誰か親切な人が検証してくれるかもよ
934名称未設定:03/09/22 08:52 ID:c5i+lpFD
>>933
9.2.2/10.2.6で確認してます。
935名称未設定:03/09/22 10:27 ID:c5i+lpFD
念のため、ファイルアクセスを行うスクリプトなので、
エラーの際は、生成したtxtファイルを選択して
tell application "Finder" to close access selection
を実行してください。
936名称未設定:03/09/22 12:00 ID:epHm0VWE
>>932
write (name of obj) to file fPath
にしろって>>931は言ってるんじゃない?
937名称未設定:03/09/22 19:15 ID:VE7QbE0j
 
938名称未設定:03/09/24 13:32 ID:MuGrdX2M
アップルスクリプト自身の絶対パスの取得方法を教えて下さい。
939名称未設定:03/09/24 23:15 ID:AMGWa5gy
path to me
940名称未設定:03/09/25 00:09 ID:zLZ9GyFu
便乗
スクリプトを実行しているのがScriptEditorとか、OSAMenuとか、Script.menuだと、
その実行しているアプリケーションのパスが入らない?
この事が気になったのは数カ月前だから、詳しい事は忘れたが…
941名称未設定:03/09/25 18:20 ID:ZA1CTSkY
そりゃそうだ。その他の相対パスも狂うから気つけてな。
942名称未設定:03/09/26 00:33 ID:d97CPK/f
リビングにあるiBookから、隣の部屋にある
別のマック(192.168.0.2)のiTunesを起動したいのですが

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

tell application "Finder"
activate
close every window
end tell

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

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

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

>>969
9です。

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

新板
旧板
ロビー

新板@
旧板@
ロビー@

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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