おもろい、めずらしいアップルスクリプト発表会 4
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名称未設定
02/07/17 03:40ID:8TkJmiWAおもろい、めずらしいアップルスクリプト発表会
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/
0002名称未設定
02/07/17 03:42ID:8TkJmiWAhttp://homepage1.nifty.com/ton_b/AppleScript/Material/index.html
0004名称未設定
02/07/17 03:54ID:8TkJmiWAAppleScriptタコ入門
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年後に次スレを立てることになるとは思わなんだ・・・。
0005名称未設定
02/07/20 05:28ID:zDE0T44p0006名称未設定
02/07/20 06:00ID:FwEi6Cmnなおかつ強制的に名前を変えてナンバーリングして拡張子を付ける(w
ってスクリプトはムリっすか?
0007名称未設定
02/07/20 12:23ID:eTt4o+Pw起動した時刻に合わせて自動的に輝度を設定してくれる。。。
なんて虫のいいことは出来ますか?
0009名称未設定
02/07/20 20:50ID:03qb9jgnくれると判断しやすいかな?
>>6
.jpg、.gif拡張子を判別して抜き出す所が面倒かもね。
>>7
OS 9では色数は設定出来るんだけど輝度は出来ないっぽぃ
輝度はどちらかというとモニタ側のハードだからね。
調べたついでに色数は(OS 9)
monitor depth 現在
max monitor depth 最大
min monitor depth 最小
set monitor depth [数値] で色数の変更みたいですね。
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 ' 以外にもあるのでしょうか ?
どうか, 私めにアドバイスを...
0011名称未設定
02/07/21 09:55ID:ceQM3jIl最近書いて無いから&時間がないからかなり適当だけど
repeat i to every disk sort by name
みたいな感じ(あってるかどうか、、汗)でリスト内のアイテム
をぐるぐるさせる事が出来たような気がするよ、
回答ありがとうございます.
さっそく, 試してみます.
結果は, またのちほどレポートします.
おかげさまで, 解決しました.
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 完成.
0014名称未設定
02/07/21 12:26ID:/itEcFdJXにlistじゃなくてdiskが入っちゃって悲惨なことになるみたいね・・
set X to X as list
ってのを入れてやるといいみたいです。
鋭い指摘, ありがとうございます.
>ボリュームが1つだけのときに
>Xにlistじゃなくて
あっ, なるほど...
確かに, repeat 以下で error になります.
これで, ' length ' が使えない理由も, わかったような気がします.
つまり, 対象が複数でない時は, list 形式にならないってことですね.
目から, うろこです.
もうちょっと, 考え直してみます.
>set X to X as list
なんと, 答えまで書いていただいていたのですね.
さっそく, 修正しました.
重ねて, お礼を申し上げます.
0018にゃあ
02/07/22 07:20ID:XPbsxbo+なるほど
スマートな方法ですね
ぼくなんかこんな風にやってましたよ
set X to (every disk that ejectable = true)
if (count X) > 0 then set X to X sort by name
Xの中身がリストのとき
それをさらにリストに変換してもエラーは起こらない、っていうわけですね
ありがとうございます
いままでに書いたスクリプトを見直してみます
>>16
お久しぶりです
0019名称未設定
02/07/22 12:49ID:cIb2H5Zdお勉強がてら改造して遊んでたんですが、こんなんできました。どうでしょう?
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
また会えて, 嬉しいです.
AppleScript って, スマートな書き方ができる反面, 変なところで融通が効かない...
文句言っているよりも, 慣れることのほうが大切なのかもしれません.
0022名称未設定
02/07/22 18:33ID:ci4pRb8O覚えてくれてるのに、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
0023にゃあ
02/07/22 19:38ID:7paxPrvF>「iTunesが起動してるかどうか」を調べる方法がよくわからなかった
activateを使いましょう
このコマンドは便利ですよ
対象となるアプリが起動しているときはそれを前面にして
起動していないときはそれを起動してくれます
0025にゃあ
02/07/22 19:45ID:7paxPrvFtell application "iTunes"
activate
......
end tell
こんな感じになります。
>>21
旧板であなたを捜してたのは僕です。
0026名称未設定
02/07/22 21:41ID:PVa7GBjfset 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
0027名称未設定
02/07/22 23:13ID:6HpP/6U1tell application "Finder"
set iTunesRunning to creator type of processes contains "hook"
end tell
察しがついていました.
こちらのほうは, 変な人物は出没しないようです.
雑談は, あまりできない感じなのが, ちょっと, つらいところですが...
0029名称未設定
02/07/23 10:10ID:1Nz5J9aGset 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 ですが,
もっと, スマートに書けるかもしれません.
ご意見, ご批判, いただけると嬉しく思います.
邪魔なようでしたら, 別スレッドを立てることも考えております.
こちらも, 合わせて先輩方のご意見をうかがいたく思います.
0031にゃあ
02/07/23 19:11ID:/LO0c6qg考えてみれば、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するわけですね
なるほど...
initialize をまとめてやってしまうわけですね.
さっそく, 修正しました. ありがとうございます.
>変数をふたつに分けた上で、まとめてsetするわけですね
ほかにも, 方法はあると思いますが, 取り合えずこんな形で...
(できれば, loop を一つだけにしたい...)
最近, 思うのは, Script にする前の考え方(flow chart に相当する部分) が, 大切で,
その部分しだいで, できあがる Script も変わってくるような気がします.
また, そこが面白いところですが...
0033名称未設定
02/07/23 19:53ID:KwSmmQGNset 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
大差ないかな。。汗
さっそく, 試してみました.
(すぐ試せるのが, 面白く, 良いところ.)
面白い考え方ですね.
ただ... Event Log を見ると, ステップ数が多いような気が...
(どうか, 気を悪くしないでください.)
003533
02/07/23 21:13ID:KwSmmQGNこりゃ便利っすね。
たしかに自分のはいちいちejectable参照するから手間かかりますね。
これってやっぱよくないことなんですかね?単純に遅いってことかな?
ちなみに私、>>19でもおんなじことやってたりしますw
>こりゃ便利っすね。
ある程度の動作確認ができますね.
>これってやっぱよくないことなんですかね?
きちんと, 動作するから, よろしいのではないでしょうか ?
処理対象が多くなると, 動作時間が長くなるようですが...
( Volume アイコンの並び替え程度では, さほど問題にならないと思います.)
0037にゃあ
02/07/23 21:56ID:ht4NIkC7そうですね
演算の重複は、できる限り避けた方がスピードの向上につながるでしょう
>>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回にする方がすっきりしてるのではないかと思いますが......。
0038にゃあ
02/07/23 22:00ID: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
0039名称未設定
02/07/23 22:30ID:PMB/uRPe将来「volume以外のデスクトップアイテムも整列させたい」なんていう
追加仕様をいれたくなることは十分考えられるのですが、そのときに
ループは分けてあるほうが、書換が楽です。
0040名称未設定
02/07/24 00:31ID: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
0041にゃあ
02/07/24 02:19ID: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回に分けるのがベターでしょう
0042にゃあ
02/07/24 02:34ID:2S74R0ngtell 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
どうでしょ?
見た目にもシンプルで、エレガントではないかと思いますが......
>サブルーチンを使ってみました
まだ, サブルーチン call の方法をけんきゅうしてましぇ〜ん(;_;)
>repeatを2回にする方がすっきりしてるのではないかと思いますが......。
そのようですね.
おもしろいことに, リストの中身が {} (<-- null )の時には,
loop そのものがスキップされるように見えます.
>>39
>追加仕様をいれたくなることは十分考えられるのですが、
なるほど...
拡張性も大切ですよね.
>>42
まとめて set を追求したわけですね.
この案, いただき !!!
さっそく, しゅうせいしま〜す.
#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
0045にゃあ
02/07/24 12:03ID:gOptw3K1これではどうでしょうか?
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
目指せ!エレガント!!
0046にゃあ
02/07/24 12:12ID: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
0047にゃあ
02/07/24 12:13ID:gOptw3K1使い方
単数/複数のボリュームをドロップすると、Speed Diskが最適化してくれます
ハードディスク・リムーバブルディスクを問いません
間違ってファイルやフォルダをドロップしても、ちゃんと識別します
ネットワーク上のボリュームや起動ディスクは
Speed Diskの仕様上、最適化できませんから、除外するように設定しています
また単なる最適化のほかにも、空き領域抹消のオプションが選べます
特徴
ボリュームを最適化すると、アイコンの位置が乱れることがありますね
でも、安心してください
元にあった位置を再現します!
欠点
ロックされたボリュームは、コマンドの制約により定義できません
エラートラップを設けているので実害はありませんが......
一方、MS-DOSフォーマットのボリュームに関しては
最適化の対象から自動的に除外することができません
全くお手上げです
くれぐれもドロップしないようにお願いします
付記
MacOS7.6.1上のSpeed Disk 3.5.2
ならびにMacOS8.6上のSpeed Disk 6.0にて動作確認済みです
問題があるのは,
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 は,しかたない
004933
02/07/24 12:59ID:98sIkYXhsortのあとでlistにしてやらないと意味がなくなっちゃいます。
対象ディスクが1つだけのときに (X sort by name) as listとくらべてみてください。
0050にゃあ
02/07/24 13:19ID:7rTZHhQqかさねがさね、申し訳ありません
またしてもタイプミスです
エラーの原因はシンタックスエラーではないか、と思います
{sort (X as list) by name, sort (Y as list) by name, 0, 0}
これで動くはずです
いえ、動いてください。お願いします
帰宅したら、Macを立ち上げて検証します
005240
02/07/24 22:22ID:J0UsJMddディスクのリストが空の時にエラーになる様ですね
修正
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
結果ウィンドウを見て下さい
0053国境警備隊妨害員遊撃隊
02/07/25 03:08ID:NXXz/v7e>御指摘の意味がいまいち分かりかねますが…
7.xと8.6では、フィルタ参照形式に対して任意の項目の項目を指定することができませんでした
つまり、item i of item_listのような書き方ができなかったのです
但し、count item i of item_listのように項目数を数えることは可能です
AppleScriptもバージョンが上がって使いやすくなっているみたいですね
>>39さんの仰有る通り、実用的なスクリプトにとって柔軟さは欠かせません
その点からすれば、>>42のスクリプトは確かに有用でしょう
しかし、前言を翻させて頂きます
エレガントさという点では、サブルーチンを使った>>52の方が勝っていると思います
いやあ、美しいですね。>>52のスクリプトは
0054名称未設定
02/07/25 10:17ID:2fzbmzbU初期設定フォルダの中身ごっそり全部消されそうになりまちた。
はっはっは。
005552
02/07/25 22:21ID:jZFusnZo>7.xと8.6では、フィルタ参照形式に対して
>任意の項目の項目を指定することができませんでした
それは知りませんでした
正直、何をスッとぼけたことぬかしてんのかと思ってました
はじめてのMacがOS 9.04でしたので、どうかお許しを
初心者が出しゃばってスレ汚しスマンです
おとなしくROMってます
0056教えてちょ
02/07/26 01:10ID:aPqmImdgこのスレの住人さんなら知っているかもと思いました・・
無視するのも気の毒なので,一応,お返事:
GraphicCalculator は,ずいぶん前に,ちょこっと遊んだ程度です.
という訳で,僕に限っては,どれだけのことができるのかさえも,おぼつかない次第.
ほかの誰かが答えてくれると,いいですね.
0059にゃあ
02/07/26 10:58ID:5rHOK/cEいえいえ。どうかお気になさらずに
僕の方こそ、連日連夜の睡眠不足のお陰でミスを連発し
挙げ句の果てに、コテハンまで間違えるていたらくでした
ROMに専念なんてことは言わずに
こんなスクリプトができたゾ、とか
そいつはおかしいんでないの、とか
いろいろ聞かせてくださいね
0060Barracuda ◆9999ZEL.
02/07/26 17:18ID:EkeLw8D3なんと,多重人格...
おったまげただぁー.
ところで, Global Variable って, 別々の Script 間でも有効なのでしょうか?
Type/Creator 変更 Script を作ろうとして,ゆきずまってまふ.
(いっそ,Droplet にでもしてやろうかしらん. <-- 実は,こちらも未研究.)
0061にゃあ
02/07/26 20:18ID:D2QE6eTv>Global Variable って, 別々の Script 間でも有効なのでしょうか?
グローバル変数を全く別のスクリプト同志で共有することは不可能のようです
プロパティもまた然り
異なるスクリプト間で変数をやり取りするには
スクリプトオブジェクトを定義しなければならないみたいですね
詳しくは、「AppleScriptリファレンス」P.111以下を参照してください
>Type/Creator 変更 Script を作ろうとして,ゆきずまってまふ.
>いっそ,Droplet にでもしてやろうかしらん
Type/Creatorの変更には、確かにDropletを使った方が手軽でしょう
Dropletを覚えると、スクリプトの幅が広がりますよ
元国境警備隊妨害員後方部隊より
0062名称未設定
02/07/27 23:59ID:PSPeQtRRチカチカチカチカ明滅するようになってウザイ。
回答ありがとうございます.
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 だのみの,今日このごろです.
0064にゃあ
02/07/28 08:28ID:oz7YLSSa最も単純なアルゴリズムはやはりアイディア2でしょう
つまりDropletにするわけです
UIとしては次のふたつが考えられます
(1)ダブルクリックでダイアログをふたつ表示し、それぞれタイプとクリエータを入力する
(2)ダブルクリックで既存ファイルを指定し、そのタイプとクリエータを得る
(1)の場合、ResEditやNorton Disk Doctorなどを使うか、あるいは別のスクリプトを用意する等の方法により
予めタイプとクリエータを調べておく必要があります
(2)の場合、指定したファイルからタイプとクリエータを直接得るので、(1)のような準備作業が不要です
従って、オススメは(2)ですね
あとはon open Variable〜end openのハンドラ内に
タイプとクリエータ変更のスクリプトを記述するわけです
0065にゃあ
02/07/28 08:54ID:DjzDkET3Dropletを作成する際、グローバル変数ではなくプロパティを用いるとよいでしょう
グローバル変数の場合、スクリプト実行後は代入した内容を保持しませんが
プロパティでは内容が保持されています
前回と同じ値を代入したい時、手間がひとつ省けます
0066にゃあ
02/07/28 09:29ID:rY+8XzpJダブルクリックの部分
(1)既存ファイルを指定し、そのタイプとクリエータを得る
(2)結果を表示する
ドロップの部分
(1)ドロップされた項目がファイルか否かを調べる
(2)ファイルが0個の場合はその旨を表示し、スクリプトを終了する
(3)スクリプトに保持されているファイルとクリエータの値がヌルの場合はその旨を表示し、スクリプトを終了する
(4)スクリプトに保持されているファイルとクリエータの値を表示し、確認を促す
(5)その値を変更する場合は、再びファイルを指定してタイプとクリエータを得る
(6)結果を表示し、確認を促す
(7)タイプとクリエータを変更する
どうでしょ?
0067コリン ◆jVColinE
02/07/28 11:34ID:3nIvfrbTMacで学術系ソフト&研究室のMac・2
http://pc.2ch.net/test/read.cgi/mac/1018789103/83
移植しておいたよ。
誰もいなさそうだけれど。
…
僕は数学苦手だから勘弁ヱbんして…
(1) のデータ受渡のアイディアとして...
1: Clip Board を利用する
2:TexEdit Plus (<-- Scriptable !) を立ち上げて,そこに書き込む.
' 1 ' は,案外手ごろな方法かもしれません.
ただ,場合によっては,誤動作の恐れがありますが...
(それを防ぐための処理がどうしても必要になる...困ったもんだ !!!)
' 2 ' は,第二の Clip Board として僕がしばしば使う手です.
ただ,これは一般的とはいえないのが,難点です.
どちらにしても,練習問題ってところですね.
実用性からいうと,どうでも良いような...
勉強になりました.
>>66
(1),(2) の部分はすでに,完成しています.
で, Droplet の件ですが,
Script 本体を(Alias も含めて) Desktop 上に表示させなければならない点が欠点.
(FinderPop からというのは,すごく魅力的です.)
(ワンクリックで,ターゲットが select 状態になるので...)
でも,練習問題としては,面白いので,いろいろやってみます.
結果は後程レポートします.
どうして,ここを?
それは,ともかく,リンク先を拝見させてもらいました.
でも,あまり関係ないような...
Graphic Calculator は,3次元表示なので,
z=f(x,y) という形になるのね.
(なんと,偏微分までも扱える...)
だから,2変数関数関連の本を洗ってみるのがよろしいかと...
>誰もいなさそうだけれど。
ここが? それとも,リンク先が?
>勘弁ヱbんして…
???
0071にゃあ
02/07/28 17:45ID:xY2dGbG1クリップボード経由のデータ受け渡し、って確かに誤動作が多そうですね
特に、G3とかG4を載せてるMacでは顕著なのでは?
あまりに処理が高速すぎ
データがクリップボードに収まらないうちに次ステップに移行したりして......
多分、delayコマンドを使えば何とかなるでしょうけど
>>69
デスクトップにエイリアスを置く習慣がない人にとって、Dropletは使いにくいかも?
僕なんかは、ポップアップウィンドウを4つほど並べて、それぞれエイリアスを配置してます
>>70
いずれも人がいませんねぇ(w
PS.僕は賢者なんかじゃありませんよ。でも、ありがとうございます
>データがクリップボードに収まらないうちに次ステップに移行したりして...
え? そんなことがあるのですか? w
Cripboard は,汎用的に使われるので,
別の無関係のデータが残っている可能性を心配したのですが...
どちらにしても,あらかじめ,データを加工して渡し,
受け取ってから decord(?) しなおすことになりそうなので,以外に面倒そう...
>ポップアップウィンドウを4つほど並べて、それぞれエイリアスを配置してます
僕も,以前は Popup Window をずらずらと並べてたりしてました.
最近では,同じように Alias 専用のフォルダーを用意して,
そのフォルダーの Alias を FinderPop Items の中に放り込むようにしています.
Sub-Menu から,するすると一発なので,やめられません.
>いずれも人がいませんねぇ(w
そのおかげで,多少の雑談をしていても,文句を言われないっと.
' AppleScript 道場 ' といった趣旨のスレッドを立てることを考えてもいたのですが,
とりあえずは,今のままでも問題なさそう...
>PS.僕は賢者なんかじゃありませんよ。
ご謙遜を...
僕は尊敬してますよ.
あそこで,うだうだやっている人よりは,貴重な情報をいただいています.
おっと,こんなことを書いているのを発見された日には...
(なぜか,こういうことには目ざとい人たちが多い...)
0073名称未設定
02/07/28 21:26ID:W0vfWurd> >いずれも人がいませんねぇ(w
> そのおかげで,多少の雑談をしていても,文句を言われないっと.
雑談といってもApple Scriptに関係してるんで、
別にいいんじゃ無いかな。勉強になるし。
でも、
>PS.僕は賢者なんかじゃありませんよ。
>ご謙遜を... (以下省略)
こういう書き込みはうざい。
メールなりメッセンジャーなり旧板なりで、個人的にやってくれ。
0074名称未設定
02/07/28 21:27ID:W0vfWurdすいません。
0075名称未設定
02/07/28 22:22ID:PcgkXLGsproperty 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
007675
02/07/28 22:22ID:PcgkXLGsto 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
007775
02/07/28 22:23ID:PcgkXLGsちょっと長くなりました。
実際に変えている部分は短いのに。
0078名称未設定
02/07/28 22:36ID:AvFu0BSiやっぱり、ends with ":" とかするしかないですか?
一応オブジェクト指向やのに泥臭くて抵抗ある…。
0079名称未設定
02/07/28 23:07ID:PcgkXLGsinfo for を使う方法
など、あるんですが、ends with ":" が、一番速いんです。
0080名称未設定
02/07/28 23:18ID:AvFu0BSi0081にゃあ
02/07/28 23:54ID:bupJydNg申し訳ありません。以後、慎みます
>>75-78
スクリプトのコアは、確かにわずかな時間で書くことができますね
でもいろいろな場面を想定してオプションを付加していくと
どうしてもアルゴリズムが複雑になり、全体として長いスクリプトになってしまいます
そして幾多の労苦を厭わず練り上げたスクリプトが、実用品として完成した喜び
スクリプトの醍醐味は、その辺にあるのではと思っています
但し、他人にはなかなか伝わらないでしょうけど(w
ところで僕の場合
ドロップされた項目がフォルダか否かを調べるにはこんな風にやってます
if folder (aItem as text) exists then
folderのところをfileとかdiskに書き換えたら、fileもしくはdiskか否かを検査できます
申し訳ないです.
やっぱり,別スレッドを立てるべきでしょうか?
そのために,お伺いを立てたのですが...
以前,FileMaker のスレッドを立てて失敗した経験があるものですから...
(あまり,スレ立てには,積極的にはなれません. )
0083名称未設定
02/07/29 10:31ID:Aqh9QiL3>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
008475
02/07/29 11:14ID:OC659x9Dどういうクリエイタにするかのインターフェースに自分の名前を
使っているんです。
"Xcreator.8BIM"だと、"8BIM"に変更するし
"Xcreator.ttxt"にリネームすれば"ttxt"に変更するというわけ。
逆に単独で実行させたときにはダイアログで変更先クリエイタを
問い合わせて、その結果を自分の名前に反映させる。というわけでした。
ほかに、「コメント」欄を使うという考え方もできると思います。
0085名称未設定
02/07/29 11:50ID:bFWy/kkoじゃあ
Adbe Photoshop → Xcreator.8BIM
Adbe Illustrator → Xcreator.ART5
PictureViewer → Xcreator.ogle
って感じになってんの?
う〜ん???
やっぱり直接アプリにクリエータを問い合わせる方がよくないすか?
クリエータって4つの文字列で見るよりアプリの名前の方が
視覚的にも分かりやすいんじゃないかなぁ
単独起動の場合の、ダイアログに入力する手間も省けるし
いや、余計なお世話だけどね
聞き流して下さい
008675
02/07/29 12:26ID:OC659x9Dいい意見を言っていると思うのに
>いや、余計なお世話だけどね
> 聞き流して下さい
これがぶちこわしているよ。これがあるために、全体の論調がたんなる「ぼやき」に
なっちゃってる。もったいないぞ。
0087名称未設定
02/07/29 12:35ID:vw0HiGhmとおりすがりの者ですが...84の書き方がかなり自己完結的な
ふうに受け取れるので85はそのやりかたを否定しないように
なんとか提案したんだと思うよ。
テキストだけだと些細な事ですれ違うし、お互い他意は無いと
思うので丸く収まるように願う。珍しい良スレだし。
0088名称未設定
02/07/29 13:39ID:hYGRBzLXダウンロードした画像のクリエータを変更したい時とかは>>84の方法の方が良いんじゃない?
変更したいクリエータなんて毎回決まってるだろうし。
0089名称未設定
02/07/29 13:52ID:IAcQ5A4dcopy text returned of the result to CT
と
set CT to text returned of the result
では何か違うんでしょうか?(処理速度、メモリ効率など)
普段下を使ってるので、利点があるのなら変えようかと思いまして。
009073
02/07/29 15:58ID:fEE5qcTUこちらこそきつい言葉遣いになって、申し訳なかったです。
雑談といっても、有意義なやり取りがなされていると思っています。
ですが、ちょっと個人的すぎるやり取りのように感じたものですから。
出過ぎたレスだったと思います。すいません。
いえいえ,こちらこそ.
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
0093FMP+Apple Script
02/07/30 21:06ID: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
マルチポストがルール違反なのは承知してますが、大変困ってます。
何卒、何卒、御教示下さい。
0094名称未設定
02/07/30 21:20ID:E1hdSP8Gこの手の操作でキャンセルがないのは非常につらいです。
0095名称未設定
02/07/30 21:37ID:Y3STfrVg直接の回答にならないけど、しかし、そもそも何のためにメッセージ
選択やスクリプト一時停止/続行を実行させているのだろう?
ユーザーにreturnか、enterかを実行させるためなのでは?
0096FMP+Apple Script
02/07/30 21:47ID:XfsA06weスクリプト一時停止/続行に関しては、タイムアウトが設定出来ますので、
これを短く(1秒とかに)する事で回避出来ます。
しかしながら、メッセージ選択に関しては、タイム設定がそもそも無いので
デフォルトボタンを選択する場合でも、キーかマウス入力が必要になります。
アップルスクリプトにこだわるのは、「IBM ViaVoice」を使って、スクリプト
クライアント から、音声ナビゲーションをファイルメーカーで実現するためです。
ですから、enterかreturnの出力が是非とも必要になってるのです。
僕も FileMaker4.0 を持っています.
おもしろそうだとは思いましたが,質問の意味が,今ひとつ理解できません.
次の部分です.
できたら, おおまかな flow などが,わかると理解しやすいかもしれません.
>メッセージ選択や、スクリプト一時停止/続行が実行されると、
>returnか、enterまたはマウスクリックが無ければ先に進みません。
>>94
僕も下手をするとアプリをだめにしかねない危険性を感じています.
もうちょっと,改良してみます.
0098FMP+Apple Script
02/07/30 22:25ID:XfsA06we処理の分岐にメッセージ選択をつかってます。
メッセージ選択 1.処理A 2.処理B をスクリプトに入れていた場合、
「メッセージを選択して下さい。」
[処理B][処理A]<--デフォルト
となって、リターンかエンターを入れなければ、処理Aが先に進まない と
いう意味です。勿論、押せば良いのですが、先に書いたようにVia Voiceを
使って、音声で入力させたいのです。または、一定間隔でreturnやenterを
出力させれば、事実上、タイムアウトを設定できると考えたのです。
とりあえず,同じような状況が再現できるかどうか試してみます.
Via Voice は使ったことがないので,あまり,お役に立てないかもしれませんが,
調べられるだけ調べて,気がついたことがあれば,レポートします.
ところで, FileMaker の Script とボタンは密接な関係にありますよね.
ボタンの代わりに,音声でコントロールしたいのだと考えて正しいのでしょうか?
0100にゃあ
02/07/31 00:16ID:lzSJdi2v>Apple Scriptで、returnか、enterを
>キーボードで、押したことにするという方法はないでしょうか?
AppleScriptでは任意のキーストロークをエミュレートすることはできません
いまお使いの環境にQuicKeysをプラスすれば可能になります
但し、QuicKeysに対してAppleScriptの条件分岐を認識させるのには
一工夫が必要でしょうけれど......
0101名称未設定
02/07/31 00:28ID:rhD1nbpiちゃんと見てないで書いていますが、
そもそも処理を一時的に停止させるなら3つスクリプトを用意
した方が良いのでは?、、、
1、前処理
2、A処理
3、B処理
とこんな感じ? これで対応させるのが一般的じゃないですかね?
僕の中で自動処理はエラー以外で停止させないものだと考えて
ますし自分だったらたぶんこうするかなと、、。
0102にゃあ
02/07/31 03:24ID:16YEmVMjひとつ目のダイアログが若干使いにくいのではないでしょうか?
プロパティがヌルのときは、直ちにクリエータとファイルタイプを記録し
その結果を表示した方がいいでしょうし
またキャンセルボタンも用意しておいた方が何かと便利でしょう
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
0103名称未設定
02/07/31 05:41ID:6R3EzYP0OS 9 でデフォルトボタン押すだけなら「S穫di's Additions」という
OSAXが使えると思います。
activateした後に
TypeText "
" --改行を入力
でリターンキーが押される筈です。
他にもQuickeys やprefebPlayer(だったっけ?)
CursorOSAXとかいうのも使えるかもしれません。
0104にゃあ
02/07/31 05:48ID:e7+YzVchS穫di's Additionsについては知りませんでした
OSAXで処理できるなら、QuicKeysを使うよりはるかに簡単に済むかと思います
QuicKeysは分岐処理に対してあまり強くありませんから
' メッセージ選択 ' をやっているのは FileMaker の Script でしょうか?
4.0 では,そのような動作は, Field 操作のときに出るだけで,
Script では,用意されていないようでしたが...
AppleScript の動作のようにもみえますし...
それと,>>101 の人の意見に賛成です.
0106FMP+Apple Script
02/07/31 07:00ID:OK5vgXsS結果は追って御報告いたします。
>105 FMPスクリプトを定義する一覧画面の、下〜方にありました。
ボタンを選び、status(メッセージ)で分岐させます。
0107にゃあ
02/07/31 07:16ID:tuo68hEUFinderPop用に書き直してみました
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
0108FMP+Apple Script
02/07/31 07:32ID:mqFGhuZ6結果を御報告いたいします。
御指導に従い、下記の方法を試した結果、
--TypeText (ascii character 3) ViaVoiceが勝手に終了してしまう。
--TypeText "ここで改行" ダメだった。フロントエンドプロセッサーに”ああ”と入ってしまう。
--TypeText return ダメだった。
でした。
そのあと、tell application "ファイルメーカー Pro"を止めて、
TypeText "|<-"
だけにしたら、ファイルメーカースクリプトのスクリプト一時停止/続行
及び メッセージ選択のデフォルトボタンが問題なく選択出来ました。
viaVoiceの音声による制御も出来ました。
たった半日で、問題解決できたのは、一重に皆様のご協力と、2CHの
凄いところと感謝しております。
これでまた、ファイルメーカーとapple scriptの新しい関係が、ViaVoice
を交えて作れそうです。
御指導、誠にありがとうございました。
creator type of X ,file type of X という表現が使えないようです.
(なぜか,必ずエラーになります.)
>>108
う〜ん,自己解決ですね.
お役に立てなくて,すみません.
0110にゃあ
02/07/31 08:04ID:0umTrJLtおめでとうございます
なんの力にもなれなくて......
>>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
確かにありました.("show message") <-- 英語版なので...
失礼しました.
>バグフィックス版をお送りします
う〜ん,最後の状態が維持されたままで,更新されません.
(FinderPop を使わなくてもです.)
(このテーマは,区切りをつけてもよろしいのではないかと...)
011352
02/07/31 11:53ID: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
実は,僕もあいかわらず,しつこく作り込んだりしてます.(未完成)
Core の部分は,単純なので,まさに UI の練習問題というところですね.
同じテーマで作られた Script を見比べるのも,
作者ごとの個性が出ていて,面白いです.
0115名称未設定
02/07/31 23:56ID:dX4vj+thFinderPopほど高機能ではないけれど、コンテキストメニューから
AppleScript を実行出来るので大抵の事は出来るし、
スクリプトをOSAMenu と共用する事もできるので便利です。
うちの環境ではフォルダ内のファイル数が多いと上手く機能しない
場合も有りますが、そう言う時はOSAMenuを使ってます。
この不具合はOS X の仕様に合わせて改竄された Finder のせいではないかと
疑ってますが、まぁCMScript も新しいものではないので仕方ないかな。
Classic環境じゃない OS 9 を主に使っているなら試してみて下さい。
直接スクリプトと関係ない話で申し訳ないんですが
FinderPop や Droplet 以外にもこんなのも有ります ってことで...
0118名称未設定
02/08/01 04:22ID:IPubzpKr使うヤシが結構いるけど、それ流行ってるの?それともカコイイと思ってやってるの?
なぜ全角な日本語に半角の句読点が出てくるのか理解できんのよ。
漏れが世間知らずなだけで、本当はカンマとビリオドが全盛だったりして・・・。
0120名称未設定
02/08/01 05:00ID:/tZEg3ag0121一行野郎
02/08/01 06:47ID:j4WEpYsu& "\"おもろい、めずらしいアップルスクリプト発表会\"です。" & return ツ
& "スレと関係ない話はご遠慮下さい。" buttons {"うるせぇ", "わかりますた"} ツ
default button 2) is "うるせぇ" then ツ
display dialog "おめでとう、あなたは夏厨と認定されますた。" buttons {"鬱氏"} ツ
default button 1 giving up after 10
面白い情報だと思いました.
さっそく, Sherloc を呼び出してサーチ.
運良くヒットしてダウンロード成功.
でも,うまく動作してくれないみたい. え〜ん.
(実は, ReadMe さえもよく読んでいません. )
>>121
試しにコピペしてみたら,きちんと動作するのにびっくり !!!
立派なジョークソフトだと思いましただぁ〜.
0123暇野郎
02/08/01 19:47ID:/tZEg3agset {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
ナンセンスソフト大賞 !!!
ところで, time out 時間が長すぎません?
二番目のダイアログを見られる人は,多分いないと思います.
0125にゃあ
02/08/03 00:03ID:1D7eh/DG亀レスですいません
ドロップされたもののなかにフォルダやボリュームが混じっていた場合
エラーが起きてスクリプトが直ちに終了しますよね
するとドロップされたファイルの一部については
処理を施せない可能性が生じてしまいます
repeat with theFile in itemList
try
set {file type of theFile, creator type of theFile} to {szType, szCreator}
on error
end error
end repeat
こうすれば確実な動作をします
ダイアログの値をリストに分解するのは一箇所だけなので
ここではサブルーチンを使わなくてもよいのではないでしょうか?
ダブルクリック部でダイアログをリピートさせる手法には脱帽しました
0126にゃあ
02/08/03 00:05ID:1D7eh/DGend errorはend tryの間違いです
0127名称未設定
02/08/03 00:09ID:ogwzbKZiOS 9.1のAppleScriptで上手く実行されていたAppleScriptを
OS 9.2.1以降のAppleScriptで実行させると、ファイルやフォルダ名に
日本語が含まれていた場合、うまく処理出来ないという不具合が
あったと思うのですが、これをコード側かOSAXなどで回避する
方法はありますか?
0128名称未設定
02/08/03 00:38ID:TxAppN720129名称未設定
02/08/03 00:49ID:vxCRaQ70こんな方法、間違っていたらごめんして。
当方も今まで動いていたフォルオダー関連のスクリプトが動かんごとなったけん、
次の方法を、試したとばい。
騙されたとおもって、試してみんね。
方法
1.システムフォルダーのスクリプティング機能追加の中に
2.システム9.1からコピーしてきた標準機能追加を標準機能追加91とか
適当にリネームして突っ込んでみれ。これで標準機能追加が2つ。
3.上級者に怒られるかも知れんけど、うちでは、8.6用ば突っ込んで
動いとっけん、教えとく。
結果を教えて。
0130名称未設定
02/08/03 01:01ID:w9QjuzNIAppleScript 1.8.3 の変更点に
>>・ Allows scripts to work with files and folders whose names contain accented or other special characters.
という記述を見つけたので、ひょっとしたら直ってるかも。
誰か確認した人はいませんか?
おらとこさまだ1.6だで、試してねーだよ。ゆるしてくんろ。
0131127
02/08/03 03:19ID:v6TSseAX>>128
ありがとうございます。探してみます。
>>129-130
やはりそれが手っ取り早いですね。
ただ、自分の作った、あるスクリプトが数人の方に需要があるのですが、
いちいちそれを説明するのがおっくうだったのでソース側で回避できれば、
と思ったのですが。
AppleScript1.8.3に関しても調べてみます。
0132名称未設定
02/08/03 03:24ID:rUyeXY3VAppleScript1.8.3って出てるんですか?
どこで落とせます?
0133127
02/08/03 03:39ID:v6TSseAXClassic環境で実行させるスクリプトなんでちょっと使えないです。
助言をいただいたのに申し訳ない。
0135名称未設定
02/08/03 04:55ID:w9QjuzNIAppleScript 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.
と書いてあっただよ。
だども、英語版のみだっただ。すまぬ。
0136127
02/08/03 05:06ID:v6TSseAX.comの方にはあったんですね、こちらの早とちりでした。
どうもすみませんでした。
英語版でも正しく日本語を処理出来れば良いのですが
(おそらく大丈夫かと思いますけど)。
とりあえずダウンロードして使ってみます。どうもありがとうございました。
0137127
02/08/03 05:53ID:ydzHOuNv英語版AppleScript1.8.3をインストールしようとしたところ、英語版MacOS9.1以降を用意しろボケと
言われ、インストール出来ませんでした。
しかし、英語版OSでは出ているアップデータが何故日本では発表されないんでしょうね。
0138名称未設定
02/08/03 11:06ID:f5Q+/K+O0139名称未設定
02/08/03 11:59ID:XTRDpiG4TomeViewerでファイルを取りだして手動インストール。
今OS9.2.2(日本語版)に入れてみたけど、英語版だからとって
特にこれといった問題は感じないし、パスに日本語が混じってい
ても大丈夫っぽいね。まぁ、あれこれやって細かいところまでは
確認してはいないのでなんとも言えないけど、オイラんところ
では今のところは問題ないよーだよん。
0141名称未設定
02/08/03 15:19ID:f5Q+/K+Ofinishだとユーザー変数扱いになっちゃうんですが…
0142名称未設定
02/08/03 16:27ID:HmfXWdb7>>62
うち(MacOS 9.1) では、OSA Menuを 1.2.3 d7 に入れ替えると、
メニューの点滅問題は解消しました。
www.lazerware.com/FTP/OSA_Menu1.2.3d7.sit
>>63
OSA Menuだと、キーボードショートカットを各メニュー項目に
自由に割り当て出来るので、ある程度操作の利便性は確保できる
と思うのですが・・・
0143名称未設定
02/08/03 16:31ID:d+w14iaCあ、ほんとだ。動詞の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
0144138
02/08/03 16:42ID:f5Q+/K+Oちょっと調べてきましたが、stopは再生/停止のstopとかぶってるから
使えないという仕様ミスのようで。
そこでiTunes3ではstopをfinishに変更して使えるようにしましたと、、
そしてiTunes3はOS Xオンリーと、、はあ。。
0145名称未設定
02/08/03 19:08ID:d+w14iaCaeteリソース/ID=0/iTunes Suite/Classesのtrack/Propetiesのstop
をfinishにリネームしてしまう
という手はあります。
0147140
02/08/03 21:17ID:QSvqDLPZしらべてみると
生データで書く方法が有効みたいです
ヌclass pStpネ
これでやってみてください、構文確認で「stop」に直されますが
内部的には停止の「stop」と区別してるみたいです
検証はiTunes 2.04 & OS 9.1でやりました
0148144
02/08/03 21:56ID:f5Q+/K+Oそれ調べてるときにチラっと見かけたんだけどよくわからなくて挫折してました。
そのまんま書けばよかったんですね。うまくいきました。
thanks!
>145
やらなくて済みそうです(笑)
0149名称未設定
02/08/03 21:59ID:d+w14iaC0150名称未設定
02/08/03 23:49ID:Xntwj6NKスクリプトで、ATOKが起動している時は、キーボードをUSに、
USの場合は、何もしないように判断させて、切り換える方法は有りますか?
0151にゃあ
02/08/04 00:11ID:6xL7GJqNKT7.1.2〜OS8.6のAppleScriptでは不可能ですが、QuicKeysを使えば実現できます
OS9以降についてはインストールしていないのでお答えできません
0152名称未設定
02/08/04 02:08ID:yzOMEzunあんたここに常駐してるコテハンだよね
事実上質問スレと化してるスレでOS 9以降は分からないって…
AppleScriptも仕様変更されてるだろうから
混乱を招かない様にだまってた方がいいんじゃないの?
悪気はないんだろうけど
0154名称未設定
02/08/04 02:48ID:6FFXxegpここで晒してダメ出ししてもらうのが目的なので気にしません。
-------------------------------------------------------------------------
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
-------------------------------------------------------------------------
0155154
02/08/04 02:49ID:6FFXxegp・duplicate with replacingを使うと上書きせずに元ファイルがゴミ箱に溜まってうざいので
単純に複数ファイルをリネームしつつ入れ替えるだけにしました。
・素人が作ったので危険。
使い方:
・iTunes2、OS9専用です。
・ライブラリファイルのあるフォルダパスを手動で書き換えといてくださいw
・初めて実行するとライブラリファイルと同じフォルダにiTunes 2 Library Filesってフォルダができるので
ここに入替用ライブラリファイルを“別の名前にして”入れておいてください。
・なおライブラリファイルのコメント欄を利用するため勝手に書き換えますw
わかっている問題:
・iTunesが起動している時はまず終了させるようにしたんですが、なぜか最前面にあるときは
quit appが遅れをとって上手くいきません。ライブラリファイルが上書きされて酷い目にあうかも。
0156127
02/08/04 02:56ID:WIpTiM63ありがとうございます。
TomeViewerで取り出すのも考えたんですが、不安定になるのが
怖くて躊躇していました。ご報告ありがとうございます、やってみます。
0157名称未設定
02/08/04 03:10ID:YAe/UdBGとりあえず、OS9.21で QuicKeys3.5.3 が動いてるし、QuicKeysXも有るよ。
QuicKeysからAppleScriptを使ったり、その逆も出来る。
AppleScriptに対応してないアプリもQuicKeysを通してAppleScriptから
制御出来るからこの組み合わせは最強だね。
>>150
の件でQuicKeysを使うのは条件判断が難しそうだけど、
なんの解決策もヒントになりそうな情報も書いてない
>>152-153
よりはましだから気にスンナ。
僕は,いいんじゃないかと思うけど...
自分で確認できる範囲で,答えるのは悪いことではないんじゃないかなぁ?
未確認の範囲をきちんと明言しているわけだし...
あなたが言うように,悪気がないのは明白ですよ!
0159152
02/08/04 03:37ID:yzOMEzunあれ?なんか怒ってる?
いや、おれはこのスレは好きなのよ、参考にさせてもらってる
だからこそ古い環境でのアドバイスは控えた方がいいんでないかと
っていうか、あんたこのスレ読んでる?
0160名称未設定
02/08/04 04:00ID:YAe/UdBGとりあえず
>>わかっている問題:
に関してだけ
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 とか使ってる人もまだ結構いるしね。
0161にゃあ
02/08/04 04:35ID:HKRDUyXmスレの空気を乱してしまい、申し訳ありません
>>150にはATOK8とあり、またIMではなくFEPとの表現でしたので
かなり古い環境をご使用ではないかと判断し
7.1.2〜8.6までのOS環境におけるスクリプト制御の可否についてお答えすれば充分かと考えた次第です
>>150の場合、QuicKeysにおけるアルゴリズムはごく単純です
メニューからUSを選択するショートカットを作成しておき
ATOKが動作しているか否かに関わらず、このショートカットを実行するだけで構いません
既にUSが選択されているときに再びUSを選択しても、実際には何ら変化はなく
それこそが期待していた動作だからです
0162157
02/08/04 05:01ID:YAe/UdBGいや、スレの空気を乱したのは俺だった。申し訳ない。
>>150の件は見事な推察で恐れ入りました。
なるほど、ATOK8なら古いシステムだろうし
Quickeys使うなら条件判断は最初から必要ないですね。
0163にゃあ
02/08/04 05:35ID:FrBPRQcnいえいえ。とんでもない
僕の方こそアドバイスの言葉が足りなくて......
AppleScriptとQuicKeys
両者の足りないところを補い合うようにして使えば
本当に快適な環境が実現しますね
0165154
02/08/04 17:20ID:6FFXxegp残念ながらやっぱりあまり上手くいかないようです。
delayを延ばしたりしてみましたが空白の時間が増えるだけでした。
結局これを確実に避けるには、iTunesが起動していたら終了を促す
メッセージを出して一旦スクリプトを終了させるのが妥当なのかも。
…なんか悔しい。
0166名称未設定
02/08/04 22:52ID:Nk5tUEtaとにかく終了を待ってからってのはどう
if exists process "iTunes" then tell application "iTunes" to quit
repeat while exists process "iTunes"
delay 1
end repeat
0167名称未設定
02/08/04 23:31ID:6FFXxegp固まりますた。
0169名称未設定
02/08/05 02:15ID:YkolX9PC0170160
02/08/05 06:49ID:QbtWauQu知ってると思うけど・・・スクリプトエディタでログ(履歴)を
表示して実行すると止まる問題点が表示されて分かりやすいですよ。
まずは、問題点の切り分けの為に
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 機能拡張をアップデートした方が良いのかも。
0171名称未設定
02/08/05 15:20ID:qhdZVn2Vどうすればいいのか教えてください
(どうせ,冷やかしなんだろうけど...)
お使いのアプリを書いてね.
まさか, AppleScript で,やる おつもりではないでしょうね ?!!!
(でまかせを書いたけど,できるのだろうか...無理に違いない...)
0175154
02/08/05 20:23ID:rfjrJFAHいや、command+.で終了はできるんでそんなにダメージはなかったですけどね。
>165
いろいろ検証してみたところ、
1.iTunesがすでに起動していて、かつ最前面のとき
2.iTunesを終了させて、さらにFinderなどで処理を続行するスクリプトを
3.OSA Menuなどのスクリプトメニューから実行。
した場合にかぎってどうしても終了処理が遅れてしまうようです。
ちなみにiTunes以外のアプリでも同様のようでした。
ひょっとしたらスクリプトの記述でどうこうなる話ではないのかもしれません。
それになんだかあまりにも場面が限定的なのでどうでもいいような気もしてきました。
せっかく皆さんにいろいろ考えてもらったのに申し訳ないですが。
コンパイルしてアップルメニューなどから使う分には問題なさそうなので
そうやって使ってください・・つうかスクリプト自体の需要がないかw
0176154
02/08/05 20:25ID:rfjrJFAH0177名称未設定
02/08/06 20:20ID:6lhw9erC"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
0178名称未設定
02/08/07 11:10ID:5P/ummJZ丁度その話題は前スレあたりであったと思うので
探してみて。で、結論からいうとネスケは選択文字列の
取得は駄目なんですよ。
漏れは、RbでコマンドCのキーイベントを発生させて
コピーしてASでオープンして対処してます。
0179177です
02/08/07 20:28ID:18wR8zzJなるほど、選択文字は取得出来ないんですね…
ありがとうございました。
さっき AppleScript Lab を見ていて Menu Events
http://www.magma.ca/~awolsp/
というOsaxを見つけたので落として使ってみましたが
Select Menu Item menu title "編集" menu item text "コピー"
と書くと、ねすけがコピーしてくれる様になりました。
なんとか「選択+実行」で見れそうです。
次はGoogleと翻訳に挑戦してみます。
どうもありがとうございました。
0181名称未設定
02/08/11 11:38ID: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
0182にゃあ
02/08/11 13:54ID:oHVBBYIMset 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
0183質問です。
02/08/11 14:52ID:fD9vW4FsシステムはOS 9です。
キー バッファーを初期化(クリアー)したいのですが、適当なosax
があれば、教えて下さい。
あと、repeat〜end repeat文は、回る回数に制限があるのか教えて下さい。
宜しくお願い致します。
>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
0187名称未設定
02/08/11 22:36ID:mnPC2Edidisplay dialog "計算式を入力してね" default answer ""
set shikiStr to text returned of the result
run script shikiStr
0188187
02/08/11 22:38ID:mnPC2Edi最後の1行の代わりに..
set kotaeStr to run script shikiStr
display dialog kotaeStr
0190名称未設定
02/08/12 00:26ID:+KXHft/U0191187
02/08/12 00:59ID:qxZNbUf3Script WizardとかScripterとか使っても、ラインブレイクなんだもん。
0192183
02/08/12 02:02ID:Uzv7yWrvrepeat の繰り返しに制限が無いことは解りました。
ありがとうございます。
・・・ 何でとまるんだろう・・・(泣。
0194名称未設定
02/08/12 04:16ID:GSpDnbB+晒してみさらせ
0195変数に付いて。
02/08/12 21:34ID:1Nr12XxE具体的には、自分自身のスクリプトが延べ何回使用されたかが分かるように
したいのですが。
0196名称未設定
02/08/12 21:55ID:iaFXIj40ようは起動の度にインクリメントしてけばいいんだよね?
propertyを使えば値を保存しとけるんで、こんなんでどう?
property aNum : 0
set aNum to aNum + 1
display dialog aNum
0197195
02/08/12 23:14ID:KqDWMd8fpropertyで出来ました。ありがとうございました。
持っている本 ダニーグッドマンのAppleScriptハンドブックの索引では
propertyは別の事?で載ってました。他に良い参考書があれば、御教示
下さい。
0198名称未設定
02/08/12 23:15ID:9H5yt/2F>>1の【入門サイト】のトコ読んでるんでしょうか?
読んでないとなると後いくつの質問に答えなければならんのだろうか(鬱
0199添削きぼんぬ
02/08/13 00:08ID:uld6Vi0Ltry
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
0200自ら添削
02/08/13 00:22ID:uld6Vi0L早速、訂正 17行目
×repeat until exists convfile or cnt イ 0
○repeat until (exists convfile) or (cnt イ 0)
200げと(泣
0201名称未設定
02/08/13 00:28ID:mQwr4Eloconvfile が不正って出るけど、俺だけか?
0202182
02/08/13 01:28ID:hJAQuKbBしばらくここをチェックしてなかった182です。
AppleScript's text item delimiters to 〜 を
数値の抽出と計算式の表示のためにつかってます。
元の計算式がみづらいので、数字と演算記号の間にスペースを
いれたかったので、2回目は+の両はじに半角スペースが
あります。
>>187-190
脱帽です。
それを参考にいろいろいじってみます。
0204Scriptでwaitは?
02/08/14 13:44ID:ePe285+Jその後度々ご迷惑をお掛けしており、不勉強で申し訳なく思っております。
ご教示頂いた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へ続く
0205その2です。
02/08/14 13:46ID:ePe285+J--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
0206その3です
02/08/14 13:48ID:ePe285+J--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文で動かない
--何卒宜しくお願い致します。
0208名称未設定
02/08/14 14:26ID:wQRWN5GK0209名称未設定
02/08/14 15:10ID:d4vzmBDXdelayも--iTuns2のラヂオチューナ ・・・で見て、試して見ました。
どうも、スクリプトが終了した後に、キーボードバッファー?から、
遅れて出力されて切り替わるようです。動作を見てますと、このスクリプト
がrepeat文やdelayを使っても、CPUを占有して放さない様に思え、終了後に
tyeptext文やpressbutton文が実行されている様に思えます。考え方が間違って
いるかもしれません。希望としては、typetextの直後に、画面に反映して欲しいと
思ってます。
>208
OSは9.2.2と8.6を交互に使用してます。AppleScriptは1.6、PowerMac7300/166を使ってます。
前回のレスでバージョンを明記しなかった事をお詫び致します。
0210強制U.S.きりかへ
02/08/15 06:30ID:GBNx8dnBMenuEventsを使っても出来そうな気がするが
どうでしょ?>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などより
簡単に使えるので、いろいろ試してみて下さい。
*)
0211名称未設定
02/08/15 06:50ID: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も有りますた
*)
0213名称未設定
02/08/20 01:22ID:PbSPzkdG再前面のウインドウを強制的にカラムにするってやつ
出来ないですか?
0214名称未設定
02/08/20 01:23ID:PbSPzkdGつまりカラムにしまくってくれるってことす。
0215名称未設定
02/08/20 12:58ID:X2PjYqZF「ご主人様ご命令を!」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50
0216名称未設定
02/08/20 21:25ID: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
0217216
02/08/20 22:56ID: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
0218OS 9だとこんな感じか?
02/08/21 01:30ID:+22vrhpE--実行後、自動的に終了しない アプレットで
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
0219名称未設定
02/08/21 03:01ID:QIhHTe07--選択して実行、またはドロップ
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
0220名称未設定
02/08/21 09:56ID:KAsMuHmnもう解決したみたいだけど
ドロップレットの場合はスクリプト内で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
0221216
02/08/21 12:20ID:WNnYh5pwおお。
select 〜
set selection to 〜
どちらもOKでした。selectすっかり忘れてました…
2人ともありがと。
関係ないけど、selection使うと、処理中にボリュームアイコンとか
クリックしちゃうととても悲惨なことになりますな。。
0222名称未設定
02/08/21 15:59ID:vKjHjeDcん? というか、ドロップレットでもFinderからselectionを
フツーにゲットできますが?
on open
tell application "Finder"
set drop_items to selection
end open
ちなみに、こうするとエイリアスをドロップするとオリジナルのパスを
取得してしまう問題を回避できます。
0223名称未設定
02/08/23 19:46ID:VAK5TvzlOS9で使う為に書いたスクリプトを「OSXアプリケーション」で
コンパイルしたら、OSXでもフツーに使えてしまうんでしょうか?
わざわざ、「OSXアプリケーション」という選択肢が用意されて
いるから出来るのかなぁと淡い期待を持っているのですが。
よろしくお願いします。(OSXは持っていないので試せません)
0224名称未設定
02/08/24 01:57ID:aWtP03fQ0225名称未設定
02/08/24 16:28ID:AgeCnNlD0226名称未設定
02/08/24 16:52ID:YUc//CiJ検証してないっすけど、OS 9アプリ間でのスクリプトを
クラシック環境で使うのは平気でしたよ。
あまりUIがないし普通に実行出来るんじゃないっすかね?
0227名称未設定
02/08/25 07:05ID:tLUmAk1bOS ×と9に分かれてるのは1.7まですか?
×と9じゃAppleScriptのバージョンが違ったりする事も有るから
×用アプリとして保存しても実際動作するかはビミョ〜と思ってたっす。
0229名称未設定
02/08/25 20:11ID:lYLSIvv6一応、使えますよ。
選択肢がないのは全部OSX用アプリとして
コンパイルされるからなんじゃないのかな。
ただ、OS9とOSXじゃ書き方で動いたり動かなかったりなんで
OSX用はOSXで実証してみないとだめなんじゃないかな。
0230名称未設定
02/08/26 05:56ID:SmfFJYOCOS X用をOS 9で動かすとメモリ余計に食うみたいだから、
足りないって言われたら情報ウインドウで増やすといいよ。
0231名称未設定
02/08/26 22:47ID: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
0232名称未設定
02/08/26 23:12ID:mcu9uCOX×file creator
○creator type
0237名称未設定
02/09/01 10:50ID:uZXH+7x00238名称未設定
02/09/06 02:57ID:ZrtO1rob0239名称未設定
02/09/06 11:04ID:iPHP1RLtどうも Preferences の設定とかわからないッス…。
0240名称未設定
02/09/06 11:42ID:mzKug7He0241名称未設定
02/09/06 13:48ID:oid3LI2P「Script factory」
http://www.MacOS.com/scriptfactory/
コンテンツ「Monologueの」あたりにOSA Menuの話があるので
一応読んでおくと良いと思ふ。
0242名称未設定
02/09/07 10:22ID:D8OzF2Zyそれやると Preferences を変えたい時にいちいち初期設定
捨てて再起動しなきゃならんのよね…。
>241
ありがとう。
でも、そこを読んでも動くスクリプトと動かないスクリプトが出来てしまう…。
やはり全部 Finder からアプリケーションとして動かすしかないのか…。
0243名称未設定
02/09/07 13:54ID:YgJU/vIB0244名称未設定
02/09/11 19:03ID:L8NqREBQ0245名称未設定
02/09/14 06:19ID:+odswgfJ0246名称未設定
02/09/17 11:16ID:xxyVX/LMランダムに並んだ数字のリストを {2,5,4,1,3}
順番どおりに並べるのって {1.2.3.4.5}
どうすればいいんでしょうか?
0247名称未設定
02/09/17 20:38ID:8bKEUAFx高速なソートの仕方って自分も知りたいんだけど、AppleScriptでは無理っぽい
0249名称未設定
02/09/18 12:03ID:LaoMQzMKありが�
何か専用のコマンドが用意されてて
簡単にソートするというわけにはいかないんですね
じゃあリストからひとつひとつ取り出しつつ
比較して並べ直すというスクリプトを組めと…(;´Д`)
リストはせいぜい数百個程度なのでそれほど高速化にはこだわらなくてもいいので
なんとか作ってみます、ありがとうございました
0250名称未設定
02/09/18 18:37ID:S9DMYK0NGTQ Programming Suite(1993-1998)
にそのまんまSortというOSAXがある。テキストも数もsortできる模様。
Case SensitiveなsortもOKのようだ。
osaxen.com/gtq_scripting_library.html
に今でもある。9でも動くぞ。
0251名称未設定
02/09/18 18:41ID:S9DMYK0N0252251
02/09/18 18:53ID:S9DMYK0Nまちがった。Chimera挙動不審......
0253249
02/09/19 11:38ID:IgYi1i+hon 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
0254249(つづき)
02/09/19 11:39ID: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使った方がよさそうですね
0255249
02/09/19 12:01ID:IgYi1i+hいまOS X(10.2)で試してみたら全然速い!
300個で10秒ぐらい
すばらしい
0256名称未設定
02/09/19 13:19ID:rMIQHuGnプログラムを見る限り、選択ソートを使ってるようですね。
動作を速くしたいというなら、クイックソートを使ってみては?
ただ不安定になってしまうけど。
0257名称未設定
02/09/19 17:20ID:HCj4LNrO0258名称未設定
02/09/19 19:30ID:puozZTObset 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
0259名称未設定
02/09/19 19:31ID:puozZTObset 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
0260名称未設定
02/09/20 23:26ID:42D1hUfD1枚のCD−Rの限界サイズできっちり収めたい
サイズもバラバラで沢山有る文書を
フロッピーの限界サイズできっちり収めたい
と言う場合には
アップルスクリプトではどうしたら良いんでしょうか?
アルゴリズムだけでもいいのでよろしくおながいします。
0261249
02/09/21 09:27ID:dVbmKgt8そのクイックソートとやらで作ってみました
速いです、感動です、ありがとう
>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
お疲れさまですた。
ところでスクリプトを見て思ったけど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を一回減らせるんで多少速くなるかも。
でも実際やってみたらほとんど変わらんかった。
0263261
02/09/21 20:30ID:e6lhyKB5確かにそうすると少し速くなるはずですね
この方法は比較する基準の値に何が選ばれるかという「運」で
速度が変化するので分かりにくいですが
速くなると思います
AppleScriptで大きなリストの扱いによる速度の低下は
「大きなリストからアイテムを取り出す時」に起こるそうです
ですから計算の数は増えてもいいので
リストをうまく分割することに重点を置けばもっと速くなるかも
0264名称未設定
02/09/28 22:22ID:PLoM57J3自動化君ここ来ないかな。
0265名称未設定
02/10/01 06:04ID:m16U4tOF0266名称未設定
02/10/04 09:59ID:/Sxhv4L10267名称未設定
02/10/11 21:26ID:r3nOuIjN0268名称未設定
02/10/13 09:13ID:kWCs88FG音がうるさいソフトがあり、使う時には音をミュートしているのですが
めんどうなのでスクリプト化してアイコン一発で使えるようにしたい
と考えています
0269268
02/10/13 09:18ID:kWCs88FGなんでだろう?
tell application "おえかきv1.3(OSX)"
set volume 0
activate
end tell
set volume 1
0270名称未設定
02/10/13 09:20ID:1VCyI1k3tell application "Finder"
set volume 0
end tell
0271268
02/10/13 09:36ID:kWCs88FGありがとうございました。
音は確かに消えました。
でも、ソフトが終了すると音量の復元をさせようとすると
うまくできません。
下記の内容では音量の再現がソフト開始前に実行されてしまいます
tell application "Finder"
set volume 0
end tell
tell application "おえかきv1.3(OSX)"
activate
end tell
tell application "Finder"
set volume 7
end tell
0272名称未設定
02/10/13 09:59ID:1VCyI1k3スクリプトがソフトの起動終了を監視しているわけではないので。
1段目のスクリプトは音量を7にするだけのスクリプト、
2段目のスクリプトは単におえかきが「立ち上がるだけ」のスクリプト、
3段目のスクリプトは音量を7にするだけのスクリプトなのです。
0273名称未設定
02/10/13 09:59ID:N98ntI7d>でも、ソフトが終了すると音量の復元をさせようとすると
>うまくできません。
同時には無理だよ...
ソフトを終了させた後に、別で作った音を戻すスクリプトを
起動しないとね。漏れはOSX使って無いんで分らないんだが
スクリプトメニューみたいのついてるんだっけ?
終了&音量復帰っていうスクリプトを通常の終了の代わりに
使えばいいんじゃない?
0274名称未設定
02/10/13 09:59ID:1VCyI1k3訂正
スクリプトがソフトの起動終了を監視しているわけではないので。
1段目のスクリプトは音量を0にするだけのスクリプト、
2段目のスクリプトは単におえかきが「立ち上がるだけ」のスクリプト、
3段目のスクリプトは音量を7にするだけのスクリプトなのです。
0276268
02/10/13 10:15ID:kWCs88FGでも簡単にはいかないようですね
2段目と3段目の間に wait するような命令が入ればよいのですが
見つかりませんね。過去ログみてますが repeat するしかないようですね
でも repeat するとCPUのパワー無駄にしないか心配です
>終了&音量復帰っていうスクリプト
これは別ファイルにするってことでしょうか
うーん、別にしても同じ結果にならないかなー
>>275
いま使用しているのは iBook です。OS10.2
キーボードには調整があります。
しかし、使うのが親なのでできるならアイコン一発で
わずらわしいことはさせたくないなー、なんて考えていました
すみません。ご迷惑かけてます
0277名称未設定
02/10/13 10:15ID:QuQGg7p9set volumeってゆうOSAXなんだから1行でいいじゃん。
0279名称未設定
02/10/13 11:07ID:Ds9dZk0Pほんまやねぇ。
OS 8時代からのスクリプトをコンパイルし直して使ってたから
気づかんかったよ。
それはそうと、OS Xの音量は0.5単位で調整できんのかな?。
OS 9だとできてたんだが、Xだとうまくいかんみたいなので。
0280名称未設定
02/10/13 22:40ID:W0M8xVl4起動用スクリプト(アプリ起動+それまでの音量を記録してから前回iTunesを使ってた時の音量に変更)
終了用スクリプト(iTunesを使ってる最中の音量を記録してから元の音量に戻す+アプリ終了)
っていう二つのスクリプトを作って使ってるよ
0281名称未設定
02/10/13 23:14ID:JHH3cwvF現在の音量を取得する命令があれば、ひとつのスクリプトで済むのだが。
0282名称未設定
02/10/13 23:24ID:R2Sqmq31できるか?
音量の取得は標準で入ってるSound Scriptingでできなかったかな
いまOS Xなんで検証はできんが
用語説明読む限りではできそう
0283名称未設定
02/10/14 00:06ID:3OLpTzccset sound volume to 0
else
set sound volume to 8
end if
これでひとつのスクリプトで済みますた
0284名称未設定
02/10/14 00:47ID:nQay4c2+あぁ、なるほどね。ひとつで済むってそういう意味か。
監視じゃないのね。
でもやっぱ起動する時はScriptダブルクリックで起動してもらって
終了する時はスクリプトメニューから終了スクリプトを
起動してもらうのが自然な流れっぽいと思うんだが。
これインスコしる↓
http://www.apple.com/applescript/script_menu/
0285268
02/10/14 11:43ID:yRNzwUhoってどうやって登録するのですか?
0286名称未設定
02/10/14 11:48ID:FdXPAfOUtry
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でエラー回避。
0287名称未設定
02/10/14 16:09ID:ir6zB5MGhttp://www.zdnet.co.jp/macwire/0110/17/c_browsing_2.html
>>286
現在の音量を保存...って起動処理が終わった時点でそのスクリプトは
一旦終了するんじゃ?
0288名称未設定
02/10/14 16:31ID:OXNwQ+eZ0289名称未設定
02/10/14 17:12ID:/3q/Vgl5property svol : sound volume
が必要か。
0290名称未設定
02/10/14 18:08ID:/3q/Vgl5property 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
0291268
02/10/14 21:04ID:nwJL5y6Tでも残念ながら上手く行かないですね
もういろいろ考えるのも時間がもったいないので
思いきってソフト側で音を止める設定をつけていただけないか
作者様にお願いをしました。
いや、でもスクリプトっていろいろあるのですね
勉強になりました。皆様ありがとうございました。
0293名称未設定
02/10/14 23:17ID:bCjxmmPPソフトをただ消費するだけの側にまわってしまったか。
俺は寂しい。
0294名称未設定
02/10/14 23:20ID:1zuO4H/O自分に言い聞かしているのかい?
と、まぁお約束の突っ込みを。
悩む時間がもったいないか・・・。悩む時間が楽しいんじゃないかと言ってみるテスト。
0295名称未設定
02/10/14 23:58ID:02yjUDfYtell 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
0296名称未設定
02/10/20 01:44ID:SmUpCh2Xことできません?
この機能、Macにもあればすごい便利だと思うんだけど。
0298名称未設定
02/10/20 02:17ID:SBh4L5ZA俺もよくわからんが、Finder以外を隠す→デスクトップが前面にでる
ということなんじゃないかな?。
単にFinderを前面に出すなら、activateコマンド一つだが・・・
あるいはOS Xでデスクトップフォルダの内容をウインドウに表示する
ってことかも?。
0299名称未設定
02/10/20 02:28ID:esx61S0o0300名称未設定
02/10/20 02:34ID:dwQ9oFxN0301名称未設定
02/10/20 02:47ID:Eo2l6ErY0302296
02/10/20 02:52ID:SmUpCh2X>>299 の方が近いです。
OSXを使ってますが、特にCD-ROMを使ってると、
この機能(クリックひとつで)があれば便利だと感じます。
0304名称未設定
02/10/20 04:23ID:dwQ9oFxNドックにDesktopフォルダ入れといて右クリック
0305名称未設定
02/10/22 23:23ID:K7/oaqq9フォルダも一緒に開くようにするフォルダアクションをつけたいのですが…
誰か分かる方いらっしゃったらお願いしますです。
0306名称未設定
02/10/23 00:04ID:Rst/eFIeフォルダアクションのつけ方が解らないの?それとも
フォルダアクションハンドラの書き方が解らないの?
ちなみにフォルダを開くにはFinderにopenさせるだけなんだけど
本家アポーで調べるよろし
http://www.apple.com/applescript/folder_actions/
0307305
02/10/23 00:31ID:dg7RMDBuあと、書くの忘れていましたがOS 9です。
構文の書き方が分からないのです。
例えば、Aというフォルダがあって、その中にBからZまでのフォルダがあったとします。
で、Aのフォルダを開いたと同時にKのフォルダも開くというような事です。
0308名称未設定
02/10/23 01:03ID:Rst/eFIeああ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
0309名称未設定
02/10/23 01:27ID:dan1f6jf自分は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を作って、ためしてみてね。
動くようだったら、
{}内の、""内に任意のフォルダ名を入れてね。
本当はもっと自由度の高いスクリプトを書けると良いんだけど、この程度の実力しかないもので.....
0313307
02/10/23 19:27ID:jj3+CtaO今やってみたら出来ましたヽ(´▽`)/〜♪!!
本当に感謝です!
自分ももっと勉強してこのスレで教えられるようになりたいです。
しかし、30分で出来てしまうとは…
0315名称未設定
02/10/27 13:29ID:pz9OSfW10316名称未設定
02/10/27 13:48ID:nHIW1G+p実行誤り
age変数は定義されていません
0317名称未設定
02/10/27 20:13ID:ZDCGpz8NStudioの使い方まで載ってるけど高いなあ。本屋で見たけど、電話帳みたいに厚いし
0318318
02/10/28 01:06ID:vcbv6lhHするためのスクリプトなんすけど、
バイト単位で文字を消していくので処理が遅くて、
使い物になりません。
どなたか、Jedit持ってる方、ヨロピク!
環境↓
AppleScript J1-1.4
MacOS 9.04
Jedit4
(続く↓)
0319318
02/10/28 01:10ID:vcbv6lhHtell 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
(おわり)
tell application "Finder"
activate
open about this computer
end tell
成功したがもうひとつ(不要な)ウインドウが出ます。
日本語アップルスクリプトでは出なかったのに・・・
どう修正すればいいのでしょうか?
どなたか御教授下さい。
0321名称未設定
02/11/01 11:24ID:Ok6yEwusどういうテキストを扱うのか分からんのだが
文字色だけで区別したいなら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
不要なウィンドウって何?試したけど出なかった
0322名称未設定
02/11/01 11:33ID:B4ridQB0日本語AppleScript って、懐かしいね。
アプリケーション "Finder" について
アクティベート
このコンピュータについて を開く
以上
こんなんだったっけ?
0323bloom
02/11/01 11:34ID:ro68ckhAhttp://homepage.mac.com/bloombloom/
0325318
02/11/01 16:21ID:Ap7Jh2L2パーフェクトっす!
感動しました!
repeat文内は難しくて、全然わからないっすけど、
おれも、いつか321さんみたく書けるように
勉強したいと思います。
「ゼンマイびゅんびゅん」で。
そうそう( ・∇・)
いまだに日本語が気に入ってる。
英語が苦手だから。
0328名称未設定
02/11/05 00:04ID:E22l21c3Macを起動したまま出かけるときに
受信と一緒にスケジュールで実行させている
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の存在を知るのに朝方までかかってしまいました。
アップルスクリプトをもっと勉強したいと思いました…。
0329名称未設定
02/11/08 18:06ID:qMGYtp8odisplay dialog "hello"
にアイコンを入れるにはどうすればいいのでしょうか?
0330名称未設定
02/11/08 23:32ID:0ACv4qImアプレットとかOSAXとかどこかにアイコンリソースが無いとダメだけど
0331名称未設定
02/11/09 02:22ID:ei3KTO/l0332名称未設定
02/11/09 19:40ID:lha/xZAz<iconNameOrNo>は、stop, note, cation のどれか
(これらは システムリソースのを使うから、別に
スクリプト側に持たせなくてもいい)
あるいは、ICON(or cicn)リソース番号。
これも、システム標準のものはそれをそのまま使える。
display dialog "hello" with icon -16396
とか。
0333名称未設定
02/11/12 02:19ID:TOdYWGGPtell application "Finder"
set current view of window 1 to column view
end tell
return 1
end idle
OSXにて。Finder最前面のウインドウを常にカラム表示にする。
カラムが好きなんだけど、さりげなくフォルダを開いたら
アイコン表示になっていてブチギレたことは御座いませんか。
このスクリプトは常駐して強制的にカラム表示にするものです。
ぽちっとボタンを押してアイコン表示に戻しても、すぐに
カラムに切り替えます。
0334名称未設定
02/11/12 02:20ID:TOdYWGGP0335名称未設定
02/11/12 22:53ID:JusMrDrgある特定のアプリケーションを起動後すぐにウインドウを
閉じさせる、という作業をスクリプトで自動化したいんですけど
そういうことはApple scriptで出来るんですか?
0336名称未設定
02/11/12 23:04ID:yTTxZpYnlaunch 命令を使えば、そのソフトをウインドウを開かずに起動させることは出来る。
どのソフトでも100%そうなるわけではないが。
というのじゃだめ?
0337名称未設定
02/11/13 03:39ID:+MHuDhySえっそんな事ができるんですか?良かったら教えてください。
0339名称未設定
02/11/13 05:52ID:Q4w2smDhフォーサイトあたりで、ツール、書籍などひとまとめにして
「まるごとAppleScript」として販売してもらいたいね。
0340名称未設定
02/11/14 00:55ID:WF1WeLqZApple Scriptで、
HDからOSたち上げ→RAM Diskを作る→そのRAM DiskにHDを丸ごとコピー→
→起動ディスクをRAM Diskに変更→再起動
てな感じでできないかな?
できそうだったら、教えてくださいm(_)m
0341名称未設定
02/11/14 05:07ID:yRM+jZKDAppleScriptで出来る出来ないを○×で書くとこんな感じになります。
△ 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では出来ません。
(回避する方法はあるはずです。試した事ないので断言できません。)
0342名称未設定
02/11/14 06:18ID:NBdidYGRこれでRAMディスク「入」にはできるぽいけど。
それより最近の機種ってRAMディスクブートできないんじゃなかったっけ?
ましてramBunctiousじゃ絶対無理。
0343 ◆ftPf.M4w3U
02/11/14 20:49ID:NRm3aByHコンパネの起動ディスクで指定して
Finderの特別メニューからシステム終了でなく
再起動すれば1回だけRAMディスクブート出来たはず。
システム終了したら駄目ですよ。
0344名称未設定
02/11/14 23:54ID:d6CE0yT/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
いつまでもイクことが出来ません。
イキ方を教えて下さい。
0345名称未設定
02/11/15 03:48ID:gyG4E+GG終了判定がないので気付かずに無限ループしてると思われ。
try構文つかってみたら?
0347名称未設定
02/11/15 19:45ID:nonfZGYUハゲシクワラタ
0348名称未設定
02/11/15 23:32ID:Jn+yfu1R0350名称未設定
02/11/16 11:32ID:qFxoQfLiエクセルのデータをコピペ作業しています。
ちなみに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
....以下コピペ部分延々繰り替えし
0351名称未設定
02/11/19 00:23ID:fgktm/3V状況が違うかもしれないが、わしが昔やってた方法は
エクセルからCSV出力>ファイルメーカーでリレーション
その値をフィールドに固定
と言う感じでした
取り込むセル位置が不定ならエクセルで前処理するか
ファイルメーカーに全部取り込んで整形する必要があるかも
0352名称未設定
02/11/22 13:41ID:XW7ZLaBK0353名称未設定
02/11/26 02:21ID:2dq8bolVon idle の return を1秒以下(0.5秒とか)に設定する事は可能ですか?
0354名称未設定
02/11/26 11:46ID:tPPBvVkHあらかじめ複数のフォルダ名をテキストで作っておいて
そのテキストファイルをドロップすると
フォルダ作成+名前をつける
という簡単そうなスクリプトはどうかけばよいんですか?
0355名称未設定
02/11/26 12:43ID:TpgYSoRUon 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つずつ改行すること。
0356名称未設定
02/11/26 23:48ID:/ayEBUsB0357名称未設定
02/11/27 00:11ID:CkpRQ7gf0358名称未設定
02/11/27 08:50ID:O/fjevI50359名称未設定
02/11/27 11:45ID:bOjxs6W7>>355の
activateの次の行に
set nameFile to item 1 of nameFile
を入れてみるとか。
0360うましか354
02/11/27 16:19ID:5HflFCFE当方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名のフォルダにおさめるようにしたらいいのですね。
0361名称未設定
02/11/30 02:42ID:KPsW1yN30362名称未設定
02/12/02 05:09ID:k7ElQyVzMacGetでダウンロードするためのAppleScriptって作ったんだけど需要ありますか?
ナローバンドだとかなり重宝するんだけど。
1,Finderで選択された複数のファイルについて、
コメントに書き込まれたURLとそのファイルのパス(保存場所)を読みとる
2,MacGetのリスト形式のテキストファイルを作り、手順1で読んだ情報を元に書き込んでいく
3,できたリストのファイルのファイルタイプとクリエータをMacGet用にしてMacGetで開く
という感じ。
実際はリピート文を使っているので手順1と手順2は交互に進みます。
0363名称未設定
02/12/02 07:58ID:feuMtFrhIEにはリジュームD/L機能がついとるし
複数ファイルD/Lするなら最初からMacGet使ってるだろうし
使い所が分らん。
0364名称未設定
02/12/02 10:54ID:fh7xEV/8IEのバグ知らんのか?
0365362
02/12/03 05:04ID:twGNheviIEのリジューム機能?そんなものはないです。(w
たしかに使える時もありますが、(ftpの時の方が使えるような気が。)
ちょっとデータが途切れるとすぐあきらめるし、
途中までしか落としてないのに完了した事にしちゃって最初からやり直さないといけなくなったり、
IE5からダウンロードマネージャーに新規登録できなくなったし、イマイチなのです。
ブロードバンドしか使った事がない人にはわからないかもしれませんが。
初心者の人が「ダウンロードしたのに解凍されない!」という問題にぶつかったうちの何割かは
ダウンロードに失敗しているのだと思われます。
IEの利点は、
いちいち登録とかしなくてもクリックでDLが始められるところ。
サーバー側でいろいろしかけてあっても(cgiで実際のDLのURLに飛ばすとか)とりあえず簡単にDLが始められるところ。
画像ならDL後クリエータ、ファイルタイプを設定した上でプレビューとアイコンを付けてくれるところ。
URLをコメントに書き込んでくれるところ。
もちろんM_Loaderとかも使ってますけどね。
0366362
02/12/03 05:08ID:twGNhevi0367名称未設定
02/12/06 16:27ID:0GwNtryE0368名称未設定
02/12/07 19:13ID:Wzu9MZ8b開いたウィンドウを閉じるにはどうすればいいのでしょうか
tell application "Finder"
activate
select files of folder "DATA:ねこ"
open selection
close folder "DATA:ねこ" <-------------できない
end tell
0369名称未設定
02/12/07 19:37ID:58ELF95Fって、「ねこ」フォルダの“中身”を開いてるんでしょ。
なのに
>close folder "DATA:ねこ"
で「ねこ」フォルダを閉じようとしても無理さね。
0370名称未設定
02/12/07 19:54ID:Wzu9MZ8b回答ありがとうございます
フォルダーのねこ画像をプレビューソフトで表示する
という機能ですが、あと一歩なんです
開いたウィンドウを閉じることができれば...
環境はOSXです
>>close folder "DATA:ねこ"
>で「ねこ」フォルダを閉じようとしても無理さね。
うむむ、単純にウィンドウを閉じることができればいいんです
tell application "Finder"
activate
select files of folder "DATA:ねこ"
activate "DATA:ねこ"
close folder "DATA:ねこ" <-------------できない
end tell
とやってもエラーが出るので
close命令が間違っているのは明白なのです
命令さえ分かれば...。
0371名称未設定
02/12/07 20:13ID:58ELF95F0373名称未設定
02/12/07 20:30ID:F/LVxLsRsage
0374名称未設定
02/12/07 20:37ID:58ELF95F0375名称未設定
02/12/07 20:40ID:7x+jfqzt0376名称未設定
02/12/07 21:00ID:C/NX0dWX0377名称未設定
02/12/07 21:05ID:875qxgPe> select files of folder "DATA:ねこ"
> open selection
ねこフォルダの中のファイルを選択して、そのファイルを開く
> close folder "DATA:ねこ" <-------------できない
ねこフォルダを閉じる(ねこフォルダが開いていれば閉じるでしょう)
あなたは一体どのウィンドウを閉じたいのですか?
>>370
> select files of folder "DATA:ねこ"
ねこフォルダの中のファイルを選択する
> activate "DATA:ねこ"
ねこフォルダを最前面に出す
> close folder "DATA:ねこ" <-------------できない
ねこフォルダを閉じる(ねこフォルダが開いていれば閉じるでしょう)
あなたは一体何をしたいのですか?
0378名称未設定
02/12/07 21:30ID:vNKreiyy0379名称未設定
02/12/07 22:08ID:ywrdMYsGopenしたファイルはcloseするというファイル操作の基本を。
0380名称未設定
02/12/08 01:21ID:P0vpl0K/0381368
02/12/08 01:23ID:lKRZyMXLその通りでーす。単純にウィンドゥを閉じたかったのでーす
tell application "Finder"
activate
select files of folder "DATA:ねこ"
selection open
close window "ねこ"
end tell
0383368
02/12/08 01:47ID:lKRZyMXLまたネチネチとやーだねー。パソコン好きには
なぜこういうバカが多いいのかね。
もっと上手くできるなら手本を示すべきでしょうが
カラッポくん。
0384名称未設定
02/12/08 02:06ID:mzyyx2wGふたりの心 もてあそんで
ちょっぴり楽しんでたの 思わせぶりな態度で
だから
けんかをやめて ふたりをとめて
私のために あらそわないで
もう これいじょう
0385名称未設定
02/12/08 02:06ID:k5s6lKU90386名称未設定
02/12/08 02:47ID:uTZajQXd>>371=>>369なのに、なぜ>>372で豹変したのか気になる・・・。
0388名称未設定
02/12/08 05:30ID:fJGcpRTb0389名称未設定
02/12/08 06:21ID:ib3WLWv70390名称未設定
02/12/11 01:20ID:+c+SsG//0391名称未設定
02/12/11 23:23ID:+sQhpU7lていうか、ひとに聞く態度じゃないね。
パソコン好きにはバカが多いいだって。
それに加えてカラッポくん。
カラッポくんはどちらなのか。
#答え書いてあるのに。
0392名称未設定
02/12/13 18:53ID:4URZnmrxこの仕様、なんとかならんだろうか。いったいどういう理由があるんだろう。
Finder上のD&D操作の場合は、コマンドキーを同時に押しておくことで、
コピーではなく、移動として扱うことができるのだが、
AppleScriptのmoveの場合はそういうオプションも見当たらないし…
0393名称未設定
02/12/13 23:24ID:cXp1yfxt0394名無しさん@Emacs
02/12/14 00:15ID:xguwQl0m0395aki
02/12/14 13:28ID:SMt6nzIS-----------------
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
----
続く
0396aki
02/12/14 13:29ID:SMt6nzIS-------------
--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 終わり
0397aki
02/12/14 13:31ID:SMt6nzIS---------------
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
--
続く
0398aki
02/12/14 13:32ID:SMt6nzIS---------------
-- 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終わり
0399aki
02/12/14 13:43ID:SMt6nzIS・FilePasteでそれらのリスト項目アイテムをFinderの選択フォルダに移動
ScriptMenuから実行するのを推奨。
QuickeysやYoupi Key、Big Cat等のユーティリティから実行した場合、
日本語を含むパスを扱えなかったり、空白スペースを含むパスを
扱えなかったりする等のバグがあった。
本当はmoveで移動させたかったが、>>392の理由で、
一つずつコピーした後、ゴミ箱に捨てている。
0400aki
02/12/14 13:51ID:SMt6nzIS各自設定して下さい。
0401名称未設定
02/12/14 15:04ID:SMt6nzIS上のファイルのカットとペーストはOS X向けで。
Classicでも使えると思うけど…。
0402名称未設定
02/12/15 16:45ID:4Bunw+KCへ?違うボリュームへの移動ってつまり、HDからMOとかでしょ?
複製になって当たり前だと思うのだが。。
そーいやOS X用じゃないけどコピー、カット、ペースト作って使ってるよ。
かなりごちゃごちゃしたスクリプトだけど。
0403名称未設定
02/12/15 17:06ID:DA3GJuV6もちろん内部的な動作としては複製になるんだけど、
その場合も外見上の動作としては、移動元ファイルの掃除をして、
形としてインテリジェントに移動する手段が欲しいってこと。UNIXのmvのように。
Finder上ではその手段があったけど、AppleScriptではそれが見当たらなかった。
内部HDDを複数持っている時、ユーザはボリュームの区別をことさらに意識しない。
場合によって同じような操作が、移動になったり、複製になったりするのは疑問。
0404名称未設定
02/12/15 17:16ID:4Bunw+KCコマンド押しながら・・で見た目上〜 っていうのはOS Xですか?
OS 9で試してみたら普通に複製でした。
えーと、まずコピー&ペーストでは複製だから気にしなくていいですよね?
カット&ペーストの時は僕はたしか元ファイルをゴミ箱にぶちこんで、ペーストが指示された時にmoveしてたような気が。
あ、↑は自分が作った時の話です。
もしもOS X限定でよいのなら、AppleScriptからTerminalのコマンドが使えるらしいから、mvとやらを使えばいいのでは?
0405名称未設定
02/12/15 17:24ID:DA3GJuV6mvは2バイト文字や空白スペースや特種文字に考慮する必要があるので、
気軽には使えない。
MvMacは異なるボリュームへの移動自体ができない(エラーが出る)
0406名称未設定
02/12/15 17:27ID:4Bunw+KCあと、ファイルには文字列以外も記録できるのでパス文字列でなくてもよさそう。
リピートのとこは複数一括処理できませんか?
試してみないでケチばかりつけてすんません。
0408名称未設定
02/12/15 17:35ID:DA3GJuV6普通に一括処理できるんだけど、(一応コメントアウトして書いてる)
それはできない(わからない)ので、複製して元ファイルをdeleteしている。
この処理を一括すると、途中でエラーが出た場合ややこしいので、
ひとつずつリピートしています。
初期設定フォルダは利用してもいいかも。
ファイルの文字列以外の記録はよくわからなかった。
エイリアスのリストを記録できるなら、そっちのほうがいい。
0409名称未設定
02/12/15 17:51ID:4Bunw+KCアップルスクリプトのファイル自身にpropertyとして変数を保存できます。それが一番簡単と思います。
OS Xで相対パスが使えるなら他のスクリプトから読み込むのも可能。
たしかに一括にすると途中でエラーが出た時面倒ですね。速いけど。
僕はペースとしてから捨てるんじゃなくてカットした時点で捨てるっていう乱暴な方法にしてたんで一括でやってたんですけど。
その方がワープロなどでのカットの動作に近いし。
作った時点ではWindowsでそのへんどういう動作するかも知らなかったというのもありますが。
0410名称未設定
02/12/15 18:06ID:4Bunw+KCちょっとここにスクリプト本文出すにはでかすぎるけど。
ただし動作は俺のヤツの方がにぶいかも。ログ機能とかごちゃごちゃつけてるし。
0411名称未設定
02/12/15 21:15ID:DA3GJuV6>アップルスクリプトのファイル自身にpropertyとして変数を保存できます。それが一番簡単と思います。
なるほど、それ忘れてた!
store script 使ったら、エイリアスのリストで保存できた。
移動した元ファイルの参照もできるようになった。
Youpi Key経由でもパスに2バイト文字や空白スペースを含むファイルを扱えるようになった。
^xにファイルカット、^vにファイルペーストに割り当てて、いい感じになったー。
リピート処理もやめてみた。エラー処理は気にしないで、速度優先してみた。
0412名称未設定
02/12/15 21:24ID:DA3GJuV6-----
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
0413名称未設定
02/12/15 22:18ID:DA3GJuV6------
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
0414名称未設定
02/12/15 22:20ID:DA3GJuV6------
property pFileCutList : {}
0415名称未設定
02/12/16 16:59ID:uIAReqW1open for access~close accessについて
エラー処理をしといた方がいいというのは分かるんですが
見るたびにtry構文の仕掛け方が違うんですね
どれが正解なんでしょう?
例えば少し上の>>397では
try
open for access file FilePath
(*いろいろな処理*)
end try
close access file FilePath
ってなってますが、これだとファイルを開くことに失敗した場合
ファイルを閉じることができない(もともと開いてないから)と
エラーになると思います
0416415(つづき)
02/12/16 17:02ID: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
0417名称未設定
02/12/16 17:50ID:bX3kiaya397だけど、丁寧に書くなら、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などは開発効率から適度に簡略化した(手を抜いた)コードになってました。
0418名称未設定
02/12/16 19:47ID:xsedd6WQtry
処理
end
close
俺はこれだけ。
最も致命的な事態(開いたファイルが閉じれない)だけ避けられればいいので。
0419名称未設定
02/12/16 20:00ID:pjPG4CSTファイル参照番号で指定するべきかだなあ。
どう使い分ければいいのかわからん。
0420415
02/12/17 21:04ID:RRQ0ka/Y参考にさせていただきます
0421名称未設定
02/12/18 02:17ID:4I6D/XP50422名称未設定
02/12/24 11:23ID:S20vn0Ta0423名称未設定
02/12/26 06:57ID:lwOVh0B70424名称未設定
02/12/26 15:06ID:u6/kliEoset 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
どこが間違ってるんでしょうか?
0425名称未設定
02/12/26 17:22ID:bF9s6ZbEhttp://www.geocities.co.jp/Playtown-Part/7565/
2002/12/26
ブレオブ2、久しぶりすぎて話が見えてこない…
これじゃクリアできても寂しいと思い、
もう一度最初からプレイすることにしました。
子供リュウ君、頭のてっぺんでくくってて可愛いv
これクリアしたら3〜5(新作は名前違うんだよね?)も
貸してくれるとのことなので、張り切ってクリア目指して
頑張ります!特に一番新しいシリーズのニーナが
細く小さくて可愛いので、早く会いたい♪
↑イヴもクリスマスも明けもゲームしかないのかこの人は
0426名称未設定
02/12/27 15:17ID:blZ2DlhK経験上、区切り文字を使った置換の場合は大文字小文字が区別されると思う。
あと試すとすれば、replace_text()の中でignoreを指示してみるとか?
文字列置換はOSAX使うのが速いんじゃないかな?
オレはMacJPerl通すけどね。OS XならTerminalで。。
0427名称未設定
02/12/27 18:11ID:R/Yf5eejset 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"}
バグかな?
0428424
02/12/28 12:20ID:xapvyy79ignoringは文字列の比較の時しか有効でないということですかね
区切り文字は大文字小文字を区別する、あと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
0429名称未設定
02/12/28 16:42ID:y0MsXWsGアップルスクリプトでワイルドカードを使うにはどうしたら良いのでしょうか?
終了時に特定のフォルダ内にある、特定の文字を含むファイル
(abc.d,abc-1.d,abc-2.dなどファイル先頭にabcを含む、または最後に.dを含む)を
削除する削除するスクリプトを作りたいのですが、本で調べてもさっぱり解らず困っています。
どなたかご教授お願いします。
0430名称未設定
02/12/28 18:46ID:oXLfo0Z/http://homepage1.nifty.com/ton_b/AppleScript/Tips/index.html
ここの「文字列」の項を見て解決できないようであれば、
Tanaka's OSAXとか探せ。
0431名称未設定
02/12/28 18:47ID:o7+xCjO6アップルスクリプトのよいとこはいろんなアプリケーションを利用できる事です。
ワイルドカードとか使いたい場合、ボクだったらMacJPerlを通します。これはOS 9の場合ね。
OS Xだったらシェルスクリプトを実行させたらいいんでなかでしょか。
ほかにOSAXを使う手があるかもしれません。詳しくはだれかフォローしてください。
0432429
02/12/28 19:24ID:J0pv5CBGレスありがとうございます。
うーん、簡単には出来ないようなのですね。
書き込んだ後も本を調べていたのですが
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)に入力する方法が解らなかった…。
0433431
02/12/28 19:44ID:o7+xCjO6tell app "Finder"
tell every file of folder "なんとか" of disk "Macintosh HD" whose name end witn ".d"
delete
end tell
end tell
で駄目かね。なんか眠いので試してないが。「Finderのフィルタ」で調べてみて。
0434名称未設定
02/12/28 19:52ID:2ItEoN6tAppleScriptはこれをサポートしてないよ。
0436名称未設定
02/12/29 00:27ID:dCPJWn4pフォルダの中にある全てのアイテムの名前を
リスト化するには
list folderっていうコマンドがあるけど
たぶん>>433氏の方法でいけると思う
0437名称未設定
02/12/29 04:43ID:w4JvKOCP0438名称未設定
02/12/29 11:34ID:VH/B9Zoqファイル名を contain でチェックすれば良いんでない?
0440名称未設定
02/12/30 12:47ID:LSytmRqQイラレのショートカットとぶつかるので
ファインダーのショートカット
コマンド+タブ でアプリ切り替え
をアップルスクリプトで使用 可/不可 切り替えたいんですが
誰かスクリプトをうpして下さい
よろしくお願いします。
0441名称未設定
02/12/30 13:11ID:fIi+yzXu0442431=433
02/12/31 04:07ID:QTD7U5TQ>アップルスクリプトで使用 可/不可 切り替えたいんですが
と言った場合スクリプトを作ろうって事だよな?普通。その質問かと思えば
>誰かスクリプトをうpして下さい
ハァ?
んなスクリプト作れねーよ。
なに勝手に作れるって決めつけて人使おうとしてるんだよ。作れそうかどうかぐらい調べてから来いボケ。
資料そろえて作れそうだけどわからんって段階になってから来いや。だったら作ってやってもいい。
こんなソフトありませんか系のスレでキーボードショートカット切るソフトねーか聞いてこい。
それかスレ立てるまでもない質問のとこで、こういう事がしたいのですがどんな手段がありますかみたいな感じで聞いてこい。
いずれにしろ自分の態度は反省した方がいいぞ。
0444440
02/12/31 08:21ID:+O+kYYK8>>442
いや、作れるだろ。
finderでプログラム切り替えのショートカット
不使用にできるんだから
Macヘルプでできるんだが、
それを記録する事ができないんで困っていたんだけど
プログラム切り替えのウィンドウの外観をカスタマイズする
スクリプトがあるからそれを調べてみるよ。
つーか、なんで突っかかってくるんだよ。
ま、
>>442,みなさん、良いお年を。
0445440
02/12/31 08:57ID:i9LxQ2cfプログラム,切り替えで検索してたのを
アプリ,切り替えで検索したらもっとそれっぽいのが出てきた。
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します。
でわ。
0446440
02/12/31 09:20ID:i9LxQ2cf紹介したような気が…。
とりあえず、アプリ切り替えon/offのみのスクリプト
http://mac-energy.com/base.php?modo=kate1&keywd=syte
見つかりました、お騒がせしました。
でわ、良いお年を。
0447名称未設定
02/12/31 13:50ID:VcALGTwa0448442
02/12/31 14:56ID:QTD7U5TQすまん。知らなかった。できるんだな。俺が厨だった。
つかFinderでOFFにできるの?
バックグラウンドアプリケーションの「アプリケーション切替」を終了してもcommand+Tabは有効なんだけどなぁ。。
ちょっとこの板、スレと文化が違うような気がしてキミの行動に面食らってしまった。
で、キミの目的のスクリプトは、ぐぐったらすぐ見つかったぞ。いったいどんな検索をしたのかと小一時間(略
「アプリケーション切替 ショートカット」だよ。
0449442
02/12/31 15:34ID:QTD7U5TQそれと、サイト作成者の意図を汲んでマナーを守れよ。
0450442
02/12/31 15:41ID:QTD7U5TQtell application "アプリケーション切替"
if keyboard cycling active then
set keyboard cycling active to false
else
set keyboard cycling active to true
end if
end tell
コンパイルの仕方ぐらい勉強しろ。
0451442
02/12/31 18:57ID:QTD7U5TQ連書きすまん。
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とかも使える。詳しくは用語説明を見よ。
0452名称未設定
03/01/01 19:39ID:pc2wy6p6set keyboard cycling active to not (keyboard cycling active)
end tell
でも、451のほうがいいね。
0453442
03/01/01 19:59ID:7KUkRcR3なるほど!>>450は基本の教科書的?書き方ですが、現在の値の逆にするって事でそれだけで済むんですね。
勉強になります。
あけましておめでとうございます。
0454名称未設定
03/01/06 13:09ID:yXA+ORDz0455名称未設定
03/01/09 01:59ID:7JYQE2E30456名称未設定
03/01/09 03:16ID:9e0W9SGXたとえばメニューから「ゴミ箱を空に」が実行されたタイミングで何かをやるとか。
そういう事出来る機能拡張とかバックグラウンドアプリとかご存じでしたら教えてください。
0457名称未設定
03/01/09 23:14ID:m+ICh9vdなかったような
0458名称未設定
03/01/13 10:41ID:UEKSG9jd0459440
03/01/16 00:32ID:YonEOz4w>>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
0460名称未設定
03/01/16 17:24ID:arqvvLL0ランチャーってOS9のコンパネフォルダに入ってるランチャー?
うーん、これまたスクリプトで制御できるのかどうか私は知らない。。
スクリプト編集プログラムからは用語説明が開けないし。。という事は制御できない可能性大。
見た目をいじりたければどっちかというとResEditでリソースを編集する事になると思う。
でもプログラムそのものをいじらないと本格的な変更は無理でしょう。
気に入るランチャープログラムを探す方がよいかも?
0461名称未設定
03/01/19 01:50ID:lntPIrbs0463名称未設定
03/01/19 07:36ID:/Zo2bPpuそれって、selected textが得られないとか?
ネコミはできるんかな。。HotGoogle改造してネコミ用に出来るかなーと思ったらあっさりつまずいた。
0464山崎渉
03/01/23 02:24ID:ghhLiS5+0465ColinCreevey ◆ColinCNMuA
03/01/25 02:04ID:ISBpTl0A落ちてたまるか。
464 名前:山崎渉 メェル:(^^)sage 投稿日:03/01/23 02:24 ID:ghhLiS5+
(^^)
は、闇の魔法。
ホグワーツのみんなで、闇の魔術に対抗する方法を考えよう!
0466名称未設定
03/01/25 03:53ID:1u05jnIq用語辞書見ても記録使ってもうまくいかねー。。
0467名称未設定
03/01/25 14:48ID:yVQ01KOYこれじゃだめ?
tell application "起動ディスク"
set startup system folder alias to alias "システムのパス"
end tell
0468名称未設定
03/01/25 14:56ID:1u05jnIqレスサンクスです。
コンパイルしようとすると
「構文誤り、この(application constant or consideration)のあとにapplication constant of cnsiderationを書く事はできません。」
となって
「startup system folder alias」がハイライトされます。
OS 9.2.2
AppleScript J1-1.6
です。
0470名称未設定
03/01/25 15:56ID:8nUip0vcでも構文は通ってるよ?
0471名称未設定
03/01/25 15:58ID:1u05jnIqかもですね。
でもバグ回避のために1.6にバージョンダウンされてるんですよね?
(自分で下げたんじゃなくて本体購入時から1.6です)
スクリプト機能拡張とぶつかってるかもしれないって事はあるんでしょうか?
純正以外外して試したほうがいいのかな。。
0472名称未設定
03/01/25 16:07ID:8nUip0vc0474名称未設定
03/01/25 16:29ID:8nUip0vc1.6
0475名称未設定
03/01/25 16:58ID:1u05jnIq0476名称未設定
03/01/25 17:12ID:MVF90hsVapple scriptが常にCD-ROMドライブを監視していてマウントされたら、
あるプログラムを実行みたいなことができますか?
すれ違いでしたら誘導お願いします。初心者スレ見つからなくて。
0478467
03/01/25 18:09ID:3gdFFxpnOSXをアップした時にかわったような・・・。
0480名称未設定
03/01/25 18:46ID:8nUip0vcでもやぱりダメだたよ
0481467
03/01/25 18:52ID:3gdFFxpn「記録」でやったのだ。
system folder alias といいながら、システムフォルダではなく
システムスーツケースを指定しているのも変なんだよなあ。
0482名称未設定
03/01/25 18:58ID:8nUip0vcそれを先におしえてくれよw
1.6でも問題なくできるじゃん。
0483466,468,471,479
03/01/25 19:02ID:1u05jnIqそ、そんな罠が。。(脱力
0484466,468,471,479
03/01/25 19:06ID:1u05jnIqset ヌclass sysfネ to
ってなるんですよね。
で、記録やめて編集して再コンパイルしようとすると失敗する。
0485名称未設定
03/01/25 19:16ID:8nUip0vcエディタ再起動したら直った。
0486466,468,471,479
03/01/25 19:31ID:1u05jnIqうお、ほんとだ!ありがと!
エディタ再起動したらstartup system folder aliasでコンパイルできるようになった。
ヌclass sysネはだめだけど。
なんで??
なんか予約語がぶつかってるくさいんだけどなー。。
0487466,468,471,479
03/01/25 19:33ID:1u05jnIq本を見ても環境設定については触れられていないんですけど。
用語説明も何のものを見ればいいのやら。。
0488467
03/01/25 21:16ID:3gdFFxpnOSXの場合は直接ASコマンドでいじるのはまだ不可能らしい。
こっちのスレに外部コマンドを使った例がある
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50
AS以外はサパーリわからん・・・
0489466,468,471,479
03/01/25 22:57ID:1u05jnIqTHX!やっぱりターミナルを叩くんですね。
blessってのが起動フォルダを変更できるソフトなんでしょか?
私もASは日本語の頃から使ってましたがそれもブランクありでいーかげん、
OS X環境整えるお金なしでますますだめぽになって来ました。。
0490まったくの初心者
03/01/27 01:46ID:Ya0IQRZ+フォルダの「表示オプション」、「常に名前で並べる」というのを
ボタン一発でバッチ処理してくれるスクリプトってありませんか?
レベルが低い話で申し訳ないですが、どうかよろしくお願いします!
0491名称未設定
03/01/27 02:11ID:ELl7QdFDtell application "Finder"
tell front window to set spatial view arrangement to arranged by name
end tell
一番手前に開いてるウインドウに対して有効。
0493名称未設定
03/01/29 07:07ID:tKSU1P+eファイルをドラッグ&ドロップして、
そのファイルの修正日をその操作を行った日時に変更し、
書類フォルダに移動するというスクリプトを作りたいと思ってます。
アップルスクリプトで作ることは可能でしょうか?
0494名称未設定
03/01/29 08:21ID:ii+v63wYヨユーで。基本的なものだから練習と思って作ってみそ。
複数処理の高速化とかは知らないとできないけど、
(参考にすべきところを知っていればすぐわかるが)
それはのちのちって事で。
0495名称未設定
03/01/29 18:25ID:98yYhUV3隠し、音量を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が起動してる状態で実行す
るとちゃんと隠してくれるんですが・・・。どなたか解決法を教えてく
れないでしょうか???
0496名称未設定
03/01/29 18:38ID:rnP5d+Ilんで本題のほうは、TurboMemの起動処理が遅いので立ち上がりきらないうちに
processチェックしにいっちゃってるのがダメっぽい。
とりあえず間にdelay 3ぐらい挿んでおけば一応うまくいくみたい。待ち時間ができちゃうけど…
0497名称未設定
03/01/29 18:51ID:98yYhUV3待ち時間を設けないと無理みたいですか・・・。隠すの無理っぽいし、
起動さしてFinderを前面にくるようにします。ありがとうございまし
た。
tell application "TurboMem"
activate
end tell
tell application "Finder"
activate
end tell
set volume 0.1
別にこれで無駄な部分ないですよね・・??何せ初スクリプトなもので
・・・・。
0498名称未設定
03/01/29 19:06ID:YUTrW7b7感動しますた
>>495のtell app "Finder"の直後に
repeat
if creator type of processes contains "ここにアプリのクリエータタイプ" is true then exit repeat
end repeat
を置くのはどないでしょ
TurboMemっていうののクリエータタイプ知らないので調べてみて
0499493
03/01/29 20:42ID:tKSU1P+eレスありがとうございます。
見様見真似で以下のようなスクリプトを書いてみましたが、
ファイル修正日を変更するのがうまくいきません。
もう少し頑張ってみます。スレ汚しでスミマセン。
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
0500名称未設定
03/01/29 21:23ID:33EkHXiK0503名称未設定
03/01/29 23:42ID:zRuRpg75おいらんとこの環境(OS9.2.2)では全体を
with transaction 〜 end
で囲ってやるとうまくいきますた。
でも、ちょっと遅い…
0504493=499
03/01/30 01:00ID:yD/MA6deありがとうございます。
>>360を参考に書き直してみましたが、
duplicate dropFiles to "Macintosh HD:ユーザ:xxx:Documents" with properties {modification date:CurrentDate}
delete dropFiles
with propertiesの箇所で構文エラーが起きてしまいます。
申し訳ありませんが、どのように書き直せばいいか
教えていただけないでしょうか
0505名称未設定
03/01/30 01:34ID:JnxWHCNLとりあえず、dropFilesをアイテムに分解してみたの?
それから、duplicateは多分with propertiesを使えないと思うんだけど。
>>499の dropFilesをアイテムに分解すればちゃんと使えるよ。
0506493=499=504
03/01/30 03:23ID:yD/MA6de改善の余地はたくさんあると思いますが、一応目指すものができました!
いろいろ教えていただいてありがとうございました!
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
0507494
03/01/30 07:53ID:bYDFdswUおめでとう。という事で高速版。
ただしこれは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
0508493=499=504=506
03/01/30 10:31ID:yD/MA6deうう、高速版まで書いていただけるとは。感激。
OS 9以前のAppleScriptなら一括処理できたんですね。
初めてAppleScriptを触ってみましたが、すごく面白いです。
いろいろ作りたくなってきました。
このスレや鳶嶋工房で勉強するです!
ホントお世話になりました。多謝です!
0509名称未設定
03/02/02 19:47ID:0w2BfVCG環境は、パテーション切ってOS9.2.2、OS10.2.3+classic用OS9。
通常はOSXを起動ディスクにしています。
んで、OS9を使っていた際の再起動用に「もいちどOS9で起動しろ!」
っていうスクリプトを作りたいのですが、まったく上手く行かず…。
もしよろしければ、お手本を見せていただけませんでしょうか?
0510名称未設定
03/02/02 20:21ID:61fu6xCQOS9起動スクリプト
http://pc.2ch.net/test/read.cgi/mac/1010546884/357
0511名称未設定
03/02/02 20:43ID:0w2BfVCGリンク先見ましたが、ちょっと分からなかったです…。。
上記の環境(パテーション切ってOS9.2.2、OS10.2.3+classic用OS9。
通常はOSXを起動ディスクにしています。)で、
「0S9を使っていて、もう一度(起動ディスクではない)OS9で
再起動させたい。」場合もこれでOKなのでしょうか?
厨でスマソ。
0512名称未設定
03/02/02 21:03ID:BNX9WvLe0515名称未設定
03/02/03 12:18ID:erNiYLj0キミの日本語がよくわからない。正直、殴りたいくらいイライラする。
「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
--ここまで
ハードディスクの名前は自分の環境に合わせて変えろ。
手本っつーか答えじゃねーかよ。これでできんとか言ったら殺す。
0518490まったくの初心者
03/02/06 00:24ID:yTVK0vVo>>491さんが作って下さった
tell application "Finder"
tell front window to set spatial view arrangement to arranged by name
end tell
というスクリプトなんですが、更にズームボックスを押した状態でフォルダを閉じる
という機能をどうかプラスしては頂けないでしょうか!?
自分で記録機能を使ってみましたが、いまいちよくわかりませんでした。。。
何度も申し訳ないですが、どうかお願い致します。。。
0519名称未設定
03/02/06 01:54ID:etodU5Dm皆さんがアドバイスされてるのは
起動ディスクを変更するスクリプトです
起動ディスクをOSXのままOS9で再起動するスクリプトは
無理なんじゃないかな>>512氏の言うようにするのが良いかと
的外れならすまん
0520未だに初級者
03/02/06 23:30ID:9JS90A7D今後の為にも、記録の使い方を憶えた方が良いかも。
スクリブト編集プログラムで新しいスクリプトウインドゥ開いて
"記録"ボタン押してから
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
0521名称未設定
03/02/09 09:58ID:1Z0Mjg4POS9のセレクタ経由、もしくは直接にプリンターを切り替える機能を付加する
OSAXを探しています。
ご教示下さい。
0522名称未設定
03/02/09 10:12ID:WeH4SslAデスクトッププリンタは標準で入ってるOSAXで操作できる
デフォルトプリンタの切り替えはこんなんあったけどどお
ここの下のほうのUsePrinter
http://www.lazerware.com/software.html
今ぐぐってみただけで俺は使ってないのだが
0523名称未設定
03/02/09 10:20ID:WeH4SslAまだあった
ここのset printer to
http://osaxen.com/gtq_scripting_library.html
0524名称未設定
03/02/09 17:46ID:Q0si/v8kどうやったらいいかわからなかった・・鬱。
0525521
03/02/10 23:27ID:Ey6i9DHlありがとうございます。早速トライしてみます。
0526名称未設定
03/02/16 12:47ID:3893ABG2田中ズosax移植きぼん。
0527名称未設定
03/02/16 13:27ID:q9U4wup/0528名称未設定
03/02/16 13:55ID:KvTPrPXzTanaka's OSAXって使った事ないんだけどdo shell scriptで代用できません?
あと、Appleのホームページ見てたらメニューとかもコントロールできるようになるみたいですね。
0529名称未設定
03/02/16 14:05ID:q9U4wup/0530名称未設定
03/02/16 14:37ID:KvTPrPXz↑
これなんだけど、俺の勘違いかな?
だれか英語がわかる人お願いします。
0531名称未設定
03/02/16 15:23ID:Sloq4GDIメニュー操れますね。記録できたら最強なんだけど
0532名称未設定
03/02/18 00:12ID:Y+Es1hxZ例えばダウンロード作業に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!
0533名称未設定
03/02/18 02:09ID:jZq4UvoX毎回任意の名称をつけられる
そんなスクリプトが欲しいのですが
いろいろ調べてみても
さっぱりわからないので
ご指導お願いします
0534名称未設定
03/02/18 02:19ID:zm9B/xR80535名称未設定
03/02/18 02:28ID:N0PgYe7s難しいですね。AppleScriptは複数の処理の同時進行できないから
進行中の処理を外から制御したりできないすもんねー。うーん。。
downloadの次の行にどうでもいい処理をなんか挟むのはどうですか。
そこまで実行するのに指定時間以上かかったらタイムアウトになりますよね。。
駄目かな。
>>533
つまり、デフォルトの名称である
「名称未設定」を変えたいということ?
フォルダが作成された時点ですでに希望する名称になっててほしいんだよね?
それはOS9以前ならシステムのリソースいじった方が速いかもね。。
自動的に日付けなどの複雑な名称にしたいなら
1:Finderからフォルダを作成せずに、アップルメニューやスクリプトメニューからスクリプトを実行してフォルダを作るようにする
2:フォルダアクションでフォルダを監視して、新しい項目が追加されたら
「名称未設定」で始まる名称のフォルダの名前を変えるスクリプトを付ける
て感じかなあ。
0536名称未設定
03/02/18 02:30ID:N0PgYe7sOS 9だと閉じたフォルダに対しても作用できるようにする機能拡張がありますが。
OS Xだとそもそもフォルダアクションが搭載されたのがジャガー以降だったかも。
(フォルダアクションはフォルダナビゲーションとは別ものです)
0537533
03/02/18 08:44ID:jZq4UvoX1.新規フォルダ作成スクリプト実行
2.ダイアログ入力画面から希望のフォルダ名入力
3.新規フォルダできあがり
ってかんじです
ダイアログ入力画面を使用するのはむりなんでしょうか?
0538名称未設定
03/02/18 10:13ID:N0PgYe7sいまいちやりたい事(それによって得る便利さ)がわからんけど簡単。
さて、ここまで言って後は答えの一例を書くくらいしかないのだが、
どうします?
(つーか二度めの書き込みでもOSすら書いてないし、これから先も細切れの応答になりそう)
どういう風にして何を調べて何をどこまでやって、どこが駄目だったのかって話があれば
アドバイスのしようもあるのだが。
display dialog
と
choose folder
と
make new folder at 〜 with properties {name:"〜"}
でも調べてみては?
0539名称未設定
03/02/18 10:29ID:Y+Es1hxZtell 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
0541名称未設定
03/02/18 11:09ID:061Z3cTA>さっぱりわからないので
ありえない
0542名称未設定
03/02/18 12:49ID:wqMo/kAl一体何がやりたいの???
キーボードからファイル名(フォルダ名)を入力するんだったら、
AppleScriptを使う必要なんか無いと思うんだが。
Finderでファイルを選択している状態でリターンキーを押すと
ファイル名を変えられるのを知らないとか???
0544名称未設定
03/02/18 18:11ID:N0PgYe7s>>542
その可能性もあるんだけど(w
オープンセーブダイアログみたいなので任意の場所に作るのと、名前をつけるのが
セットじゃ無いの?
何かもっと大きなスクリプトのうち一部としてフォルダを作る場面と考えれば納得行くかも。
0545名称未設定
03/02/19 01:38ID:fbAnXT0Y答えを書くのもどうかと思ったが・・・。
まあ初心者だとちょっとしたところでつまづくので。
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でも動くと思うけど検証してない。
0546名称未設定
03/02/19 01:49ID:fbAnXT0Yなんか勘違いのレスだったかもしれん。
0547名称未設定
03/02/19 01:56ID:Bm9+ot2P具体的な用途を書いてくれたほうがいい。
そうじゃないと言っている意味が分からないこともあるし、
スクリプトより効率のいい方法があるかもしれないし。
0548名称未設定
03/02/19 09:54ID:70Slxo7mdisplay dialogで入力した文字列を変数に収めてFinderに渡す
っていうことをイメージすること自体が出来ないかもしれないし
理解できればかなりな進歩だと思うので
スクリプトを使わないほうが便利だとしても
あえてスクリプトでやる方法を教えてあげたらいいんじゃないの
0549533
03/02/19 10:09ID:dpmjfB3q当方 OS9.2.2 です
で、>>543 さんので無事動きました
ありがとうございます
僕の説明がおかしかったです。
手入力でやるのではなく
あらかじめいくつかの名前を登録しておいて
そこから選択してフォルダ名がつけられればいいなと思ってたんです。
新規フォルダ作成 を選んだら
「どの名前のフォルダで作りますか」
と聞いてきて
ネット上で住所とか入力するときに都道府県などを選択する部分みたいな感じで
新規フォルダ名を選べればいいなと思ったんです。
スレ汚しすいませんでした。
ありがとうございました。
0550名称未設定
03/02/19 13:01ID:l755+ceUあふぉか。。
出してもらった回答を否定して細かい注文つけるような事を言って
どうしようという。
その部分ができないっていうなら最初からそういう聞き方しろよ。
>>545氏の例があればそんなもん簡単に作れるぞ。
手入力を選択にするくらい頭使えよ。。
あとは自助努力。
本買え。「AppleScriptリファレンス」とか。
OS9の本だけどOSXでも使えるし。
どんな手が使えるか調べる手段や知識がなけりゃ
実現したい事のために何をどう組み立てるか考えようがないしな。
とりあえず今回はchoose from list調べて使え。
検索エンジンのYahooとかGoogleくらい知ってるよな?
そういうので調べな。
0551名称未設定
03/02/19 15:42ID:lOTXOrteproperty 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
0554名称未設定
03/02/28 17:38ID:PMClLlc40555名称未設定
03/03/01 14:24ID:i3NiV9FNhttp://pc.2ch.net/test/read.cgi/mac/1046446110/
Squeakスレです。
0556名称未設定
03/03/03 01:35ID:jeu/Uar30557名称未設定
03/03/03 23:13ID:J3W4FCm8> OS Xだとそもそもフォルダアクションが搭載されたのがジャガー以降だったかも。
Jaguarでようやく実装されたフォルダアクションですが、9と違って開いていない
フォルダの監視も出来ます。つまり、フォルダに項目が追加されたら開く、という
9では出来なかったことができるです。
実際にやってる例をつけやう。こいつを付けると
・何かファイルが追加されると開く
・ファイルが全部取り除かれると閉じる
・ファイルが入っているのに閉じるとまた開く
という動作をするようになる。付けるのは
FolderActionManagerを使うと楽。
http://www.apple.co.jp/downloads/macosx/utilities/folderactionmanager.html
0558557
03/03/03 23:13ID:J3W4FCm8on 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
0559あれ?
03/03/07 00:14ID:4zIGSKWCrebuild desktop
で出来た記憶があるのですが、記憶違いでしょうか?
OS 9.1です。
0560名称未設定
03/03/07 09:38ID:8mR+23dLそんなのあったっけ?
すべてのアプリケーションとFinderを終了させるスクリプト作って、
Finder起動時にcommand+option押してたけど。
0561名称未設定
03/03/07 14:29ID:bEYht7Hw特定のフォルダの内容についてデスクトップファイルの更新かけたりする命令。
おれも>>560氏と同じ事やってるな。
>>559は、言われてみればそんな気も。。。だがAppleScrptリファレンスには載ってないしなあ。。
ttp://www.google.com/search?q=rebuild%20desktop%20applescript
0562名称未設定
03/03/09 11:41ID:B2b0T2Ofelse if execution state is rebuilding desktop then
beep 4 -- 現在デスクトップファイルを再構築中
何だっけ。
0563名称未設定
03/03/09 16:43ID:pI+j68OJexecution stateって知らなかったよ。おもしろそう。
しかしデスクトップ再構築中に呼び出されるってどんな状況?
0564名称未設定
03/03/12 20:24ID:LhvFYVEntell application "Finder"
put away disk "名称未設定" without asking
end tell
っていうスクリプト組んで起動項目に突っ込んだんですが
MacOS9.1/AppleScript1.5.5
の環境ではダイアログを表示せずに動くのに
MacOS9.0.4/AppleScript1.4.3
ではダイアログが表示されてしまいます。
2番目の環境でもダイアログを出さないようにする方法は無いでしょうか?
0565名称未設定
03/03/12 20:30ID:xlEoBJpY0566564
03/03/12 20:36ID:LhvFYVEn9.0.4だと1.4.3ガ最新だとおもうのです。
少なくともアップルからおとしてきた1.6は動かないと思う。
1.5.5を移植するにしてもどのファイルを動かせばよいのか判らない。
0567名称未設定
03/03/12 23:55ID:Bsid+LHQインストーラがダメならTomeViewerで抜け
0568名称未設定
03/03/13 00:14ID:jigpHGB4機能拡張に入ってるAppleScript本体と、スクリプティング機能追加のフォルダ。
ただし動かなくなっても責任持てん。
0569564
03/03/13 00:41ID:iqlKEjSMありがと。インストーラに弾かれたんで自力ではできないって意味でした>>566の「思う」
アドバイスの通りやってみるよ
でも9.0.4以前の環境ではダイアログを出さないようにする標準的な手段てないのかな?
0570名称未設定
03/03/13 00:45ID:iGxUaYgWAppleScript変えて直るものなんでしょうか。
without askingが効いてなくてダイアログが出るのか
それとも違う原因で出るダイアログなのかがよーわからん。
一体どんなダイアログが出てるんだ?
0571名称未設定
03/03/13 00:58ID:jigpHGB4(初期化が必要だったかもしれんけど)
0572名称未設定
03/03/13 01:46ID:KyCRnjE1unmount disk "Kiwi"
end tell
ちょっとばかばかしい気もするけど、こういうのはあります。
0573564
03/03/13 02:04ID:iqlKEjSMなるほど発想のてんかんですね。
まだみなさんにきいた方法何も試していないのですが。試したら報告します。
0574名称未設定
03/03/20 17:38ID:Ed3mlzGjネット上を駆けずり回ってみたんですが見つかりませんでした。。(ハァハァ
教えて下さいマシ。
一応、tyr&errorで20000でNG、19000でOKな感触を得たんですが、
ギリギリまで読みたいので。。。
057560
03/03/21 00:07ID:ww+pC1wBHD死んでもう作る気無い…
0576名称未設定
03/03/21 00:18ID:TXr3nekh動くかどうかしらんけどこんなんでいいの?
アップルメニューに放り込んでちょ。
Finderで選択中のものを、フォルダ選択ダイアログで選んだとこに移動。
パーティションまたいでいるときの処理はしてないからその場合複製になる。
つーか、全然試してないから動くかどうか知らない。(w
tell app "Finder"
activate
set butuList to selection
set basyo to choose folder
tell butuList
move to basyo
end tell
end tell
0577名称未設定
03/03/21 05:02ID:ciuTxAgLOS 9 以前ならTanaka's osax 使えばもっと読み込めるとおもいまつ。
0578名称未設定
03/03/21 06:40ID:TXr3nekhエディタ使う手もある。読み込み量はエディタの能力によりけり。
正確なところはちょっとわからね。俺も以前トライしたとき調べたような気もしたんだが。
0579574
03/03/21 06:52ID:jIAceN7jさっそくありがとうございます。なるほど、
他のソフトとの連携という線で試してみます。
追記:19000でもだめでした18000くらいがラインのようです。
0580名称未設定
03/03/22 18:20ID:23/riTwn0581名称未設定
03/03/22 21:55ID:RcmOlwD00582名称未設定
03/03/23 00:18ID:OSxgBhrrアップルスクリプトの中で「"」を使いたいのですが、アップルスクリプトの
構文に使う"〜"の一部と勘違いされて構文確認でエラーが出ます。
「"」を使うためには何か特別な書式があるのでしょうか?
宜しくお願いします。。
0584名称未設定
03/03/23 01:40ID:OIF0MdX8ああ、do shell scriptとかやってるのかな?それともPerlの本文埋め込みか。
\だらけでわけわかめになるよね(w 楽しいけどさ。
外部ファイルから読み込んだほうが賢いけどね。たぶん。
0587名称未設定
03/03/26 23:15ID:KsfQOi1Iダイアログに"を含む文字列を表示させたいと思い、
>>583を見てその通りにやってみたのですが、巧くいきません。
display dialog \" & "この文字列とか" & \"
↑のような表記で良いのでしょうか?
ちなみに、PBで作成してAS Studioで動作させる予定です。
0588名称未設定
03/03/27 00:15ID:d0D9N45Wdisplay dialog "\"こんなんどうです\""
AS Studio使うなら、display alertが好きかも
0590587
03/03/27 04:49ID:crOX8c5KScript Editorで試したら巧くいったんでPBでもやってみたら、
\"の\がバックスラッシュになって、その時は良いんだけど、
それからもう一度構文確認すると、アラート……なんでやねん。
これってPBのバグ? それとも、また漏れ間違えてるの?
0591名称未設定
03/03/27 04:56ID:d0D9N45W0592名称未設定
03/03/27 04:59ID:9PpYzOj0バックスラッシュになるのは問題ないと思うけど
それ以上はおれはXerで無いので勘弁
0593587
03/03/27 06:48ID:crOX8c5K徹夜して何やっとんのかと自分にツッコミ。夜明けのハイです自分。
バックスラッシュに変わってしまった\はビルドすればOKでした。
まあいざとなったらビルド後のパッケージ開けて直接スクリプトを
弄ろうかとも考えてましたが、まあ何とかなりました。サンクスです!
0594名称未設定
03/03/30 02:13ID:KFhPUpFYSK8ってどうなん?
0595名称未設定
03/03/30 02:23ID:5yfcpML3桃井からのお知らせでした。
0596名称未設定
03/03/30 02:28ID:KFhPUpFY9.2だと立ち上がりもしねえなああ
0597超初心者
03/03/30 18:09ID:CuUmYLmeエラーが出まくって、困ってます。
だれか教えてください。
0598名称未設定
03/03/30 18:17ID:81+Q3X9dhttp://klablog.okiraku-pc.net/logs/current-bbs/161/xqqrlz.html
このあたりが参考になるだろう。
0599名称未設定
03/03/30 18:25ID:eMuWkLbe>>594のリンク先はftpで、ReadMeも置いてないし。
解説してるサイトとかあったら教えてください。
OS X用のもの?それとももっと古いもの?
0601名称未設定
03/03/30 21:19ID:QBwXnfja0602名称未設定
03/03/31 19:58ID:1xMwU06Q0604名称未設定
03/03/31 23:07ID:1xMwU06Qどういうスクリプトを組んで
どういうエラーが出たのよ?
0605名称未設定
03/04/01 00:51ID:abQyNeb00606名称未設定
03/04/01 10:56ID:B+LmkY+vhttp://www.google.co.jp/search?q=%8B%B3%82%A6%82%C4%83N%83%93%97%7B%90%AC%83%7D%83j%83%85%83A%83%8B&ie=Shift_JIS&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=
0607600
03/04/01 12:48ID:YtjI5TQW0608名称未設定
03/04/02 12:39ID:c+VFpOPY曲を次の曲に移動させるスクリプトってどう書くのでしょう??
ファンクションキーに割り当てて使おうと思ってるんです。自分で
やってみたら、次の曲に行くんですが、それまで使っていたアプリ
が最前面に来ず、必ずFinderが最前面に来てしまうんです。。
どう書けばいいんでしょう?
0609名称未設定
03/04/02 12:46ID:ey79zdEM自分の書いたスクリプトを提示してくれ。
0610名称未設定
03/04/02 16:37ID:o3IrIVzb・tell app "Finder"している
・ファンクションキーからアプリを実行するとFinderが前面に来る
のいずれかが考えられるな。
後者の可能性が強い気がするので、この場合コンパネの機能でファンクションキーに割り当てるのをあきらめて
OSAメニューを使ったりするべしと。Drag Thingとかでもよさげかな?
0611名称未設定
03/04/02 23:01ID:ciYU+P0dtell application "iTunes"
activate
(以下、スクリプト)
てな感じで、"activate"を入れればいいのでわ?・・・って、そういう問題ではないのか・・・。
0612名称未設定
03/04/02 23:24ID:o3IrIVzbいや、相談者の希望はおそらく、iTunesを前面に出さずに、今作業中のソフトが前面のまま
(たとえば2chブラウザとかWebブラウザとか)
iTunesの操作をしたいのだと思う。
0613名称未設定
03/04/02 23:50ID:U9/dSOVDまずAppleScriptの最初に、
現在アクティブなアプリの名前を取得して変数に入れておく。
しかるのちに、iTunesに指令を送り、
その後、さっきアクティブだったアプリを activateして終了。
これでどう?
0614名称未設定
03/04/03 00:06ID:0NyYf9Wyたぶんファンクションキーからスクリプト呼んだ時点でスクリプト自身がフロントモストになるし。
0615名称未設定
03/04/03 00:52ID:DFBnIUThnext track
end
これでなんの問題もないんですが。
0619名称未設定
03/04/03 10:19ID:p3OTOZLoバックグラウンドできりかえできるよ。
playpause, next track, previous trackの3つを揃えると快適だね。
0621608
03/04/03 11:31ID:TfVMMuwU>>609 -610
>>615 と同じスクリプトを書いて使ってました。
>>613
すいません。。。まだそういうスクリプト書けるレベルじゃありません・・・。
>>616
ファンクションキーの方が便利なので出来たら・・・。
>>619
Quickeysですか。試してみます。
0622名称未設定
03/04/03 13:20ID:0NyYf9Wy0623名称未設定
03/04/04 00:04ID:CQaYxbHqこれを自動的に終了しないアプリにしてファンクションキーに割り当てすればいけるはず
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
0625名称未設定
03/04/04 01:02ID:CQaYxbHqツッコミありがとう。だから無理矢理なんでつ。
3秒が気に入らなければ1秒でも、return無しの気まぐれ動作でも好きにしてくれい。
うちの環境では動いとるよん。
0626名称未設定
03/04/04 01:43ID:ZfGtqqRTOS Xならマルチタスクの恩恵で平気なのかな?マシンの性能も上がってるし。。
ちょっと前ならマシン全体のパフォーマンスがガタガタでしょうね(w
これ実行中に、ほかのAppleScript実行しようとしたらどうなるんでしょ。
0627名称未設定
03/04/04 02:36ID:CQaYxbHq確かに他のプロセスでリアルタイムな処理が有るとガタガタになるかも。
って疑似マルチタスクでもこれくらいはいけるんでないの。
0628名称未設定
03/04/04 03:03ID:ZfGtqqRTフォルダの名前をリアルタイムで変更して実現する時計(w
とか作って、Finderの動きがカクカクなって笑った事とかありまして。
0629名称未設定
03/04/04 03:11ID:CQaYxbHq今でもCPUに負担が掛りそうとかメモリ食いそうな処理とかは
無意識に避けようとしてしまう自分が情けない。
0630名称未設定
03/04/04 06:54ID:lFrk24J22つあるのですが、まず、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つですが、命令先アプリが起動していない時は命令をキャンセルする
スクリプトは、どう書けばよいのでしょうか。
0631名称未設定
03/04/04 11:52ID:wuA90KR3if (processのリストに目的アプリが含まれているか) then
end
0633名称未設定
03/04/05 00:36ID:l5lBaGtexReplaceてなんですか?
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
0634名称未設定
03/04/05 01:02ID:EfgvGSfU0635名称未設定
03/04/05 01:09ID:CJ+Qzpjn0636名称未設定
03/04/05 01:31ID:EfgvGSfU0637名称未設定
03/04/05 01:38ID:CJ+Qzpjn大量のファイル(数百)で無理だったりしましたが。
MacJPerlのメモリ不足であれば割当て増やしてしのげませんか?
たしかに僕は100行越えるコードは書かない人だけど。
0638名称未設定
03/04/05 02:08ID:AvIGmiZtありがとうございます。頂いたものをさっそく試してみます。
Tanaka_osax_2.0.1
http://mtlab.ecn.fpu.ac.jp/tanaka_osax.html
OS9でも使えます
0639名称未設定
03/04/05 02:13ID:AvIGmiZt訂正、
xReplaceはv1.3の名前で
MT Replaceがv2.0.1の名前でした
うちのはv1.3のままでした。
0640名称未設定
03/04/05 02:41ID:Zwfrfz5Ton 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
0641名称未設定
03/04/05 02:46ID:EfgvGSfUいやあ・・・そのとき書いていた奴をいま開けてみたら
600行くらいでした
AppleEventを直叩きしたりDialogDirector呼んでみたり・・いま見ても無茶してましたな
0642名称未設定
03/04/05 05:09ID:CJ+QzpjnMacPerl MLはもはや過疎の村っつーか無人の場所になってますが。。
あそこで終わりがた?にAppleEventの事をあれこれ訊いてるのが僕です(w
教えてくれたのが>>641さんだったりして(w
600行はすごいですねー。いまだかつてそんなコードを書いた事がないです。
ASでもPerlでも。
MacPerlでタスクが占有されるっていうか、実行中にほかの作業ができなくなる感じは
味わった事あるんですけどね・・。
>>640
うおう。AppleScriptな定石でやるとやっぱしたいへんですな。
0643630
03/04/05 10:26ID:J6bi9PVm頭から探す方は出来ました。ありがとうございました。
よく考えたら、ファイル名の後ろから探して最初のヒット文字だけを置換する
という状況は、あまりないのかなと思いながら、ハンドラ2例を
組み込もうとして、手を焼いています。しばらく寝かせます。
0644名称未設定
03/04/05 12:11ID:BIgRO2wHAppleScriptみたいにAppleEventの用語辞書みたいなものがあるのでしょうか?
0645名称未設定
03/04/05 18:48ID:CJ+Qzpjnえー、私のつたない説明でよければ。こげんするとですよ。
AppleEventの生書きは、AppleScript、Mac(J)Perl、REALbasicなどで使われます。
手段としては、(私の知ってる方法は)AppleScriptを使います。
まず、AppleScriptで目的の処理(に近いもの)を書きます。
で、Mac OS(9以前)には、AppleEventを記録するフリーウェアのコンパネみたいなのがあるので、
さっき作ったAppleScriptを実行しながら記録。
で、あとは記録されたもんをいじるだけです。
Mac(J)Perlでの具体的な使用法は
MacPerl入門とかいう本に載ってます。
場合によりけりですが、AppleScriptを呼び出すより多少速度が稼げたりするようです。
AppleScriptでも、tell app "アプリ名"でアプリケーションを探すのを避けるためとかで
<<>>こんなカッコで囲まれたAppleEventなものが登場する事アリ。
0646名称未設定
03/04/05 19:01ID:CSk9as/U友達を頼りに作ったのですがエラーが出てしまって困ってます。
だれか救助をキボンっす。。。
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
0647名称未設定
03/04/05 19:03ID:x4DmIXC6最近AppleScriptの勉強をはじめた者なのですが、ひとつ質問させて下さい。
特定の時間になったらAというフォルダの中身をごみ箱に移動させるというのは
これは可能でしょうか?
0648名称未設定
03/04/05 19:11ID:kgyMSlyA答えられる人がいるかもしれないけど、
どういうエラーが出たのか書かないと答えるのが面倒かもしれない。
>>647
可能です。
0649646
03/04/05 19:29ID:CSk9as/U説明不足ですみませんでした。
Outlook Expressの場所を指定しなくてはいけなくなるし(当たり前)
画像を添付したり、HTMLで送るなど考えていたのですが、
もうだめぽって感じでして。てゆうかアップルスクリプトじゃ無理なのかと思いまして。
実行ボタン押すと「構文誤り」とゆう文章が出て来てしまって…
itinititubusitimatta-
0650名称未設定
03/04/05 19:50ID:kgyMSlyAOutlook Expressを使ってないので良く分からないけど、
スクリプトを見た感じではスクリプトの一番最後に
end tell
を入れ忘れているという単純ミスっぽい気もする。
0652646
03/04/05 22:53ID:CSk9as/Umake 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のせいではないと思うのですが…
0653名称未設定
03/04/06 01:04ID:4e++8Nxnあれのフォルダーバージョンみたいなのアップルスクリプトでできませんでしょうか?
0654名称未設定
03/04/06 01:24ID:9uHmEORtWindow Monkeyみたいな機能ね。できない事はないと思う。
フォルダアクションでできないかなあ。
ところでOSは?9より前なのはわかるけど、細かいとこ。
0656名称未設定
03/04/06 03:56ID:7DgP5kd4常駐型アプレットでcontainerwindow監視するしかないかも。
0657名称未設定
03/04/06 04:08ID:9uHmEORtさらに、新規のフォルダが作られた場合にはそのフォルダにフォルダアクションを付けるような
フォルダアクションを作る。
これで全てのフォルダに対して有効なフォルダアクションができると思う。
0658名称未設定
03/04/06 05:11ID:7DgP5kd40659657
03/04/06 05:21ID:9uHmEORtえ〜、めんどくさい(w
でも作ってみたいな。OS Xでもフォルダアクション使えるみたいだし。
フォルダアクションスクリプトができたとして、全てのフォルダにフォルダアクションを付ける作業が。。
もちろんそれもスクリプトでやるにしても、再帰でスタックオーバーフローになってやり直しの繰り返しだろうなあ。
OS X入れてるからディレクトリも深いし。
OS 9に関しては俺はWindow Monkey登録ユーザなのでいらんのですけどね。
ぜんぜん具体的に考えてないから本当に可能かどうか不明ですけど、OS 9でやるなら、
閉じてるフォルダでもフォルダアクションを有効にする機能拡張が必要かな。
0660653
03/04/06 13:26ID:rJWtLL4Scontainer 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
0661名称未設定
03/04/07 07:11ID:rPUi7FBnitem of (container window of...で folder... が得られます。
常駐型に関しては>>623の on idle を参考にして下さい。
0662653
03/04/07 22:53ID:ybT/k9AJあとは記憶数制限をつければ完璧。
ただ、ちょっと重いかも。。。
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
0663名称未設定
03/04/07 23:17ID:wFMoad4B記憶数の制限部分だけでもフォルダアクション使ってみたら?
(最近使ったフォルダの中を監視して、ファイル数が一定数越えたら古いのから捨てる)
全部一つのスクリプトでやろうとせんでいいのよ。
0665名称未設定
03/04/08 13:24ID:2D3s78GSうーん。それが、今俺は俺で自分でずっと作ってるのが煮詰まってるから、
口だけみたいでスマンけど、ちょい無理。
Appleのサンプルが、システムフォルダの中のScriptフォルダあたりに入ってるはず。
で、OS 9だとノーマルの状態じゃあ、開いているフォルダにしか有効じゃないから、
閉じてるフォルダにも有効にする機能拡張がいるんだけど、それもちょっとURLがわからない。
(ファイルを保存してるMOが、OS Xじゃ開けないのだ。)スマソ。
0666名称未設定
03/04/08 13:39ID:Z51CmYjHproperty 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
0667名称未設定
03/04/09 06:04ID:Id248vZqこれでつか?
http://files.macscripter.net/Prog_Utilities/Folder_Actions_Plus_1.1b3.hqx
でも、ディスクのエイリアスとかがアップルメニューに入ると禿げしく重くなる
気がするんでつが…大丈夫なんでしょか。
0668名称未設定
03/04/09 06:38ID:Xpfx6klHソレだ!
スマソ。自分じゃ使った事無いのだ。
ディスクのエイリアスをアップルメニューに入れるのは、もともとあまり推奨される使い方じゃないぞよ。
アップルメニューオプションの初期設定が死にませんか?
アプリのエイリアスを整理したフォルダとか、特定のフォルダのエイリアスにしとった方がいいと思うけど。
あと、アップルメニューオプションをオフにして、代わりにFinderPopでアップルメニューのサブメニューを実現させる。
0669初心者です。よろしくお願いします。
03/04/11 04:13ID:rU9p9J7s入門者向けのサイトを見たりして勉強してる次第であります。(田舎なもんで書籍が
無いのです・・・)
初心者スレでもないのに不躾とは思いますが、わからないことがあったので質問させ
ていただきます。
たとえば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
どこがダメなんでしょうか?
0670名称未設定
03/04/11 04:17ID:aa9aUAHM0671名称未設定
03/04/11 04:23ID:p0pqNUxkでどうだろうか。
あと、copy よりは duplicate の方が良い。
0672名称未設定
03/04/11 04:27ID:p0pqNUxkcopy folder suuji of folder hizuke of folder "A" to desktop
でもOKだった。
挙げられているスクリプトでOKだと思うんだが、
何か文法とは別のところに原因があるのではないか?
0673初心者です。よろしくお願いします。
03/04/11 04:47ID:rU9p9J7s別のところに問題があると。
もう一度確認してみます。ありがとうございました。
ダメじゃないと言われてすごく嬉しいです(感涙
0674名称未設定
03/04/11 05:29ID:QasEoCOC0675初心者です。よろしくお願いします。
03/04/11 06:09ID:rU9p9J7s上のヤツではデスクトップのフォルダでやってますけど、実際はパーティション切ってる
OS Xのボリュームからやってたんです。
んで、書き直してデスクトップからやってみたらできました。
何か関係ありますかね?
単なる入力の間違いかなぁ・・・
今度はこれの最後に"OK""キャンセル"のボタンで繰り返すか否かってのにちゃらんげして
みます。
ゆっくり、少しずつ学んでいきたいと思ってますので、今後ともよろしくお願いします。
ありがとうございました。
0676初心者です。よろしくお願いします。
03/04/12 03:46ID:ecGSzf6G昨日のヤツの頭に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
で、出来ました。
おかしいところがあるのかもしれませんが、とりあえずは動いたので感動です!
皆さんに少しでも近づけるようこれからも頑張っていきたいと思います。
0677名称未設定
03/04/15 23:17ID:svnk0FX8????????????????????????????????????
???^^; mount disk "HDD" ?????????????????
??????????????????????????
??????????????????????????????????
????????????????????????????
?????????????????????????
AS??????????????????????????????
????????
??????????????????????????????????
0678677
03/04/15 23:21ID:svnk0FX8教えて下さい。アンマウント中のボリュームをマウントする
スクリプトと言うのは作れますか?
mount disk "HDD" とかやってみたんですができません。
今はエイリアスを作ってそれを呼び出しているんですが、
そうするとマウントしたボリュームの第一階層がウィンドウで開かれる為、
それを閉じる無駄な動作を入れたりして、遅いんですよね。
ディスクを作る度にエイリアスを作るのも面倒なので、
ASから直でアンマウント中のボリュームを叩けたら、と思うのですが
無理でしょうか?
具体的な用途は、アンマウント中のボリュームから起ち上げ直すためです。
0679名称未設定
03/04/15 23:24ID:4uKBwwyb0680677
03/04/15 23:26ID:svnk0FX8あとペーストミスしました、環境はOS9.2.2です。。。
0682山崎渉
03/04/17 15:33ID:MF3/Dc320683名称未設定
03/04/17 22:32ID:IYA+t179名スレ保守
0684678
03/04/18 02:51ID:UInsHpYEが、私はアンマウントではなくてマウントしたいんですね。
DiskCopyはイメージのマウントしかできないので
ダメでした。Disk First Aidにボリュームの検証をさせるって
言う手もあるんですが、それよりだったら>>681に書いてる
今の方が早いので。。
何かいい手はないですかねぇ。。
0685初心者です。よろしくお願いします。
03/04/18 03:05ID:4vKHRoid実は僕も会社のMacでサーバーに接続する時に同様のことで悩みました。
エイリアスのopenだとウィンドウ開いちゃうんですよね。
で、考えた揚げ句に思いついたのが、オリジナルの表示です。
これでウィンドウを開くことも無くマウントできるのですが、OS9.0以前だと何故か
エラーが出てしまいます。
ダメですか?
0686684
03/04/18 03:12ID:UInsHpYEやった〜ありがとうございます!!!
オリジナルを表示ってなんだっけかな〜Finder見てみます。
あ、でもどっちにしてもエイリアスが必要なのか。
ま、高速化できるからいいや! よく思い付きましたね〜尊敬!です!
ありがとうございました!!
0687名称未設定
03/04/18 03:29ID:wAWd4NiWマウントしたいサーバーのエイリアスじゃなくて、
そのサーバーの中のファイルのエイリアスだったらどうなるの?
それだったら、開いた後勝手に閉じる(終了する)AppleScriptのエイリアスでも使えば。。。
だめ?
0688名称未設定
03/04/18 03:48ID:KSICkC2p685さん、それいい考え!
さっそくそれを使って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関連をいぢってました。
0689688
03/04/18 04:10ID:KSICkC2pactivate いらないっすね。
> 作成時の注意として、マウントしたいボリュームをマウントさせた状態で
> コンパイルするだけでしょうか。
が正しいですね。使うってなんだよ…
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
マウント→ウインドウオープン→ウインドウクローズより、
マウント→(エラー部分とばし)の方が速いです。
アプリケーションのファイルなどなら、起動時間があったりしてなおさら
時間がかかると思います。
0690687
03/04/18 10:25ID:wAWd4NiW0691初心者です。よろしくお願いします。
03/04/18 12:54ID:4vKHRoidお役に立てたようで嬉しいです。
まだまだ若輩ものですので、これからも宜しくお願いします。
0693山崎渉
03/04/20 04:00ID:ZHDoPsUy( ^^ )< ぬるぽ(^^)
0694名称未設定
03/04/20 05:41ID:5qUJ7i2v0695名称未設定
03/04/21 22:22ID:+gyF6DWQ0696名称未設定
03/04/23 00:10ID:NAJfdmefMac起動したてなら問題なくつかえるのにしばらくたってから
エディタ立ち上げて、ファイル開いたりしようとすると
タイプ2とか3エラーで落ちる・・これはなんのせいなんだろう?
0697名称未設定
03/04/23 05:43ID:ydkXTlCN0698名称未設定
03/04/23 05:45ID:ydkXTlCNわざとじゃないのよ、MacMoeが落ちただけ。
0699名称未設定
03/04/23 05:48ID:ydkXTlCNあぁ、みっともない。自作自演してるみたいだ。
てことで、逝ってきます。
0700名称未設定
03/04/23 10:09ID:OeccxiX7Appleのサイトで見つけた「iTunes Scripts Mac OS 9」には含まれていませんでした。
0701名称未設定
03/04/23 10:38ID:yagsw7xz今OS XなんでOS 9の場合の検証はしてないが
10.2 iTunes3では
location of current track
これでいけたよ
0703700
03/04/23 11:06ID:OeccxiX7× フォルダ名
○ フォルダのパス
0704700
03/04/23 11:33ID:OeccxiX70705700
03/04/24 12:51ID:ooCRx2qpと、移植してるのですが 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
0706696
03/04/25 00:48ID:QBY/2sad>697もやったしコンフリクトも完全ではないけど検証してみたけど
どうにも原因不明・・
しかもスクリプト編集プログラムだけじゃなくてSmileでもダメとは…
0707名称未設定
03/04/25 06:00ID:I40kUyrwまず初心者質問スレの>>1を音読どぞ。
コンフリクトの検証って事は?OS 9?
AppleScriptと何かの機能拡張がぶつかってるか、OSAのコンフリクト?があるか、
まあわしらにわかる事ではないわな。
地味に検証してがんばっちくり。
0708名称未設定
03/04/25 07:57ID:As18JZduRBは全く使ったことが無いがtrack propertyのlocation propertyを得るなら
ae.ObjectSpecifierParam("----") =
GetPropertyObjectDescriptor(GetPropertyObjectDescriptor(nil,"pTrk"),"pLoc")
でしょう。
0709名称未設定
03/04/30 04:43ID:k+NsLCS10710名称未設定
03/05/05 17:47ID:UDJliVNW0711名称未設定
03/05/06 01:23ID:y/x1cFsw0712名称未設定
03/05/06 02:57ID:eNiTjkpe0713名称未設定
03/05/06 03:02ID:Pvtawfpx「内蔵」と「USB」があって、よく間違えてしまうし面倒。
0714名称未設定
03/05/11 04:01ID:4QgHxJKn連続で別名で保存するアップルスクリプトを激しくお願いします
1つ保存完了するのを待ってまた次・・というのが面倒で・・
0715名称未設定
03/05/11 04:39ID:ncP+7G9Zどういう事がしたいのかもう少し説明きぼんぬ。
0716名称未設定
03/05/11 07:22ID:4QgHxJKn同一の元ファイルを参照した細切れ動画が多数あって、
元ファイルがないと再生時エラーが出てしまいますよね
その他不便なので、全てのファイルを独立再生形式で保存し直したいのです。
複数を同時に独立再生形式で保存することができないし
その間他の作業もできないので(ダイアログが全面に出る)
これを1発で、あわよくば寝ているときにやらせたい、という訳です。
素材はエロ動画です。
あ、OSは9です。。
0717名称未設定
03/05/11 12:18ID:9pnbhL2O>素材はエロ動画です
という事は、MPEG-1か。
ならばQT Playerで独立再生形式で保存するなんて事はやめとけ。
それで出来上がるトンチンカンなファイルは、
QuickTime Playerのみで再生できる完全俺様仕様。
悪いことは言わん。
MPEG-1ファイルは、ダウソしたまんまの状態で保存しときなさい。
0718名称未設定
03/05/11 17:53ID:4QgHxJKn元ネタはいろんなエロDVDで
それを自エンコしたMotion JPEGのQTムービーです。
ファイルは自分しか見ないので、mpegよりは
切り張りの編集が楽なQTムービーのほうがいいので。。
0720名称未設定
03/05/13 06:48ID:ZhUng99bレスありがとうございます。なんとか作ってみました。。
(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
ここらあたりが参考になるっぽいのですが、
よく分かりませんです。
0721名称未設定
03/05/15 18:35ID:TJWFqPf3スクリプトがわかりません。
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でエラーになり実行できません。
読み込みの命令を何と記述すればよいか分かれば何とか
なるの思うですが。
0722初心者です。よろしくお願いします。
03/05/17 01:41ID:p+RGd43xfolderAというフォルダ内にあるファイルのうち、修正日から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
自分なりに調べたのですが、解決法がわからないです。
是非ともご教授下さいませ。
0723名称未設定
03/05/17 03:15ID:NHELwWBvそれにしても平気でマルチする人多いなあ。
あるアプリケーションを使ったスクリプトを書く時は、そのアプリのアイコンを
『スクリプトエディタ』のアイコンにドラッグ&ドロップしてやると
そのアプリで使える命令などがわかる。
これを最初に見なければどうしようもない。
(ただしOS XではGUIを操作する方法が用意されてるのでこの用語以外の事もできるけど)
この用語はアプリのバージョンが違えば変わる事がある。
うちのOS X 10.2.6に入っている iMovie 3.0.2では
用語には『DoCommand』の一語しかなかった。しかも説明が書いてない。
Googleで検索してもそれらしいものはひっかからない。
ようするに、このソフトはスクリプトに対応してるとは言いがたい。
GUI Scriptingでどうにかするっきゃなさそうやね。
0724名称未設定
03/05/17 03:29ID:SzyYKrJFtell 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日でないとダメすか?
0725名称未設定
03/05/17 03:35ID:NHELwWBvOS書いてね。
こっちは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)
の書き間違いでしょ?
0726初心者です。よろしくお願いします。
03/05/17 03:56ID:p+RGd43xありがとうございます!!
なるほど、こういうふうに書けばいいんですね。
なんとなくdateの扱いかたがわかったような気がします。
それにしてもたしかにday of 〜 っていらないですね。なんでこうしたんだろ・・・
しかも - 5 * days とすべきところが + 5 * days になってるし・・・
あと、すいません。後学のために質問させていただきたいのですが、上記の repeat with 〜
はあんなかんじであってるでしょうか?
エラーが出るんでやり方がまずいのかなぁ、と思いまして。
何にしてもこれで今日は安眠できそうです。
ありがとうございました。
0727名称未設定
03/05/17 04:01ID:NHELwWBvあー、あともう一個根本的な事。>>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
0728初心者です。よろしくお願いします。
03/05/17 04:09ID:p+RGd43xすいません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
ご指摘ありがとうござました。
0729初心者です。よろしくお願いします。
03/05/17 04:16ID:p+RGd43xday of ((current date) - 5 * days)
これだと1日の場合 - 4 とかになっちゃうんですかね?
このへんも明日検証してみたいと思います。
重ね重ねご指摘ありがとうございました。
0731名称未設定
03/05/17 14:56ID:Xfu9Jez1いろんなとこ見てるんだね。
あきらめれ。ってことですね。
そうじゃないかと思ってたけど、やっぱりそうでしたか。
0732名称未設定
03/05/17 16:14ID:NHELwWBvそんなカキコじゃだれかわからん。w
これであきらめる奴ならあきらめれ。>>721
今後のスクリプト作成に結びつくように基礎的な事のアドバイスを書いたまで。
やりたい事がある時だけ即席で解決策を他人に出してもらおうとする
『教えてクン』が増えるとイヤなので。
サンプル見て改造してみるくらいのチャレンジ精神があるなら見込みがあるかと思ったが。
0733名称未設定
03/05/17 17:40ID:wL3Toxj+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 "賞味期限切れの恋"
0736初心者です。よろしくお願いします。
03/05/18 01:27ID:3PHldpCZで、結果なんですが、〜 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さん頑張って下さい。
0737名称未設定
03/05/18 05:15ID:akRa+ow/>やり方としては、>>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
0738名称未設定
03/05/18 07:10ID:cpgvRlRxあれれ?>>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
0739名称未設定
03/05/18 07:14ID:cpgvRlRx>>738の半角カタカナで『イ』ってなってるとこは
『is not greater than』でよろしく。
ちなみにスクリプトエディタのスタイル指定で演算子のとこは英文フォントにしておいた方が
ちゃんと不等号などの記号が出て良いです。
0740初心者です。よろしくお願いします。
03/05/19 02:24ID:yIawgZ0Mレスありがとうございます。
つまり、"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さんのはリストを作成すると同時に該当ファイルを選別してるんですよね?
で、最後にまとめて削除。
つまり削除する前にリストを作成してしまうと、件のエラーは回避できる、と。
んー、勉強不足を改めて痛感いたしました。なるべく自分で解決するようにはして
いるのですが、まだまだ努力せねばいけませんね。
せめてエラーの原因くらい特定できるようにならないと・・・
でも今回は伺うことでいろいろと参考になり本当によかったです。
皆さんどうもありがとうございました。
0741名称未設定
03/05/19 20:21ID:SMcnsiftマウント&アンマウントする、2つのスクリプトアプリケーションがあります。
次レスに乗せますが、これを、1つに合体させたいのですが、どうすればいいでしょうか?
3つの状態に対応させようとしてるんですが、
【a.ATalkがオフの時 →ATalkをオンにし、ディスクをマウントする】
【b.ATalkがオンでディスク未マウントの時 →ディスクをマウントする】
【c.ATalkがオンでディスクマウント済の時 →ディスクを片付けて、ATalkを切る】
条件分岐がFinderとネ設定スクリプトにまたがっていて、しかも、
tell〜end tellの中に入れられないmount volumeもあるので、
tell appをどう入れ子にすればいいのかさっぱりです。
0742名称未設定
03/05/19 20:22ID:SMcnsifttell 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
0743名称未設定
03/05/19 21:27ID:vmt3O0zcif ATがON
tell Finder
if ディスクあり
【c】
else
【b】
end
end
else
【a】
end
end
mount volumeがtellブロックに入れられないってのがわからんのだが
0744名称未設定
03/05/20 08:04ID:eQz9GLNNmount volumeは、「標準機能追加」モジュールの命令文らしいです。
31行のが作れました。今テスト中です。
ありがとうございました。
0745川崎くん ◆N3i.Qu1SoY
03/05/21 11:59ID:XJNOUdPo特定のアプリケーションで開きたいときにはどうしたらいいのでしょうか?
on open DropList
tell application "Finder"
open every item of DropList
end tell
end open
これじゃうまくいきません。
0746川崎くん ◆N3i.Qu1SoY
03/05/21 12:01ID:XJNOUdPotell application "Finder"
open every item of DropList with application "Photoshop"
end tell
end open
の間違いでした。
よろしく添削お願いします。
0747名称未設定
03/05/21 12:17ID:uUhzwRXkFinderをスクリプト編集プログラムにドラッグ&ドロップして
用語辞書の『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/
0748川崎くん ◆N3i.Qu1SoY
03/05/21 17:09ID:XJNOUdPoサンスコです。自社開発の画像取り込みソフトで、
コンパクトフラッシュのアイコンをドロップすると
自動的に特定のフォルダに取り込み後に
人の名前と日付を元に連番でファイル名を変更して、
さらにサムネイルをつけた後にファイルをロックして
コンパクトフラッシュの該当ファイルを削除したいだけなのです。
一度にできるのはやっぱりアップルスクリプト(+サムネイル付加専用アプリ)かなと思って開発中です。
(サムネイルを付加する目的には
Graphic Converterなどのアップルスクリプトアウェアのアプリを
直接制御してもいいのですが、よくわからなくて)
やってみます。
0749名称未設定
03/05/22 04:12ID:sCwquOVH>サンスコです。自社開発の画像取り込みソフトで、
川崎クンって、そういう仕事してたのね。
0750山崎渉
03/05/22 04:22ID:wmfA4iPb0751名称未設定
03/05/22 18:35ID:bl5GlxTlもし可能であれば簡単でいいので手本を見せていただきたいのですが。
0752名称未設定
03/05/22 22:23ID:bh70mI0SOSAXを使わないとできなかったと思います
こちらのGTQ Scripting Libraryのset printer toです
http://osaxen.com/gtq_scripting_library.html
使い方は簡単で
set printer to "プリンタ名"
です
0753あぼーん
NGNG0754名称未設定
03/05/31 01:49ID:ytmAccXW0755Untitled
03/06/01 03:42ID:m+EzVvpX集めるドロップレットを作ったのですが、
ドロップレットの場所をデスクトップから
他のフォルダに移すとエラーで使えなくなります。
どなたか、何が問題なのか教えてください。
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
0756名称未設定
03/06/01 10:07ID:JN6U+JD1うちで試してみたけどエラーでませんでした
エラーメッセージはなんと言ってきますか?
場所を移動させたという以外の原因は考えられませんか?
うちの環境は
OS 9.1 AppleScript 1.5.5 Jedit4.0.5 です
0757Untitled
03/06/01 14:32ID:m+EzVvpXCould 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とでます。
スクリプトエディターのディスクエラーって?なんでしょう...。
0758名称未設定
03/06/01 15:10ID:KwFf8yXYつか、もしかして、エラーの意味を知りたいだけとか?
0759Untitled
03/06/01 16:29ID:m+EzVvpX0760名称未設定
03/06/01 17:07ID:sEzQ44eTJeditのバグじゃない?
Jedit使わずに同じこと試してみてわ?
というわけで作りました
使い方は同じ、デスクトップ上に
Pickup_Line_1.txtという名前のJedit書類ができるので
実行後開いて
うまくいったらJeditのバグ、バージョンアップとか考えたら
0761760(つづき)
03/06/01 17:08ID:sEzQ44eTtell 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
0762Untitled
03/06/01 21:23ID:m+EzVvpXJeditは最新版を使っています。
作っていただいたドロップレットも、場所を移動すると
エラーが出て使えなくなっちゃいます。
デスクトップに置いてあるフォルダーに入れただけなんですけどね...。
OS X特有の問題でしょうか?
でも、作っていただいたスクリプトのほうが
実行速度が10倍ぐらい早いので驚きました!
使わせていただきます...。
0763名称未設定
03/06/01 23:15ID:sEzQ44eTうちでは移動させてもエラー出ませんよ
同じOS 10.26ですけど
お使いの環境特有の症状じゃないかなあ
原因はわからんけど
0764名称未設定
03/06/03 21:57ID:39vE1GTzdo shell script
するときってパスワードはどうやって渡せばいいんですか?
os 10.2です
誰か教えて下さい。
0765名称未設定
03/06/03 22:32ID:XPgOdKjc0766名称未設定
03/06/03 22:38ID:39vE1GTz0767名称未設定
03/06/04 05:31ID:Bb6W+8yjパスに日本語が含まれるかどうかは関係なし?
デスクトップに置いてあるフォルダって奴の名前は?半角英数ですかい?
あと、たぶんPerlつこたがはやいで。
0768Untitled
03/06/04 22:03ID:69n2QhTbテキストファイルの入ったフォルダとこのドロップレットは、
デスクトップに置いてある1つのフォルダに"一緒"に入れて
使おうとするとエラーになるので、
このデスクトップのフォルダが壊れているのかと
思ったのですが、いろいろ実験した結果、
この同じフォルダに "Contentsという名前のフォルダ"があると、
エラーになります。なんかの予約名なのでしょうか?
実行スピードについては、AppleScriptだし、
こんなモンかなと思っていました。
他に自分が作ったヤツで、複数のテキストファイルを、
ヘッダーを挿入しながら連結するドロップレットがあるんですが、
処理を目で追えるほど低速です...。わかりやすくていいんですけど...。
Jeditを通すからいけないんですよね...。
0769名称未設定
03/06/11 01:29ID:Hpu5+DGiちょっとクールになっててかっこいいです。
0770名称未設定
03/06/11 03:26ID:HkwxRgio>ScriptEditor2.0Beta
こんなものがあったのか。
さっそくダウンロード
検索できるのがいい!
しかし、かなりまえからあったのか。
http://www.apple.com/downloads/macosx/apple/applescripteditor.html
0771名称未設定
03/06/13 00:28ID:38t7hdFgもうちょっと便利機能載せて欲しいと思うが
0772名称未設定
03/06/13 00:45ID:KW/fYKS7この方向でおながいしたいのだが、これはど
まあ、Scriptableになってほしいな。
0773名称未設定
03/06/13 03:09ID:wY2puRNxフォントの設定がセーブされないようなので
起動時に設定しないといけないのでめんどくさい。
そのままだと日本語が化ける。
コンパイルできないのもありました。
あんまり、つかえないなぁ
0774名称未設定
03/06/13 19:02ID:lw8Rfu+Jが化けちゃいますよね、実行させると。
0776名称未設定
03/06/14 02:52ID:IzO8RyFi0777ホセ、ムーニョス、デ、サントス、ココ、アリスタチア、エッセンブラ、リ、セスティオール、ロベルト
03/06/14 03:55ID:L7//82Nn7 7 7 7 7 7 7 7 7
0778名称未設定
03/06/14 20:58ID:IXeYoJclSmileはカーソルがクリックした位置に入らないから
捨てたしなぁ。
みんな何で書いてるの?
0779名称未設定
03/06/14 21:59ID:fBMSR/9K0780名称未設定
03/06/14 22:20ID:dgODXEac0781名称未設定
03/06/14 23:01ID:IXeYoJclコンパイル済みスクリプトから編集できないのかとスルーしてたけど、
miで作成保存するとmiで保存できるコンパイル済みスクリプトに
なるのか。知らなかったよ・・・。
miでつくったのはScript Editorでも編集できるんだね。
osacompileの-d、-rあたりの違いなのかな。
これからmiで行ってみます、情報サンクス
OS X 10.2.6
0783luc
03/06/14 23:06ID:IzO8RyFiVectorWorks図面をいじりたいんですけど、
AppleScriptからの変数をVectorScriptにわたせますでしょうか?
VectorWorksってDo Scriptしかつかえないんですけど...。
0784名称未設定
03/06/15 01:32ID:F8YfMQ59テキストファイルから情報を読み取る機能くらいあるんでしょ。
だったらファイル経由で情報をやり取りすれば宜し。
0785luc
03/06/15 17:55ID:3c4eSH5i作りたいんです。
VectorScriptってのはVectorWorksファイル上で動く
Pascal系のスクリプト言語で、開いているその図面上のオブジェクトなら
全ていじれるんですけど、他のファイルはいじれないんです。
じゃあ、AppleScriptかってわけなんですけど...。
0786名称未設定
03/06/15 18:40ID:+xCMoQd8あとはApplescriptGUI
http://www.apple.com/applescript/GUI/
とかしか思いつかないな
0787名称未設定
03/06/18 15:02ID:hyoxVy2nUI scripting betaインスコしたけど日本語環境では駄目なのでしょうか。
0788名称未設定
03/06/18 16:37ID:rlf51n9z0789luc
03/06/19 01:22ID:7c7d49tOテキストファイル経由で出来ました。
でも、まどろっこしいやり方になりますね。
Perlとかだと環境変数にAppleScriptの変数を引き渡しできますよね。
0790marvin ◆O2marvinJE
03/06/19 12:11ID:aD7gUnE2window 1 と指定すると手前のウィンドウの事になると思いますが
ユニークIDで指定して操作する場合どう記述したら良いでしょうか?
0791marvin ◆O2marvinJE
03/06/19 13:48ID:aD7gUnE20792marvin ◆O2marvinJE
03/06/19 14:00ID:aD7gUnE2こっちこっち
window {unique ID:myid}
0793名称未設定
03/06/19 16:56ID:noHvKLJYUIscriptingもいまひとつということで、どのへんが便利かは別としてこんなのを書きました。
スクリプトエディタで実行するとうまくいくんですが、コンパイルするとうまくいきません。
なぜでしょう。
--使用方法: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
0794名称未設定
03/06/19 17:34ID:ay2vZdXfの次に
activate
を付け加えるとどうですか?
漏れは9erだからわからないけど…
0795名称未設定
03/06/19 19:48ID:noHvKLJYう〜ん。駄目でしたっす。謎
0797名称未設定
03/06/19 21:51ID:noHvKLJY原因がわかったような。safariの表示フォントをOsakaにしてました。
その他、欧文フォント系なら大丈夫でした。(NewYorkとか)
ありがとでつ。でも、少し割り切れない。。。
0798名称未設定
03/06/20 15:54ID:JosE8XeQtell 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
0799名称未設定
03/06/25 03:22ID:41BlJ5b20800名称未設定
03/06/27 11:24ID:D3xEKAE60801名称未設定
03/06/27 13:24ID:aR+BNNVi単純な作業の繰り返しのときに「こういうときにAppleScriptみたいなもんが
使えたらなあ」ってオモタ
ファイル名の変更にMS-DOSプロンプトを使ってみたらファイル名が8文字
までとかなんとかで上手く出来なかった
ツール類はたくさんあるみたいだけど
0802名称未設定
03/06/27 13:42ID:XaJJBML+0803名称未設定
03/06/27 18:20ID:8e/bbV5mWindows Script Hostというのがあります
デフォルトで入ってます
メール系のウィルスはほとんどこのWSHで書かれています
AppleScriptと比べると、とっつきにくいけど
非常に高機能という印象です
Win板に専用スレがあるしネット上にもソースに事欠かないので
調べてみては?
0805名称未設定
03/06/28 22:57ID:p98hAGtuダイアログ出さずにユーザーに簡単な情報を伝えれると言うところが。
beepだと誰が鳴らしたかわからない時があるけど
say "mosi mosi"とかわかりやすくできる。
0806名称未設定
03/06/29 02:07ID:ArsBPQWwASの入門書書いてる掌田さんが雑誌連載とか入門書とか書いてるよ。
実際の記述はVBScriptとか使う事になるのかな。
0807名称未設定
03/07/01 00:36ID:BhKAuaxThttp://pc.2ch.net/test/read.cgi/mac/1056107326/l50
貼ったと思ってたら、貼って無かったようですね。
SuperColliderのスレッドです。よろしく。
ずいぶん前にフリーになりました。Θ
0808名称未設定
03/07/01 19:18ID:jZoowSD8一見、良さげだったけど、使いもんにならんです。
0809名称未設定
03/07/01 20:07ID:c3Bq850Kどう「良さげ」で、どう「使いもんにならん」か書かないと
「ScriptEditorに開発版がある」という情報しかない。
0810名称未設定
03/07/01 22:10ID:tR2GGu9khttp://www.apple.com/downloads/macosx/apple/applescripteditor.html
Post Date:12/23/02
でした。
こいつは769あたりですこし話題になってます。
0811名称未設定
03/07/02 00:08ID:Bjxsq5G8>>808じゃないけど、>>769より後に出た新しいβ版の方だと思う。
うちでも、コンパイルしたスクリプトを開こうとしただけで落ちるし
新規に作って保存しようとしても落ちる。どうにも使えない。
多分、すでに引っ込めたんじゃなかろうか。
0813名称未設定
03/07/07 05:22ID:sLUbzPnH純正ソフトのSafariのAS対応とかまじめにやっちくりー。。
0814名称未設定
03/07/08 20:33ID:lx7r7Cqropen for access c_path
とかやると、"Bad name for file" とか言われてファイルが開けないんだけど、どうしたらいいですか?
0815名称未設定
03/07/08 21:05ID:kjLLvOQyopen forの引数は文字列、Posix pathを直接扱えません。
alias形式などに直してから、渡しましょう。
0817名称未設定
03/07/09 23:44ID:wBRti3exリファレンスみてもさっぱり、サンプル集にも参考になるものがないし…。
どなたか分かる方おられませんか?
iTunes AppleScript サンプル
ttp://www.apple.com/applescript/itunes/
0818名称未設定
03/07/10 01:06ID:lipZwcYZtell application "iTunes"
set theWindow to window 1
--[左,上,右,下]
set bounds of theWindow to {0, 22, 988, 600}
end tell
0819817
03/07/11 00:37ID:5cEdA27wboundsを使えばよかったんですね…
しかも window 1 でいいんすね…
Finder の形式で考えが固まってたのでわからなかったです。
ありがとうございました。
0820名称未設定
03/07/12 22:07ID:Z7pkFq5HSafariで特定のページのテキストボックスに
何か文字を入力して送信(ボタンを押した動作)をさせたいと思います。
たとえば、パスワードの入力のような感じですが
やり方をどう調べていいかわからない次第です。
過去ログをSafariで検索したり、googleはみてみました。
教えて君ですみませんが、何をどう調べていいのかもわからないので
最初の一歩を踏み出す助言をお願いします。
0821820
03/07/12 22:15ID:Z7pkFq5Htell application "Safari"
activate
set "q" of document 1 to "."
end tell
までしかできていません。
qという名前のついたテキストボックスにピリオドが入ればいいのですが。
0822名称未設定
03/07/12 23:49ID:4FS/pq/NSafari自体にフォームへの自動入力があるので
可能ならそっちを使った方が楽ですが、
試したところ
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()で送信もできるかもしれませんが
テストしてないのでできたら教えて下さい。
0823名称未設定
03/07/13 00:06ID:vkq7CtAeおもいっきりスレ汚しすいません。
OSは9.2.2です。
ラベルを変更させるスクリプトを作りたいのですが
あるフォルダをドロップして、そのフォルダ内にさらにフォルダが含まれていた場合に一番下の階層まで全てスクリプトを適用させたいのです。
しかし、このくり返しの部分をどうしたらよいのか見当がつきません。
どうかアドバイスを
0824名称未設定
03/07/13 02:22ID:EphejziB再帰的な構文を書けばいいんです。
0825名称未設定
03/07/13 05:13ID:p8vdflcHtell app "Finder"
if dropitem is folder then
my open dropitem
else
--ラベルをつける
end
end tell
end
>>823さん、こんな感じでどうでしょう。
細かいとこは自分でしれ
0827名称未設定
03/07/13 17:36ID:uocPRDWv>>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で一旦ストップさせてますけど、
ページ全体を読み込んだかどうかの確認を取る方法がないものなんでしょうか。
0828名称未設定
03/07/14 02:43ID:LnfrfdYEgetメソッドも受け付けるなら、ここのフォームをurlに変換して、
サハーリさんに渡せばいいような。
http://www.stingray-jp.com/allcinema/prog/?frmHeadSearchTxt=タイトル
みたいな感じで。
0829827
03/07/14 11:02ID:dM7Epc1sおお、そんな方法が!と、やってみましたが、どうもダメなようです…
とりあえず「〜allcinema/prog/?frmHeadSearchTxt=タイトル」や、
「llcinema/prog/search/?frmHeadSearchTxt=タイトル」などでは、
普通にもとの検索画面が表示されます。
0830828
03/07/14 22:31ID:crqwFDvXこれでどうでしょう?「star」を含むタイトルを検索しています。
日本語タイトルを検索する場合はたぶんエンコードしないと逝けないでつ。
あと、これってOSX向けの話題なので、ややすれ違いな感じが。
ここまで引きずっておいて、なんだけど。
0831827=829
03/07/14 23:18ID:dM7Epc1sわざわざ有難うございました〜JavaScriptはさっぱりなんで、検索しながら悪戦苦闘してました。
OS X向けというか、アップルスクリプトからもちょいズレてますね。どうもすみません>ALL
0832名称未設定
03/07/14 23:30ID:I4w/Xahgset 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
0833山崎 渉
03/07/15 10:13ID:34L7LbqJ__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0834山崎 渉
03/07/15 14:21ID:/6SaCgsj__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0835820
03/07/15 17:47ID:ZvtYU9A3ありがとうございます。
JavaScriptを使うのですか、まったく気づきませんでした。
スクリプトエディタから用語説明を開けるのですが、
あまりに項目が少ないので困っていましたが、
JavaScriptを使うのが正しいのですね、ありがとうございます。
>>827
ありがとうございます、参考にしてみます。
0836820
03/07/15 23:58ID:ZvtYU9A3試してみたところ、目的のページでは駄目でした。
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に替えるとエラーになります。
お手数ですがご指導下さい。
0837名称未設定
03/07/16 00:37ID: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
0838名称未設定
03/07/16 13:05ID:AdLiEB9kitext pro のプレファレンス → オプション → 背景色を任意のものに切り替える script が欲しいのですが、
そういったものは作れますでしょうか。また、既存のもので、そういうものをご存じの方はいらっしゃいますか。
扱うテキストによって、白背景と黒背景をプチプチと切り替えたいのですが…。
0839名称未設定
03/07/16 14:15ID:Q3+3QYv8itextって使ったことないけど、アップルスクリプトに対応してますか?
きちんと対応していれば簡単そうですけど...。
0841名称未設定
03/07/16 22:01ID:mf2OOw6w再帰処理とはスクリプト内で自分自身を呼び出すということです
検証してたら何か分からなくなってきたので(OS Xめ!)
かなり変更されてますが参考にしてみてくれ
あとFinderのclassはアイテムを「Finderの」アイテムにしてやらないと
class folderは取れません
エイリアスの場合は種類が何であれすべてclass aliasになります
一番手っ取り早いのはselectしてFinderのアイテムに変換することだと思います
一応検証したけど動かなかったらまたレス下さい
0842つづき
03/07/16 22:01ID:mf2OOw6won 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
0843837
03/07/17 01:48ID:2wMk3x4/書いていただいたスクリプトなんですが、
ちゃんと動作します。再帰の意味は解りました。
再帰ってうまく使えばきれいに書けるのがいいですね。
でも、フォルダーかどうかを判定するのって
基本的なことなのに、結構ややこしいです...。
0845名称未設定
03/07/22 01:11ID:2AGBj1Swとりあえずこんなかんじです。
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
で、これにフィルタで特定のファイルだけってのが、どう考えてもわかりません。
例えばファイル名の最後に"/"が付いているものは除く、みたいにやりたいのですが、
どうすればいいでしょうか?
0846845
03/07/22 01:16ID:2AGBj1Sw0847733
03/07/22 12:40ID:tXX9m6yY●《文字列1》ends with《文字列2》●
文字列1の末尾が文字列2で終わっているかどうかをチェックします。
AppleScript入門教室より
ttp://www.h5.dion.ne.jp/~tuyano/AppleScriptTutor/
0848名称未設定
03/07/22 13:06ID:UzwiWMC6tell app "finder"
select addeditem
set X to (items whose (name does not end with "/")) of selection
end
とか
0850845
03/07/23 00:19ID:27mcUS6ion 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
四行目で指定された、ファイル名が"/"で終わるものだとエラーが出るようです。
ちゃんと動きはするんですが・・・
どこかおかしいところありますか?
0851名称未設定
03/07/23 09:32ID:iUL4BM+8変数の変化を追うのも定石。
/で終わるものしかなかったときにsenditemはどうなる?
すると終わりから四行目はどうなる?
つーか最初はスクリプト編集エディタ上から実行できる形式で
履歴ウインドウでバグ取りしてから
形式を変えたほうがいいよ。
0852名称未設定
03/07/23 21:12ID:DvtZnuK9on 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さん助言有り難うです。
0853名称未設定
03/07/28 20:50ID:teJbe3WrAppleScript以外の方法でもいいです。
0855名称未設定
03/07/30 00:05ID:DGuSnz72どうもです。
試しにファイルメーカーで作ってみます。
ちなみに、自動化したい作業は、
ログ結合 --> コード変換 --> 行内の置換処理 --> 行ソート
--> 隣接重複行削除 --> ファイル名の整列
です
ログ結合にTextChain、コード変換にふみづかいを使っています。
0858名称未設定
03/08/01 07:26ID:HVJFiRsK0859山崎 渉
03/08/02 02:10ID:EjhDFmQC0860名称未設定
03/08/06 08:44ID:1TcyD5HRクウォークの文字や画像ボックスなどにかけられるロックは
スクリプトで操作可能ですか?
0863名称未設定
03/08/06 19:43ID:ZqweG45P0864名称未設定
03/08/06 19:43ID:ZqweG45Pま
0865名称未設定
03/08/06 19:44ID:ZqweG45Pい
奴
0866名称未設定
03/08/06 19:45ID:ZqweG45Pく
る
な
0867名称未設定
03/08/06 19:47ID:ZqweG45Pは 首 で
も
0868_
03/08/06 19:48ID:MKRdqtH80869名称未設定
03/08/06 19:58ID:FNF87D0oあったはずなのですが、どなたがご存知の方いらっしゃいますか?
クリーンインストールの際に消えてしまって途方に暮れています。
今のところファインダーからドラッグ&ドロップで代用しているのですが
なんかしっくりこないので…
0871名称未設定
03/08/06 21:24ID:g1wv2op0参考に汁
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}
0873名称未設定
03/08/08 05:41ID:ZkGAfj1Tそういうのは、「こんなソフトを捜しています」スレに書きなはれ。
ここはスクリプトを作る人が来るスレ。
ちょっと用語辞書見ればすぐ作れる。
おれは右上縦、右下横、消去、の三つ書いて使ってたよ。
0874名称未設定
03/08/08 07:10ID:uOO0Lpffアドバイスありがとうございます。
逝ってきます。
0875名称未設定
03/08/12 19:52ID:pTev6bnPキーワードをつかいたい(例えば"/"か"*"ではじまるもの、みたく)ときは
どうすればいいの?
文字列だと or つかえないっしょ?
全部をif、else ifで指定しないと駄目?
0876名称未設定
03/08/12 20:09ID:9f1KJXfW0877名称未設定
03/08/13 00:20ID:TPvQnu0vじゃ駄目なの?
0879名称未設定
03/08/14 15:21ID:3KcMfrnFif file_name starts with "/" or "*" then
とやっちゃって「動かねー」って悩むんだよな
0880あぼーん
NGNG0881名称未設定
03/08/16 12:54ID:14zcdeU7Mac には AppleScript というスクリプトがあることを知りました。
それで、iTunes で MP3 にアートワークを埋め込んだのですが、
このアートワークを AppleScript で取り出すことが可能であれば教えて頂けないでしょうか。
環境はOSX10.2.6, デベロッパーツールです。ヒントでも結構ですのでよろしくお願いします。
0882881
03/08/16 17:08ID:14zcdeU7ところで、以下のようなのはどうやって調べるのでしょう。
iTunes4以降が知りたいです。
ttp://www.oomori.com/applescript/00000120/idx00120.html
0883881
03/08/16 17:16ID:14zcdeU70884881
03/08/16 19:38ID:14zcdeU7if 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
アートワークの存在を確かめることが出来ません。ヘルプ。
0885名称未設定
03/08/16 22:57ID:msr1jIMeexistsの動きがよく分からんね
アートワークが存在しない場合は空リストを返すみたいなので
これで回避してわ?
tell application "iTunes"
if not artworks of selection is {{}} then
display dialog "存在する場合の処理"
end if
end tell
0886881
03/08/17 21:51ID:Qh3VIolQありがとうございます。スマートで感激しました。
set img to data of front artwork of current track
上記で、img にPICT形式のアートワークをセットすることが出来たと思うのですが、
これをPICT形式のファイルで書き出したいです。ヒントを頂けないでしょうか。
0887881
03/08/17 21:58ID:Qh3VIolQset img to data of front artwork of current track as picture
set the clipboard to img
でクリップボードへの転送を確認しました。
0888881
03/08/17 22:10ID:Qh3VIolQ0889881
03/08/17 22:47ID:Qh3VIolQ0890名称未設定
03/08/17 23:42ID:oxdR9Lyj何に対してtellすればいいのでしょうか?
0891名称未設定
03/08/18 00:02ID:trnHhwJ/一応プリントセンターがスクリプタブルになってます
具体的に何が出来るのかまでは私はチョット知りません スマソ
調べてみてください
http://www.apple.com/applescript/print/
0892名称未設定
03/08/18 00:28ID:OgEkH1j9なるほど。プリントセンターですか。ありがとうございます。
でもサンプル見てもいまいち僕には意味解らないです...。
複数ファイルの連続印刷ユーティリティを作ってみようと思ったんですけど...。
0893881
03/08/18 12:19ID:nyIqc4KUset 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 を指定したのですが、
これでは駄目なのでしょうか。お助け下さい。
0894名称未設定
03/08/18 12:28ID:dBZ3jIIj0895881
03/08/18 12:56ID:nyIqc4KUしかし、常駐させるのでゴミ箱が大容量になってしまいます。
バックグラウンドでUNIXコマンドの rm を使えば何とか…。
0896881
03/08/18 13:14ID:nyIqc4KUでいけました。ありがとうございます。もう一踏ん張りだ。
0897881
03/08/18 13:52ID:nyIqc4KU> if not artworks of selection is {{}} then
これは、iTunesで選択(色帯)している曲がターゲットですよね。
iTunesで再生している曲をターゲットにしたいのですが、どうしたら良いのでしょうか。
0898881
03/08/18 14:00ID:nyIqc4KU0899881
03/08/18 15:13ID:nyIqc4KUなんか、最初にやってたのでいけました。
0900名称未設定
03/08/18 15:57ID:B4cgW1NQもし良ければ、完成したら公開して下さいね。
お願いします。
発展すると面白いものができそうですね。
私はスクリプトでアートワークを制御できると思っていませんでした。
というか発想がなかったです。
0901名称未設定
03/08/18 17:24ID:nKRRSEqa0903名称未設定
03/08/18 23:22ID: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しか読んでないので、似たようなのがガイシュツだったら申し訳ない。
0904881
03/08/18 23:46ID:nyIqc4KUゴメン。AppleScript で何が出来るのか分からないので手探りで。
辞書の使い方も慣れてきたのでもう大丈夫です。
>>900
konfabulator の widget というのに移植しました。使い込んでから向こうのスレで晒します。
0905名称未設定
03/08/30 06:29ID:OOFNq+1Zスクリプトを作りたいのですが、そういうコマンドってありますか?
0906名称未設定
03/08/30 09:50ID:w5vq/tss標準ではそういうコマンドはありません
でも需要は多いでしょうから
OSAXで探せばあるかもしれませんし
フリーウェアとして公開されてる変換スクリプトもあると思います
もちろん自分で作るのも良いかと
0907906
03/08/30 10:02ID:w5vq/tssちなみに
大文字を小文字にするスクリプトは
ASCII numberを調べてそれが65から90の間だったら
32足して元に戻すだけです
かなり簡単なので作ってみては?
0909名称未設定
03/08/30 15:50ID:OOFNq+1Z0910名称未設定
03/09/01 00:48ID:3YQWvz8W色をつけるとか開封済みにするとかはあるんだけど
削除済みのフォルダにいれるっていうアップルスクリプトほしいんですが
どうすればいいのか、ぜんぜんわからないのです...
教えて下さい。
0913名称未設定
03/09/01 01:52ID:PzA3SLPL0914名称未設定
03/09/01 13:51ID:gm72tlqbここはAppleScriptのみで
Perlとか使う場合はこっちの方がいいんじゃない
「AppleScript,Perl,Shell」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1055091471/
0915名称未設定
03/09/03 01:34ID:LM26xH2gアルファベットなんて文字数限られるから、全角半角変化するレコード作っといて、
そこから引っぱればあっさり出来そうなヨカーン。
0916名称未設定
03/09/03 23:56ID:xSYOwWGrそれもそですね。手元に、タイプクリエータ変更のドロップレットがあったので
改変にトライしてみます。
Perlは、解説本を物色中です。(まだ)
0917名称未設定
03/09/04 23:14ID:gZVoSWj4つかえば。
0919名称未設定
03/09/10 20:51ID:kJH/orP/交互に書き替えます。半角カナには対応していません。
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)
0920名称未設定
03/09/12 00:10ID:8gJV8UWO置換用文字列をいくつでも登録できます。
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)
0921名称未設定
03/09/12 00:26ID: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って無いですか?
0922名称未設定
03/09/15 11:31ID:pi6TUyJl0923名称未設定
03/09/17 06:14ID:sJEvv1GhQuoEditのサイトで公開されてるOSAXに、それらしいものがありました。
ttp://www5c.biglobe.ne.jp/~quo/
0924名称未設定
03/09/17 06:44ID:LPGtBOtFAppleScript183.smi.bin
日本語OS9にインストールしてみた人いませんか?
0925名称未設定
03/09/18 06:09ID:rXDym7S6快適に使用してます。
0926名称未設定
03/09/18 07:48ID:Ozr8IhBXそうですか。うちでも入れてみます。
日本語OSでも、option+E起動でインストールできますよね。
ちょっと手が空いてるのでリリースノートをみてこよっと。
0927名称未設定
03/09/18 18:31ID:5qglxU1w情報ありがとうございます。
日本語フォントを設定できないので
いろいろ試したところ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
0928名称未設定
03/09/20 15:36ID: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
0929名称未設定
03/09/20 23:35ID:KTuCHMX3そこまで書ける人に
アドバイスすることじゃないような気もするが
普通にFinderに名前を尋ねるんじゃだめなの?
あとパスが取れてるなら名前だけ抜き出してもいいし
見当違いならすまん
0930名称未設定
03/09/21 05:59ID:FucN4QFsぜんまいびゅんびゅんから引っこ抜いてきたスクリプトなんですよ。
一体どの変数がパスを拾っているんだか、もう皆目。
最後のコロンまでをパスから消すgrep式すら書けないスキルです・・・・・
0931名称未設定
03/09/21 09:46ID:iXO2kj2yname of obj
で。
0935名称未設定
03/09/22 10:27ID:c5i+lpFDエラーの際は、生成したtxtファイルを選択して
tell application "Finder" to close access selection
を実行してください。
0937名称未設定
03/09/22 19:15ID:VE7QbE0j0938名称未設定
03/09/24 13:32ID:MuGrdX2M0939名称未設定
03/09/24 23:15ID:AMGWa5gy0940名称未設定
03/09/25 00:09ID:zLZ9GyFuスクリプトを実行しているのがScriptEditorとか、OSAMenuとか、Script.menuだと、
その実行しているアプリケーションのパスが入らない?
この事が気になったのは数カ月前だから、詳しい事は忘れたが…
0941名称未設定
03/09/25 18:20ID:ZA1CTSkY0942名称未設定
03/09/26 00:33ID:d97CPK/f別のマック(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
0943名称未設定
03/09/26 01:05ID:ohpB5ToMコンパイル時にエラーが出るの?それとも実行時にエラーが出るの?
俺はこんなスクリプトを使ってるけど、問題無いよ。
tell application "iTunes" of machine "eppc://username:[email protected]"
playpause
end tell
0944942
03/09/26 01:25ID:d97CPK/f早速レスどうもです。
スクリプトエディタで実行すると
「アプリケーションのイベントの用語を取得できません。」とメッセージが。
目的はミュージックサーバーである隣のマシンと
Rendezvous経由でiTunesを共有したいんです。
0945名称未設定
03/09/28 02:12ID:3sD5zwVotell application "iTunes"
activate
end tell
というスクリプトを192.168.0.2のマックのどこかに置いて、
tell application "Finder" of machine "eppc://192.168.0.2"
open (そのスクリプトの場所を指示する)
end tell
とか…
0946名称未設定
03/09/29 20:08ID:+4Zht6R9リモートのアプリケーションをactivateすると不味いんじゃないの?
0947名称未設定
03/09/30 14:14ID:wX+0xHf1そのページの構成要素をすべて用意できたか(表示されたか)どうかを得たいのですが、
やはりdo JavaScript...でjavascriptを使うのが手っ取り早いでしょうか?
0948944
03/09/30 19:10ID:5LSRIosw>944
出来ました!バッチリっす。
いやーもう最後の手段でAppleRemoteDesktop買おうかと思ってた、、、。
>945
なるほど。そうかもしれませんね。
activateっていう命令はスクリプトの実行元(この場合iBook)
での状態を示すから、リモート先に対しては発行できないのかも。
いずれにしても助かりました。感謝!
0949947
03/10/01 07:25ID:IkrxrxUU>ttp://www.apple.com/applescript/safari/jscript.01.html
ここにずばりのサンプルが載ってました。
恥ずかしい……おじゃましました……
0950名称未設定
03/10/11 11:53ID:AR/gg6f9以下のスクリプトじゃ働きません。
どうしたら動きますか?
OS921 & AS1.6 & S穫di'sAdditions使用。
TypeText "〜" with Shift and Control
0951名称未設定
03/10/11 12:00ID:kcc6OR1o「〜」自体はシフトおしながら出る文字じゃないか?
「`」じゃないか?
0952名称未設定
03/10/11 12:03ID:kcc6OR1oOS9でキーを押すスクリプトを作るなら
「KeyQuencerLite」をお勧めするよ
http://www.macupdate.com/info.php/id/1750
体験版状態でも、エディタ起動時10秒待ち以外全機能動作する。
もちろんAppleScript対応だ
0953名称未設定
03/10/11 12:52ID:udCI8ft2〜は割り当ててあるローマ字に置き換えて考えて下さい。
例えば、文字パレット表示ならBです。
鉛筆メニューのショートカットだけ動かないので対応してないだけかも。
「KeyQuencerLite」は以前使っていたけど不安定になるんで、
使わなくてもいいならそのほうがいい。
0954名称未設定
03/10/11 12:57ID:QCcgkuy4いまでも現役で使ってるけどそんなことないけどな…
だけど、キーショートカット割当は、日本語IMとぶつかる場合が有る。
AppleScriptから呼ぶときは、「menu "U.S."」を追加すれば問題が出ない。
0955名称未設定
03/10/11 12:59ID:QCcgkuy4Application only をつかわなければ不具合出ないよ。日本語IMでも。
0956名称未設定
03/10/11 13:23ID:Fn24Wh9xMenu "ことえり◆"
key ctrl shift "j"
Type "itteyosi"
key " "
#◆のところはU.S.モードでoption+shift+xを押して「TM」を入れてくれ。
ことえりに切り替えて、いってよしとタイプする。
0957名称未設定
03/10/12 15:06ID:VDCMS1Gzググってもなかった。
0958名称未設定
03/10/12 16:33ID:jpLh1hB30959名称未設定
03/10/12 18:28ID:BNux8sr4キーボードのイジェクトキーの代わりにiTunesみたいにCDトレーをイジェクト
できるScriptってできますでしょうか?探しても無理らしいことばかり書いてありましたが
iTunesからパクればいけそうなんですけれど、、なかなかうまくいきません。アドバイスお願いします。
0960名称未設定
03/10/12 18:37ID:BNux8sr4システム:ライブラリ:CoreServices:Menu Extras にEject.menu
があるので、これでソフト側からトレーを開けますね。
すみませんでした。
0961名称未設定
03/10/14 10:16ID:TVdLvLfFなんかマニュアルで挫折しそうです。
でもなんとか目的は達成することができました。
S穫di'sAdditionsはじめ他のスクリプティング機能追加も試してみたけど
うまく動いたのはKQLだけだった。
情報くれた人thx!
0963名称未設定
03/10/19 13:31ID:g2S4HqRHこれってできないもんかね?
考えてみたけどわかんない。
0964名称未設定
03/10/19 19:24ID:kq51PTgotell application "Finder"
activate
close every window
end tell
システム終了をするとこのスクリプトが起動して
ウィンドウはちゃんと閉じるんだけど、その後スクリプトが終了しても
そのままでシステム終了をしてくれなくて、再度システム終了
をしないとだめ。これって何で?
OS9.2.2です
0965名称未設定
03/10/19 19:31ID:jt4a1eo/end tell の前に shut down を入れてスクリプトからシステム終了させれば解決するはず。
0966名称未設定
03/10/19 22:13ID:d/RUhXVnFinderをactivateしたら終了プロセスがキャンセルされると思うぞ
window閉じるだけならactivateする必要ないと思うから
tell application "Finder"
close every window
end tell
これでいいんじゃね?
0968名称未設定
03/10/24 13:57ID:DMlkWq5rこれで、別所に用意してあるファイルを、今いる場所にコピーする
スクリプトにしたいのですが、コピー先を、開いているウィンドウの中にするには
どうすればいいでしょうか。
ウィンドウの中のどこかでコンテクストメニューを開き、スクリプトを選んだら
別所のファイルがウィンドウの中にコピーされるという風にしたいのです。
0969名称未設定
03/10/24 14:37ID:hbnil0JOあー、、それなら、コピーもカットもコンテクストメニューでできるヤツを作ってサイトにうpしてるけどなー。。
今ごろそんなものを作ろうとしているって事はOS 9?
AppleScriptリファレンスは持ってる?
今一番手前にあるウインドウを指す用語があるよ。
俺自身今本が手元に無いのであとは誰かフォローしてくれ。
0970名称未設定
03/10/24 15:18ID:GPdjP+By0971名称未設定
03/10/24 22:26ID:DMlkWq5rあ、container window of なんたらとやってました。
できました。ありがとうございます。
>>969
9です。
ウィンドウを選択していない時にdesktopにコピーする条件分岐をつけたい時は
どうすればいいでしょうか。
duplicate 〜 to desktopで、コピーはできるけど、それを入れるif式が分からないです
0972名称未設定
03/10/24 23:40ID:GPdjP+By最後にフロントだったウインドウが選択されちゃうんだよね。
これをなんとかする方法はあたしにゃわからないので誰かよろしく。
0973名称未設定
03/10/25 00:34ID:01hunPTwCMScriptも使えるが
0974名称未設定
03/10/25 02:14ID:L9+Tull5今もう一度やってみたら、これでできました。
条件分岐いらないっす。
0975名称未設定
03/10/26 01:52ID:YKrhMHH0新板
旧板
ロビー
↓
新板@
旧板@
ロビー@
こういうかんじで特定の記号を加える、というのをやりたいんですけど
私には無理でした・・・
どういうふうにやればいいかだけでも伝授していただけないでしょうか?
0976名称未設定
03/10/26 04:17ID:qJrtvCRwon 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)
0977975
03/10/27 01:41ID:N5VwaWyWありがとうございます。
text item delimiters というのはテキストの項目区切りなんですよね?
この場合だと改行で区切ると思うんですが、その記述はどの部分になる
のでしょうか?
あと、どこでクリップボードのテキスト情報を取得してるのかもわかり
ません・・・
最近はじめたばかりなんですが、向いてないんでしょうか・・・
とにかくありがとうございました。
0978名称未設定
03/10/27 02:15ID: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)
0979名称未設定
03/10/27 02:26ID:zOa0cc8hこの場合、“何とかハンドラ”とか“サブルーチン”とか言うんじゃない?
ところで、そろそろ次スレでは…
0980名称未設定
03/10/27 02:39ID:UcyGVrCH鬱陶しいなあ。
0981名称未設定
03/10/27 03:33ID:NZGG9LFk最初は理解しなくてもいいと思う。
置換方法の方法、考え方も独特だし。
0982名称未設定
03/10/27 03:40ID:Or/F+lzf元の質問者じゃないんですけど、やってみて上手く行かない場合があったので。
新板
旧板
ロビー<最後に改行がない場合はどうしたらいいんでしょう?
0983975
03/10/27 04:05ID: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 & "@"
を追加したらいけました。
自分でもいろいろと調べてみたのですが、すぐすぐ理解できるようなもの
ではないですね。
でももすこし頑張ってみます。
皆さん今日はどうもありがとうございました。
0984名称未設定
03/10/27 04:49ID:NZGG9LFk>>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
こんな感じで文字の最後が改行かどうかわかるので
うまい具合に組み込んで下さい
0985982
03/10/27 04:54ID:Or/F+lzf>set the clipboard to the clipboard & "@"
> を追加したらいけました。
えと、それだと今度は改行がある時上手く行かないわけで…
クリップボードに取り込む時に選択範囲に注意すればいいだけなんですけどね。
0986982
03/10/27 05:00ID:Or/F+lzfありがとうございます。
やはり、改行をチェックするしか無さそうですね。
text item に直接追加出来ないかとも思ったのですが…
0987名称未設定
03/10/28 02:09ID:XDHdRIe9げっちゅ
レス数が950を超えています。1000を超えると書き込みができなくなります。