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

このエントリーをはてなブックマークに追加
11
【前スレ】
おもろい、めずらしいアップルスクリプト発表会 4
http://pc.2ch.net/test/read.cgi/mac/1026844857/l50
おもろい、めずらしいアップルスクリプト発表会
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のスクリプトに関してはこちら
「AppleScript,Perl,Shell」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1055091471/l50

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

【入門サイト】
AppleScript入門
ttp://www.apple.co.jp/applescript/begin/index.html
AppleScriptTutor(掌田津耶乃氏)
ttp://www.netjoy.ne.jp/~tuya/AppleScriptTutor/
AppleScript Lab(狩野正嗣氏)
ttp://www.drycarbon.com/applescript/
AppleScript Beginner's(JinJin氏)
http://homepage.mac.com/jinjin/applescript/
2名称未設定:03/10/29 04:05 ID:poGphYMe
訂正。
3スレ目はこちら
http://pc.2ch.net/mac/kako/971/971295440.html
3名称未設定:03/10/29 04:06 ID:poGphYMe
>>俺
乙。
4名称未設定:03/10/29 04:08 ID:Le8Lbcg7
>>1-3
5名称未設定:03/10/29 11:49 ID:VPUjhqSj

前スレ、早くも落ちてしまいますた。
6名称未設定:03/10/29 16:27 ID:ksJyDnW1
前スレ、何レスまで行ったの?
7名称未設定:03/10/29 21:25 ID:x8Lfg8ud
次スレ用にとっておく?
8名称未設定:03/10/30 18:50 ID:k74TLggK
http://kfn.ksp.or.jp/~gauche/MacTweaks/Hiragino/

こちらに載っている

補足情報(2001/07/03)
 ATMで「画面上でフォントの縁をスムージング」を指定するのはアンチエイリアス機能を使うためですが、256色モードではこ
の機能が効果を発揮しません。フルカラーでお使いください。また、アピアランスで「Finder 表
示用フォント」を変更しても再起動するとデフォルトの[Osaka]に戻ってしまうことを確認しました。Finder 表示用フォントまで
変更したい方は、起動のたびに指定するかAppleScriptを書いて自動化する必要があります。

これに載ってるフォントを切り替えるスクリプト教えてください〜
9名称未設定:03/10/30 22:13 ID:A/dW7GY3
アピアランスコンパネの用語説明を見るといいよ
10名称未設定:03/10/31 09:57 ID:bWcBwzfT
>>1

>>6
987くらいかな
118:03/10/31 16:52 ID:IJy4rfCH
tell application "アピアランス"
set views font to "ヒラギノ丸ゴ Pro W4"
set views font size to 12
end tell

自分でここまでは発見出来たのですが、実行するとアピアランスコンパネが開いてしまいます。
アピアランスコンパネを開かないで変更するにはどうしたらよいのでしょう???
12名称未設定:03/10/31 16:56 ID:gAJtODe8
閉じれば?
138:03/10/31 17:03 ID:IJy4rfCH
>>12
アピアランスコンパネの画面がでないようにしたいんです.

tell application "アピアランス"
set views font to "ヒラギノ丸ゴ Pro W4"
set views font size to 12
quit
end tell

ってしたら閉じるんですけど、コンパネの画面が前面に来てしまうんです。
出ないようには出来ないのでしょうか??
14名称未設定:03/11/07 02:27 ID:BA/EK9Ls
保守
15名称未設定:03/11/08 14:56 ID:Q0UkXung
MOをイジェクトさせるスクリプトを書いてファンクションに割り当てたんだけど
Finderがアクティブになっちゃうのね。
んで、たとえばイラレ使っててMOを取り出した後に、イラレをアクティブに戻す
ってのはどうやればいいですかね?
16名称未設定:03/11/08 16:29 ID:GWab+I4n
>>15
Finderの用語辞書のProcessにある、frontmostを使えば出来るよ。
17名称未設定:03/11/08 19:38 ID:tuIppE8x
OSA Menuから使うようにすれば?
18名称未設定:03/11/14 23:47 ID:dptsBLX8
safariからURLドラッグすると、pdf作成してくれるようなスクリプトありますか?
メニューでもいいけど。
19名称未設定:03/11/15 00:34 ID:ZMQ9BJj9
>>18
コマンド+P
20名称未設定:03/11/15 08:38 ID:nqhcQ6el
>>19
スクリプトかメニューでって言ってるでしょ!!

>>18
メニュー→プリント
21名称未設定:03/11/17 11:50 ID:T1hRDMws
pdfを作成そのものをASにしろというのは、まずむりかと。
そんで、探し物なら他でどうぞ。
22名称未設定:03/11/18 01:07 ID:Y/Tpel1D
>>18
ぺn
23名称未設定:03/11/20 13:58 ID:PMWDp00v
選択された文字列を取ってくるのはSystem Eventsを使えばいいんでしょうか?
具体的にはSafariで選択した文字列を取ってきてURLに加工したいんですが。
24名称未設定:03/11/22 00:51 ID:OUmtzoIY
>>23
keystrokeでコマンド+Cをポストしてクリップボードから文字列とりだせばよいんでないか?
Quickeysと組み合わせた方が簡単だけど。
25名称未設定:03/11/23 05:50 ID:MVXaa5es
>>23
以前からそれやってます
OS9にiCabでCMScript使って、、だけど
コンテクストメニューから出来ると便利です
Safariでもittecみたいなの使って出来ないかな
26名称未設定:03/11/23 14:19 ID:Yqo8QCc5
CMScriptって便利なのにほとんど普及しなかったね。
iCab+CMScriptは漏れも使ってまつ。
27名称未設定:03/11/23 17:04 ID:Lw3zqp/z
>>25
コンテクストメニューでいいなら
OnMyCommandCM
http://free.abracode.com/cmworkshop/on_my_command.html
ってので選択した文字をゲットできますが
AppleScriptだけでは無理なので結構めんどくさいですね。
日本語が絡むとさらにめんどくさくなるけど
一回テンプレートになる物を作ればあとは楽になるかな。
わたしはPerlで書いてます。
・選択文字をgooの和英、英和辞書で検索する
・選択文字をGoogleで検索する
・選択文字の中からURLっぽい部分を探して開く
ってのが今は登録されてます。あんまり使ってないけどね
28名称未設定:03/11/25 00:29 ID:aUEej+l+
CMScript、私も使ってますよ。特にFinderで。
必要なメニューだけが出てくるのがいいですね。
FinderでOSAメニュー開くとズラッと並んじゃうようになったんで、
OSAメニューの方はほとんど使わなくなりました。
29名称未設定:03/11/25 02:07 ID:k1OBoONd
特にFinderで、っていうよりFinder以外ではいまひとつ使えないのが欠点だからな。

対象項目によって出現するしないを制御できるのが便利だよね。
30名称未設定:03/11/28 13:16 ID:jSQA3gr7
5になってから伸びないね
31名称未設定:03/11/29 01:15 ID:pDrLkXiZ
なんかさびしいんで外出ネタをひとつ
以前、別スレで発表したWindows Media 連続再生メタファイルを作るスクリプト。
パンサで使えますかねえ?

on open file_list
tell application "Finder"
set file_list to (sort file_list by name) as list
set current_folder to container of item 1 of file_list
set wvx_text to ""
repeat with wm_file in file_list
set wvx_text to wvx_text & "<entry><ref href=\"./" & name of wm_file & "\"/></entry>" & return
end repeat
set wvx_text to "<asx version=\"3.0\">" & return & wvx_text & "</asx>"
set wvx_file to (make file with properties {creator type:"Ms01"} at current_folder) as alias
try
open for access wvx_file with write permission
write wvx_text to wvx_file
close access wvx_file
on error
close access wvx_file
end try
end tell
end open
32名称未設定:03/11/29 01:34 ID:pDrLkXiZ
ついでに「abc1.wmv」みたいなファイル名を「abc01.wmv」みたいに書き換えるスクリプト。

on open file_list
tell application "Finder"
set suf_fix to text returned of (display dialog "拡張子" default answer "")
set old_delim to AppleScript's text item delimiters
repeat with cur_file in file_list
set file_name to name of cur_file
set AppleScript's text item delimiters to suf_fix
set file_name to text item 1 of file_name
set AppleScript's text item delimiters to old_delim
if (character -1 of file_name) is in {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} then
if (count file_name) = 1 then
set name of cur_file to "0" & character -1 of file_name & suf_fix
else if (character -2 of file_name) is not in {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} then
set name of cur_file to plain text 1 thru -2 of file_name & "0" & character -1 of file_name & suf_fix
end if
end if
end repeat
end tell
end open
33名称未設定:03/11/29 01:51 ID:pDrLkXiZ
メタファイル関連のスクリプトをもうひとつ
Windows Mediaの特定の箇所だけをリピート再生


on open file_list
tell application "Finder"
set wm_file to item 1 of file_list
set current_folder to container of wm_file
set start_time to (text returned of (display dialog "開始秒" default answer "0")) as integer
set start_time to "<starttime value=\"0:" & ((start_time div 60) as string) & ":" & ((start_time mod 60) as string) & "\"/>" & return
set duration_value to (text returned of (display dialog "再生秒数" default answer "30")) as integer
set duration_value to "<duration value=\"0:" & ((duration_value div 60) as string) & ":" & ((duration_value mod 60) as string) & "\"/>" & return
set repeat_count to (text returned of (display dialog "再生回数" default answer "3")) as integer
set repeat_count to "<repeat count=\"" & (repeat_count as string) & "\">" & return
set wvx_text to "<entry>" & return & start_time & duration_value & "<ref href=\"./" & name of wm_file & "\"/>" & return & "</entry>" & return
set wvx_text to "<asx version=\"3.0\">" & return & repeat_count & wvx_text & "</repeat>" & return & "</asx>"
set wvx_file to (make file with properties {creator type:"Ms01"} at current_folder) as alias
try
open for access wvx_file with write permission
write wvx_text to wvx_file
close access wvx_file
on error
close access wvx_file
end try
end tell
end open
34名称未設定:03/11/30 12:47 ID:gvIvCxOP
そういえば、ここって「発表」するスレだったのね。
35名称未設定:03/12/07 08:32 ID:Gm019T9q
いきなり落ちそう、保守
36名称未設定:03/12/13 01:56 ID:yPjIq1fK
捕手
37名称未設定:03/12/14 07:21 ID:lkBo6yEa
質問ですが、
bpmカウンターというのをapple scriptで作る事は可能ですか?

===
bpmカウンターとは、
bpm、beat par minute(1分間にビートを何回刻んだかを表した数字)
を計測する装置で、大体4~8回程度、タップするとbpmを計算して表示してくれる。
3837:03/12/14 07:31 ID:lkBo6yEa
4~8回程度って書きましたが、
2度目のタップからbpmを表示し続けるのもあるし(タップ毎に表示が変わる)
>>37で書いたように、例えば8回タップした後にbpmを表示するのもあります。
39名称未設定:03/12/14 07:48 ID:ZTyrmCaJ
>>37
キータイピングを検知するOSAXを使えばできそう
40名称未設定:03/12/15 11:57 ID:z2UwB5Sk
>>37
iTunes-BPM inspectorは? iTunesで再生しているトラックに限るが。
4137:03/12/16 22:07 ID:9rS7HNe+
>>39
OSAX?
参考書買って来ます。。
>>40
ほとんど、12インチなのと、リッピングもしないんで
今のとこ使えないんだけど、情報ありがとうございます。
42名称未設定:03/12/21 02:22 ID:kkS2ZyF1
ストップウォッチと計算機のほうが早いね・・・
43名称未設定:03/12/26 00:05 ID:GgyQCNfN
ほしゅ
44名称未設定:04/01/01 13:05 ID:EsbC9NKJ
おめでた保守
45名称未設定:04/01/08 09:27 ID:KBAeJUO6
>>42
BPMカウンタの用途を考えるとその方法は手数が多すぎて実用的じゃないね

BPMカウンタ使用時ってのは恐らく曲を再生しながら他の作業もしているはず
例えば、2枚のレコードのテンポ(BPM)を合わせたりとか
だから2回のタップで即座にBPMが表示される様な仕組みでないと使ってられない

>>37
OS XのAppleScriptStudioならApplicationクラスにon keyboard downイベントがあるんだけど
46名称未設定:04/01/09 03:05 ID:LJf6up8F
アップルスクリプトの同期の正確さってどのぐらいなんだろ・・・
まあ厳密さは要求されないけどさ。
47名称未設定:04/01/09 09:52 ID:oXHUApl+
>>37
市販のBPMカウンタ買った方が良いと思うよ
操作性とか携帯性とか考えると
BOSSのDB-12とかマジおすすめ

板違いレススマソ
48名称未設定:04/01/19 00:47 ID:IknwxPKd
ほしゅ

だけでは申し訳ないので、一応
keydownはJonユs CommandsやS穫di's Additions
あとはGetMilliSecなどのOSAX使えば出来ると思いまつ。
しかし、keydownなんぞで苦労するとは…
やはりHyperCardは偉大だなと今更ながらに思う今日この頃。
49名称未設定:04/01/23 22:03 ID:VFBfTDmz
質問なんですけど、特定階層のフォルダに命令を与えるには、どうすればいいでしょうか?
上層のウィンドウさえ開いていれば
set fList to every folder of window 1
repeat with obj in fList
open obj
end repeat
これでいけるんですが、
というか、特定階層だけじゃなく、階層の深さ別に別々の命令を実行させたいのですが。
50名称未設定:04/01/25 03:12 ID:lC2PYkkR
>>49
鳶嶋工房さんとこのAppleScript/Tips/Basic/複数参照に有ったものを
ほとんどそのまま利用して…
tell application "Finder"
activate
set theFolder to choose folder
repeat with fdepth from 1 to 3
if fdepth = 1 then
open theFolder -- 1階層目の処理
else if fdepth = 2 then
-- 2階層目の処理
else if fdepth = 3 then
-- 3階層目の処理
end if
set theFolder to (a reference to (folders of theFolder))
if contents of theFolder = {} then exit repeat
end repeat
end tell
こんな感じでしょうか?
if文はスマートじゃないのでハンドラやスクリプトオブジェクトなどを使って
工夫してみて下さい。
51名称未設定:04/01/25 23:14 ID:uNSIwcAB
>>50
なるほど。ありがとうです。

ご教示いただいたサンプルとは関係ないんですが、
複数のフォルダを開き、その1つ1つ対してウィンドウ操作の命令を与えようとすると、
命令がずれますね。
ウィンドウ位置などを統一しようとすると、避けられない問題でしょうか。
52名称未設定:04/01/26 06:50 ID:JW20HDbz
>>51
命令がズレると言うのが良くわからないので
スクリプト書いてもらえませんか? 
一応、ココ「発表会」だし。

もしかして、window 1とかで操作対象指定してます?
そういう事ならcontainer window of 〜 とかを使って下さい。

open thefolder
repeat with thisfolder in thefolder
set view of (container window of thisfolder) to 2
end repeat

こんな感じで、どですか。
操作するウィンドウが無いとエラーになるので
その可能性が有る場合は操作直前にウィンドウの存在チェックするか
又はエラー構文など用意しておいた方がいいですよ。
53名称未設定:04/01/26 19:58 ID:bhb/aScW
>>52
ズレるというのは、複数ウィンドウの各階層ごとに与える命令が、
複数ウィンドウの連続open動作に、追随しないという意味で書きました。

で、ウィンドウの指定には、
window 1
window of insertion location
の両方で試行錯誤していました。container window of thisfolderは、
set position命令を受けつけないので。

今は、>>50のif下を
open theFolder
set position of window 1 to {361, 78} --階層ごとに数値が変わる
こうしていますが、複数ウィンドウを次々に開ききった後の
一番上のウィンドウだけしか、動かないです。
set position式をrepeatしても同じです。
54名称未設定:04/01/26 20:01 ID:bhb/aScW
最初から、何をやろうとしているのか全部書けばよかったです。
すいませんでした。

特定階層のフォルダに(←>>50で解決)
open命令を与えて開き、
set positionでウィンドウの左上位置を指定する。
(ここまで正常に動けば、close windowを追加)

これをやろうとしています。
55名称未設定:04/01/27 00:09 ID:hQYd7SzG
container window ofを受け付けないというより
theFolder の中身が1つの時はリストにならないので
repeatを受け付けないのだと思います。
あと、目的がそういう事ならIF文より計算かpropertyで指定する方がいいかも。
ということで>>50のif構文を以下の様なスクリプトに置き換えてはどうですか
set X to 60 + (fdepth * 30)
set Y to 40 + (fdepth * 30) --適当に
set folderlist to (open thefolder) as list --強制的にリスト化
repeat with thisfolder in folderlist
set position of (container window of thisfolder) to {X, Y}
end repeat


56名称未設定:04/01/27 07:04 ID:1guJgef9
>>55
なるほど。これは簡潔ですね。

ただ、新しい問題が起きました。
これを実行すると、上層フォルダの仕分けに関わらず、同一階層の全フォルダを
一度に開こうとするので、Finderメモリ割り当て量か、命令結果の待ち時間を
オーバーすることが多くなります。

同時に開くフォルダの数を少なく抑えるために、上層フォルダ別にopen~closeを
完了するか、深めの階層のフォルダをターゲットにしてシーケンスを実行するかで
今夜帰ったら作ってみます。
57名称未設定:04/01/28 00:44 ID:uKDpV+a2
windowが開いて無いとエラーになってしまいます。
これを避けるためにFinderのresultが来るのを待つ必要が有るため
速度が遅いのは最初から覚悟していました。
時間が掛り過ぎる場合はtimeoutを調整して下さい。
操作対象のwindowが確実に開いているなら
ignoring application responses
で実行速度をあげる事も出来るでしょう。

なんでopenしたfolderを位置設定だけしてすぐ閉じるのか良くわからなかったんですが、
朧げながら、あなたのやろうとしている事が分って来た様な気がします。
もしかすると、opening folderなどのフォルダアクションが利用出来るかもしれません。
フォルダアクションはスクリプトで任意のフォルダに付け外し出来ますので…

出来たら、ここにスクリプトを書き込んでみて下さい。
5837:04/02/03 01:55 ID:F+mU8OWZ
>>45,47
bpmカウンタは持ってるんですが、複数あればより正確に測定できるという目的と
ただMacで、やってみたいなって理由です。

あらかじめbpmは測定してフロア用のはだいたい覚えてるし、ジャケにもシールで貼ってるんですが
アンビエントのdjする時はけっこうbpmの管理って大変で。
最初、スパコラで作りたいな。って思ったんですが
もともと他のパッチを修正して使うぐらいしかできないので
0から作るのは無理でした。
時間ができたらオブジェクト指向のプログラムの本でも買ってがんばります。

亀レススミマセン
レスありがとう。
59名称未設定:04/02/08 14:37 ID:NwubDhVf
OS9なんですけど日時設定って実現できませんか?

電池が切れたMacにNTPで自動修正させたいんですが、
1904年の状態だとTCP/IPが動作しないんで、
起動時に最近の適当な日時に設定したいんです。
6059:04/02/08 15:08 ID:NwubDhVf
Akua SweetsっていうOSAXでできました。
ほかにも機能もりだくさんでうれしいかぎりです。
61名称未設定:04/02/08 15:08 ID:sJR8dOR4
>>59
とりあえず、そういうOSAXが無いか探してみる
6259:04/02/08 15:09 ID:NwubDhVf
>>61
レスどうも^^
63名称未設定:04/02/08 15:16 ID:stC4Ysw3
自己IPの取得法を教えてくらさい
10.3
64名称未設定:04/02/08 15:26 ID:sJR8dOR4
>>62
かぶったw

>>63
OSXはこちらの方がよいかと
「AppleScript,Perl,Shell」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1055091471/l10

たぶんターミナルでサクッと出来ると思うよ
65名称未設定:04/02/17 15:12 ID:JY+/mNmS
66名称未設定:04/02/19 15:30 ID:B+hO59+t
ネタがないので面白くも珍しくもないけどいいっすか?

tell application "Finder"
 set tr to (choose from list {"Shut down", "Restart", "Sleep", "Quit", "StartupDisk"} with prompt "Tell Finder to..." default items "Shut down" with empty selection allowed) as text
 if tr = "Shut down" then
  shut down
 else if tr = "Restart" then
  restart
 else if tr = "Sleep" then
  sleep
 else if tr = "Quit" then
  quit
 else if tr = "StartupDisk" then
  open "omaesama:System:Library:PreferencePanes:StartupDisk.prefPane:"
 else
  error number -128
 end if
end tell


俺はF4に割り当てて使ってます。
67名称未設定:04/02/20 06:46 ID:8CcmdAge
control + EJECTで良いじゃん。
68名称未設定:04/02/20 07:12 ID:tLtYgDE2
6966:04/02/20 16:22 ID:g3gGCAo6
>>67
終了系のキーコンビネーションは知っているけど使いたくないので。
「ボタン一つで」かつ「マウス使わず」終了系のメニューを実行させたいって
のがもともとのコンセプトです。
>>68
というわけでこのソフト良さげですね。対応するメニューのイニシャル打てば
選択できるっぽいし。しばらく使って様子を見た上で乗り換えます。
ありがとう。
70名称未設定:04/02/27 00:09 ID:gZ2P+Hvr
保守
71名称未設定:04/03/06 12:43 ID:KY9cA+nV
保守
72名称未設定:04/03/11 22:38 ID:58GlCs9q
こらー
なんでこんなに寂れてる!!!
73名称未設定:04/03/19 23:45 ID:Zsj2gS20
あるスクリプトを書いて、スクリプトエディタから「実行」すると、正常に実行される。
しかしそれをアプリケーション形式で保存してダブルクリックで実行すると、
途中で実行が終わって不完全なまま終了してしまう。

何が原因なんだろう・・・? バグ? OSX10.3.3です。
74名称未設定:04/03/20 01:45 ID:FafNnvhk
とにかくあげる
7573:04/03/21 14:08 ID:Jd4rCgHr
日本語関連のバグが原因だったようで、
OSXスクリプトスレにあった下記の方法を試したら正常に動作しますた。

FAQ: アプリケーションに保存すると日本語が使えません
(1) 保存時の「フォーマット」を「アプリケーションバンドル」に。
(2) Finderで「Japanese.lproj」という名前の空フォルダを作っておく。
(3) Finderで(1)で保存したアプリを選択し、
  情報を見る=>言語=>追加で、(2)のJapanese.lprojを選ぶ。
76名称未設定:04/03/24 23:58 ID:1eVmXpxf
DVDプレーヤで指定した時間へ飛んで再生するスクリプト。
標準でついてる「Go To Time...」だと、時間を入力する際に、1時間14分35秒なら「01:14:35」
のように入力しなければならず面倒(「11435」と入力すると「11435秒」と解釈される)。
このスクリプトなら「11435」と入力すれば1時間14分35秒に、「845」と入力すれば8分45秒に
飛べるのでコロンを入力する手間が省けます。
「スクリプト」形式で保存して、「ホーム/ライブラリ/Application Support/DVD Player Scripts」
に入れてください。

tell application "DVD Player"
set et to elapsed time
set h to round (et / 3600) rounding down
set et to et - 3600 * h
set m to round (et / 60) rounding down
set s to et - 60 * m
set t to text returned of (display dialog "Go to time" default answer (h & m & s as string))
if t as number < 10000 then set t to ("0" & t as string)
if t as number < 1000 then set t to ("0" & t as string)
set {h, m, s} to {(character 1 of t), (character 2 of t & character 3 of t), (character 4 of t & character 5 of t)}
if (h as number) > 0 then set h to (3600 * h)
if (m as number) > 0 then set m to (60 * m)
set elapsed time to h + m + (s as number)
end tell
77名称未設定:04/04/03 13:49 ID:dwufcYEl
ほしゅ
78名称未設定:04/04/06 12:09 ID:ilrATQYG
関連スクリプトのまとめが見れません。
79名称未設定:04/04/06 12:12 ID:ilrATQYG
80名称未設定:04/04/07 20:39 ID:0Z7zTZDb
URLの一部を抽出して、他のURLにくっつけたいのですが。
81名称未設定:04/04/07 21:14 ID:KsLP6+bk
(゚Д゚)ハァ?
82名称未設定:04/04/07 21:31 ID:0Z7zTZDb
例えば、このスレの1067367790 って部分だけ抜き出して、
他のある特定のURLの後ろにくっつけてそのページを表示したいんですけど。
83名称未設定:04/04/07 22:12 ID:Ck9yXmv5
質問はスレ違いじゃないかと思うんだが?
84名称未設定:04/04/07 23:28 ID:gxWOtCUh
>>82
例えばこんな感じかな

tell application "Safari"
set hokanourl to "http://nantara/kantara/"
set motonourl to URL of document 1
--仮に"http://pc3.2ch.net/test/read.cgi/mac/1067367790/l50"とかなら
set AppleScript's text item delimiters to "/"
set nukidasi to text item -2 of motonourl
open location hokanourl & nukidasi
end tell
85名称未設定:04/04/07 23:59 ID:4sMS9gyn
ありがとうございます。
set AppleScript's text item delimiters to "/"
set nukidasi to text item -2 of motonourl
この部分を
.netより前の一単語を抜き出すとか、
もっと具体的に指定することは可能ですか?
86名称未設定:04/04/08 00:02 ID:OkyIjWvD
テメエで書く気はこれっぽちもないわけですかそうですか
87名称未設定:04/04/08 00:24 ID:IKoY4Fxp
>>85
set AppleScript's text item delimiters to "/"
set nukidasi to (text item 3 of motonourl)
set AppleScript's text item delimiters to "."
set nukidasi to (text item 2 of nukidasi)

こんな感じの考え方で
88名称未設定:04/04/08 05:26 ID:o3sv/8Qy
今更だけど、発表会というより講習会だねぇこりゃ
89名称未設定:04/04/08 11:52 ID:IUguQvfL
まあいいんじゃないの。
人の書いたスクリプトをもとに自分なりにああしたいこうしたいと思って学ぶものだし。
90名称未設定:04/04/08 12:52 ID:nH/2skOJ
このスレって伝統的に半々ってところじゃない?
91名称未設定:04/04/08 21:16 ID:GPnFjvWJ
>>87
わかりやすいサンプルありがとうございます。
一応思った通りのものは出来たのですが、
コンパイルしてCMScriptで使おうとしても反応しないのですが、
CMScriptで使う場合に変えなければならない部分があるんでしょうか?
92名称未設定:04/04/08 23:14 ID:2AZZr05f
徹底して教えてくんだな。
もう放置ってことで。
93名称未設定:04/04/08 23:58 ID:ShgSub30
94名称未設定:04/04/09 12:39 ID:xDraMp8X
何となく厚顔無恥、という単語が頭に浮かんだ。
95名称未設定:04/04/09 22:51 ID:+1StqS8h
聞かれても無視してちゃスレが盛り上がらないじゃん。
つーか、91が一連のやりとりで作ったスクリプトを発表してみれば、
丸く収まる。
96名称未設定:04/04/09 23:11 ID:hpBeVwpn
さぁ、、、、、、、発表シル!
97名称未設定:04/04/10 00:01 ID:pq/Yb/8X
そんな発表なんて厚顔無恥な真似は出来ないっす。
しかしながらアドバイスを下さった諸先輩方には感謝の念を禁じ得ません。
煽って下さった方々の新たなスクリプトの発表を期待しつつ
私はこの辺で失礼したいと思います。では
98名称未設定:04/04/13 00:42 ID:qxPmDXY3
>>97
発表しなければ逆に「単なる教えて君」で厚顔無恥だと思うよ。
99名称未設定:04/04/16 13:08 ID:PXijATwO
>私はこの辺で失礼したいと思います。では
これって、食い逃げじゃないか。

ネットというものはギブ&テイクでなりたってんだぞっていう
10年も前の話を蒸し返したくなった。
100名称未設定:04/04/16 13:29 ID:4UZlskxQ
まぁ餅搗け。こういうタイプはヒット&アウェイだから多分もうこのスレにはいない。
文句を言っても無意味っしょ。マターリいきましょ。
#彼が旋毛をまげたのも俺が「厚顔無恥」なんて言葉を持ち出したせいだろうし。
ちょい反省。
101名称未設定:04/04/16 18:25 ID:4ET29Dtj
102名称未設定:04/04/19 12:34 ID:Q0aIRuCr
ヤフオク自動ログインスクリプトを創って下さい。
103名称未設定:04/04/19 13:22 ID:zzIuLqbI
作成してくれた人にあなたはどういう対価を支払えますか?
104名称未設定:04/04/19 13:49 ID:Q0aIRuCr
当スレッドの繁栄を保証いたします。
105名称未設定:04/04/19 17:11 ID:o/T8j0k6
103のレスがないので本日のマネーの虎はここまでです。
106名称未設定:04/04/19 17:48 ID:iHugRxj+
safariのブックマークを名前順にソートするスクリプトなんてありませんかね?・・・
107名称未設定:04/04/19 23:10 ID:KDo8/S8v
>>104
具体性が不足しています。その「保証」を実現するための明確かつ可能なプランを
提示してください。
108106:04/04/20 14:42 ID:cl+YINft
ないか・・・OTZ
109名称未設定:04/04/21 04:19 ID:5i36Zz3m
>>102
アップルスクリプトじゃなくて、ブックマークレットと呼ばれてるものらしいけど、
俺は↓のようなのをお気に入りに入れてるんだけど、

if (window.location == 'http://my.yahoo.co.jp/'){
document.fm.login.value='ここにID'; document.fm.passwd.value='ここにPASSWORD'; document.fm.submit(); void(0)
}

もちょっと汎用性があるように誰か改良して欲しい。
110名称未設定:04/04/21 15:21 ID:mI2L8YeC
>>109
無理です。諦めて下さい。
111名称未設定:04/04/21 15:43 ID:MTYa/os+
>>109
かういふ生パスワードをブックマークファイルに保存するやうなマネは
よゐこのみなさんはしない方がよいでせう。
112名称未設定:04/04/21 18:05 ID:UGUyi4lY
113名称未設定:04/04/24 16:43 ID:8KPeuyyk
エキサイトの日英翻訳スクリプトを使かっているのですが
翻訳結果を新たに開いたウインドウに表示するのではなく
同じウインドウの異なるタブに表示するにはどこを変えれば
宜しいのでしょうか?
114名称未設定:04/04/24 17:09 ID:2GKHy+dd
>>113
browser側で設定する。
115名称未設定:04/04/24 21:13 ID:eD0CU/V2
>>113
まず、使ってるブラウザを教えなさい。
116名称未設定:04/04/25 00:23 ID:9Yq/c+u7
>>114
それは既に設定してあって、タブで開かれるスクリプトもあるのです。
>>115
iCabです。
117名称未設定:04/04/25 00:46 ID:V61mzlbT
>>116
OpenURL "www.apple.com" toWindow -2
で新規タブで開くよ。
118名称未設定:04/04/25 00:49 ID:NzKP49F8
>>116
ここにあるjavascriptをホットリストに入れてじゃ駄目?
俺これ重宝してるよ

ttp://freezone.kakiko.com/bookmarklets/
119名称未設定:04/04/26 12:02 ID:nuDH+nw0
>>102
javascript:
document.forms[0].passwd.value='パスワード';void(0);
setTimeout('document.forms[0].Login.click() ',1000);void(0);

bookmarkletだけど。
120名称未設定:04/05/11 19:56 ID:Zrr/Ybg/
「AppleScript,Perl,Shell」OS Xでスクリプトスレって鯖移転で消えた?
121名称未設定:04/05/11 20:43 ID:L85+hApk
>>120
消えたね。たぶん。
もしかして漏れはマカー用だから見えないのか?w
122120:04/05/11 21:23 ID:Zrr/Ybg/
>>121
俺もマカー用w
pc3鯖には978まで残ってるね。手許のログは983まで。pc5鯖じゃもう見られない。
123名称未設定:04/05/12 15:22 ID:xsrqZv8M
OS X用の新スレは立たないの?
ここと併合するの?
124名称未設定:04/05/12 15:54 ID:MJ8sMq4E
アップルスクリプトだけ併合して、その他は別に立てるのがいいんじゃない?
アップルスクリプトが2つあるのはややこしいよ。
このスレもともとクラシック専用じゃないし、もう「OSXで」って時代じゃないでしょ。
OS9の場合はそのことを書くようにすれば?
125名称未設定:04/05/12 17:14 ID:RJoyG+7b
AppleScriptとPerl、Shellの組み合わせって微妙に違和感あったから
AppleScript
オンリーのスレが出来るのは賛成なんだけど、そうなると「おもろい、めずらしい」
という括りが邪魔な気が。AppleScriptがカタカナ表記なのも正直ちょっと……。
最近このスレも停滞気味だし、いっそAppleScript総合スレってのができると嬉しい。
#「AppleScript,Perl,Shell」OS Xでスクリプトスレ自体、結構重宝してたんだけどね。
126名称未設定:04/05/12 18:33 ID:/6tuWuza
スレタイどおりの機能はしていないが、これをやめると
作って作ってクレクレスレに成り下がるので。
127名称未設定:04/05/12 18:54 ID:Yt9Adumd
スレタイに違和感はあるけど、伝統ってことで。。。
それに、他にAppleScriptスレ作らなければ嫌でも総合スレになるのでは?
128新しく作るんならこんな感じ?:04/05/12 19:06 ID:p5lOPGy5
[製作依頼]AppleScript-総合-アップルスクリプト[すんなゴラァ]


AppleScriptを語るスレです。
AppleScriptの発表、質問なんかあったらどうぞ。
製作依頼は原則的に受けません。自分で頭ひねろう。

関連スレはこちら
・おもろい、めずらしいアップルスクリプト発表会4
http://pc.2ch.net/test/read.cgi/mac/1026844857/l50

前スレはこちら
・「ご主人様ご命令を!」OSXでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50
・「AppleScript,Perl,Shell」OSXでスクリプトスレ
http://pc5.2ch.net/test/read.cgi/mac/1055091471/l50

参考リンクは>>2-5あたり
129名称未設定:04/05/12 19:08 ID:p5lOPGy5
★AppleScirpt参考リンク★

・AppleScriptリファレンス--古いけどAppleScripterの聖典
ttp://store.sbpnet.jp/isbn/1011/preface.html

・AppleScriptタコ入門
ttp://www.macos.com/octopus/

・ビブロスのプログラム
ttp://www.dd.iij4u.or.jp/~banban/program/program.html

・ちゃらんぽらん
ttp://www1.odn.ne.jp/~cge02410/index.html

・鳶嶋工房(Tobishima-Factory)
ttp://homepage1.nifty.com/ton_b/
130名称未設定:04/05/12 19:09 ID:p5lOPGy5
★その他★
・mi スクリプト書きに便利なエディタ
AppleScript、Perl、C言語、その他色々の言語に便利な機能が付いたエディタ。
ttp://www.asahi-net.or.jp/~gf6d-kmym/

・Scriptmenu
AppleScript、シェルスクリプト、Perlスクリプトをメニューバーから実行できる。
ttp://www.apple.com/applescript/macosx/script_menu/

・SystemOSAX
シェルコマンドをAppleScirptから実行できるスクリプティング機能拡張。
めちゃくちゃ便利。SAMPLEも勉強になる。
ttp://www.bekkoame.ne.jp/~iimori/sw/systemOSAX.html
131名称未設定:04/05/12 19:41 ID:RJoyG+7b
>>128-130
お〜、乙。個人的には【クレクレ】〜【厳禁!】の方がいいかと思ったり、制作依頼は「原則禁止」じゃなく「絶対禁止」にした方が気持ちよく常駐できるかと思ったり。

ところでいつの間にか「AppleScript,Perl,Shell」OSXでスクリプトスレ復活してるね。
新スレ立てる必然性が弱くなった気もするけれど、総合スレがあればやはりありがたい気がするので、総合スレ新規立ち上げに一票。
私見だが、将来的には
・AppleScript総合スレ
・作品発表系の本スレ
・OSXで〜&「AppleScript,Perl,Shell」OSXで〜スレを統合してスクリプト全般スレ
・Xcode&DeveloperTools等、開発環境総合スレ
なんてラインナップになると嬉しいかも。
132名称未設定:04/05/12 20:22 ID:8wRb9hTH
作るんなら、スクリプト総合スレが先だろ。
AppleScript総合スレが「OSXでスクリプトスレ」の次スレってのも変だし。
133名称未設定:04/05/12 20:37 ID:6KRlDQAn
他板から移ってきました。くだらない質問ですいません!
AppleScriptで、Classicの起動有無チェックや、停止、起動は制御できるのでしょうか?
Classic内フォントフォルダのフォントを出し入れするScriptを作っているのですが、
出し入れの前にClassicを停止し、出し入れが終わったらClassicを起動させるようにしたいのです。
OSX10.3.3です。どうかみなさん、よろしくです。
134名称未設定:04/05/13 01:48 ID:28c+VHmE
>>133

tell application "System Events"
processes
end tell

"Classic Support" の有無でclassicが起動しているかどうかを調べられる。
name of processes でやったほうが処理は楽だけど。
classic起動アプリは"Classic Startup" という。
135名称未設定:04/05/13 03:45 ID:86L1jYdM
最近OS Xに乗り換えはじめたばかりです。

OS 9で使っていたスクリプトをOS Xに持ち込んだら、
 empty (trash of disk "ABC")
ここで「"trash of disk "ABC""が取得できません」とエラーがおきるので、
 empty trash
にしたらいけました。
OS 9での指定はおかしかったのかな…?

あと、
 duplicate selection to disk "Disk123" with replacing
ってやったら、OS 9時代と違ってコピーされたファイルの修正日が変わっちゃうんだね。
バックアップだから修正日も同じがよかったのに…( ´・ω・) ショボーン
136名称未設定:04/05/13 13:54 ID:4SoX1ZPm
>>134
どうもありがとうございました。
すみません、もっと頭を使うようにします。
137名称未設定:04/05/16 11:05 ID:YXVzPiE3
すっげぇ久々にアップルスクリプト触る必要が出たので
昔使っていたリファレンス本探したらみつからない…………
138名称未設定:04/05/21 06:23 ID:FxyGEABa
なんだかよくわかんないけど、
逆ギレののたん置いていきますね
   ∋oノハヽo∈
    (`?D´ ) <なんに!
   O^ソ⌒とヽ
   (_(_ノ、_ソ
139名称未設定:04/05/21 15:31 ID:istz2+O/
モーオタイラネ
140名称未設定:04/05/24 02:17 ID:p3nMqvQ/
教えてください。
OSX 10.2.8で、System Events 経由で他のアプリケーションの特定の
menu item の enabled 属性を調べたいのですが、うまくいきません。

tell application "System Events"
 tell process "Jedit4"
    tell menu "編集" of menu bar 1
      get enabled of menu item 1
    end tell
  end tell
end tell

みたいな感じ。position とかsizeとかどうでもいい属性はきちんと取り出せる
のに、enabled属性だけはgetすると、

"System Events でエラーが起きました:
NSCannotCreateScriptCommandError"

になって、成功しません。どうすればいいんでしょうか?
141名称未設定:04/05/25 03:15 ID:jTw5tg6X
tell application "System Events"
tell process "Jedit4"
tell menu "編集" of menu bar 1
get every menu item whose enabled is true
end tell
end tell
end tell
142名称未設定:04/05/25 16:48 ID:IPgUFLHd
すいません、質問です。
QuarkXPress3.3Jを、OSXのClassic環境で動作させているのですが、
AppleScriptで、例えばPictureBoxのプロパティを得ると、
bounds:《data FRMS0038B1630038B16300C66CDA00C66CDA》
みたいになってしまいます。
通常ならbounds値は、
bounds:{100mm,100mm,100mm,100mm}
のようなリストで帰ってくるはずなのですが……。
これはOSXのClassic環境では仕方のないことなのでしょうか?
それとも、設定が必要とか……。
143140:04/05/25 19:49 ID:tXI8j9IS
>>141
どうもです。でもそれもやはり同じエラーが出て蹴られるんだな。

get every menu item whose name is "カット"

なら問題なく通るのに、enabled属性の時だけ蹴られるんですわ。なんでenabledだけ、
いつものような書式が通用しないのか理由がわからん。
これってひょっとして私のところだけ? 他の人のところでは、enabledも他の属性
同様に扱えてるんですか? 私のところでは対象アプリケーションはJedit4だけでなく
とも、なんであっても同じように蹴られるんですが。
====================
で、なんとか自己解決しました。

get (properties of menu item "カット") as list
copy item 10 of the result to x

みたいに、属性レコードを一度リストに変換してitemを取り出せばできました。
でも、なんでこんな回りくどいことしなければならないのだろう?
144名称未設定:04/05/25 22:20 ID:jTw5tg6X
うちは10.3.3なので、>>141で無問題。
145140:04/05/25 22:31 ID:At2kt0Mx
>>144
そうですか。じゃあ10.2のSystem Eventsの不具合かもしれませんね。
146名称未設定:04/05/28 23:05 ID:6JAp8G/3
PowerBook G3のOS X 10.3.3で、LCDの明度を変更する(暗くする)スクリプトを考え中です。
とりあえず、

tell application "System Preferences"
activate
end tell

tell application "System Events"
tell process "System Preferences"
click menu item "ディスプレイ" of menu "表示" of menu bar 1
delay 10
click radio button "ディスプレイ" of tab group 1 of window "カラー LCD"
delay 1
set value of slider 1 of group 2 of tab group 1 of window "カラー LCD" to 0.1
end tell
end tell

っていうのは作ったんですけど、実行速度が遅くって...

tell application "System Events"
key code hogehoge
end tell

っていうスクリプトで、明度↓キーを押せないかと考えたんですが、キーコードが分からず。
107(F14?)を指定してやるとそれらしい表示は出るんですが、明度が下がらない。
困ったんでどなたかアドバイスください。
147名称未設定:04/06/05 22:29 ID:iCy5XZqT
148名称未設定:04/06/12 04:59 ID:P6SALBfl

149名称未設定:04/06/19 16:23 ID:RSTkpEgg
なぁ、誰かそろそろ「スクリプト総合スレ」立ててくれよん。(´・ω・`)
150名称未設定:04/06/19 22:47 ID:cOPzDllr
建前だけでも発表会にしておかないと作ってクレクレスレに成り下がります。
151名称未設定:04/06/26 03:38 ID:zeKayWJw
safariで使えるscript一覧がみたい!ってときどこを探せばよいですか?
152名称未設定:04/06/26 03:50 ID:BbguurDB
>>151
用語説明なら
スクリプトエディタのメニュー「ウインドウ」の「ライブラリ」で表示できる
ウインドウにSafariがあるならそれをダブルクリック。無ければ追加する。
もしくはSafariをスクリプトエディタにドロップ。
153名称未設定:04/06/26 04:21 ID:oDTtpw2D
>>151
スクリプトエディタで shift+command+L
154名称未設定:04/06/26 11:05 ID:zeKayWJw
>>150,151 thx ハゲミマス。
155名称未設定:04/06/26 22:37 ID:2uyxcqOt
AppleScriptでHomeにある

Desktop
Library
Music
Public
Documents
Movies
Pictures
Sites

あたりのフォルダを参照するのって"Macintosh HD:Users:〜ってずらずら書くしかないの?
156名称未設定:04/06/26 22:58 ID:ah2QLxOg
/Library/Scripts/Navigation Scripts/Open Special Folder.scpt
を見る。
157名称未設定:04/07/05 22:38 ID:ZVhnPpmI
(´・ω・`)
158名称未設定:04/07/14 00:21 ID:jHw/7rkj
/Library/Scripts/(´・ω・`)/Navigation Scripts/
159名称未設定:04/07/14 15:05 ID:gjBqyPmm
yahooのログインスクリプトSafariで使えないぞ
どうにかしてくろよ
160名称未設定:04/07/16 13:16 ID:0SBEIijE
良スレ 保守age
161名称未設定:04/07/23 02:47 ID:G/iPxOOn
昔、Dialogue Editorをイジってヘンな警告メッセージを出す
AppleScript、ってなかったでしたっけ?

「あなたの脳ミソに重要な欠陥が発見されました。修復はできません。」みたいな。
162名称未設定:04/07/25 17:33 ID:NnwVfnmZ
display dialog "「あなたの脳ミソに重要な欠陥が発見されました。修復はできません。」"
163名称未設定:04/07/25 23:26 ID:G9SMYOeh
ここは[発表のスレですが、他に適当なスレが見当たらないので
ここに書かせてもらいます。10.3.4を使ってます。

ライブの音源(録音、配布はすべて許可されていました)
をたくさんダウンロードしたのですが、曲名が日付になっています。
01-2004-06-21.wav
02-2004-06-21.wav
...

そして、正しい曲名がはいったテキストファイルもいっしょに
ダウンロードしました。iTunes(v4.6)で手作業で曲名を
変更していますが、これをアップルスクリプトをつかって
テキストファイルから曲名を読み込ませて一気に変更
するにはどうしたらいいでしょうか?
テキストファイルのなかみはこんな感じです。
01 song1.wav
02 song2.wav
...
164名称未設定:04/07/25 23:27 ID:cb5ukQFx
>>162
不可能

手作業でやれ
165名称未設定:04/07/25 23:38 ID:zNojXqcY
awk
166名称未設定:04/07/25 23:47 ID:Ln2StDlC
順番はその通りなの?
01-2004-06-21.wav = 01 song1.wav
02-2004-06-21.wav = 02 song2.wav
という事?
て言うか、共通する部分が有れば良いけど。
だったら可能だよ。

やり方としてはまず、元ファイル名をリストに取って、
変更したいファイルネームの入ったファイルを開いて、リストに取って。
んで、共通する部分でsortして、
リピートして名前変えて行けば良いんじゃん?

漏れだったらperlだな。
167名称未設定:04/07/25 23:49 ID:cb5ukQFx
>>166
彼はAS何も知らないと思う。
レスしたなら最後まで面倒見てあげてね。
168名称未設定:04/07/25 23:54 ID:Ln2StDlC
>>167
なんで?
169名称未設定:04/07/26 00:05 ID:a+E/jU6y
>>163
どうしたらいいでしょうか?じゃなくて作りなさいよ。
易しい記述でできるから。実際俺はよく使ってる。

必要なのはiTunesのリストの取得とファイルのオープン/クローズだけ。
170名称未設定:04/07/26 00:21 ID:qkSDcJBR
ん〜、30分考えてみたが、
オカシイナ。
>>164
>不可能
>手作業でやれ

これは嘘、出来るもの。

>>167
>彼はAS何も知らないと思う。
>レスしたなら最後まで面倒見てあげてね。

何故163がASを何も知らないと言うのか、意味が分からん。
>>163
>一気に変更するにはどうしたらいいでしょうか?
こう言っている。
だから考え方を言っただけだし、これ以外の方法も何通りでもある。
漏れなら、perlでsortしながらglob()して、ファイルをopenして、…

レスしたから全部面倒を見る?
オマイそうしているのか?
だとしたら、良い香具師だな。
嘘つきではあるが。
171163:04/07/26 01:07 ID:CMN4F3GW
みなさん、レスありがとうございます。
>>166
>順番はその通りなの?
>01-2004-06-21.wav = 01 song1.wav
>02-2004-06-21.wav = 02 song2.wav
>という事?

そういうことです。
ちなみにASのことはほとんど知りません。
他のスクリプト言語は昔少しだけかじったことがありますが、
ほとんど忘れています。

>>169
>易しい記述でできるから。実際俺はよく使ってる。

もしさしつかえなければ、あなたが使っているスクリプトを
ここにのせていただければ感謝いたします。
172名称未設定:04/07/26 01:28 ID:rGfsDYwK
>>171
まず作ったスクリプト、できたとこまで晒してみた方が早いかと
(できてるなら)
173名称未設定:04/07/26 01:35 ID:45QR3iXr
ここは一切努力したくない人は受け入れられないスレです。
もっともそれを承知でクレクレ言ってる節もあるが。
174163:04/07/26 01:59 ID:CMN4F3GW
>>173
まあここはスクリプトの質問スレではないですもんね。
昔使ったスクリプトの本をさがしてトライしてみます。
こまったら質問にきますね。
175名称未設定:04/07/26 03:50 ID:rGfsDYwK
何だ結局クレクレ房か
176名称未設定:04/07/26 19:59 ID:1LuHabEM
すいません、質問です。

スクリプトエディタから実行すると正常に実行できて、
アプリケーション形式で保存してダブルクリックで実行
するとエラーになるという現象が起きてます。

>75
に10.3.3での解決方法がありますが、うちは10.2.8のせい
か、「アプリケーションバンドル」で保存や情報を見る=>
言語=>追加が出来ません。解決方法を御存じの方がいらっ
しゃいましたら御教授願います。
(10.3にする、ってのはなるべくさけたいです)
177名称未設定:04/07/26 20:51 ID:45QR3iXr
晒せないのか?
178名称未設定:04/07/26 23:07 ID:DTt+8Jxx
エラーの内容くらい晒してくれないとどうしようもない。
そのスクリプト自体を晒してくれるのが一番良い。
179176:04/07/27 11:41 ID:5hk3Umg9
>178
根本的な解決には至らなかったのですが、一応目的は達成した
ので報告します。

tell application "SystemSound Extension"
activate
open file "Shutdown.SSIDoc"
end tell
tell application "Finder"
activate
shut down
end tell

サウンドファイルを鳴らしてからシャットダウンするスクリプト
です。SystemSound ExtensionはSystem7サウンドファイル
を鳴らすアプリで、これ入れとけばシャットダウン時に音が鳴る
って聞いたんですが、ダメなのでスクリプトを書きました。

で、新規作成でアプリケーション形式で保存・実行すると
エラーになるので、HDにあったKuGoShutdownという
スクリプトをコピーして上記のスクリプトをコピー・上書き
保存したら、正常に動作するようになりました。
長文失礼しました。
180名称未設定:04/08/06 22:32 ID:jFIExWeW
181名称未設定:04/08/19 19:58 ID:t6Toq4HR
なるほど
182名称未設定:04/08/24 13:43 ID:Fgl/d5RW
質問なんですがちょうど良いスクリプトスレがないのでお願いします。
do shell scriptについてなのですが、

tell application "terminal"
do script " "
end tell

の場合ように、shell scriptに処理はまかせてapple Scriptで処理を継続する方法は
ないでしょうか?
try timeout と ignoring applicatiron responsesを試したのですが、
どちらも処理が終わるまで戻ってきませんでした。
terminalを立ち上げたくないんですけど、仕様なんですかね…?
183名称未設定:04/08/24 14:02 ID:iO9BUeXU
>>182
ttp://developer.apple.com/ja/technotes/tn2065.html

Q: スクリプトの出力に非常に時間がかかります。
結果が出た時点でそれを読むにはどうすればよいですか?

A: これについても、方法はありません。
do shell script は、コマンドが完了するまで戻ってきません。
ただし、対処法としては、コマンドをバックグラウンドで実行し(次の Q&A を参照)、
出力をファイルに送信し、ファイルが完成したらファイルを読むという方法があります。

Q: バックグラウンドサーバプロセスを開始したい場合、do shell script に
コマンドの完了を待機させないようにするにはどうすればよいですか?

A: 「do shell script "command > file_path 2>&1 &"」を使います。
do shell script は、結果なしで直ちに戻り、AppleScript スクリプトは
シェルスクリプトと並行して実行します。シェルスクリプトの出力先は file_path になります。
出力に関心がない場合は、"/dev/null" を使用します。AppleScript からの
バックグラウンドプロセスの取得や操作は、直接的にはサポートされていません。
184名称未設定:04/08/24 16:00 ID:Fgl/d5RW
>>183
ありがとうございます。そこのページは読んでいたのですが、見落としていました。
で、やってみたのですが、

Q: 1 つの do shell script で複数のコマンドを使用するにはどうしたらよいですか?
A: 1 回の呼び出しで複数のコマンドを実行するには、次のようにセミコロンでコマンドを区切ります。

これとの共存は出来ないみたいですね。複数コマンドの最後に付けただけでは戻ってきませんでした。
こりゃ、terminal立ち上げないと駄目かな。
185名称未設定:04/08/24 17:15 ID:sLkeE8wQ
>>184
試してないけど、こんな感じで入れ子にできないかなw

do shell script "osascript 'do shell script "command a;command b"' > file_path 2>&1 &"
186名称未設定:04/08/24 18:40 ID:G2fUZM82
>>184
よーわからんけど、普通に ; の代わりに & じゃ行かんの?
187名称未設定:04/08/24 18:44 ID:G2fUZM82
コマンド列を全体で、ってこと? (a; b)& とかは?
188名称未設定:04/08/24 19:05 ID:Fgl/d5RW
>>185
""大杉とスクリプトエディタに怒られました。
だめっぽいです。

>>187
うほ!できた。普通に括弧使えたんですね。知らなかった(w
&で並行処理ができるってのもさっき調べて知りました。
ただ今回の場合処理の順番が重要なので&だと駄目だったんですよね。
これを機にshell scriptもきちんと勉強することにします。
ありがとうございました。
189188:04/08/26 22:02 ID:QvvKFSXb
また質問なんですけどいいでしょうか?
今度はdelayコマンドなんですけど、これって馬鹿みたいにCPU喰うんですけど、
仕様でしょうか?
appleScript Studioで使うと消費しないみたいなんですけど、
will finishing launchと組み合わせて使うとやっぱりCPU喰いまくる模様。

do shell script "sleep" でやるとCPUの消費は回避できたんですけど、
今度はdo shell scriptから戻ってこないので、操作不能に陥って、
途中で処理を終了させたいような場合にどうしようもなくなってしまいます。

CPUを喰わずに数秒間処理を待たせる方法って無いでしょうか?
190名称未設定:04/08/26 22:23 ID:EQg8eC6u
>>189
sleep 10とかは?
191188:04/08/26 23:03 ID:QvvKFSXb
ごめんなさい。中途半端に書いちゃいましたね。
もちろん do shell script "sleep 秒数" でやってます。

ファイルを監視して、サイズの増加がなければ処理を続行するというスクリプトで、
repeat until ファイルA = ファイルB
ファイルA
delay 10 (またはdo shell script 〜)
ファイルB
end repeat
こんな感じでやってます。
この状態で、delayなら他のオブジェクトをクリックしたら処理を中断する
といったことが出来るのですが、代わりにCPUを馬鹿食いする。
do shell scriptだと、CPUを喰わない代わりにRepeatを抜けるまで操作不能で強制終了しか
手段が無くなるといった状況です。
192名称未設定:04/08/26 23:27 ID:Lu6c7XBI
on idle
return 秒数
end idle

だと軽いという話もあるようですが
193188:04/08/27 00:34 ID:MfOmeuVx
普通にコマンドを二つ並べただけでは処理が早すぎてファイルの増加を
捉えられないため、ファイルの増加を捉えるにはチェックする2点間の時間差を
作る必要があります。

idleの使い方がいまいちわからないのですが、
調べた限りではidleに挟まれたスクリプトを延々続ける
常駐スクリプトを作るためのものですよね。
となると時間差を儲けるためには利用できないような…。
idleを呼び出して待機させるみたいな使い方って出来るのでしょうか?

idle
ファイルA
do shell script "sleep1"
ファイルA'
return 30
end idle
(ファイルABは不適切だったので変更しました。)

これでCPUの消費を抑えつつ30秒に一回チェック(但し一秒間固まる)
という風にできるのでなんとかごまかしにはなるのですが、
プログレスバーとかを利用するとその都度止まるのでやはり目立ちますね。
う〜ん…。
194名称未設定:04/08/27 20:02 ID:5v0uKj1E
質問です。
普段使わないパーティションをアンマウントする
スクリプトはどう書けば良いのでしょうか? 10.3.5です。

以前、たしか10.1.5のころは

tell application "Finder"
activate
eject disk "普段使わないHD"
end tell

でいけてた気がするんですけど、10.3.5だとできない、
ひさびさにXをさわっているので、よくわからない…

教えてくんですみません。


195名称未設定:04/08/27 22:55 ID:DSSUIhBx
とりあえず

do shell script "diskutil unmount /Volumes/ボリューム名"
196194:04/08/27 23:32 ID:5v0uKj1E
>195
ありがとうございます!できました。
けど、アンマウントするまでにけっこう時間(10秒くらい)がかかりますね。
197名称未設定:04/08/31 12:15 ID:S2i7lRIG
>>193
delay 10
じゃだめ?
198188:04/08/31 18:21 ID:n5TGMAoP
>>197
もしかしてdelayで馬鹿みたいにCPUを喰うのはうちだけですか?
AppleScript , Delayあたりでぐぐって見たんですけど、
CPU消費に関する記述を見つけれられず。
海外のフォーラムで一件、CPUを消費しないようなことが書いてあったのですが、
たとえば、
repeat
delay 10
beep
end repeat
だけでもうちでは半分以上のCPUを消費してます。同時に別の重い処理をさせたいので
これだとお話にならないんですよね。
今のところ、インジケータなどの動きが鈍くなるのは諦めて、
idleとdo shell script "sleep 〜"の組み合わせでごまかしてるんですが…。
199名称未設定:04/08/31 19:26 ID:e7wf23hk
>>198
試してみました。
CPU食いまくりです。
10.3.5
200名称未設定:04/08/31 19:32 ID:RL3JPk34
>>198
CPU消費を気にするくらいならアップルスクリプトは卒業した方が良いよ。
201188:04/08/31 20:06 ID:n5TGMAoP
>>199
やっぱそうですか。仕様なのかな?
>>200
う〜ん、趣味のレベルなのでそれを言われると辛い(笑)
入門用にはApple Scriptってわかりやすくて良かったと思います。
(未だにファイル参照とかでなんでうごかねーんだよ!とかしょっちゅうですが…)
Apple Scriptで出来るようなことは、shell Scriptで大抵出来るのでしょうか?
今回いくつかの箇所で利用しているので、次はこの辺りに手をつけようかとは
思っているのですが…。
202名称未設定:04/09/02 04:10 ID:fHTzBjY9
  /(_,
 (、 )
  )/
AppleScript
203名称未設定:04/09/02 05:20 ID:Jd5S/g7D
ファイル増加捉えるなら、フォルダアクション使こたら?
204名称未設定:04/09/02 22:42 ID:AgJghtpE
>>202
Safariでずれてる。
xていうか、OS Xでまともなノンプロポーショナルフォントがないような気が...
205名称未設定:04/09/05 02:47 ID:M+cmEJlO
キーボードのコマンドキーと上の列の数字を擬似的に押す
Scriptはできまんのん?
206名称未設定:04/09/05 04:38 ID:+FH99fMK
tell application "Finder" to activate
tell application "System Events"
tell process "Finder"
keystroke "N" using command down
end tell
end tell
207名称未設定:04/09/05 04:40 ID:+FH99fMK
あ、間違った。こっちだ。

tell application "System Events"
tell process "Finder"
keystroke "#" using {command down, shift down}
end tell
end tell
208名称未設定:04/09/12 16:23:24 ID:G03Za5Ed
text -5 thru -1 of "123456789"

"56789"
になるという書き方をさっき知りました。
items -3 thru -1 of {1, 2, 3, 4, 5}
もできるのですね。
209名称未設定:04/09/14 09:18:54 ID:09iP1ErF
AppleScript Studioで初期設定を利用する方法について教えてください。

on will finish launching theObject
try
set str1 to contents of defult entry "field1" of user default
set contents of cell "field1" of matrix "form1" of window "Main" to str1
on error
make new default entry at end of default entries of user defaults with properties {name:"field1" ,contents:""}
end try
end will finish launching

on will quit theObject
set str1 to contents of cell "field1" of matrix "form1" of window "Main"
set contents of dafault entry "field1" of user default to str1
end will quit

これで起動時に初期設定ファイルを読み込んでcellに文字を入力するのは
理解できたのですが、ラジオボタンやポップアップボタンで同様に初期設定を
利用するにはどうしたらよいのでしょうか。
state of 〜 とか title of 〜 とかに変更してやってみてはいるのですが動いてくれません。
210名称未設定:04/09/15 00:58:38 ID:DbtHs2Q3
>>209
will finish launchingでは読み込んだのをproperty変数に代入するだけにして
launchedでコントロールをセットするようにしてみれば?
211名称未設定:04/09/15 18:01:51 ID:zXjUXSSN
スクリプト関係の質問をしたいのですが、そういうスレってないですか?
タイトルからは見つからなかったんですが。
スレ汚しですみませんがちょっと教えてください。
212名称未設定:04/09/15 18:21:57 ID:XTXzTDIJ
以前は、OS Xでスクリプトスレとかあったけど消えた。
213209:04/09/15 21:19:25 ID:mpexBGZ+
>>210
色々試したところ、popup buttonについてはコントロールの理解がイマイチだったようで、
set contents of popup button "popup1" of window "Main" to str2 でいけました。
ただ、ラジオボタンはうまく動かないので、(この辺も私の理解が甘いだけだとは思うのですが…)
得られるtrue,falseからそれぞれのボタンを起動時に個別にON OFFすることで対応しました。
launchedは使いませんでしたが、別で処理させる参考にさせていただきました。
ありがとうございました。
214名称未設定:04/09/15 21:23:49 ID:dBgMYZZi
>213
true,false は as boolean を付けて明示的にboolean値として
default entry に書き込んでやればよい。
as boolean を付けないと、次にdefault entry から読み出すときに
boolean 値として取り出せなくなって、ラジオボタンのstateをset
するときにうまくいかなくなる。
215211:04/09/15 22:31:45 ID:zXjUXSSN
無さそうなのでちょっと教えてください。
Mail.appで指定のメールをスクリプトから表示させたいのですが
何か方法はありますか?
216名称未設定:04/09/15 22:40:18 ID:Y4o2eOOG
>>215
辞書は見てみたの?
217名称未設定:04/09/16 00:10:03 ID:ll1/7IA1
tell application "Finder" to shut down
218名称未設定:04/09/16 06:24:59 ID:cCQwtS+V
スクリプトから表示、ってとこの意味がわからん。
219215:04/09/16 17:54:09 ID:oFS8A0dj
>>216
一応見ました。
messageクラスがメールの参照ですよね?
これを外部から参照する方法と、ウィンドウで表示(選択でも良いですが)する方法が分かりません。
前者はmessage viewerなどでselected messagesで取り出すくらいしかわからなかったです。
メールボックス内の番号とかでメッセージの参照を取り出せないもんでしょうか?
後者は簡単にできそうなのにさぱーり見つかりません。
ここを良く見ろ、程度のヒントで良いのでよろしくお願いします。

>>218
分かりにくくてすみません。
Mail.appを前に持ってきて指定のメールを表示させる、ということです。
「何日までに返事をしなくてはいけないメール」を表示するスクリプトを作って、
cronで自動表示させるとかそんな感じのことをやってみたいわけです。
220名称未設定:04/09/17 17:56:22 ID:s1RVMjq/
>>219
辞書の message viewer に selected mailboxes と selected messages があります。
リスト形式なので注意、あと動かない場合はバグです。
221名称未設定:04/09/17 19:12:41 ID:qWgoraYN
アイコン表示でぴっちり並べるスクリプト
tell application "Finder"
set thePath to folder "my:hd:folder:"
set theIconSize to 64
set theTop to 50
set theLeft to 50
set theXMax to 6
set theFiles to (files of thePath)

set theX to 1
set theY to 1
repeat with theFile in theFiles
set position of theFile to {theLeft + theX * theIconSize, theTop + theY * theIconSize}
set theX to theX + 1
if theX > theXMax then
set theX to 1
set theY to theY + 1
end if
end repeat
end tell
222名称未設定:04/09/26 05:16:06 ID:f5zIxPkz
223名称未設定:04/10/02 14:28:57 ID:d9+dOidu
OS10.3 でシステム終了をAppleScriptで実行したいのですが、出来たらファンクションキーに割り当てられると
どなたか使っている方がいたら教えてください、お願いします。
224名称未設定:04/10/02 16:47:35 ID:wEwo/pjv
ファンクションキーに割り当てることの意義がわからんが、Keyboard Maestroでも
買ったら?
225名称未設定:04/10/02 16:55:36 ID:4i3TFRo2
tell application "Finder" to shut down
226名称未設定:04/10/02 19:20:04 ID:kgEAA4v6
OS9でクリッピングファイルを作るコマンドって無いのでしょうか?
Finderからfileをmakeして、クリエーターとファイルタイプを
それぞれ"drag"と"clpt"に変えてみたのですが、Finderから開けませんでした。
クリッピングファイル作成のコマンドを教えてください。
227名称未設定:04/10/02 19:40:31 ID:MG1WP7kQ
Tanaka's osax
228226:04/10/02 20:08:04 ID:kgEAA4v6
>>227
"MT Write Clipping" でいけました。THX!
229名称未設定:04/10/02 20:54:08 ID:I2LNiOMX
> 217
ありがとうございました。
230名称未設定:04/10/07 10:12:06 ID:m8rgYK90
UI Elementなんですけど、Safariで表示させたページ上のフォームなどはAppleScriptでは扱えないんでしょうか?
Inspectorでは見えてるのに探してもみつからないorz
231名称未設定:04/10/07 20:57:06 ID:Cjni9kAp
>>230
答えになってないかもしれんが、do JavaScript "..." in document ... で扱える。
ここら辺を参考に
http://www.apple.com/applescript/safari/
232名称未設定:04/10/08 00:39:22 ID:IIC+pTPt
>>198
解決してるかな。
スクリプトのままだと思い切りCPUパワーを食いますが
「アプリケーション」等にすれば問題なかったです(うちで約2%)。

>>206なんと、OSXだと純正で命令方法があるんですね。

>>230ちょっとInspectorで覗いたけど
textfield 、 scrollarea 等の扱いがよくわからなかったです。


「アプリケーションパッケージ」にしたらスクリプト途中の quit (me)を受け付けませんね。
無理矢理解決したけど。
233198:04/10/09 21:46:33 ID:bAxtWyCz
>>232
お、本当ですね。バグなのかな?
結局、idleが使いにくいのと、indicatorが元気に回るとこれまた妙に
CPUを喰うので、do shell script "sleep"一本でやることにして、
反応が鈍くなるのは諦めました。

ちなみに作ったのはこれです。スクリプト内容は公開してませんが、
AppleScriptと基本的なshell scriptの組み合わせで書きました。
http://homepage.mac.com/tarak/AccelerCoder/index.html

で、一応delayに置き換えてみたんですけど、やっぱり駄目ですね。
AppleScript Studioの場合、スクリプト自体はアプリケーション形式に
ならないみたいだから駄目なのかな?
234非通知さん:04/10/10 10:22:21 ID:MB8bCHWK
スクリプトの中でquitすると、古いスクリプトアプリケーションではアプリ自身がquitするが、
Studioアプリではアプリの中の1オブジェクトのスクリプトがquitするだけなのかも。
tell my application to quit
でいけそうな予感。
だれか検証して。
235名称未設定:04/10/10 11:28:20 ID:Y84ktt85
quit my application
236名称未設定:04/10/10 12:04:33 ID:kMxucGfV
AppleScript Studio アプリケーションでも

quit

でアプリ自身がquitしてるけどなぁ。
237名称未設定:04/10/10 21:52:06 ID:h4mMySUs
>>236
うちのも単にquitでアプリが終了したよ。


ところで質問なんですけれども。
AppleScript Studio で popup button を使いたいのですが
ポップアップに含まれる項目を設定する方法がわかりません。
デフォルトで「item1」〜「item3」というのが設定されているのですが、
これを変更するにはどうすればよいのですか? 教えてちょうだい。
238名称未設定:04/10/10 21:57:54 ID:bFirPcIR
>>237
「変更」の具体的な内容を書け。
あと、「教えてちょうだい」ではなく「教えてください」だな。
239名称未設定:04/10/10 22:03:51 ID:h4mMySUs
こっちでも叱られた─────!! ていうか同じひとじゃん!

最初からポップアップにある「item1」〜「item3」ってのを
例えば「あ」「い」「う」「え」にしたいんだけど。
説明ベタ?ですまんね。おねがいだから教えてください。
240名称未設定:04/10/10 22:05:09 ID:LfejAz8I
最近DragThingで遊ぶためにいろいろ調べたのでそのメモ
・画像ファイルのアイコン'icns'を読み込む方法
Satimage.osaxが必要
http://www.satimage.fr/software/en/scripting_additions.html
set icnsData to (load resource -16455 type "icns" from theFile)

tell application "DragThing"
set full trash icon to icnsData
end tell
で設定できます

・画像ファイルにアイコンをつける方法
tell application "Image Events"
launch
set theImage to open theFile
save theImage with icon
close theImage
end tell

・画像データの種類を変換する方法
GraphicsImporter OSAXをつかう
http://www.azug.gr.jp/~h-abe/freeware/gio/index.ja.html
set theTiff to giconvert theImage type "TIFF"
iTunesのアートワークの形式も好きな画像タイプに変換できる

--
これらを組み合わせるとiTunesで再生中の曲のアートワークを
DragThingのゴミ箱アイコンに設定できた
241名称未設定:04/10/10 22:14:08 ID:bFirPcIR
>>239
PopUpButton に MenuItem を追加するには、
PopUpButton をダブルクリックして Menu を表示させた状態で
InterfaceBuilder の Cocoa-Menus パレットにある Item を
その表示された Menu にドラッグ&ドロップする。

MenuItem に表示される文字を変更するには、
変更したい MenuItem をダブルクリックする。

こういうことが訊きたいのか?
242名称未設定:04/10/10 22:24:32 ID:h4mMySUs
>>241
おおっ、まさにそれが聞きたかった!
なるほどメニューを表示させた状態で設定するんですね。
InfoパネルのAttributesから設定できなかったので
コード内から直接いじくるしかないのかと思ってました。
どうもありがとう。多謝。

ちなみにコード内からset ~ とかでいじくる方法はないんでしょうか?
243名称未設定:04/10/12 19:38:12 ID:uKbR7eDJ
>240のImage Eventsで画像アイコンをつける方法は
画像を再圧縮するのでjpgとかに使うと劣化しますので注意してください。
244名称未設定:04/10/12 22:35:05 ID:LpjzlUgf
最近、カキコを読んで「ああ、あの人だな」とわかることがある...
狭い世界だから...
245名称未設定:04/10/17 00:04:01 ID:tRjBl8pe
>>240
アイコンのことなんですがtiff2icnsってtiff画像をicnsに変換できる
コマンドがあるのを知りました。
set theTiffPath to POSIX path of "どっか:foo.tiff"
do shell script "tiff2icns " & (quoted form of theTiffPath)
みたいにやると変換できました。
ただ日本語ファイル名だと変換できないようです。
エラーはでてませんがicnsもできてません。
なんとかならないのかなあ。
246名称未設定:04/10/24 13:13:01 ID:rw3ptXbP
age
247名称未設定:04/10/25 03:14:49 ID:rR2cymuu
2バイト文字に限らずファイルパスってのは普通は囲むだろ。
248名称未設定:04/10/25 03:56:35 ID:rR2cymuu
という話ではないのか、、、スイッチの-noLargeだな。
249名称未設定:04/10/25 05:51:23 ID:EhC+PGLP
発表会スレなのに、ほかに関連スレが無いようなので質問させていただきます。

AppleScript Studioアプリに非標準UNIXコマンドをパッケージ内にバンドル
したいのですが、アプリの設置パスを獲得する方法はないでしょうか。
250名称未設定:04/10/25 06:42:08 ID:rR2cymuu
>>249
アプリの設置パスって path to current application とか?
バンドルならまんま bundle があるし。
AppleScriptKit を見ればわかるでしょ。
251名称未設定:04/10/25 18:52:40 ID:x+qjW0Wy
プレーンなテキストファイルのドラドロで原稿用紙換算できるAppleScript作ろうと勉強中なんだけどwebにある情報だけじゃどうにもならんですた

なんかそこに至る為のお勧めな本とかありませんか。
技量はベーマガ世代でPHPでシンプルな掲示板くらいなら作れてCocoa+Objective-Cでヘボなシューティングゲーム作った事がある程度です。
252名称未設定:04/10/25 19:16:21 ID:piCvLv0u
N88BASIC以来のほぼ0から初めましたが
「AppleScript Programming for Mac OS X」(掌田津耶乃著・ソシム刊)は
AppleScriptの基礎的な部分の解説が充実しててわかりやすかったですね。
アスキーから出てる「AppleScript Studioでゼンマイびゅんびゅん!!」の方は
Cocoaアプリ作成例集といった感じですた
253名称未設定:04/10/25 20:53:00 ID:BBr9rcmX
>>250
プロジェクトのResourcesに'gawk'をドラップして、

set gawkPath to ((POSIX path of (path to current application)) & "Contents/Resources/gawk")
set content of text field "tv" of window "wi" to (do shell script gawkPath & " '{print $0}' " & targetFilePath)

こんな感じでOKでした。ありがとうございます。
単体で機能するフロントエンドが作れますねぇ。うれしい。

http://developer.apple.com/ja/technotes/tn2065.html

ところで、AppleScriptKit(用語辞典?)の中をGrepするにはどうしたらよいんでしょう。
AppleScriptKit.asdictionaryをスクリプトエディタで開いても、
左のコラムでは展開しているクラスやコマンドにしかヒットしないし、
右のコラムでは単ページ検索になってしまいます。
なんかこれ使いにくいですよねえ?

>>252
僕も掌田津耶乃氏のページを見てやっています。
本も欲しいですね。
254名称未設定:04/10/26 14:32:36 ID:wJ/lC24p
>>252
レスどもです。
「AppleScript Programming for Mac OS X」所望してみます。
255名称未設定:04/10/28 05:55:31 ID:yfjLVJw4
AppleScript Studioで作ったアプリのウインドウを、
常に最上位に表示するにはどうしたらよいんでしょうか。
ヘルパーアプリを作っているんですけど、それがネックで……。
トグルできるといいんですけどね。
ゼンマイびゅんびゅんに載っているっぽい感じですが。
週末には買おうと思いますが、ご存知の方がいらしたら教えてください。
256名称未設定:04/10/28 06:38:24 ID:7qCTI3vX
>>255
フローティングウインドウにしたいなら

set floating of window "hoge" to true

で逝けるかと。ググり情報なんで違ったらスマソ。

以前作りかけたアプリで使ったのに削除してたよorz
何か作る度にWebと睨めっこするのは効率が悪いな。
自前でリファレンス作ってまとめなきゃならんか……。
257名称未設定:04/10/28 09:45:01 ID:yfjLVJw4
ググりキーワードをありがとうございます。
"最前面"とか"常に最上位"とかでググってました。

> set floating of window "hoge" to true

これだけでは何かダメだったです。

とりあえず、最前面に固定することには成功しました。

question about global floating window
http://lists.apple.com/archives/applescript-studio/2004/Jun/msg00178.html

on awake from nib theObject
set floating of theObject to true
set hides when deactivated of theObject to false
end awake from nib

こういうハンドラを書いて、windowのAppleScriptのActionにNibのawake from
nib のチェックボックスをONにすればOKでした。
後で作り途中のヘルパーアプリに適用してみようと思います。
ありがとうございます。
258名称未設定:04/10/28 10:35:11 ID:JYWwq5Zn
AppleScript Studioで
progress indicatorの最大値最小値の設定をしたくて以下のようなコードを書きました。

1: tell progress indicator "indi1"
2: display dialog "aaa"
3: set minimum value to 1
4: display dialog "bbb"
5: set maximum value to 100
6: display dialog "ccc"
7: end tell

しかし3行目でも5行目でも
NSCannotCreateScriptCommandError (10)
というエラーが出てしまいます。

これはテスト用に数字を決め打ちしていますが、実際に作りたいアプリケーションの中では
最大値が時によって変わるため、どうしてもコード上で最大値最小値の設定をしたいのです。
どこか「その書き方間違ってるだろ!」とか「ここの設定見てみろ」とかありましたら
ご指摘願います・・・

OSは10.3です
259名称未設定:04/10/28 16:52:16 ID:wVbz5O7P
>>258
構文はあってる。
思うに progress indicator オブジェクトまでのパスが通って無い。
オブジェクトのある Windows もしくは Sub View に tell してないでしょ。
260258:04/10/28 19:30:04 ID:JYWwq5Zn
レスありがとうございます。自分勘違いしてました。
2行目のdialogが表示されてれば、1行目のtellは通っているものだと思っていました・・。

確認したところパスが通ってない部分(凡ミス)を発見し
修正して無事動きました。

アホな質問ですみませんでした・・。
レスいただけて助かりました。重ね重ね感謝です。
261255:04/10/28 23:39:04 ID:yfjLVJw4
>>256
無事常に最上に表示されるヘルパーアプリになりました。
ありがとうございます。
262名称未設定:04/10/30 07:13:33 ID:/PQwgGPn
>>256
サンプルアプリ作ってわかりやすいファイル名で保存しとくというのも手かと。
263255:04/10/30 08:39:21 ID:PYKcwNWu
立て続けで恐縮ですが、InDesignで既に選択されたオブジェクトを選択から外
すのはどうやるのでしょうか。用語を見ると、

select: Select this ^Object
select reference -- 割愛
[existing selection replace/add to/remove from] -- How to handle the existing selection

このようになっており、

select someItem with existing selection

とやると、選択に追加していくことができるのは分かるのですが、

> replace/add to/remove from

これはメソッドではないようなので、select と existing selection 、そして
その他の修飾語で実現すると思うのですが、よく分かりません。グループ化さ
れたアイテムを複数選択し、その中から操作対象を特定条件で選択。あとはア
ナログ操作、みたいなことをやろうと思っています。
よろしくお願いします。
264名称未設定:04/10/30 16:25:29 ID:IwTOxAem
初心者レベルですが、こんなん作ってみました。

tell application "Finder"
display dialog "何と言わす?" & return & "日本語はローマ字で入力" with icon note default answer "" buttons {"OK"} default button 1
set SPEACH to text returned of result
say SPEACH as text
display dialog "んで、コレど〜するよ?" with icon note buttons {"どうもしない", "AIFFで保存"}
set Ans to result
if button returned of Ans is "どうもしない" then
return
else if button returned of Ans is "AIFFで保存" then
display dialog "ファイル名を決めれ" & return & "(英数字限定)" with icon note default answer "SPEACH" buttons {"OK"} default button 1
set FN to text returned of result
say SPEACH as text saving to {(FN as string) & ".aiff"}
display dialog "HDの第一階層にいるよん" with icon note buttons {"OK"} default button 1
end if
end tell

声はシステム環境設定のスピーチでデフォルトの声で設定されているものになります。
日本語を喋らせるにはちとコツが必要です。
「son na koto yori tyotto ki i te ku da sa i yo」とするよりは、
「son na koto yori chotto key te ku dasigh yo」とするカンジに、
ローマ字そのまんま入力するよりは、発音の近い英単語を組み合わせる方がいいです。
なお、OS10.3でしか動作確認しとりません。
265255:04/10/30 18:56:13 ID:PYKcwNWu
>>264
がんばってますね。
激しく学習のモチベーションになるので、
AppleScript Studioも平行してみるといいですよ。
>>263
自己レスですが、CSの3枚目のCDに付いていたサンプルの中に、

select nothing

という表現を発見しました。

select nothing with existing selection

という表現も可能ですね。selectionから参照を取った後、
select nothing で選択解除、あとは地道にselectしていく
というのでも目的は果たせそうです。

unselect みたいなメソッドがあるといいんですけどね。
266255:04/11/01 05:20:40 ID:L8OLmO4Y
InDesignばっかりで申しわけないです。
最前面のウインドウをサイクルさせるスクリプトを作ったのですが、

set myUnSortedWindowList to windows

で取得できる参照のリスト(?)の順序が不定なのでソートしたいのです。
いい方法はあるでしょうか。普通にやろうとすると、型変換に失敗
してエラーになってしまいます。一応、下記で問題はないのですが、
ソートできればスッキリするだけに、ちょっとお聞きしてみました。
267255:04/11/01 05:32:46 ID:L8OLmO4Y
--InDesignのウインドウを実行の度にサイクル表示する
--InDesignのダイアログで、タブブラウザみたいに
--ウインドウ選択みたくするのもいいかもですね。
property previousCurrnetItem : 1
property CurrnetItemNumber : 1
property myUnSortedWindowList : {}

tell application "InDesign CS_J"
if (CurrnetItemNumber is not equal to (count of windows)) or (myUnSortedWindowList is equal to {}) then
set myUnSortedWindowList to windows
set CurrnetItemNumber to (count of windows)
end if
if previousCurrnetItem is greater than (count of myUnSortedWindowList) then
set previousCurrnetItem to 1
end if
try
bring to front (item previousCurrnetItem of myUnSortedWindowList)
on error
set myUnSortedWindowList to windows
bring to front (item previousCurrnetItem of myUnSortedWindowList)
set previousCurrnetItem to previousCurrnetItem + 1
return
end try
set previousCurrnetItem to previousCurrnetItem + 1
end tell
268名称未設定:04/11/01 06:12:23 ID:ufV1fFkM
>>266
InDesign を持っていないので出来るかわかりませんが、
window の id を取得して地道に並べ替える手が使えるのでは。
269255:04/11/01 12:40:12 ID:L8OLmO4Y
>>268
それがよくわからないのですよ。
参照がよくわかってない証拠です。

tell application "InDesign CS_J"
windows
end tell

> layout window id 28009 of document "名称未設定-1"

↑windowsからはこんな山椒が返ってきます。で、

tell application "InDesign CS_J"
set myWindows to windows
repeat with i in myWindows
set end of documentNameList to (name of i)
end repeat

こんな風にnameは取得できるのですが、(id of i)が取得できないのです。
nameは一意とは限りませんからねぇ。
(window id of i)とか、(layout window id of i)も試したのですが。
こんな基本すらできない自分が悲しい。
270255:04/11/01 12:42:04 ID:L8OLmO4Y
■おまけ

Microsoft Excel(2004)で>>267と同じことをするスクリプト……っていうかコマンド。
iKeyなどでExcelのApplication in Front(Ver1系で言うSet)に割り当てると至極便利。
というか、標準であるのかな。ショートカット。ちょっと調べた限りではないみたい
だけど。

tell application "Microsoft Excel"
activate next of active window
end tell
271名称未設定:04/11/01 14:40:05 ID:ufV1fFkM
>>269
用語辞書は知ってますよね。

set myWindows to windows
properties of front of myWindows

これで属性一覧を取得した中に id は入ってませんか?
これらが参照できる筈の属性なんですけど。
272255:04/11/04 13:52:14 ID:FBqNktlS
>>271
結局ふつーの方法は無いようです。
do shell script で標準出力として値をもらって、
加工する方法を某せうxーさんのBBSで教えてもらいました。
わりと瞳孔が開く思いです。まさにこのスレの主旨に近い感じかと。

set window_id to word 4 of (do shell script "echo 'tell application \"InDesign CS_J\" to get layout window 1' | /usr/bin/osascript")
273名称未設定:04/11/05 08:23:50 ID:nNsLenx+
Script Debugger超絶便利で、ほかに勝る存在も無いようなので
買おうかと思うんですが、アンチエイリアスが切れなくて、
フォントが変えられない部分の表示が見辛くて仕方ありません。
これって何とかならんもんでしょうか。
274コピペ推奨:04/11/05 08:29:09 ID:Qvz7AgN/
▲911が自作自演の可能性は?
http://news17.2ch.net/test/read.cgi/news5/1080481431/l50
275255:04/11/08 05:32:04 ID:C7TaNx2p
すいません。たびたび失礼します。
Global floating window 化には成功したんですが、
Global floating window 化したウインドウをクリックしても、
タスクがスイッチしないようにはできないでしょうか。
親アプリとシームレスなヘルパーアプリにしたいのです。
REALbasic ではウインドウのプロパティにある
Global floating window を ON にすると簡単にできるのですが、
できれば AppleScript Studio で作りたい……。

Interface Builder の NSPanel のプロパティに、
Non activating Panel (Panel Only) というそのものズバリの
ものがありますが、これは AppleScript Studio では、
現状無効なようです。

Info.plist の Expert View に LSUIElement のキーを作り、
Value を 1 にするとバックグラウンドで動くアプリになりますが、
これは Face Less なアプリを作るための属性のようで、
Dock に表示されず、ウインドウも出てこなくなってしまいます。
276名称未設定:04/11/09 11:01:39 ID:MS4Vk1ag
新規の質問なんですが、お邪魔します。
propertyを並列的に書くことって、できるんでしょうか?

リストから名前を選ぶと、名前に対応した個人データ(URLなんですが)を
クリップボードに収める、というスクリプトを作って使ってるんですが、
名前とデータを別々のpropertyに収めています。

property nameList : {"あ","い","う"}
property siteList : {"A","B","C"}

これを

{"あ" "A",ノ
"い" "B",ノ
"う" "C"}

というように書きたいんです。
IMの辞書登録とファイルメーカーでも同じものを作ってますが、
一番使っているのがこのスクリプトなので、なるべくこれを
編集しやすくしたいのです。
277名称未設定:04/11/09 18:56:55 ID:gd/e3JdJ
「keystroke」(>>207)は、ショートカットにしか対応してないのですか。
キーボードを自由に打たせる、
例えばテキストエディットで文字を入力したり、削除deleteしたりする方法はありませんか。
シェアウェアではあるようですが。(Script Palette)
278名称未設定:04/11/09 19:17:54 ID:Iql0iAGa
>>277
tell application "System Events"
tell process "System Events"
key code 38 using {control down, shift down} --日本語入力に

keystroke "watasiha"
key code 49 --スペース
key code 36 --return
keystroke "neko"
key code 40 using control down --k
key code 36 --return
keystroke "desu"
key code 36 --return

delay 4
key code 51 --delete
key code 51 --delete
key code 51 --delete
key code 51 --delete
key code 51 --delete
key code 51 --delete
end tell
end tell

入力はクリップボードに入れてペーストさせた方がいいと思う
279名称未設定:04/11/09 22:23:22 ID:iHIIM52z
>>276
こんな感じ?

property theLists : {{"あ", "A"}, {"い", "B"}, {"う", "c"}}
property theRecords : {{name:"あ", data:"A"}, {name:"い", data:"B"}, {data:"c", name:"う"}}

display dialog item 1 of (item 1 of theLists)
display dialog item 2 of (item 1 of theLists)

display dialog name of (item 1 of theRecords)
display dialog data of (item 1 of theRecords)

display dialog name of (item 3 of theRecords)
display dialog data of (item 3 of theRecords)
280名称未設定:04/11/10 00:39:16 ID:ktiGuBya
>>278
すっげ!
281名称未設定:04/11/10 18:34:04 ID:6t5+IuSh
>>279
ありがとうございます。
これは、それぞれの入れ子の1つめ
(theRecords内のnameにある「あ,い,う」の3つのデータ全部、といったようなもの)
だけをリスト化することはできますか?

↓は使用しているスクリプトです。
property nameList : {"あ", "い", "う"}
property siteList : {"A", "B", "C"}
set theName to (choose from list nameList) as string
if theName is not "false" then
try
repeat with i from 1 to number of siteList
if item i of nameList is theName then exit repeat
end repeat
end try
set the clipboard to item i of siteList
display dialog (the clipboard)
end if
282名称未設定:04/11/11 00:05:26 ID:avdf/Eq1
>>281
property theLists : {{"あ", "A"}, {"い", "B"}, {"う", "c"}}
property theRecords : {{name:"あ", data:"A"}, {name:"い", data:"B"}, {data:"c", name:"う"}}

set nameList to {}
repeat with i from 1 to length of theLists
set nameList to nameList & item 1 of item i of theLists
end repeat

set nameList to {}
repeat with i from 1 to length of theRecords
set nameList to nameList & name of item i of theRecords
end repeat



なんかスマートじゃない、、、
283名称未設定:04/11/11 04:30:29 ID:suhFhJaV
よくわからんけど、こんなんしたいのかね?

property theRecords : {{name:"あ", URL:"A"}, {name:"い", URL:"B"}, {name:"う", URL:"C"}}

set theNameList to {}
repeat with i in theRecords
set end of theNameList to name of i
end repeat

set theName to (choose from list theNameList) as string

repeat with i in theRecords
if theName = name of i then set the clipboard to URL of i
end repeat
display dialog (the clipboard)
284名称未設定:04/11/11 05:01:16 ID:suhFhJaV
良いか悪いかはわからんが、おいらは外部にテキスト作って読ませるほうが好き。

(てきすとふぁいる)
あ,A
い,B

(すくりぷと)
tell application "Finder"
set theRecords to {}
set filenum to open for access file "てきすとふぁいる"
try
repeat
set end of theRecords to read filenum using delimiter "," before return
end repeat
end try
close access filenum
end tell

set theNameList to {}
repeat with i in theRecords
set end of theNameList to item 1 of i
end repeat


285名称未設定:04/11/11 13:38:54 ID:pWJTbFsz
そもそも面倒なAppleScriptだけで作ってるのかな?
AppleScript Studioならリストから対を取得すれば済む事だし。
286名称未設定:04/11/12 09:41:11 ID:BEYhNaaO
>>282
>>283
>>284
ありがとうございます。なんか、できました。できたかも。
とにかく、入れ子にできるのは知らなかったです。

>>285
勤務先のが、お古のOS9機でして。
287名称未設定:04/11/13 01:59:29 ID:KHTuzFTh

マウスクリックを AppleScript で実行することは可能なのかな?
288名称未設定:04/11/13 04:03:07 ID:T254oc/V
>>287
OS9ではCursor OSAX,S穫di's Additionsなどが有ります。
289名称未設定:04/11/15 04:19:55 ID:8u1xX1hE
ScriptDebuggerのDebugモードで動いて、Debugモードを外すと動かなくなるのっ
て何なのだろう。デバッグできねーじゃん!!

あと、ScriptDebuggerでコンパイルできて、ScriptEditorでコンパイルできな
いのがある。

あと、コメントでエラーが出ることがある?

わけわかんねー!!
290名称未設定:04/11/20 08:12:06 ID:3zze8c2Y
スクリプトエディタの2バイト文字の処理は最悪で毎度腹が立つ。
291名称未設定:04/11/20 17:09:22 ID:WIEoO1BY
そうか?
StringとUnicode textを使えば問題ないと思うけど。
292290:04/11/23 11:28:09 ID:kaBH1AF/
スクリプトエディタでプログラムを書いているときに;
コンパイルできない時の指摘部分選択がずれる。
日本語がうまく入力できない時がある。(後ろに「-」等を書いておくと行けるけど)
>>291どうすればよいでしょ。
293名称未設定:04/11/23 11:43:50 ID:kaBH1AF/
上とは別の話です;

「常にこのアプリケーションで開く」でファイルを開くと、
タイプやクリエータは変更されず、リソースフォークが追加される。
(10.3.5にて /勘違いされていることがある)

それでファイルの整理として、
リソースは嫌いなので削除するとともに、if文を羅列したドロップレットで、
 set file type of obj to "JPEG"
 set creator type of obj to "prvw"
などとやるんだけど、aif等(他の音声形式も?)には命令が効かず、何の変更もされない。
何が悪いのでしょうか?
294名称未設定:04/11/23 14:33:03 ID:dr/z3RuG
>>292
俺の場合AppleScriptStudioでファイル文字数を数えるスクリプトなんだけど、
濁点とかを一文字と数える場合があるらしくはまった。
規則性がイマイチはっきりしなくて対処に困ったんだけれど、
あまり意味のなさそうな部分にもひたすらstringを突っ込んだらうまく数えられるようになった。
でも凄く見にくいスクリプトになっちゃったので、俺も日本語のうまい使い方を教えて欲しい。
295名称未設定:04/11/23 18:31:01 ID:fXXVAEK6
tell文のネストについて教えてください。

tell app "InDesign CS_J"
 tell app "Microsoft Excel"
 end tell
end tell

こういうネストはダメなんざんしょうか。
tell app "InDesign CS_J"内では、メソッドやオブジェクトはInDesign
のものとして扱われるのでダメだと分かるのですが、
スポット的にこの束縛から逃れる方法は無いでしょうか。

tell app "InDesign CS_J"
 my useExcel()
end tell

on useExcel()
 tell app "Microsoft Excel"
 end tell
end useExcel

ハンドラ化してもダメでした。
296名称未設定:04/11/23 20:02:28 ID:eVOwJ40A
>295
別にダメなことはないと思うけど、全てをinDesignのtellブロックに
押し込む必要もないでしょうかね。

on run
 tell application "InDesign"
  …
  …
 end tell
 tell application "Excel"
  …
  …
 end tell
 tell application "InDesign"
  …
  …
 end tell
end run

Script 全体を包むのはInDesign へのtell ではなく、run ハンドラ
という意識を持って。
297名称未設定:04/11/23 23:13:11 ID:fXXVAEK6
>>296
ありがとうございます。いちいち閉じて交互にやればいいんですけど……。
InDesignのオブジェクトの中に再帰的に中に入っていって、ループで調べつつ
最後に出てきたものにEXCELから取ってきたデータを流し込み、また次へ行くと
いう流れなもので、そういう交互の流れにはしにくいんですよね。

結局動いたのですが、動かなかったのはScriptDebuggerのDebuggingをONにして
いたからのようでした。なんで動かないのか分からず、髪の毛をかきむしりな
がら先走って書き込んでしまい申し訳ないです。

tell application "Microsoft Excel"
 Select Row ((Row of Selection) + 1)
end tell

例えば、上のようなOne Linerが、Debugging OFFの状態では動くのに、ONだと
動かないといった具合です。(Excel X for Mac)

> Microsoft Excel got an error: row 5 doesn't understand the select message.

ScriptDebuggerの調子が悪いんですかね。メチャクチャ便利なんですが。
動かないといえば、最初のは動くのに次のが動かないのが謎。

tell application "Microsoft Excel"
 Select Row ((Row of Selection) + 1)
end tell

tell application "Microsoft Excel"
 tell worksheet 1 of workbook 1
  Select Row ((Row of Selection) + 1)
 end tell
end tell
298名称未設定:04/11/23 23:42:33 ID:eVOwJ40A
>297
あ、動いたんだ。動かないのは変だなぁと思ってたから
それはそれでよかった。。

ScriptDebbugerとの相性は持ってないから何とも言えないが、
一行スクリプトなら
tell application "Excel" to Select Row hogehoge
と、正に一行で書いてみたら通らないかな。試しに。
299名称未設定:04/11/27 21:03:37 ID:Ctmsh+4I
Dialog Directorでダイアログ作るときに
front above 〜ってすると、常に特定のアプリの前面に
ダイアログを表示できて、便利だったんだけど
AppleScript Studioで同じようなことする方法あります?

過去ログに常に最前面にする方法があったけど
特定のアプリの前面ってのがわからないんです。
300名称未設定:04/11/27 22:13:21 ID:kcjMJLOP

ScriptDebbugerを使っている方に質問です。
ScriptDebbuger v106JはOS9にてよく使っていましたが、現在のv.308+OSXの日本語の相性はどうですか?
デモ版を入れてみたところメニューやウィンウタイトルなどが文字化
けするようですが、その他の不都合などあれば教えてください。
301255:04/12/01 02:07:44 ID:M3RYh2dz
>>298
今試してみたら、どっちでも動きます……。
いろいろ試しているうちに、どっがおかしくなっていたのかな。
何が何やら……。おかしくなったらログアウトするか再起動してみます。
302255:04/12/01 02:27:10 ID:M3RYh2dz
>>299
僕が思い付くのは、常にfrontmostを監視する常駐スクリプトを別に走らせて
おき、ターゲットアプリがactiveになったら、もしくはdeactiveになったら、
AppleScript Studioで作ったヘルパーアプリ(?)に対してtellしてやる、という
ものです。例えば、以下をアプリケーション形式かつ終了しない設定で保存し
実行すると、それを行なう常駐アプリになります。動作は確認しています。
303255:04/12/01 02:27:53 ID:M3RYh2dz
--起動時に一回だけ変数をグローバル宣言/初期値を代入
global oneTimeFlag
set oneTimeFlag to true

--以降起動中は間欠実行
on idle
  if (((path to of frontmost application) as Unicode text) contains "Your Host Application Name") then
    --ホストアプリケーションがfrontmostになったら実行
    tell application "Your Applecation Name"
      set floating of window 1 to true
      set hides when deactivated of window 1 to false
      if oneTimeFlag is true then
        activate
        set oneTimeFlag to false
      end if
    end tell
  else
    --frontmostがホストアプリケーションでなかったら実行
    tell application "Your Application Name"
      set floating of window 1 to false
      set hides when deactivated of window 1 to true
      set window 1 to last window
      set oneTimeFlag to true
    end tell
  end if
  return 5
end idle
304255:04/12/01 02:46:45 ID:M3RYh2dz
上記のスクリプトは、そのAppleScript Studioアプリ内に記述することができ
ることも分かりました。つまり、on idleハンドラをAppleScript Studioアプリ
内に書けるということです。上記をただ書いただけだと不満が出ると思うので
改良は必要ですが……。

tell application "Your Applecation Name"

tell window "wi"

などとして、自分のウインドウオブジェクトに対してtellします。

on idleを置くことで、通常の処理とは別に、バックグラウンドで別のことをさ
せられるんですね。初めて知りました。on idleを使うスクリプトは専用に作る
しかないと思ってました。これはスクリプトの幅が広がるなぁ。
305255:04/12/01 03:09:59 ID:M3RYh2dz
>>300
変数やリスト、レコードに日本語が入っていても、それが変数モニタ上で文字
化けして見られないということはないようです。

ソース内の文字列、コメントに日本語を使う際、カーソルを右に移動するとき
「1バイト文字、2バイト文字」というならびがあった場合、2バイト文字の間に
入ってしまうことぐらいですかね。

例えば「aあ」という文字のならびで、行頭から行末に向かってカーソルを移動
していくと、aの次にカーソルが移動するのは「あ」の1バイト目と2バイト目の
間です。行末から行頭に向けての移動では問題ないようです。

マウスでの指定は常に正常なので、困ったらマウスでポイントを移動するなり、
選択範囲を作ります。

あとは、特定の環境でフォントの設定が予期せずデフォルトに戻ってしまう、
ということを経験しています。

既に指摘されているように、フォント設定ができないところでは文字化けしま
すね。あと文字が小さい!! 小さい上にアンチエイリアスがかかるのでMac OS
X上では辛いです。

結構困るのは用語説明が文字化けしてしまうこと。本文に日本語が使われてい
るのを見たことがないので使う分には困りませんが、アプリケーション名が日
本語のものについては、開いてみないことには何だか分かりません。
306名称未設定:04/12/01 11:05:24 ID:qTzsl7tX
すいません、かなり今更なんですが、
tanaka's osaxの使用方法に関する資料を探しています。
特に文例みたいなものを探しています。Web/書籍問いません。tanaka's osaxに
辞書は付いていますが、辞書だけですぐ使い方が分かるほどのレベルではないのです…。
OSXが使えればPerlなんかで済ませられるんですがOSXを使えない環境で
スクリプト制作をしなければならないもので。
307名称未設定:04/12/01 11:19:07 ID:m/bP4cH+
>>306
何を作るのかわかりませんけど、Mac Perlではダメですか?
308名称未設定:04/12/01 11:29:56 ID:QYMIqq8Q
tell me to run
309300:04/12/01 12:00:18 ID:kZHOTIgD
>>305
ご回答ありがとうございます。
Open Recentなどの日本語ファイル名が化けるのは意外に不便ですが、実質
上スクリプト作成には問題がないようですね。
>あと文字が小さい!!
確かに!ふと気づくと梅干し食ったような顔になっているときがありますw


>>306
ソフトバンクから出版されている「AppleScriptリファレンス」に幾つかの
コマンドについて田中氏本人による用例、解説がのっています。

もしくは、ご存知かもしれませんが田中氏のフォーラムがありますのでそち
らで聞いてみるのも良いかと思います。
http://mtlab.ecn.fpu.ac.jp/webcon.mtxt
310名称未設定:04/12/01 12:22:57 ID:Js4nfbxz
ありがとうございます。
AppleScriptリファレンス探してみます。フォーラムは知ってはいるのですが
私のような初心者が厨な質問をするのは失礼かと思いまして…。
Macperlは使えないのですよ。会社で使うので新たにソフトをインストールするのは
色々手続きが面倒で…。 tanaka's osaxはすでに入っている環境なので。
311300:04/12/01 13:35:33 ID:kZHOTIgD
>>310
確認してみたら「AppleScriptリファレンス」に掲載されているコマンドは
MT Parse CGI, MT Pack CGI, MT List Files, MT Parse, MT Pick Strings,
MT Pick Linesの六つだけでしたorz
 
でも何かと役に立つリファレンス本なので持ってても損はしないかと思いま
す。それにしてもそろそろOSX対応版が出ねーかなあ、出ねーだろなあ...
312名称未設定:04/12/01 18:55:03 ID:PCpTKVdU
たしかにOSXオンリーな辞書は欲しいかも。いまのソフトバンクパブじゃ
そういうの出す体力ないかもしれないけど。
313名称未設定:04/12/01 20:41:05 ID:m/bP4cH+
OSのバージョンが細かく上がったりする度に状況が変わってるというのも
出しにくい一つの原因では。
314名称未設定:04/12/01 21:11:38 ID:X5ZVM1fr
>>310
自分が参考にしているのはこれくらいです

Tanaka's osax 2.0 の解説文書
http://mtlab.ecn.fpu.ac.jp/mySamples/Tanaka_osax_2.txt.sit
(2.0.1とは少し違う部分も有るようです)

Tanaka's osax に関する覚書1
http://mtlab.ecn.fpu.ac.jp/webcon.mtxt$030123081933.html
315277:04/12/01 21:14:02 ID:SxbH7PCw
>>278ありがとう。
でもテキストエディット上で動かしたところ、カタカナ化がうまく行かないです。
(ことえりだし手打ちなら行ける)
316名称未設定:04/12/02 02:43:20 ID:zJfSc9//
>>314
さんくすです。解説文書参考になりますね。
317名称未設定:04/12/03 01:12:09 ID:BY+ylefZ
>>304
ていねいな回答ありがとうございます。
個人的にはon idleハンドラってこれまでなんとなく避けてたんです。
OS 9までは常駐アプリってうっとうしい感じがあったので。
今はそんなこと気にしてないくせに、自分では気づかなかったです。
作成中のスクリプトに組み込んでみます。
318255:04/12/03 05:08:14 ID:ncAXmMZ+
>>317
InDesignのヘルパーアプリを作っていて、そういう動作ができるのがベストだ
な、と思っていたのでついでですよ。おかげで勉強になりました。

僕も常駐アプリをうっとおしがる方です。用が無いときにも定期的にアップル
イベントが飛んでいるのは気持ち悪いですし。

それより、REALbasic でウインドウのプロパティにあるGlobal floating
windowをONにしたとき相当のGlobal floating windowにする方法は無いですか
ねぇ。これを設定したウインドウは、クリックしてもタスクスイッチしないん
ですよね。あたかも親アプリのツールパレットであるかのようになります。
319名称未設定:04/12/03 10:11:16 ID:wkeVnTpA
REALbasicスレあるよー

REALbasicってどうもいつもREALbasic本体にバグがつきまとう感じで
好きじゃなかったけど今は直ってるのかな。
320名称未設定:04/12/03 12:12:31 ID:fNDUM7/r
REALbasicの開発状況が改善でもされなけりゃバグは出つづける。
321名称未設定:04/12/03 12:29:17 ID:bo7qMwm1
もうだめぽですか?
OSXだとXCodeでアップルスクリプトにGUI簡単に付けられるしね。
322名称未設定:04/12/05 12:23:34 ID:8PM9ZCD+
すいません、質問させてください。

エクセルファイルをCSVファイルに変換して保存したいのですが、
数が多く、またCSVファイルにしたものを他のアプリケーションで
別の処理を行わせたいため、AppleScriptで組もうと以下のようにしてみました。

property inFile : alias "Mac:aaa.xls"
tell application "Microsoft Excel"
set aaa to open workbook workbook file name ((inFile as text) as Unicode text)
save workbook as aaa filename "Mac:aaa.txt" file format CSV Mac file format
end tell

変換してくれません…。
どこが駄目なのでしょうか。
323名称未設定:04/12/05 12:33:55 ID:vDPlr+JC
>322
>どこが駄目なのでしょうか。

質問の仕方とか。情報が足りない。
で、Excelを持っていないのでExcelのAppleScript辞書が見られないのだけど、
openやsaveのその妙な構文、それで合ってるの?
324名称未設定:04/12/05 13:43:19 ID:9CQS5XqL
自身と同階層のテキストファイルを読み込ませるにはどうすればよいですか。
path からうまく item扱いにできません。
325名称未設定:04/12/05 14:45:20 ID:IAHU0GHs
>>324
read ((((path to me) as string) & "ファイル名") as alias)
これじゃダメ?
326名称未設定:04/12/05 14:49:28 ID:IAHU0GHs
ミスった。。。
read ((((path to me) as string) & ":" & "ファイル名") as alias)
327300:04/12/05 15:04:11 ID:PVyAN4oG
>>322
先ずExcelのスクリプトは全くやった事がないのでやっつけですまんが、
ちょっと辞書を見てみたところ...

3行目は単純に open inFile では駄目なの?
でもって

4行目さっぱり意味が分からん。単純に
save workbook 1 in (inFile as string &".csv") as CSV
では駄目?ひょっとして何か他の理由があるのかなあ。

ただこのままだとファイル名が aaa.xls.csv となってかっこ悪いので拡張子をかえるサブルーチンを作った方が良いと思うがまあそれはおいといて。

でその後に
close workbook 1 saving no
でワークシートを閉じる。

これで取り敢えずCSV形式で保存できると思うが。
もし貴殿の意図と違ってたら御免。
328名称未設定:04/12/05 15:21:00 ID:SFbSuPon
>>326
それじゃあ、アプリ本体のパスも入っちゃうよ。

set thePath to path to me as string
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set thePath to (text items 1 thru -2 of thePath) as string
set AppleScript's text item delimiters to oldDelim
read ((thePath & ":" & "ファイル名") as alias)

Finder使えばもっと簡単だけど
329名称未設定:04/12/05 16:09:16 ID:LhlHIRwI
うまく読み込めました!
>>328
read ((thePath & ":" & "ファイル名") as alias)
これで行けました(意味が分からないけど)

>set thePath to (text items 1 thru -2 of thePath) as string
→ set thePath to (text items 1 thru -3 of thePath) as string
path末にコロンが潜んでいる?ようです。

delimiter処理も知りませんでしたが
これ単体としては文字扱いのままでも支障無しでした。
330名称未設定:04/12/05 20:17:09 ID:8PM9ZCD+
>>323,>>327

すいません、環境をきちんと書いていませんでした。
使用OSは10.3.4、Excelのバージョンは2004です。

結論から言うと>>327さんの記述で保存することが出来ました。
今後の参考までに質問までの経緯を書いておきます。

>>327さんで書かれているopen,saveコマンドは、Standard Suiteのものです。
ただ、openは問題なく出来たのですが、他のアプリケーションと同じように
saveコマンドを使おうと、save document 1 や save window 1
と記述してみたのですが、エラーが出てしまいました。
(save のみなら上書き保存として可)
(エラー内容:window 1はsaveコマンドを認識できませんでした、となる。)

そこで他にファイルを保存するコマンドがないかと探すと、Microsoft Excel Suiteに
open workbookとsave workbook asというコマンドがありました。
二つともExcel独自のコマンドなのでしょう。
辞書が見られない状態ならば>>323の言う通り、妙な構文と感じると思います。

つづく
331322:04/12/05 20:18:00 ID:8PM9ZCD+
名前入れ忘れた。(汗) ではつづき


辞書のない人のためにコマンドの説明をします。
カッコのないところは必ず記述、[]は任意に記述、()はユーザが記述するところです。

open workbook
  workbook file name (Unicode text)
以下省略
Result : workbook

Unicode textのところは要はファイルのパスです。
Unicode textにしたいがために>>322ではas Unicode textにしています。
(as textは要らないですね)
resultでworkbookを返してくれるので、saveの時に確実に
開いたものを指定するためにopenではなくopen workbookを使用しました。

save workbook as (workbook)
  [filename (Unicode text)]
  [file format (add in file format/CSV file format/CSV Mac file format/...]
以下省略

>>322ではUnicode textでパスを記述して、file formatでファイルの形式を指定しています。
...で省略していますが、いろんな形式に保存できます。これはsaveでも出来ます。
ただsave workbook asは(open workbookでもそうですが)エクセルの機能をフルに使えます。
省略していますが、パスワードを指定したり、読み取り専用にしたりするオプションを
つければ、openやsaveだけでは出来ない細かな指定が出来ます。
今回はファイルの形式を変えるだけなので、saveで良かったですね。

つづく
332322:04/12/05 20:18:52 ID:8PM9ZCD+
つづき

質問するに至った理由は、
(1) Excelは開いたファイルをwindowやdocumentではなく、
 workbookとして保持する事に気付かなかった。
(2) save workbook asがファイルの形式の指定通りに保存してくれなかった。
の2点です。
(1)は完全に失念しておりました。
(2)について、文法的にはコンパイルを通して実行も出来ているし、ファイルの保存も出来ている。
ただしCSV形式にはならかった、と。
何が悪かったかは>>327さんが今回の目的を達成するための、別の方法を利用しての答えを
言ってくださったので、結論は分からずじまいです。

ApplescriptとExcelの情報が日本語では皆無に等しいため、
まとめさせていただきました。
>>322さん、>>327さん、回答ありがとうございました。
333322:04/12/05 20:20:28 ID:8PM9ZCD+
おまけ

ここは発表のスレなので、上記を作るまでに作ったサブルーチンを一つ。
最初はGUI Scriptingを利用して作成しようとしてました。

GUI Scriptingを利用して、メニューの選択を行うサブルーチンです。
当然ユニバーサルアクセスをONにしないと使えません。Panther以上です。
メニュー番号での指定は出来ませんので、
言語環境が切り替わると、突然使えなくなります。(汗)

pickAppには、アプリケーションの名称を指定(例;"Script Editor")
pickListには、メニューの項目名のテキストをリスト形式で指定
(例:{"スクリプトエディタ","スクリプトエディタについて"})

systemPickMenu("Script Editor", {"スクリプトエディタ","スクリプトエディタについて"})

on systemPickMenu(pickApp, pickList)
tell application pickApp to activate
tell application "System Events"
set pickItem to menu bar 1 of application process pickApp
repeat with i from 1 to (length of pickList)
if i = 1 then
set pickItem to menu bar item (item i of pickList) of pickItem
else
set pickItem to menu item (item i of pickList) of menu (item (i - 1) of pickList) of pickItem
end if
end repeat
pick pickItem
end tell
end systemPickMenu
334名称未設定:04/12/06 19:33:09 ID:qM8QEzat
スクリプトスレここだけになってるんで、
質問していいでしょうか?

ひさしぶりにスクリプト触ったら、基本から忘れてるし、
サブルーチンもライブラリ化してなかったから一々作らないといけないし、
OS Xの仕様の罠にかかって疲れました。

環境はOS X 10.2.8 AppleScript 1.9 スクリプトエディタ 1.9

作ろうとしたのは単に『Finderのあるウインドウの中のファイルのリストをテキストに書き出す』というもの。
1行にファイル名、作成日、修正日、サイズ、コメントを入れて
テキストはAppleScript内部で作るのではなくてデータをJedit4に渡すようにしました。

ところがFinderのファイル名か何かがclass『utxt』になっているらしく、これが『as text』などを使っても変わらないらしくて
Jeditに渡すところでエラーになります。
どうにかならんでしょうか・・。
335名称未設定:04/12/06 19:51:27 ID:4g+BzK2W
as string は?
336255:04/12/06 20:13:53 ID:Fmmo6R4v
>>334
as Unicode textですかね。
OS Xではtextと使い分けないといけないようです。

>>303でも使ってますが、文字列照合でもハマるので覚えて覚えておいた方がいいですよ。
つまり、textとUnicode textを比較しても一致しません。
337名称未設定:04/12/06 20:39:34 ID:qM8QEzat
いえ、えっと、utxtから普通のテキストにしないといけないと思うので、
as Unicode textではないように思います。
やはりダメでした。
338名称未設定:04/12/06 21:03:07 ID:qM8QEzat
すいません。問題のスクリプトをここにペーストして、
検証・添削してもらっていいでしょうか?
339名称未設定:04/12/06 21:56:11 ID:+0o5LVL7
Unicode変換にはTEC.osax、比較にはCompareUnicode.osaxてのが有ったと思う。
340334,338 貼っちゃいます:04/12/06 21:57:23 ID:qM8QEzat
tell application "Jedit4"
activate
set aDoc to make new document
end tell

tell application "Finder"
activate
set windowName to name of window 1
set lastNumber to number of items of window 1
repeat with itemNumber from 1 to lastNumber
set aFile to item itemNumber of window 1
set aRecord to "" as text
set aRecord to name of aFile & tab & size of aFile & tab & my date2Str(creation date of aFile) & tab & my date2Str(modification date of aFile) & tab & comment of aFile & return
tell application "Jedit4"
activate
set aRecord to aRecord as text
--display dialog class of aRecord
insert aRecord at end of aDoc
end tell
end repeat
end tell

on date2Str(dateTypeData)
set monthList to {January, February, March, April, May, June, July, August, September, October, November, December}
set theMonth to (month of dateTypeData)
repeat with aNum from 1 to 12
if item aNum of monthList is theMonth then
exit repeat
end if
end repeat
return aNum as string
end date2Str
341名称未設定:04/12/06 22:32:08 ID:mRHUEHgG
>>340
ちゃんと動くみたいだよ。
342340:04/12/06 22:49:56 ID:qM8QEzat
>>341
Σ(・_・)

マジですか。
よろしければ環境等教えていただけませんでしょうか。

私の環境(10.2.8 AppleScript 1.9?)では
> insert aRecord at end of aDoc
のところで、
『Jedit4でエラーが起きました:一部のデータを目的のデータ型に変換できません』
となります。
スクリプトエディタ上からの実行です。
343名称未設定:04/12/06 23:05:48 ID:mRHUEHgG
>>342
マジっす
OSX10.3.6 + AppleScript1.9.3 + Jedit 4.2.3
スクリプトエディタ2.0上で実行

finkのフォルダをスキャンさせてJeditの書き込まれた結果をそのままコピペ
bin8.542373E+6911
etc3500.0911
faq.ja.html1.32403E+599
fink1.8015807E+7911
include2.73065E+5911
lib1.189513E+7911
sbin1.865264E+6911
share1.0915443E+7911
src0.099
var7.957421E+6911

他のフォルダも試しましたが日本語化けもないですよ。
344340:04/12/06 23:08:42 ID:qM8QEzat
>>343
検証&報告ありがとうございました。(_ _)

盲点でした・・・。
Jedit4を4.2.0r0から4.2.3r0にアップデートしたところ
動くようになりました。
何だったんだぁ・・。
疲れた。 orz
さてこれからサブルーチンとかちゃんと仕上げないと。

そう言えばAppleScript関係のMLも見なくなってるから、
10.3になって変わった事とか調べてないなあ。
改良とかあったんだろうか。
345255:04/12/06 23:20:52 ID:9mNIMMGC
あら、解決しちゃいましたか。自分のところで書いてみたものです。
repeat with hoge in list形式にするには以下のようにすればいいみたいです。

tell application "Finder"
if not (exists window 1) then
return
end if
end tell
try
tell application "Jedit4"
set tempDoc to make new document
end tell
on error
return
end try
tell application "Finder"
set myFileName to name of window 1
repeat with i in (every item of window 1 & {})
set tempText to (name of i & tab & creation date of i & modification date of i & tab & size of i & tab & comment of i & return)
tell application "Jedit4"
insert tempText at tempDoc
end tell
end repeat
end tell
tell application "Jedit4"
set name of tempDoc to "Folder_" & myFileName & "_File_List.txt"
end tell
346340:04/12/06 23:34:38 ID:qM8QEzat
>>345
おお!すっきりきれいなコードですね。エラー処理もしてあるし、
変数の名前もカッコ(・∀・)イイ!

> every item of window 1 & {}

『& {}』がミソなのでしょうか?
これは一体どういう事なのでしょうか?
けっこう知られてるTipsなのでしょうか。
347255:04/12/06 23:56:27 ID:9mNIMMGC
set theList to 2 & {}で、{2}というリストになります。Finderのevery item
of window 1のresultがリストじゃないみたいなので、リストにしてます。

自分は最近になってXからAppleScriptをいじりはじめたのでいつからかは分か
らないですが、Mac OS Xから、

((month of (current date)) as number)

こんな感じで月を数値化できるようになったそうです。

10.3から変わった点というのは把握してないですが、Mac OS Xから、というこ
とならまだいろいろありますよね。
348340:04/12/07 00:05:19 ID:L5iLS6TS
>>347
ぐっはー。
中断してる期間も含めてだけどキャリア10年近くなろうとしてるのに、
ぜんぜんわからんかった。
orz

色々ありがとうです!(・∀・)

その情報の源はどこですか?やっぱりMLとか?
349名称未設定:04/12/07 00:39:42 ID:bU+L+ncZ

(month of (current date)) as numberは知らなかった。

&で似たようなやつだと
set x to "a" & 1 --> "a1"
set x to 1 & "a" -- > {1, "a"}
set x to "b" & {1, "a"} --> "b1a"
set x to {1, "a"} & "b" --> {1, "a", "b"}

などなど
&で結合すると第1オペランドのクラスに変換され、第1オペランドがlistやstring
でもなければかってにlistとして結合します。

AppleScriptはこういう事を勝手にやってくれ、それはそれで便利だけど時としてそ
れでどつぼにハマります、今も昔もorz
350255:04/12/07 01:46:56 ID:kjM0M1Mw
>>348
monthのas numberについては、APPLESCRIPT 1.9.2かららしいですね。
http://www.apple.com/applescript/releasenotes/192OSX.html

確か、ここを読んで知った気がします。
http://www.asahi-net.or.jp/~va5n-okmt/factory/applescript/as_zaregoto/

"string" & {} / number & {}という表現の初見はどこだったか忘れてしまいま
した。Web上だったと思います。

自分の情報源は、大抵の場合においてGoogleですよ。
情報が古いページが多いですが、AppleScript Studioについて言及しているペー
ジは新しい情報を置いていることが多いです。
MLはおっくうなので入っていません。

本は最近AmazonでAppleScriptと名の付くものを買いまくってますが、
今のところ頻用するのは「AppleScriptリファレンス」です。
コレクションに加えるべく「AppleScript言語ガイドム英語表現形式」を買おう
と思っているのですが、「AppleScriptリファレンス」がある以上、
恐らくは不要のものである上、相場が高くて悩み中。
351名称未設定:04/12/07 02:22:16 ID:L5iLS6TS
(month of (current date)) as number
は10.2.8じゃダメみたいですた。
352名称未設定:04/12/07 02:23:34 ID:L5iLS6TS
ありゃ。お返事来てたのに気付かずズレた書き込みしてしまった。
orz
353名称未設定:04/12/07 02:34:48 ID:EnGxPlt3
>>350
> 「AppleScript言語ガイド 英語表現形式」

昔ダウソしたpdfもあるけど、これって、Xcodeとかインスコすると見られる奴じゃ
なかったっけ?
354255:04/12/07 03:42:57 ID:kjM0M1Mw
AppleScriptKit.asdictionaryのことですか?
これはAppleScript Studioのものですね。

http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/AppleScriptLanguageGuide.pdf

内容的には上記のものでしょうが、「AppleScript言語ガイド 英語表現形式」
は日本のアップルから出ていた書籍で、日本語で書かれているはずです。
日本語版のpdfもあったんですかね? うpキボンヌ。

355名称未設定:04/12/07 03:45:06 ID:L5iLS6TS
新しいのって言ったら、「ぜんまいびゅんびゅん」はOS Xが出た後に改訂版が出なかったですっけ?

ところで、Jeditの用語のsuspendってどんな時に使うんだろう。
って試してみればいいんだけど・・。
ハイパーカードで画面の変化を隠して動作を速くするようなのがあった気がするけど、そういうのとは違うのかな。
356名称未設定:04/12/07 11:26:14 ID:+/FTYqH9
スクリプトマニュアル読め。
357名称未設定:04/12/07 22:23:10 ID:Tg7BQRJ2
as number ちょうど作ってる部分だから助かる。
weekday は無理か。
358名称未設定:04/12/07 23:33:18 ID:S20VFWzT
Macintosh HD9.2/フォルダA  
このフォルダAの中にある全てのファイル(pdf)をプリントアウトする、
というようなスクリプトってありませんか?
359名称未設定:04/12/07 23:39:40 ID:NRq0bMya
ある
360名称未設定:04/12/07 23:44:45 ID:eCYeY7Cq
月の as number って逆はできないのかなぁ?
361名称未設定:04/12/08 00:01:30 ID:XF6w7z/w
ちょっとちがうけど

weekday of (current date) as text

"Wednesday"
362名称未設定:04/12/08 00:19:23 ID:Q3YmnXXu
>>360
無精せずにハンドラ定義しませう

>>361
これコンパネの設定に関係なく英語の長い曜日名みたいですね。
363名称未設定:04/12/08 00:39:33 ID:y96g/90f
>>359
おしえて
364名称未設定:04/12/08 01:06:12 ID:D2tEr0a2
>363
まずサンプルはどの程度探したのかと問いたい。apple.comで検索したキーワードとかもあわせて聞きたい。
365360:04/12/08 01:25:16 ID:ydK11mTi
>>362
なんかくやしいんだよねw

date ({2004, " ", 12, " ", 31} as string)

で数字から直に date を作れるのに
書式の影響で汎用では使えない
366名称未設定:04/12/08 01:54:49 ID:y96g/90f
>>364
プリントアウト フォルダ 全て ファイル スクリプト
こんな感じのキーワードでググッたけども、めぼしいものにあたらない。
apple.comでサーチですか。 それはやってなかった。
さて
script print out これでサーチしてみましたが、やはりみつからない。
367名称未設定:04/12/08 02:03:13 ID:JHLewExG
>366
プリント方法より「AppleScript 基礎」とかで検索して
AppleScriptの基本を学んだ方が早いんじゃない?>>1のリンクとか。

あと、「アウト」は要らないよ。プリント。print。

print 命令はrequired suite…全アプリが必ずサポートしているから、
焦点は「どうやって特定のフォルダにあるすべてのpdfファイルを参照するか?」
ということになるでしょう。
repeat ループでフォルダの全ファイルを見て、
name属性やcreator、file type属性をチェックしてpdfだったら
print すればいいんじゃないかな。
368名称未設定:04/12/08 02:09:27 ID:Q3YmnXXu
印刷と言えば、MLや掲示板で頻出の質問が、セレクターをどうするか。
369名称未設定:04/12/08 21:23:11 ID:rHd1qJSG
http://www.apple.com/software/
http://www.apple.com/jp/software/

米アップルにはPantherの次にAppleScriptがあるのに日アップルにはAppleScriptがないショボーン。
Downloadのところとかちょっとバージョンが違ってるようだけど、どうなんだろ。。。
370名称未設定:04/12/09 08:49:29 ID:umW4eyDo
>>366
フォルダ開く
セレクトオールPDF
セレクションから名前を貰う
プリントできるアプリにわたして印刷
ここまで言えばあとはできるっしょ
371名称未設定:04/12/11 11:08:46 ID:kfmjvZvI
>>365
-- AS date -> ISO8601 format
((current date) as <<class isot>>) as string

-- ISO8601 format -> AS date
"1997-07-16T19:20:00" as <<class isot>> as date
372名称未設定:04/12/12 19:16:55 ID:jaxA0+RB
驚いたな。かなり融通が利くじゃないですか・・・
373名称未設定:04/12/12 20:16:32 ID:zh5VyTvy
ISO8601 formatなんてのがあるんだ。
色んなモノで使われてるんでしょうか?
日付の後の『T』って何?タイム?時間と日付の区切りかな。
374360:04/12/12 22:44:25 ID:JTeQS373
>>371
動かないけど?なんか必要なの?
375名称未設定:04/12/12 22:57:04 ID:g70v/5cA
>>374
<<と>>を半角のに置き換えてる?
化けると思うけど
"1999-07-16T19:20:00" as «class isot» as date
376360:04/12/12 23:08:59 ID:JTeQS373
>>375
あんがとうごいた
377360:04/12/13 00:24:05 ID:16exasSr
OS9.1では動かなかったけど、
XML-RFC and SOAP Suport 絡みなんかなあ?
だとすると10.1あたりから使えてたのかも。

TZの付かない時間表記はISO的には
問題ありそうな気もするけど、
こっちの目的には使えそう。さんくす
378371:04/12/13 07:54:08 ID:Kr19iChX
>>373
http://www.w3.org/TR/NOTE-datetime
http://www.ietf.org/rfc/rfc3339.txt

>>377
TZの扱いはバグってます。Appleにバグレポートよろ。
AS dateの内部形式はUTCじゃなくてローカルだから、TZ無
しをローカル扱いするのは悪いと思えないが、TZを扱えな
くて良いとは言えない。
379名称未設定:04/12/20 20:08:41 ID:5SU4olvI
OSXにおいて、ユーザーのホームディレクトリのサイズを知りたい場合、
tell app "System Events" to get size of folder "/Users/アテクシ"
すればいいわけですが、結果は"1.2345E+5"となります。
as integerすれば、"123450"としてえられますが、
より大きな数字の場合は前述の書式になってしまします(´・ω・`)。
お手軽に整数を得られませんか?
ShellScriptの中で使う予定というか、AppleScriptと混在するかもなので、
Unixなコマンドでも可です。
クリスマスイブが休日なのに一人で過ごす漏れに間の手を!!
380名称未設定:04/12/20 20:28:32 ID:rW2XcJnZ
du -ks $HOME とか?
du -hs $HOME とか?
381名称未設定:04/12/20 20:45:56 ID:5SU4olvI
アリガ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・*トウサン
382名称未設定:04/12/21 01:35:26 ID:+UXZcmyK
純粋に文字列表記で使うだけなら良いけど、ASのintegerは
2^29が最大だからディスク容量の計算では簡単にオーバー
フローするよ。
"536870912" as integer -- error
383名称未設定:04/12/21 05:55:32 ID:z0kiRC8x
>>382
対策ありますか?
384名称未設定:04/12/21 09:45:03 ID:AZsSIEDs
integerつかわなきゃいいんじゃ?
385名称未設定:04/12/21 18:42:51 ID:/y9RBT52
doubleの文字化フォーマットを自由に指定できないのが問題の本質だから、
変な方向で解決を図ってはダメ。Cならローカライズ数値表記を得るAPIを呼
ぶだけだが、ASだと簡単なフォーマッタを自分で書けばよろしいかと。

on r2s(x)
if (x < 1000) then return x as integer as string
return r2s(x div 1000) & "," & characters -3 thru -1 of ("00" & (x mod 1000 as integer))
end r2s

on sizeof(x)
tell application "System Events"
return size of x
end tell
end sizeof

--r2s(9.87654321E+6)
r2s(sizeof(path to home folder))
386名称未設定:04/12/22 02:09:43 ID:rd5/iTIJ
う・・。じゃがやと動かへん・・。
どこをどう変えたら・・。
ああ自分のアホさがうらめしい。
387名称未設定:04/12/22 07:23:44 ID:tLNkJgA1
on r2s(x)
if (x < 1000) then return (round x rounding down) as string
return r2s(x div 1000) & "," & characters -3 thru -1 of ("00" & (round (x mod 1000) rounding down))
end r2s

as integerの動作は怪しいね。これだとOS9でも動くので大丈夫では。
388386:04/12/22 12:42:45 ID:rd5/iTIJ
10.2.8で>>385
Script Editor上で実行した時のエラーですが、
まず構文確認の段階で
『path to home folder』が通りません。
そこでその部分に
『alias "×○△:Users:××:"』と直接入れると構文は通ります。
実行すると
on sizeof(x)の3行目の『size』の部分がハイライトされて
『System Eventsでエラーが起きました:NSCannotCreateScriptCommandError』と実行エラーになります。
System Eventsの用語説明を見たところ、
size of 〜 はできないみたいな気がします。
で、System EventsをFinderに変えると、、
あれ?できた。さっきできなかった気がしたのにな。
すいません。
これから本題の数字のフォーマットについて考えさせていただきます。
ありがとうございます。
389名称未設定:04/12/22 12:58:42 ID:rd5/iTIJ
なるほど。size of xの答えなんかはclass realなんですね。
class realだとプラマイ1.79769E+308までOK・・とAppleScriptリファレンスに書いてあったんですが、
さすがに大きすぎるのか、
r2s(1.79769E+308)はエラーになりますた。
390名称未設定:04/12/23 17:13:34 ID:8qBdA2cc
質問なのですが、AppleScriptで、キー入力ってできないんでしょうか?
ぐぐると補助ソフトのようなものばかり出てくるんですが。
391名称未設定:04/12/23 17:25:43 ID:qh6ctVF6
>>390
>278とか
392名称未設定:04/12/24 02:36:00 ID:Hn9wSqaq
TigerはAppleScript関係もバグ無しで日本語も快適操作になってるといいなー。
Automatorの影響がどっちに転ぶか・・。
もしAutomatorがAppleScriptジェネレーターなら、AppleScriptをきちんと仕上げない事には話にならないわけで。
AppleScriptを介在しないとしたら、AppleScriptはなおざりにされる可能性も・・。

Terminalもいじらなくてもヨユーで日本語使えるくらいであってほしい。
393名称未設定:04/12/27 04:45:38 ID:boXmZcO+
すいません。純粋なアップルスクリプトではないのですが、
JavaとシェルスクリプトとAppleScriptを組み合わせて
メールをチェックしてメールがあったら任意の動作を行わせるというものを作りました。
ソースと手順のテキストをアップしているので、
よかったら見てやってくださいませ。m(_ _)m

ttp://mac.oheya.jp/up/src/macroom0320.gz
圧縮はdmg.gzです。
394名称未設定:04/12/27 20:38:18 ID:yKQGCZ66
tell application "Safari"
set theURL to (URL of document of window 1) as text

set theChar to character 1 of theURL

display dialog theChar & " : " & (theChar is "h")
end tell

上のスクリプトをアプリケーションとして保存し、
Safariで適当にURLが"http"で始まるページを開いた状態で、
ダブルクリックで実行すると(theChar is "h")がfalseになりますね。

スクリプトエディタのウインドウの実行ボタンで実行すると
正しくtrueになるのでスクリプト自体のバグではなさそうです。

10.3.7でScriptEditorは2.0。ん〜、なんだかなぁ〜。。
395名称未設定:04/12/27 21:28:14 ID:8s88DMDc
>>394
何だかわからんけど、2行目のas text外したら逝けたよ。
396255:04/12/27 21:31:43 ID:4MllGtox
>>394
Unicode text
397名称未設定:04/12/27 23:18:08 ID:w3uGIU7v
自分ではさっぱり書けないのですが、こんなのを
ツールバーに登録したいのですが。

・finderのウインド上で選択されてるフォルダを「新しいウインド」で表示するスクリプト

・選択されてる対象に関係なく、クリックすると「同じウインドのままで一つ上の階層に移動する」ボタンとして使えるスクリプト

おながいしまつ。
398394:04/12/27 23:32:53 ID:r11Dma3w
>>395
おおthx.
URLがUnicode Textで返って来るのを知っていたから、
後で問題が起きないよう最初からtextに変換しておいたのだが、
それが裏目に出るとは、、、orz

ちなみに作っていたのはこんなスクリプト。

tell application "Safari"
set theURL to (URL of document of window 1)

set thePosition to count of character of theURL
set newURL to ""
set theFlag to false
repeat until thePosition = 0
set theChar to character thePosition of theURL
if theChar is "/" then
set newURL to "/" & newURL
set theFlag to true
exit repeat
399つづき:04/12/27 23:33:18 ID:r11Dma3w
else if theChar is in {"0", "1", "2", "3", "4", "5", "6", "7", "8"} then
set newURL to (((theChar as number) + 1) as string) & newURL
set theFlag to true
exit repeat
else if theChar is equal to "9" then
set newURL to "0" & newURL
set theFlag to true
else if theFlag then
set newURL to theChar & "1" & newURL
exit repeat
else
set newURL to theChar & newURL
end if
set thePosition to thePosition - 1
end repeat

if theFlag then
set newURL to (characters 1 thru (thePosition - 1) of theURL as string) & newURL
set URL of document of window 1 to newURL
end if
end tell
400名称未設定:04/12/28 00:48:41 ID:8sRTLgZB
確かに変だよね
"h" はstring型で theChar もstring型に変換してあるはずなのに
どうして?
401名称未設定:04/12/28 06:12:12 ID:RmynAZ9E
実行環境として便利そうなのでコピペ

http://pc5.2ch.net/test/read.cgi/mac/1100447652/320
AppleScriptのスクリプトメニューをONにして、
ユーザ<ライブラリ<Scripts(無かったら作って)に
Applicationsフォルダを作りその中にFinderやAppleWorks等のアプリの名前のフォルダを作る。
アプリ名のフォルダの中にそのアプリで使うAppleScriptを入れておくと、
そのアプリがアクティブの時にアプリ名のフォルダに入れてあるAppleScriptだけが表示される。
AppleScriptを多用するする人には良いと思う。
402名称未設定:04/12/28 06:55:48 ID:pH+pK8Sv
>>401
そんなことはこのスレにいる人はみんな知ってると思うけど
403名称未設定:04/12/28 13:50:32 ID:mKqqdX27
>>401
知らなかった。サンクス。
OS9の頃は何かのユーティリティー使ってそういう事してた気がするけど。
つかスクリプトメニュー表示させてるけど全然使ってないや・・・。
(-_-;
404名称未設定:04/12/29 02:46:04 ID:4isdLE/G
さっきは動いたスクリプトが動かなくなるってのが結構あるのがイヤ。
エラー報告が「タイプ1の・・・」とかクソの役にも立たないのもイヤ。
405名称未設定:04/12/29 03:20:07 ID:izRQESSe
エラーコード表みたいなものってないのか
406名称未設定:04/12/29 03:31:15 ID:ssrmI0xS
エラーコードの意味なんて知ってもまず役に立たんだろ。
407名称未設定:04/12/29 06:56:04 ID:KYPwX0xa
>>404
> さっきは動いたスクリプトが動かなくなるってのが結構ある
マジで?
単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で結果が違うとかじゃなく?

>>405
ちょっと古くなっちゃったけど
AppleScriptリファレンスに載ってる。

>>406
try構文で囲んでエラーコードを拾って分岐処理ってのも一応よくある手段。
408名称未設定:04/12/29 13:09:48 ID:4tQBrVPE
<=が実質使えないのがイヤ。
is less than or equal toって毎回忘れるし
409名称未設定:04/12/29 13:37:00 ID:KYPwX0xa
> 実質使えない
そうだっけ?そんなバグあった?
算術記号は日本語フォントじゃなくて英語のフォントにしといた方がよかった気がする。
410名称未設定:04/12/29 19:33:17 ID:4isdLE/G
>>407
>単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で

それ。それが言いたかった。言葉足らずでごめんなさい。
アプリ形式だと実際上バグ追っかけられないのがツラい。
せいぜいダイアログで進行状況表示するくらいか。

>>408
is not greater than ではどうか。
411名称未設定:04/12/29 23:33:44 ID:+lIPQKVh
>>409
新規テキストと演算子が欧文フォントになっていてもエラーが起きない?
412名称未設定:04/12/30 05:46:02 ID:H4At5RJU
>>411
<=がコンパイル後に≦の半角のやつになるんだけど
和文フォントにこれは含まれてないので
半角の『イ』になっちゃうんだよね?

だからスクリプトエディタの編集メニューの
『AppleScriptフォーマット』で
上から2番目の『演算子など』を欧文フォントにしておくと、
コンパイル後にちゃんと≦が出るよね。
(スクリプトエディタのバージョンによってメニューの名前は違うかも)

この事を言ってるんじゃなかったらごめんね。
413名称未設定:04/12/30 05:52:06 ID:H4At5RJU
>>410
そですねー。。
beepとかダイアログが頼り。
一ヶ所クリアしたらコメントアウトして、また次。
たいへんですよね。
なまじ『イベントログ』がわかりやすいだけにアプリ形式の時は困る。
idleハンドラを使う時なんかはアプリにしてみないとわからんですからね。

普通のデバッガに慣れてる人はAppleScriptStudioを使うと多少はマシなのかな?

漏れはAppleScriptから入ったんで、HyperCardのデバッガの使い方もよくわかんなくて、上記のASのアプリの時のような方法で確認したりしてた。w
414名称未設定:04/12/30 12:44:29 ID:1VBbbdny
Studioは純正AppleScriptからの変更点がいくつかあって変なところでよくハマる。
デバッガが使えるのはいいんだけど、エラー報告は基本的にデタラメのまま。
GUI部品の参照がダラダラと長くなるのもウザイ。

なので漏れはStudioは嫌いです。
415名称未設定:04/12/30 13:57:56 ID:H4At5RJU
あーたしかにStudio使うとできない事とかあるみたいですね。
あのできたアプリがパッケージ形式?になってるのがややこしい。
自分自身へのパスとか出すと変だったような気が。
416名称未設定:04/12/30 14:50:41 ID:iIvcEU2E
>>400
文字列比較はUnicode textじゃないと意味不明にうまくいかないことがあるで
す。判定がおかしいと思ったらUnicode text、これです。

>>410
Script DebuggerでDebuggingをONにした状態で保存したアプレットは、実行時
にScript Debuggerでデバッグできますよ。

Script Debuggerにフックされた状態で起動して、一時停止になります。
その後はステップ実行したりと思いのまま。すべての変数とかも丸見え。

Affrusを買おうかどうしようか迷ってるところです。
あれがあるとScript Debugger同様経過と結果が丸見えなので、Perlの上達も早
い気がします。
417名称未設定:04/12/30 15:47:02 ID:H4At5RJU
>>416
やっぱり有償の開発環境はそれ相応の機能があるって事ですね。
あれ?前はフォーサイトが日本語版売ってたような・・。
今フォーサイトのサイトに行ったら無いみたいですね。扱いやめちゃったのか・・。
AppleScriptを本格的に使ってるような人は英語に困らない人が多いって事かな。
(漏れは困ります)

そういえばフランスの方のフリーウェアの開発環境もありましたよね?
Smileだっけか。
色々機能ありそうだけど使い方よくわかんなくて
結局スクリプトエディタ使ってました。w
何か今見に行ったらお金払うと3Dグラフとか書ける機能が付くみたい?w

Affrusというのは知りませんでした。
ttp://www.latenightsw.com/affrus/screenshot.html
なんかすごそうですね。
関心空間にもページができてるみたいですね。

うーん。。
Perlというと文字列変換やCGIしか思い浮かばない私^^;
418Late Night Software社員:04/12/30 21:02:48 ID:iIvcEU2E
フォーサイトは、とうの昔に扱いをやめたようですね。
自分も英語はあんまり分かりませんが、特に英語力は必要ないような。

一度デモを試してみては? 起動して、既存のスクリプトをコピペして、
Command + Shift + Dを押して(Enable Debugging)、Stepボタンを数回を押すだ
け。結果を見るのに5分かかりません。しかし、これだけで価値が分かるはずです。

余裕があればFile >> Open Dictionary >> (適当なアプリ、例えばFinder) >>
Explorerタブを開いてみてください。これは、開いたDictionaryを持つアプリ
の、その時点のすべてのオブジェクトのすべてのプロパティを一覧階層表示し
てくれるものです。いちいちテストスクリプトを書いて個々のオブジェクトに
tellしてget propertiesで調査していたプロパティを、地引き網のごとく一獲
してくれるわけです。これがあれば初対面のアプリでも乗りこなせますよ。

総じてメチャクチャ見通しがよくなるので、Script Debuggerを使わずに
AppleScript を書いてきた期間が長ければ長いほど有難味が分かるはず。

Affrusは、話は簡単でScript DebuggerのPerl版です。
419名称未設定:04/12/30 21:12:59 ID:1VBbbdny
いかん・・・宣伝とはわかっていても・・・ゴクリ
420名称未設定:04/12/30 21:34:45 ID:H4At5RJU
日本語化されてて日本語のドキュメントが付いてきて
日本の住所から日本円で銀行振り込みで簡単に支払いできて納得できる値段なら買うけどね。

まあとりあえず買うのはSmileを試してからでも遅くないと思うよ。
421名称未設定:04/12/30 22:14:06 ID:H4At5RJU
すいません。質問なんですが、
今Standard Additionsの辞書見ててふと思ったんですが、
Class URLとかClass Internet addressとかClass web pageって、どんな時にどう出てくるもんなんですかね?
422名称未設定:04/12/31 02:16:03 ID:Qcxym1t3
スクリプトメニューがショートカットキー登録できればなあ・・・
423Script Software社員:04/12/31 02:54:09 ID:KGn9I0Ff
>>422
iKeyを使ってみては?
http://www.scriptsoftware.com/ikey/

Finderがfrontmostの場合のCommand+D→hogehoge.as
TextEditがfrontmostの場合のCommand+D→foobar.as

こんなことができます。スクリプトファイルを別に用意しなくとも、iKeyの
ショートカット設定の中にスクリプトを書いておくこともできます。
Quickeysを知っているなら、まさにあのまんまの環境です。

2.0からはアプリごとにコンテクストメニューを変えられるようになってます。
もちろんコンテクストメニューからAppleScriptを起動することもできます。
コンテクストメニューをキーボードショートカットで表示することもできます。
424名称未設定:04/12/31 04:48:32 ID:Qcxym1t3
こ、これは・・・まさに理想どおり・・・ゴクリ
425名称未設定:04/12/31 07:40:13 ID:ZR1sj9Te
わらた
426名称未設定:04/12/31 13:56:58 ID:ZR1sj9Te
おもしろくも珍しくもないけど

tell application "Firefox"
set URLstr to get ヌclass curlネ of window 1
end tell

tell application "Internet Explorer"
Activate
OpenURL URLstr
end tell


Firefoxで今開いてるページ(表に出てるタブだけ)
をIEで開くスクリプト
427名称未設定:04/12/31 14:35:07 ID:aEx1M9U9
>>408-412
今は必ず (a<b) or (a=b) と書くことにしてる。
notについては 「if not 〜」 という書き方もある。

改行と不等号はOS9から持ってくると不具合になるのが最初分からなかった。
428名称未設定:04/12/31 15:58:50 ID:CumcaP6v
いや<=とかOSXで書いても壊れるよ。
<=とか書く。
一度コンパイルすると一文字分の記号に起き変わる。(コンパイル後にちゃんと≦が出る)
そのあと他の場所を編集して
もう一度コンパイルすると…。≦のとこがエラーに…。

429名称未設定:04/12/31 17:43:57 ID:yi6OF309
>>428
ScriptEditor2.0のバグです。International/LanguagesでEnglishを
最上位にしてloginすれば正常に動きます。AppleScriptはplain
textを返しますが、NSTextViewで扱うためにUnicode化する所で失敗
している感じです。
ScriptDebuggerはWASTEベースなので問題無く動きます。
430名称未設定:05/01/02 14:37:40 ID:lUu2TB5G
>>428-429
知らなかった。>>427で回避できるのかな。
431名称未設定:05/01/03 21:27:40 ID:ODSvvwzf
スクリプトの質問スレがないのでここで良いですか?

「current date」で取得した「0000年00月00日 0曜日 0:00:0 00」を
「Mon, 03 Jan 2005 20:36:39 +0900」の形に直したいのですが、
どのようにすればいいでしょうか。
432Late Night Software社員:05/01/03 23:00:50 ID:dUGhtQw3
何か違う気もしますが。

set cd to (current date)
set str1 to characters 1 thru 3 of (weekday of cd as string) as string
if (day of cd) < 10 then
set str2 to "0" & (day of cd) as string
end if
set str3 to characters 1 thru 3 of (month of cd as string) as string
set str4 to (year of cd as string)
set str5Tmp to (time string of cd as string)
if characters -2 thru -1 of str5Tmp as string is "PM" then
set str5 to ((((characters 1 thru 2 of str5Tmp as string) as number) + 12) as string) & characters 3 thru 8 of str5Tmp
else
set str5 to characters 1 thru 8 of str5Tmp
end if
set timeStr to str1 & ", " & str2 & space & str3 & space & str4 & space & str5 & space & "+0900"
433Late Night Software社員:05/01/03 23:02:59 ID:dUGhtQw3
str2のとこはこうしといてください。

if (day of cd) < 10 then
set str2 to "0" & (day of cd) as string
else
set str2 to (day of cd) as string
end if
434名称未設定:05/01/04 00:28:34 ID:LOs3VTeg
>>433
お手数をおかけして済みませんでした。
435Late Night Software社員:05/01/04 02:26:59 ID:3OP8JbdV
>>421
internet location fileがらみですかね。
でもこれもFinderの力を借りないと開けないみたいですし。
Class URLは、例えばこんな感じです。下記の例では文字列をClass URLにキャ
ストした時点でネットワーク経由を見にいってプロパティを生成するようです。

set myGoogle to "http://www.google.co.jp/" as URL
set aa to path of myGoogleset bb to scheme of myGoogle
set cc to dotted decimal form of host of myGoogle

URL "ftp://user:[email protected]/"

上記の表記によるftpサーバへのURLだと、user nameとpasswordというレコード
が追加されるみたいです。

Internet addressは、Class URLのhost属性のクラスそのものだそうです。

Class web pageはよくわからないですね。
436Late Night Software社員:05/01/04 02:49:38 ID:3OP8JbdV
>>397
・finderのウインド上で選択されてるフォルダを「新しいウインド」で表示するスクリプト

tell application "Finder"
set myTarget to selection
if myTarget is not {} then
set newWindow to make new finder window
set target of newWindow to item 1 of myTarget
end if
end tell
437Late Night Software社員:05/01/04 03:05:38 ID:3OP8JbdV
>>397
・選択されてる対象に関係なく、クリックすると「同じウインドのままで一つ上の階層に移動する」ボタンとして使えるスクリプト

tell application "Finder"
set tmpPath to (target of window 1 as Unicode text)
set oldDelimiters to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to ":"
set newPath to ((text items 1 thru -3 of tmpPath) & "" as Unicode text)
on error
set AppleScript's text item delimiters to oldDelimiters
end try
set AppleScript's text item delimiters to oldDelimiters
set target of window 1 to newPath
end tell

でもこれあなた、Command + ↑でいいんでしょ?
まあ分かってて書いたわけですが。
438Late Night Software社員:05/01/04 03:43:57 ID:3OP8JbdV
>>432
テキストの部分抜き出しは from character ? to character ? of〜でしたね。
439名称未設定:05/01/04 08:05:40 ID:Kx7/qYau
>>435
その表記のuser nameとpasswordの記述は標準的なもので、http:のwebサイトとかでも使えますよ
afp:でも使えたかな?
440名称未設定:05/01/04 12:08:33 ID:HiCEb5SX
>>435
ありがとうございます。
おおー。"URL文字列" as URL とかできたんですね。

.weblocファイルからURLを取り出したり、
.weblocファイルを作ったりできるんですかね?
それできると広がるんだけどな。

.weblocのファイル名をページのTitleにするとか
更新チェックするとか・・。
441名称未設定:05/01/04 18:10:45 ID:85MfkGAk
>>431
current dateは1904年からの積算秒数を返す。これがdate classの実体
0000年00月00日0曜日はそれを現在ユーザが選択しているローカライズ
フォーマットに従って文字化した物、表示用には使えるが何が返るか
は解らない。
ちゃんとしたAPIを使うのが筋だが、AppleScriptからなら
do shell script "date \"+%a, %d %b %Y %T %z\"" as string
辺りが相場でしょう。
442名称未設定:05/01/04 18:15:17 ID:HiCEb5SX
日付のフォーマットの話は>>371のあたりにも。
443Late Night Software社員:05/01/04 18:44:48 ID:3OP8JbdV
>>440
>.weblocファイルからURLを取り出したり、

on open itemList
tell application "Finder"
repeat with i in itemList
set myURL to (location of i as Unicode text)
display dialog myURL
end repeat
end tell
end open

>.weblocファイルを作ったりできるんですかね?

tell application "Finder"
set newWebloc to make new internet location file to "http://www.2ch.net/"
set name of newWebloc to "2ちゃんねる"
display dialog (location of newWebloc as Unicode text)
end tell

--ちなみにlocationはR/Oです。
444Late Night Software社員:05/01/04 18:50:29 ID:3OP8JbdV
>更新チェックするとか・・。

--次回起動時も値が保存される変数の宣言
property modDate : ""
property oldModDate : ""

set myURL to "http://www.yodobashi.com/"

--curlでヘッダを取ってきてgrepとsedでLast-Modifiedだけ抜き出し。
set modDate to (do shell script "curl -I" & space & myURL & space & "2>&1 | grep Last-Modified | sed -e 's/Last-Modified: //'") as Unicode text

--更新日が違ってたらhogehoge&基準更新日の更新
if modDate is not equal to oldModDate then
open location myURL
set oldModDate to modDate
end if

邪道な上に上記はちゃんと機能しないです……。Last-Modified:を返してくる
サーバが少ないのと、毎秒更新されてしまうところがほとんどです。Date:フィー
ルドも同様。ここは自分がよく理解してないです。適切な更新日時を取得する
方法が分かったら、上記がヒントになるでしょう。AppleScriptだけってのは
ちょっと無理。URL Access Scripting Additionでダウンロードしてきて、
open for accessで開いて中身を調査するという方法はあると思いますが、テキ
スト関連の機能が貧弱ですからね。
445名称未設定:05/01/04 18:51:03 ID:HiCEb5SX
>>443
おお!
446Late Night Software社員:05/01/04 19:09:46 ID:3OP8JbdV
>>432
Time Zoneはリテラルで足しましたが、正式には

set myTmpTZ to ((time to GMT) / hours) as integer
if myTmpTZ > 0 then
if myTmpTZ < 10 then
set myTZ to ("+0" & myTmpTZ as string) & "00"
else
set myTZ to ("+" & myTmpTZ as string) & "00"
end if
else
if myTmpTZ < 10 then
set myTZ to ("-0" & myTmpTZ as string) & "00"
else
set myTZ to ("-" & myTmpTZ as string) & "00"
end if
end if

display dialog myTZ

こんな感じですかね。基本的に端数は無いみたいなんで。
447Late Night Software社員:05/01/04 19:42:04 ID:3OP8JbdV
環境に依存しない月と曜日の算出を書いてみました。

set monthList to {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
set myMonth to item (month of (current date) as number) of monthList

set weekdayList to {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}

--"ツェラーの公式による曜日算出"
set cd to (current date)
set ycd to (year of cd)
set mcd to ((month of cd) as number)
--1月、2月は前年の13月と14月とみなす
if mcd is in {1, 2} then
set mcd to mcd + 12
set ycd to ycd - 1
end if
set dcd to (day of cd)
--(年 + 年/4 - 年/100 + 年/400 + (13*月+8)/5 + 日) mod 7
set myWeekDay to item ((ycd + ((ycd / 4) as integer) - ((ycd / 100) as integer) + ((ycd / 400) as integer) + ((13 * mcd + 8) / 5 + dcd) as integer) mod 7 + 1) of weekdayList

display dialog myMonth & space & myWeekDay
448Late Night Software社員:05/01/04 19:51:28 ID:3OP8JbdV
(month of (current date)) as numberを使っているので
AppleScript"1.9.3"以降に依存してますね。
"言語"に依存しないということで……。
それ以前だとそれぞれの言語が取りうる月の表記を全部比較参照して数値化し
ないといけないですかね。本当にAppleScriptって糞ですね(w
449名称未設定:05/01/04 21:43:03 ID:3OP8JbdV
>>445
choose URL

というのの返り値としてもClass URLが扱える……と思ったら、resultは単なる
stringですね。

set myURL to choose URL
myURL as URL
450397:05/01/04 22:35:44 ID:PL5tAsdN
>>436>>437
ありがとうございますた。後ほどやってみます。
>でもこれあなた、Command + ↑でいいんでしょ?
もちろん解っててです。たまにどうしても片手だけでなんとかしたいときがあるんで。
451名称未設定:05/01/04 23:15:42 ID:BGUlvB6B
>>437
このスクリプト、1つ上の階層を別ウィンドウで開ければ
上の階層へのファイル移動に便利かも。
452名称未設定:05/01/04 23:31:42 ID:z/iPYJlJ
うちとこではOS9なので日付やテキスト関連処理はTanaka's osax使ってます。
453名称未設定:05/01/04 23:52:18 ID:3OP8JbdV
>>451
いろいろとエラー処理が必要ですね……。
つっても出たら無視してるだけだけど(w
僕は一つ上の階層にファイルをコピーする場合は、
Command + 3でカラム表示にしてます。

tell application "Finder"
set newPath to ""
try
set tmpPath to (target of window 1 as Unicode text)
on error
return
end try
set oldDelimiters to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to ":"
set newPath to ((text items 1 thru -3 of tmpPath) & "" as Unicode text)
on error
set AppleScript's text item delimiters to oldDelimiters
end try
set AppleScript's text item delimiters to oldDelimiters
set newWindow to make new Finder window
if newPath is not "" then
set target of newWindow to newPath
end if
end tell
454名称未設定:05/01/05 00:03:50 ID:iydlByFQ
tell application "Finder" to open folder of insertion location
つうのをコンテクストメニューに入れて使ってますが
これではダメですか
455名称未設定:05/01/05 03:44:30 ID:4/QiSZMS
社員すげえな!
456名称未設定:05/01/05 10:48:13 ID:6gxeiD5H
>>435,443
location fileから取り出したURL文字列をclass URLにしようとすると
何故か失敗します。
(10.2.8)

tell application "Finder" to set itemList to selection
repeat with i in itemList
tell application "Finder" to set myURL to (location of i as Unicode text)
class of myURL
set myURL to myURL as string
class of myURL
set myURL to myURL as URL
end repeat
457名称未設定:05/01/05 12:32:58 ID:6gxeiD5H
あるURLのページのタイトルを取り出してみようと下記のような事をしてみたのですが、
これをAppleScriptに組み込もうとdo shell scriptで呼び出すと
エスケープが上手くいかないのかちゃんと動きません。
お知恵を貸してください。

curl -s "http://www.yahoo.co.jp" | perl -wne 'if ( m/\<title\>(.*)\<\/title\>/ ) {print $1;last}'
458名称未設定:05/01/05 12:44:40 ID:MZsOtLpO
お舞いは氏んでろ!
459名称未設定:05/01/05 14:51:06 ID:6gxeiD5H
>>457の回答を引き続きお願いします。

とりあえず自分用という事でシェルスクリプトを別ファイルにしました。
何をするものかというと、
Webブラウザで保存したファイル名がURLになっている.weblocファイルをドロップすると、
ファイル名をページのタイトルにしてくれるドロップレットです。
UTF-8対応のnkfが/usr/local/binにインストールされている必要があります。
あと、スクリプトを置く場所までのパスに日本語が混じってると上手く行かないかも。
製作・実行環境は10.2.8です。

#!/bin/sh

export PATH=$PATH:/usr/local/bin
curl -s $1 | perl -wne 'if ( m/\<title\>(.*)\<\/title\>/ || m/\<TITLE\>(.*)\<\/TITLE\>/ ) {$pttl = $1;$pttl =~ s/:/_/g;print $pttl;last}' | nkf -w

これをwebpagetitle.shという名前で保存してchmodで実行できるようにします。(なんていい加減なファイル名)

on open itemList
set myalias to path to me
tell application "Finder"
set myFolder to container of myalias
set fPath to POSIX path of (myFolder as alias)
end tell
repeat with i in itemList
tell application "Finder" to set myURL to (location of i as string)
set fNm to (do shell script fPath & "webpagetitle.sh \"" & myURL & "\"")
tell application "Finder" to set name of i to fNm & ".webloc"
end repeat
end open

同じフォルダにこれをアプリケーション形式で保存。
460名称未設定:05/01/05 15:44:44 ID:6gxeiD5H
>>459
問題が一つ発覚しました。
Amazonの商品ページのようにリダイレクトがかかる所だと上手く行かないようです。
curlに-Lオプションを付けてもだめ。
なんでやー。
461名称未設定:05/01/05 17:06:08 ID:4/QiSZMS
何がしたいのかがよくわからん
462名称未設定:05/01/05 18:13:24 ID:6gxeiD5H
>>461
FirefoxとかでURL欄からドラッグして作った.weblocとか、
あとSafariでも場合によるみたいだけど
ファイル名が『URL.webloc』になるでしょ?
それを、『ページのタイトル.webloc』にしたいんです。
463名称未設定:05/01/05 20:27:14 ID:UWA0ZDBb
Safariならfaviconをドラドロすればなるだろ。
464名称未設定:05/01/05 21:07:01 ID:6gxeiD5H
>>463
10.2だと、なっても文字化けとかURLになるとかいい加減っぽいです。
10.3でSafari党の人には不要なものですね。
あと個人的にFirefoxの方がよく使うので。
書き込みついでに、Safariを使ったバージョンを作ったんで貼らせていただきます。
こっちはたぶんどんな時でも問題なく動きます。
欠点は一々Safariのウインドウが開く事。
ところでSafariってOpenURLが用語に無いんですね。

on open itemList
repeat with i in itemList
tell application "Finder" to set myURL to (location of i as string)
tell application "Safari"
ヌevent WWW!OURLネ myURL
repeat
set fNm to name of window 1
if fNm does not contain "名称未設定" and fNm does not contain "を読み込み中" then exit repeat
end repeat
close window 1
end tell
set fNm to do shell script "echo " & fNm & " | sed s/:/_/g"
if fNm is not "" then tell application "Finder" to set name of i to fNm & ".webloc"
end repeat
end open
465名称未設定:05/01/06 00:33:23 ID:ai60fai5
仕事始めで時間が取れないよ。

>ところでSafariってOpenURLが用語に無いんですね。

確かに無いけどこれでいいでしょ。

tell application "Safari"
set newDoc to make new document
set URL of newDoc to "http://www.google.co.jp/"
end tell
466名称未設定:05/01/06 04:26:27 ID:M3mQkVIX
do shell script + iKey = 最高のスクリプト環境
467名称未設定:05/01/06 09:34:17 ID:l65dp0ju
>>465
おー。そんな書き方ができたんですか。
何かオブジェクト指向っぽい?(←わかってない)
468名称未設定:05/01/06 12:35:42 ID:wXcKn9Iw
tabも追加できるよ

tell application "Safari"
  
  〜

activate
tell application "System Events"
tell process "Safari"
click menu item "新規タブ" of menu "ファイル" of menu bar 1
end tell
end tell
end tell
469名称未設定:05/01/06 14:12:52 ID:l65dp0ju
>>468
GUI scriptingでんな。
漏れジャガーやさかい使えませんのや。
使いたいー!o( ≧ _ ≦ )o

>>465
別スレで、SafariでURLを開く別の方法を書いてる人が居たので書いておきます。

tell app "Safari"
open location "URL文字列"
end tell

でいいんだって。
470名称未設定:05/01/06 15:07:44 ID:wXcKn9Iw
>>469
残念!

残念ついでにFirefoxのタブ追加のファンクション。すまん
on AddNewTab2Firefox(theURL)
set the clipboard to theURL
tell application "Firefox" to activate
tell application "System Events"
tell process "Firefox"
key code 17 using {command down} -- cmd + t
key code 37 using {command down} -- cmd + l
key code 9 using {command down} -- cmd + v
key code 76 -- enter
end tell
end tell
end AddNewTab2Firefox

Firefoxが起動済みで、ブラウズウィンドが一番上にいないと上手く行かないorz
もっといいのがあったら教えてほすぃ
471名称未設定:05/01/06 15:26:51 ID:U6kxFFM+
safariでgoogle検索すると
http://www.google.com/search?q=検索語
の様になるのを
http://www.google.co.jp/search?q=%E6%A4%9C%E7%B4%A2%E8%AA%9E
の様にエスケープしたいのだけど、perlの部分がさっぱり解らないので誰か教えて。
do shell scriptを使ってperlに渡して
http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape
こんな事をするまでは思いついたんだけど文が書けない…。
472名称未設定:05/01/06 16:05:04 ID:ai60fai5
>>471
それはURLエンコードといいます。
packとかunpackを使うんだったような。
473名称未設定:05/01/06 16:16:55 ID:ai60fai5
つか、書いてあるね。
つか、何が分からないのか分からないよ。
これが分からないということかな?
(下記は意味なし)

set str1 to "あんまき"
set str2 to do shell script "echo " & str1 & " | nkf --mac | " & "perl -e 'while (<>){print $_;}'"
474名称未設定:05/01/06 16:19:46 ID:bzw1F3Mh
>>471
スクリプトでSafariからURL取るとエスケープされてましたよ。
tell application "Safari"
set theURL to URL of document 1 as Unicode text
set theWord to do shell script "perl -e '$_=\"" & theURL & "\"; /q=([^&]+)/; print $1;'"
set theGoogleURL to "http://www.google.co.jp/search?q=" & theWord
set the clipboard to theGoogleURL
--open location theGoogleURL --デコードされて表示される
end tell

なのでこれは必要なかった
set theWord to "まっく"
set theEncodedWord to do shell script "perl -e '$_=\"" & theWord & "\"; s/([^0-9A-Za-z_])/\"%\".unpack(\"H2\",$1)/ge; s/\s/+/g; print'"
open location "http://www.google.co.jp/search?q=" & theEncodedWord
475名称未設定:05/01/06 16:53:35 ID:l65dp0ju
すいません。便乗質問していいですか?
>>471の書き込み見て自分も一所懸命やってたんですが、
Perlのシンタックスエラーになっちゃうみたいでダメなんです。
よかったらどこがおかしいか教えてください。m(_ _)m

tell application "Safari" to set aURL to URL of document of window 1

set aURL to do shell script "PERL_BADLANG=0;export PERL_BADLANG;perl -we \"$str = '" & aURL & "';$str =~ s/(\\W)/'%' . unpack('H2', $1)/eg;print $str\""

まじまじと眺めて比べても"と'の使い方が逆?くらいなんですが・・・。
めっちゃ基本でしょうか。すいません。
476名称未設定:05/01/06 17:59:52 ID:o5YUh2G/
>>469
ジャガーでも使えるよ。
477名称未設定:05/01/06 19:11:51 ID:l65dp0ju
>>476
何かインストールしないとダメじゃなかったですっけ?
今のままだと>>468とかコンパイル通りません。
478名称未設定:05/01/06 19:16:39 ID:1EgfsqrS
10.3が出てβ版の公開も止めたから無理だろ。
479473:05/01/06 19:23:06 ID:x5ASSsWi
>>475
クオートとエスケープがめんどくさいね。

tell application "Safari" to set aURL to URL of document of window 1
set aURL to do shell script "PERL_BADLANG=0;export PERL_BADLANG;perl -we '$str = \"" & aURL & "\";$str =~ s/(W)/\"%\" . unpack('H2', $1)/eg;print $str;'"
480名称未設定:05/01/06 19:24:59 ID:o5YUh2G/
>>477
>>478
10.2.8とかなら標準で入って無かったっけ?
システム環境設定>ユニバーサルアクセス>補助装置にアクセスできるようにする
で出来ない?
481名称未設定:05/01/06 20:02:15 ID:l65dp0ju
>>480
ユニバーサルアクセスでチェックしてから構文確認してみたけどだめでした。
再起動が必要なんですかね?

CoreServicesにはSystem Events 1.1.2が入ってます。
用語は
Standard Suite、Text Suiteってのがまあ普通にあって、
Disk-Folder-File Suite、Folder Action Suite、Power Suite(電源関係)、Processes Suiteと来て
次にSystem Events Suiteってのがありますが、do scriptとapplicationだけ。
最後にLogin Items Suite。
482名称未設定:05/01/06 21:00:28 ID:l65dp0ju
>>479
ほんとに面倒くさいのにチェックありがとうございます。

なんか色々試してみたら、
do shell script "perl -e \"$str = 'abcd'\"" --エラー
do shell script "perl -e '$str = 'abcd''" --OK

ってところまでしぼれたんですが、何で上がエラーで下がOKなんでしょう??
ターミナルでは
% perl -we "$str='abcd'"
とすると、str: Undefined variable.

?????
483名称未設定:05/01/06 21:35:14 ID:EEAVD+jS
Terminalスレの気温野郎と同じくウゼェ
484名称未設定:05/01/06 21:44:41 ID:M3mQkVIX
>>482
(゚д゚) ポカーン
485名称未設定:05/01/06 21:57:38 ID:l65dp0ju
(´・ω・`)ショボーン
486名称未設定:05/01/06 22:12:02 ID:M3mQkVIX
(・∀・) ユッテミタダケ
487471:05/01/06 23:27:42 ID:U6kxFFM+
ワカラネェヨウワァン>匙投げ な質問に丁寧に答えてくれて
ありがとうありがとうとってもありがとう。後でいじってみます。
ちなみにどういう使い方をしようかと思ってたのか説明すると
自分はあるIRC(chatみたいな物)の部屋に常駐してるのですが
グーグルの検索結果とかwikipediaとかのURLをIRCに投げると
windows側のブラウザだと日本語のurlだと駄目みたいで
エンコードしてから送りたかったってだけなんです。
解らないってのはperlがさっぱり解らなかったのと返り値とかどーすんだって事だったのです。
長文レス失礼しました、ホントありがとう。
488名称未設定:05/01/07 01:21:06 ID:c4MmNJWB
>>482
>% perl -we "$str='abcd'"
>とすると、str: Undefined variable.

シングルクオートじゃないと「シェルが」$strをシェル変数として展開しよう
とするから。以下をターミナルで試してください。=の前後は空白を開けてはだ
めです。

str="abcd"
echo "$str dayo"
#↑$strが展開される
echo '$str dayo'
#↑$strが展開されない
489名称未設定:05/01/07 01:24:27 ID:c4MmNJWB
>>471 >>482
do shell scriptを使う人は全員ここを読んだ方がいいよ。非常によいドキュメ
ントです。というか、読まないとマトモに使えないでしょう。

http://developer.apple.com/ja/technotes/tn2065.html

「quated form of」や「quated form of the POSIX path of〜」、文字コード
なんかの重要テク満載。

ただ、with administrator privilegesを使った管理者権限でのスクリプトの実
行は、セキュリティの問題でできなくなったんだっけな? 使ったことがないの
でよく分からない。もしできなかったら、そうらしいということにしといてく
ださい。

また、do shell scriptを使うなら、少しはShell Scriptを勉強しましょう。以
下を読んでください。Shell Scriptの知識は一生物なので損しないですよ。

http://www.tsden.org/takamiti/shText/
本ならISBN4-7973-2194-6
490名称未設定:05/01/07 11:15:46 ID:MWuih740
>>488,489
めちゃめちゃありがとうございます!

シェルが変数を展開!そうかー・・。
普通にTerminalで打ち込んだ時もシェルスクリプトと一緒ですよね。
perlに引数として渡すものだからperlだけが解釈するんだとしか考えてませんでした。あほだ。

という事は、>>482の上の文も、do shell scriptで呼び出されたシェルにとって展開すべきだけど値のない変数を含んでるからエラー?

必要な事は調べながらやってるつもりだったのですが、全然足りなかったようです。
Googleに頼りすぎてAppleのそのページの事も忘れてました。
orz 勉強します。
491名称未設定:05/01/08 09:05:54 ID:jLt9Z+bf
>>481
Dec 2002 Mac OS X Developer Tools に入っている、
System Events 1.2 でないとダメみたいですね。
ただし、300MB・・・
気が向いたら Developer (フリー) になってDLしてください。
492名称未設定:05/01/08 12:00:33 ID:KINJa0I2
>>491
すいません、援助を求めるような書き方をして、フォローを忘れてました。

その後Googleで検索してたらβ版の10.2向けGUI scripting対応System EventsのUIscriptingbeta.sitをダウンロード出来るところを見つけました。
ある日本語のページから、何故かダウンロードできます。(汗
でもファイルのURL自体は
www.apple.com/applescript/GUI/
から始まっているので、サーバから消去し忘れたものなのかも??

あと10.2のパッケージを購入してたのですが、
その中のDev ToolsのCD-ROMにオマケとして入ってるみたいでした。

調査&レスありがとうございます。
いちおーADCのメンバーなんですけど、パスワードとアカウントどこに書いてたかなw
493名称未設定:05/01/08 16:13:23 ID:KINJa0I2
10.2.8
choose fileで決めた名前でテキストファイル開いて短い文を書き込んで閉じる
という簡単なスクリプト。
再帰呼び出しとかループとか全然無いんですけど
なぜかスタックオーバーフロー・・。
他にも同じような経験した方いらっしゃいますか?
494名称未設定:05/01/08 17:06:58 ID:8m+pPYhF
ファイル書き込みはけっこうコツがいる。
様々な場面に対応して安定して書き込める書き込みサブルーチンを作るのは大変だよ。
とりあえず、今書いているスクリプトの一部でも上げてみては?
495名称未設定:05/01/08 17:30:05 ID:KINJa0I2
>>494
レスありがとうございます。
>>493原因わかりました。
てっきり書き込みの部分でエラーと思っていたのですが、
書き込んだ後にそのファイルのファイルタイプ・クリエータをFinderで設定する所でエラーになっていたようです。
(try構文にひっかからないのでおかしいとは思ったんですが)

『choose file name』の返り値が『file "Mac形式のフルパス"』
なので、これを『as alias』でエイリアス型にしてから
(ひょっとして、この段階で作られたファイルの存在も認識される?)
Finderに渡したら大丈夫でした。

基本的な事だよなーと思いつつ、以前のOSでもこうだったか思い出せない・・。
AppleScriptリファレンスによると、旧OSでの
『choose file』の返り値はalias型のようです。
移植の障害になるかも?
496名称未設定:05/01/08 21:25:13 ID:LzXH+nMC
choose fileとchoose file nameは全然違うもんだろう
497名称未設定:05/01/09 02:16:11 ID:JApCHH+h
あれ?OS Xにもちゃんと『choose file』ありますね。
古いコードの流用で手抜きしたのがまずかったか。
orz
こんなんばっかや。スレ汚しすいません。
498名称未設定:05/01/09 12:52:42 ID:FVszgUCx
ファイル書き込みがめんどいので
do shell script & touch を使っちゃう俺は負け組
499名称未設定:05/01/09 13:15:50 ID:JApCHH+h
>>498
touchって知りませんでした。ありがとう。

今調べたらtouchって空のファイルを作るだけみたいですけど?
テキストファイルだったら、
echo 'なんとかかんとか' > foo.txt
で新規ファイル作って書き込みまで一発でできますよね?
500名称未設定:05/01/09 13:24:17 ID:FVszgUCx
>>499
いま見たらecho使ってたスマソ。
自分の書いたサブルーチンの内容も覚えてない負け組・・・
501名称未設定:05/01/09 13:41:40 ID:JApCHH+h
ひょっとして、書き込み用のサブルーチンとかライブラリ化してるんですか?
漏れもそういう事しないといかんなーと思いつつ、
テキトーに昔のスクリプトを検索で見つけて
開いてコードをコピペという原始的な事をしてます。

touchはtouchで使い道があると思います。
えーと確かIEか何かでファイルをダウンロードさせる時に
指定先に空ファイルが必要だった気が。
502名称未設定:05/01/09 15:40:47 ID:SNbTZcg7
読み書きのサブルーチンはライブラリ化するべき。
書き込もうとしたらボリュームがロックされていたり、書き込み途中でボリュームがいっぱいになったり、いろいろなハプニングがある。
場合によってはそのままファイルがopenされたままになって次に開けなくなるなど、トラブることがある。
それらに対する対処をぜんぶ盛り込むと読み書き命令はかなり長いサブルーチンになる。
独立したサブルーチンとして使い回ししやすくする方が賢い。
503名称未設定:05/01/09 15:54:23 ID:A+ufYLLP
読み書きにはopen/close不要のOSAX使ってる。
エラー処理も殆ど必要なくて便利です。
504名称未設定:05/01/10 03:40:15 ID:V5GsB8UW
>>502
>書き込もうとしたらボリュームがロックされていたり、
>書き込み途中でボリュームがいっぱいになったり、
>いろいろなハプニングがある。

うわ。そういうのマジメにやった事ないや・・。
他人のコードは見た事ある気がするけど。
エラーコードで分岐ですかね。
今のとこ大ざっぱにtry構文で囲んでエラーがあったらcloseさせてるだけっす。

そういえばAppleScript Studioにはファイルの読み書き用のハンドル?が用意されてるみたいで、
それを使えば安全にできそうな気もするんですが、
いまいち使い方がわからない。
505名称未設定:05/01/10 21:40:26 ID:V5GsB8UW
10.2.8でAppleScript Studioで作った
多ブラウザ対応のブックマークユーティリティーです。
ttp://mac.oheya.jp/up/src/macroom0348.gz

10.3.7の方に試してみていただいたところ、
ブックマークを開いた後にアプリが落ちるそうです。
クラッシュログもいただいたのですがわからなくて・・。

とりあえず関係ありそうなところを
ignore application responses
でくくってみたんですが、どうでしょう。

どなたかに試用していただけると幸いです。
506名称未設定:05/01/11 07:21:55 ID:RvfmBlcs
前のversionと同じ挙動で落ちます。
507名称未設定:05/01/11 10:12:11 ID:yurdvSaa
>>506
またまた報告ありがとうございます。

ありゃ(ずこ
何で複雑なブックマーク作成はOKで単純なブックマーク開くがダメなんだろ・・。

速度犠牲にしてブラウザ別の命令に分岐した方がいいのかなぁ。
508名称未設定:05/01/11 15:03:38 ID:nIBENIiR
1 + 1
509名称未設定:05/01/12 02:01:13 ID:CDPbrQ0m
ドットシンタックスで参照したい...
510名称未設定:05/01/12 02:46:01 ID:WdZ69FPS
確かに 〜 of 〜 of って参照は表記が冗長ですよね。
メソッド等との区切りも視覚的に分かりづらいし。
あと、親子の順序が逆なのものヤですね。

Child --> Parent (AppleScript)
Parent --> Child (ドット記法)

DashboardのWidgetもJavaScriptで書くようだし、
いっそのこと、OSAにJavaScriptが使えるようになるといいのに。
でも対応アプリが無いことには意味無しか。
511名称未設定:05/01/12 03:07:20 ID:WZ1UA0Js
>>510
例えば、
ttp://www.latenightsw.com/freeware/JavaScriptOSA/

スクリプタブルアプリケーションは自分が扱えるオブジェクトを
辞書として公開し、OSAとAppleEventを使って交信するだけ。
だから、OSAの先の言語がASかJSかとかは関係ない。
オブジェクトが表記・操作できるような言語なら
OSAに組み込める可能性はある。

前からとか後ろからとかは、言語の問題でOSAの問題じゃない

512名称未設定:05/01/12 04:24:05 ID:UAHJFjiH
510はコンファブのウィジェットいじった事あるのかなと。
513名称未設定:05/01/12 05:13:53 ID:WdZ69FPS
>>511
既にあったのですね……。
つーか、自分、Late Night Software社員を名乗っていたものです……。

なるほど。Scriptableなアプリケーションというものは、
OSAに対応しているというだけで、
特にAppleScriptに束縛されているわけじゃないのですね。
OSAの実体は、AppleEventによるアプリケーション間通信の仕組みだと。

>前からとか後ろからとかは、言語の問題でOSAの問題じゃない

これは承知しています。

>いっそのこと、OSAにJavaScriptが使えるようになるといいのに。

のくだりは、言葉通り、AppleScript以外のOSA対応言語(?)があれば解消できる
問題という意味で言っています。

そういう意味じゃ、OSA+JavaScriptってなかなかいいじゃないですか!
JeditだろうがFinderだろうが、JavaScriptで制御できるってことですよね。
障壁が高くなって、人に使ってもらうのは望み薄になりますけどね。

>>512
いんや、ないです。
しょぼいエージェントでも作ろうかな、と思いましたが、
グラフィックを用意するのがめんどくさくて萎えました。
登録してないし。

514名称未設定:05/01/12 05:27:25 ID:UAHJFjiH
前はクイッキーズか何かも独自のOSA対応言語を搭載してなかったっけ?
何か違うような気もするが・・。
うーん。
ユーザーランドなんたら言うのは何だったっけ。
515名称未設定:05/01/12 20:29:11 ID:xusk0ph1
現在開いているウインドウのIDや名前などを取得/命令の送信って
AppleScriptでできませんか?
516名称未設定:05/01/12 20:49:07 ID:Oxx0AkgQ
できるでしょ?
517名称未設定:05/01/12 20:58:59 ID:HmlJEPMl
アプリケーションの用語にもよるけど。
Panther なら System Events でも取れるかな。
518名称未設定:05/01/12 21:03:50 ID:oka9PPG4
>>510
parent's child
519名称未設定:05/01/12 23:29:19 ID:UAHJFjiH
front most なapplicationを調べられるけど、
その答えにAppleScript自体が返って来ちゃったり。w
520名称未設定:05/01/12 23:31:40 ID:MzPVJ2a8
ユーザーランド・フロンティアもOSA対応言語だったよね。
使ったことなかったけど。
昔はけっこうAppleScript以外のOSA対応言語があったよね。
AppleScriptにも日本語とかフランス語とかあったし。
なつかしー
521名称未設定:05/01/13 00:54:19 ID:ugV7KcoW
日本語から入ったからしばらく両刀だった。w
って懐かし話してる場合じゃないや。

こないだ今一番手前に出てるアプリ(or ウインドウ)を調べようとして
>>519な感じだったんですけど、
何か解決策ありますか?
522名称未設定:05/01/13 01:21:33 ID:ywey2I13
スクリプトエディタから動かしてるかぎり、どうにもならんかと。
523名称未設定:05/01/13 02:09:37 ID:ugV7KcoW
いやえーと、アプリ形式で保存してもそうなるでしょ?
起動したら前に出ちゃうから。
自分を下げる命令とかあったらいいんですけど、
他のをアクティベートするしかないわけで、
そしたら「今一番前のを知りたい」という目的に合わないですよね?

スクリプトメニューから実行すると大丈夫なのかな。
でもアプリじゃないと困る事もあるわけで・・。
ほかに手はないですかね。

OS Xになってウインドウばらばらになったから
今のウインドウの順番をリストで取得とかできるようにならないかな・・。
リストだったら自分自身は取得後に消せばいいわけで。
524名称未設定:05/01/13 02:32:02 ID:ZDc2IX21
>>523
クドクドと言い分けじみたことを並べるより、ストレートに何がしたいか
つまり何故最前面アプリを調べたいか言うほうが良い
525名称未設定:05/01/13 06:18:22 ID:TuX+SZv8
>>523

>>303 で書いたやつを参照のこと。
on idleハンドラからならfrontmostをチェックできます。
iKeyからの起動でも、frontmostをチェックできました。
RealBasicで、ウインドウをGlobal Floting Windowに設定し、
例えば以下の内容のAppleScript(ファイル名frontmosttest)を作り、プロジェクトに投げ込み。

tell application "Finder"
return (name of (every application process whose frontmost is true) as Unicode text)
end tell

ボタンとEdit Fieldを一つ作り、ボタンのActionイベントに以下のように書い
ておきます。

Sub Action()
dim var1 as String
var1 = frontmosttest
EditField1.text = var1
End Sub

これでビルドしてボタンを押せば、きちんとfrontmostが取得できますね。
自分自身のfrontmostがtrueにならないGlobal Floting Windowならではの芸当です。

Script Menuからだと、frontmostはSystem Eventsになりますね。

使用目的にもよりますが、現状一番有望なのはiKey経由の起動でしょうか。

あとはちょっとやってないですが、何かに対して(Dock?)System Eventsで
Command + Tabを発行してからdelayかけて、取得するっていうのはどうですか。
526名称未設定:05/01/13 15:28:06 ID:ugV7KcoW
>>525
レスありがとうございます。

なるほど。Rbでそんな事ができるのですね。
残念ながらRbはとても古いのしか持ってないのですが、
手があるとわかってうれしいです。

AppleScript Studioで同じような事できませんかね。
Global floating Windowは作れないですよね。

on idle回しっぱなしは重いかなーと思うんですが、そんな事もないですか?
5秒間隔にしててもその間隙にユーザーが切り替える可能性もあるのがちょっと痛いですね。

ありがとうございました。
527名称未設定:05/01/14 01:03:11 ID:o7cKmW2A
>>526
>AppleScript Studioで同じような事できませんかね。
>Global floating Windowは作れないですよね。

何度かこのスレで質問してますが、どなたもご存知ないようです。
>>257 >>275 >>318
>>257で出してるAppleのAppleScript StudioのMLにおいて話題が
出てます。

さらに詳しい話題が、以下のスレッドで出てます。
http://lists.apple.com/archives/applescript-studio/2004/Nov/msg00040.html

ここにある処置をほどこすことでfrontmostに影響を及ぼさないUtility
Windowを実現できるようです。目的次第では、これで十分かもしれません。

ただ、この処置を施しても、ウインドウをクリックすると、メニューやキー入
力送信先がAppleScript Studioアプリに移ってしまうらしく、完全なるGlobal
Floating Windowの実現はAppleScriptだけではダメで、Cocoaとの
(Objective-Cとの?)コンボ(複合記述のことだと思われる)が必要になるとの示
唆があります。回答者も示唆しっぱなしで、その詳しくはMLでは語られていま
せん。質問者も結局100%の解決を見ずじまいなようです。
528名称未設定:05/01/14 01:07:07 ID:o7cKmW2A
一つ目のスレッドの質問者は日本人で、シグネチャにURLも出ているので、聞い
たら何か分かるかも。

Global Floating Windowを実現できるかもしれないソリューションがもう一つ
あります。それはFaceSpanです。MacOS9時代のFaceSpanは、それを簡単に実現
できたそうです。

http://www.facespan.com/facespan/pagespeed/url/features4.0/

これを新たに買ったり覚えたりするよりはREALbasicの方がいいや、ということ
で、自分は試用してません。

これ以上は>>526さんが何をしたいのかを推察する情報が開示されていないので、
on idleによる手法がいいとか悪いとか、答えようがないですね。
529名称未設定:05/01/14 07:09:32 ID:21e8pPms
自身のprocessをfrontmostに出したくなければ、plistでNSUIElementか
LSBackgroundOnlyを指示すれば良い。

tell application "Finder"
set frontApp to item 1 of (processes whose frontmost is true)
end tell
tell frontApp
name of windows
end tell
みたいにすればfrontmost processを参照できるが、C/C++でProcess Manager
とAppleEventを使ってちゃんとしたコードを書いた方が良い。AppleScript
で書く方が難しいし、安定して動かない。
530名称未設定:05/01/14 11:57:39 ID:OaTTOcBT
>>527
おお!興味深い情報。英語・・・。がむばって読みます。
>>528
今すぐ何かしたいというんでもないのですが、
たまに使いたくなってはあきらめるという繰り返しというか。

たとえば、最前面のアプリケーションに対して補助パレット的に働くようなものとか。
まぁ相手が明確ならそのアプリに対してtellすればいいんですが。
〜というアプリが最前面なら何かするとか。

>>529
> plistでNSUIElementかLSBackgroundOnlyを指示すれば良い。
をを!?
アプリ/Contents/Info.plist
???
いじる所がわかってない時点で触る資格なし??
orz

おー。検索すると何か色々出てきました。OMEの開発陣のお話とか・・。

> C/C++で〜ちゃんとしたコード
そんな能力があれば・・・。
(´・ω・`)
531名称未設定:05/01/14 23:50:22 ID:ks/+DBO/
>>529
それらを施してなおキーイベント送信先やメニューが
AS Studioアプリに切り替わってしまうので、
GUI Scriptingが使えないことになります。

>>530
plistはXcodeのターゲットの中にあります。
Windowsのレジストリエディタで新しいキーを作るようにして設定します。

この辺が理解不能かつRbもFSも眼中にないなら、
iKeyを使うことをおすすめします。
Global Floating Toolbarから
ボタンでAppleScriptを起動することも可能です。
特定のアプリがfrontmostの場合だけ
Toolbarを表示させるということも可能だったはずです。

あ、でもこれも日本語のドキュメントが皆無か。
532名称未設定:05/01/16 15:44:35 ID:ApFVuSDE
スクリプトでなくても構わないのですが、ディスプレイだけをスリープさせる方法はないでしょうか。
寝る前にiTunesを再生したあと、しばらくディスプレイがつきっぱなしになってしまうので…
御存知の方いませんでしょうか。
533名称未設定:05/01/16 15:59:57 ID:b2dqR9y4
>>532
システム環境設定>省エネルギー設定>カスタム>ディスプレイがスリープするまでの時間を別に指定する

iBookやPowerBookならF1の明度ボタンで暗くする。
外付けのディスプレイならディスプレイの電源だけ切ってしまう。
534その1:05/01/16 18:32:38 ID:sr+u6daI
property DimValue : "" --"モニタのスリープまでの分数格納変数"
global PW --"管理者パスワード"
set PW to "password"
if DimValue is "" then
set DimValue to my getDimValue()
my changeDisplayDialog("1")
my changePmset("1")
else if DimValue is "1" and my getDimValue() is "1" then
my changeDisplayDialog("20")
my changePmset("20")
set DimValue to "20"
else
if my getDimValue() is not "1" then
if (my getDimValue()) is not equal to DimValue then
set DimValue to my getDimValue()
end if
my changeDisplayDialog("1")
my changePmset("1")
else
my changeDisplayDialog(DimValue)
my changePmset(DimValue)
end if
end if
535その2:05/01/16 19:02:06 ID:sr+u6daI
on getDimValue()
return (do shell script "pmset -g disk | awk '/dim/ {print $2}'")
end getDimValue
on changePmset(timeToDim)
get "sudo pmset -c dim" & space & timeToDim
do shell script result password PW with administrator privileges
end changePmset
on changeDisplayDialog(timeToDim)
display dialog ("モニタのスリープまでの時間を" & timeToDim & "分に設定します" as Unicode text) buttons {"OK"} giving up after 2
end changeDisplayDialog

その1とその2を合体させてください。モニタのスリープまでの時間をトグルで
切り替えるスクリプトです。

System Preferencesは実質Scriptableじゃないので、GUI Scriptingをせざるを
得ないようです。

pmsetというコマンドがあるので、それで設定してやります。今の設定が30分な
ら、1分と30分を実行するたびに交互に設定します。1分以下とか、即時にモニ
タを消すことはできなさそうです。元の設定が1分だった場合、20分と1分を交
互に設定するようにしてます。省エネルギー設定で設定を変更した場合、次か
らその新しい値と1分とを交互に設定します。
536名称未設定:05/01/16 19:40:47 ID:b2dqR9y4
>>535
pmset -g diskなのは理由があるのでしょうか?
これだとノート型だとAC電源の場合とバッテリーの場合の2通り表示されます。
awkは詳しくないのでどっちの結果を拾うかわかりませんが。
pmset -g か pmset -g live なら現在使用中の設定が出ると思います。
537名称未設定:05/01/16 20:03:46 ID:sr+u6daI
>>536
特に意味は無いです。ネタ元はapplescript-users mailing listで、そこに載っ
てたのをコピペしたというだけの話です。とりあえず動くし、自分じゃ使わな
いのでぶっちゃけ調べは適当です。

http://lists.apple.com/archives/applescript-users/2004/Aug/msg00017.html

iMac G5なので、いずれの場合もdimは一つしか表示されないです。
538名称未設定:05/01/17 19:38:08 ID:UoyTYoys,
すいません質問です。
AppleScriptからクリッピングファイルを作るにはどうしたらいいのでしょうか。一応
以下のようにするとファイル自体は出来たのですが、これだけでは中身が無いようです。

tell application "Finder"
make new clipping to "hogehoge"
end tell

それと、出来ればテキストクリッピングだけでなくピクチャクリッピングというものも
作りたいのですが、これは可能でしょうか?(実はそもそも見た事ない>ピクチャクリッピング)
539名称未設定:05/01/17 22:46:25 ID:0f4TU0z4
>>538
OS9だとTanaka's osaxのMT Write Clippingでテキストもピクチャも(URLも)出来ますが。
540名称未設定:05/01/17 23:37:23 ID:UoyTYoys
>>539
レスありがとうございます。
環境書き忘れてましたすいませんOS X 10.3.7です。
ググったらこのスレが出てきたりしましたorz >>226で既出だった。。。
Tanaka's osaxというのはOS Xでは無理なのですね……これは残念です。
541名称未設定:05/01/20 23:11:36 ID:CErtLa24
煮詰まってます。

do shell script "curl 'http://www.google.co.jp/'"

これだけのスクリプトが、
『一部のデータを目的のデータ型に変換できません』となり実行できません。
なぜ???
542名称未設定:05/01/21 00:11:48 ID:e6i+sJr3
>>541
試したけど普通に実行できてダウンロードもできてhtmlもげっとできた@OS X 10.3.7
543名称未設定:05/01/21 00:46:03 ID:wBJmQOuD
PopUp Buttonで現在選択されているアイテムの項目名を取得するにはどうすればいいんですか?
544名称未設定:05/01/21 01:09:18 ID:bkZIOcof
ここで聞いていいのかな、スレ違いでしたらスマソ
テキストから四百字詰の枚数を換算するAppleScriptってありませんかね。
545名称未設定:05/01/21 01:27:20 ID:gH5JIHoV
546名称未設定:05/01/21 01:37:44 ID:bkZIOcof
ども、助かります。
いい機会だし勉強してみよ
547名称未設定:05/01/21 01:42:46 ID:bkZIOcof
ありゃ、開けない
……AppleScript本買ってくるかな
548名称未設定:05/01/21 05:02:48 ID:ASsM4AEP
>>542
レスありがとうございます。
どうもdo shell scriptの最終的なリザルトがUTF-8じゃないとエラーになる模様。
10.2.8
549名称未設定:05/01/21 05:04:56 ID:ASsM4AEP
>>544
いわゆる2バイト文字である日本語と半角アルファベットが混じったテキストの字数を数えるのはけっこう面倒な気がします。
字数数えてくれるエディタなかったかな。
550名称未設定:05/01/21 05:56:12 ID:2o7SY2N4
TextInfo.osax
551名称未設定:05/01/21 06:23:25 ID:o/80F/KU
これでいいのかな。シングルバイト文字もマルチバイト文字も1文字と数えます。

--クリップボードをUnicode textとして取り出し(Unicode textじゃないと化ける)
set myClipboard to ((the clipboard) as Unicode text)

--クリップボード内の行数を出す=改行コードの数
set CountOfParagraph to (count of every paragraph of myClipboard)

--クリップボード内の文字をバラバラのリストにする
set myEveryCharacter to every character of myClipboard

--文字数を数え、そこから改行コードの数を引く(改行コードも1字として数えられるので)
set numberOfCharacter to ((count of myEveryCharacter) - CountOfParagraph)

--さらに400で割り、小数は繰り上げ。
set DivBy400 to (numberOfCharacter / 400.0)
set numberOfWritingPad to round DivBy400 rounding up
set midStream to (numberOfCharacter mod 400) / 400 * 100

--1文字でもオーバーしたら1枚と数える
if DivBy400 < 1 then
display dialog "ただいま原稿用紙 " & (numberOfWritingPad as Unicode text) & " 枚以下です。" & return & "(" & numberOfCharacter & "文字 / " & midStream & "%)"
else
display dialog "ただいま原稿用紙 " & (numberOfWritingPad as Unicode text) & " 枚です。" & return & "(" & numberOfCharacter & "文字 / 最後のページは" & midStream & "%)"
end if
552名称未設定:05/01/21 12:52:30 ID:MQc1eGXv
>>549
他のは知らないけどmiはバイトじゃなく文字で数えたと思うよ。
553名称未設定:05/01/21 13:35:28 ID:fxhOK5rr
>>551
わざわざどうも、とても参考になり助かります。
帰ったら色々挙動など調べてご報告します。
554名称未設定:05/01/21 13:58:57 ID:oumNNSO4
改行後の空白とか考慮するとなると段落ごとに処理しなくちゃならないね。
555名称未設定:05/01/21 14:19:42 ID:B7cXghTH
幅を二十字に設定したエディタに流し込んで行数を数える、とかが一番確実なような。
556名称未設定:05/01/21 14:24:51 ID:fxhOK5rr
まあそうなんだけど、ファイル数がだいぶ増えたのとWinにそういうツールが存在しててMacにないというのも寂しいなと思ってた物で。
一度自動化できれば人為的なミスも大部減りますし
557名称未設定:05/01/21 14:55:30 ID:BSPixBnQ
>>556
文字コードが固定しているのなら、段落ごとに20文字で割って
20行で割ってってやっていったらできますよ。
それほど難しくないと思うから頑張ってみたら。
558名称未設定:05/01/21 16:41:40 ID:P+EwWvKQ
on open theList
set theText to read item 1 of theList
set n to 0
repeat with i from 1 to count every paragraph of theText
set numberOfCharacter to count every character of (paragraph i of theText)
set n to n + numberOfCharacter div 20
if (numberOfCharacter mod 20) > 0 then set n to n + 1
end repeat
display dialog ((n div 20) as string) & "," & (n mod 20) as string
end open

on run
open (choose file) as list
end run
559名称未設定:05/01/21 21:44:22 ID:wevqu65C
>>558
そのままだと空の改行をカウントしないんじゃね?
5行めの後に
if numberOfCharacter = 0 then set n to n + 1

>>557
TEC OSAX入れるとテキストエンコーディングの判定と変換もできる
560名称未設定:05/01/23 23:12:13 ID:YU6TBoGB

http://www.warprecords.com/bleep/
このサイト、試聴するのにとっても便利なんですが30秒で一時停止してしまいます。
もう一度再生ボタンを押せば通して聴けるんですが、この動作をアップルスクリプトでできますか?
561名称未設定:05/01/24 00:41:46 ID:5R+fZ1VG
そこまで微妙なタイミングを要求される動作はちょっと無理ではないかと。
562名称未設定:05/01/24 04:12:41 ID:9zR/SnHH
>>560
僕お得意のon ildeネタ(w 意外と動作良好。
Script Editorで保存するときにアプリケーション形式を指定、
「実行後、自動的に終了しない」のチェックボックスをONにして保存。
GUI Scriptingを使う以上、キーコードを送る際、
Safariを最前面にしないと無理です。Mac OS X10.3以降必要。

--http://www.warprecords.com/bleep/ 試聴Helper
--再生/一時停止ボタンにフォーカスを合わせてから実行

on idle
tell application "Safari"
activate
delay 0.5
set myTarget to windows whose name contains ("BLEEP" as Unicode text)
set index of item 1 of myTarget to 1
delay 0.5
end tell
tell application "System Events"
keystroke tab
--delay 0.5
keystroke tab
--delay 0.5
keystroke return
end tell
--待機秒数 / 環境に合わせて調整
return 32
end idle

563名称未設定:05/01/24 04:15:12 ID:9zR/SnHH
>--再生/一時停止ボタンにフォーカスを合わせてから実行

Tabを押して、です。再生/一時停止ボタンが黄色くなったらGO!
564名称未設定:05/01/24 07:04:14 ID:5R+fZ1VG
うーん。わくわくするなあ♪
うまく行く事を祈る。
GUI scriptingでactivate待ちとかはdelayを使えばいいのか。勉強になりました。
565名称未設定:05/01/24 19:49:35 ID:oypLhcax
>>562
thx.
しかしTabでもopt + Tabでも選択出来なかったです。。
566名称未設定:05/01/24 23:53:45 ID:9zR/SnHH
>>565
一度プレイヤーのところをクリックしてからTabを押してください。
なんかもう、まるでダメ男君みたいだね。
567名称未設定:05/01/25 04:13:02 ID:ccE8xFrU
>>566
ありがとう。
できました。

>>562
ありがとう。
568名称未設定:05/01/26 08:41:59 ID:DcrUlE5Z
Pages、スクリプタブルじゃないじゃん……。
569名称未設定:05/01/26 18:44:42 ID:+yPaCxWS
ぱげすって何?
570名称未設定:05/01/26 21:06:52 ID:uHC6uZmr
>>568
うっわー。
Pages自体どうでもいいんだけど、
それをきっかけにスクリプタブルじゃないソフトが幅を利かせたりしたら嫌だねえ。
571名称未設定:05/01/26 21:16:41 ID:zRdMYf2+
AppleとしてはこれからはAutomator用のアクション対応に力を入れるんじゃないの?
572名称未設定:05/01/26 21:26:48 ID:6ZCI/DB6
AutomatorのアクションってAppleScriptでも自作出来るとかじゃなかったかな。
下手に対応させないとAutomatorの首を絞めるかも。後々対応させるのでは?
573名称未設定:05/01/26 22:14:04 ID:ZrbI+GPE
あれ、乙女タソってAppleScript自動生成じゃないの?
574名称未設定:05/01/26 23:27:19 ID:uHC6uZmr
>>573
そうだといいなとは思ってます。
ADC会員で早く使ってる人は何も言えないだろうしなあ・・。
Appleから公式にそのへんのコメントないかな。
575名称未設定:05/01/26 23:45:35 ID:DcrUlE5Z
>>570
まさにそういうことだね。
EGWordはAppleScriptへの対応ぶりがショボいし……。

Wordはちゃんと取り組んだことがないけど、MSアプリのAppleScript対応機能は
バギーだとMARo氏が書いてたな。

ところで、MARo氏って「これこれ、こういう方法を発見した」だの書いておき
ながら、具体的なことを書かないんだよね。
576名称未設定:05/01/27 07:36:20 ID:aPm7gDSr
>>575
> MSアプリ〜バギー
そうなんだ。
でも対応はいい方ですよね。使える命令多いし。
漏れはIEくらいしかいじらんですけどOE関係のスクリプトなんかも一時期は多かったような。
WordはVBのマクロをちょこっと触った事しかないな・・。

AppleScriptは実行専用にするとソースが隠せる事もあってか
昔からけっこう秘密主義の人も多いですね。
あまり整った言語ではない?ために直球ではできない事やわかりづらい事も多いので、
そこをどうにかする変則的なノウハウのようなものも生まれてくるし。
オープンにしちゃうとシェアウェアとか商売でやりたい人は困るんでしょうけど、まだまだ小規模なコミュニティーだと思うしオープンにしてほしいよなと思う事もしばしば。
有償であっても書籍などの形で公開してくれればまだいいんですけどね。
577名称未設定:05/01/27 18:48:15 ID:4XTbR5mz
流れぶった切ってちょっと質問です。
環境はOS Xなんですが、Finderのentire contents命令って何かバグとかありますか?
ググったらそれっぽい記述があったんだけど、どうもその情報自体古いみたいで……。
578名称未設定:05/01/27 21:04:03 ID:+NpEMX5w
579名称未設定:05/01/28 05:23:24 ID:uh1bNbrD
KonfにならってJavaScriptを標準にしてしまった方がいいような
580名称未設定:05/01/28 07:33:03 ID:p1w7CzEl
>>578
リンクありがとうございます。
AutomatorはASの自動生成をしてくれるインターフェースってわけではなさそうですね。
これはマジでASピンチ?

>>579
ずーっとそれ書いてますけど(別の人ならスマソ)WindowsでWSH使った方が幸せなのでは?
漏れはAS覚えた事を無駄にしたくない&ASはラクで(・∀・)イイ!と思ってるのでMacを使い続けてるんですけど。
581名称未設定:05/01/28 11:35:50 ID:b6oxW9te
漏れもJavaScriptだったら覚えていなかったと思う。
582別の人:05/01/28 13:45:41 ID:kOGmW4li
>>580
実際どっちも使ってるんで、すすめられるまでもない。
こと、MacについてはAppleScriptにどうにかなってもらわなければ解決になら
ないわけで。
でもそんなにずっと書いてるかな? 一回話題にしただけだけど。
配列、連想配列と正規表現のサポートは、普通にうらやましいでしょ?
リストとレコードが配列と連想配列だけど、何かと使いにくいしなぁ。
OgreKit OSAX出ないかねー。
http://www-gauge.scphys.kyoto-u.ac.jp/~sonobe/OgreKit/#ToDo

Late Night SoftwareからOSA用のJavaScript落として使ってみたけど、
抽象化されているのはFinderの一部オブジェクトだけで、
ほかは全部アップルイベントを生書きするみたい。
そう甘い話は無いってことか。
583名称未設定:05/01/28 15:19:54 ID:p1w7CzEl
うーん。>>582さんはばりばり使ってるからこそ限界を感じるんですかね?
もちろんアプリごとの不統一だとかバージョンごとの細かいバグみたいなものとか標準での機能不足とか色々ASにしっかりしてほしい所はあるわけですけど、
だからといってJavaScriptで記述がメインになったからといってそれらが一気に解決するなんて事はありえないでしょうからね・・。

(正規表現っていうと文字列の検索とか置換とかでしょうか?
 漏れは文字列扱う時は昔からPerl呼び出して使ってるし
 それ用のOSAXもあるみたいですけど・・)
584名称未設定:05/01/28 15:34:02 ID:p1w7CzEl
(ああ、JavaScriptがいいっていう発言を何度も見た気がするのは
 別のスレでDashboard関係の話題が出た時にも書いてあったからかな・・。
 しかもその発言した人コンファブレーターのWidget作った事ないみたいだったし。
 あれって使いたい機能によってはASやShellScriptを呼び出して使うようになってるはず。)
585名称未設定:05/01/28 15:41:12 ID:c2xj6VuQ
>>583
フィルタ参照形式で正規表現が使えないかと思ってるんだよね。
586名称未設定:05/01/28 16:24:46 ID:p1w7CzEl
なるほど。それができたら便利そうかも。
587名称未設定:05/01/29 11:12:30 ID:adSmIe+r
俺はフィルタ参照自体よくわからん
何にたいしてどんなフィルタが実行可能なのかの一覧とか欲しいよほんとに
588名称未設定:05/01/29 13:19:34 ID:3EeyHq0Y
なんかFinderが悲惨みたいだね
589名称未設定:05/01/29 18:57:46 ID:t3TN3xE5
>>587
そのクラスが持ってるプロパティーで条件指定してフィルタかけるっていうのが基本なんぢゃないの?とおそるおそる書いてみる。
あるクラスは上位のクラスの属性を継承してたりするからそのへんわからんとあれだけど「AppleScriptリファレンス」とか、ネット上で公開してくれてる人が居る用語集とか見ると書いてありますよね。
釈迦に説法だったらごめんなさい。
>>588
現状でどんな問題があるかは知らないです。最近MLも見てないし。
590名称未設定:05/01/30 07:39:32 ID:WLZgYj6D
すみません、質問になります。
Snapz Pro Xというスクリーンキャプチャのアプリケーションの
動画でのキャプチャを自動化したいと考えています。

applescriptへの対応は微妙なので、ショートカットキーを押していくことで対応したいと思い、
とりあえず>>207を参考にして

tell application "System Events"
tell process "Finder"
keystroke "#" using {command down, shift down}
end tell
tell process "Snapz Pro X"
keystroke "4"
end tell
end tell

こう書いてみました。しかし、本当はビデオキャプチャ開始直前の状態までいってほしいのに、
Snapzのウィンドウが表示された時点で処理が一旦止まってしまいます。
プロセスとかウィンドウの優先順位の話だと思うのですが、あまり理解できていません。
どうすれば動くようになるでしょうか?
591名称未設定:05/01/30 17:48:59 ID:3fghS8oa
Snapz Proは、ほかのプロセスをストップしてるから無理ぽ。
試しに、Delayを書いてみると、
その後の処理はSnapz Proの支配下から逃れた後に実行されることが分かると思う。

tell application "System Events"
tell process "Finder"
keystroke "#" using {command down, shift down}
end tell
end tell
delay 1
display dialog "Test" as Unicode Text

Kinesisみたいにキーボードにマクロが付いてるやつを使えば、
こんなケースでも自動化できるけどね。
592名称未設定:05/01/30 23:34:08 ID:Gkkht6T/
虎の Automator おもしろそう。
サイト見たかぎりでは関数をブラックボックス化して組み合わせるみたいだから
フォーマットに従えば自作のスクリプトも使えそうだ。
593名称未設定:05/01/31 00:50:27 ID:R1ubLn1J
・AutomatorのAction(電子ブロックの部品みたいなの)は、AppleScriptと
 Objective-Cのどっちかで書くことになっている

・XcodeのActionタイプのプロジェクトに、AppleScript Automator Actionと、
 Cocoa Automator Actionがある。

・ActionはUIを持っているけれど、main.nibのviewをInterface Builderでエ
 ディットすることで作る。(AppleScript Studioでのノウハウが流用可能?)

つまり、AutomatorでAppleScriptが捨てられることは無いってことだ。むしろ、
桧舞台に上がったようなもんじゃない?

AppleScript Automator Actionでプロジェクトを立ち上げると、
以下のスケルトンが貼られてるみたい。

on run {input, parameters,}
set output to {}
if |ignoresInput| of parameters is false then
-- process input items into output items
end if
return output
end run

inputオブジェクトには、直前のワークフローのActionのoutputが大抵リスト形
式で含まれている。parametersオブジェクトにはActionのユーザーインター
フェースで作られたすべてのセッティングが含まれている。

Action終了時には、次のActionに渡すオブジェクトを返り値として用意する必
要がある。

だと。
594名称未設定:05/01/31 01:37:37 ID:bH+T6ZLE
情報漏洩 キタ━━━━(゚∀゚)━━━━!!!!
595名称未設定:05/01/31 02:04:49 ID:exUqoKA4
596名称未設定:05/01/31 02:41:44 ID:R1ubLn1J
Automatorは、Mac OS X Tigerのパワフルな新機能の一つ。プログラムすること
無しに、素早く、効果的に、楽々と、毎日繰り返す手作業を能率化できる。

大量のファイルのリネーム、数ダースもの画像の処理、アドレスブックに登録
した従業員の作業カレンダー作りといった仕事を、容易に「オートメート」で
きる。

一度「オートメート」すれば、それらの仕事を何度も何度も繰り返せる。

---

これってUNIXのツールチェーン、コマンドの直交性みたいな話でなかなかおも
しろいよね。Automatorが広く認知されたプラットフォームになったら、案外凄
いことになるかも。ちょっと形は違うけど、OpenDocを思い出す。
597名称未設定:05/01/31 03:20:41 ID:R1ubLn1J
Automatorは、「Action」を積み重ねて構成する。

おのおののActionは、一つの仕事をこなすようにデザインされている。

例えば、Webページからリンクされた画像を見つけ出したり、あるフォルダにあ
るファイルを別のフォルダにコピーしたりといったようなことだ。

一つのツールですべてのことをやってしまうのではなく、一つのActionは、
「一つの仕事をうまくやる」ようにデザインされている。

Automatorのパワーは、ワークフローの中のActionの連鎖に由来している。

個々のAction一つでは成し遂げられない仕事でも、ワークフローの中にあるい
くつかのActionが力を合わせることで、素早く、容易に成し遂げられる。

この小さな個々の部品から機能性の構築をするというアイデアは、古きよき
UNIXに始まったものだ。

Automatorのもたらした躍進点は、直感的なGUIで小さなツールの組み立てをや
りやすくしたこと。

スクリプターや開発力のある人はだれでも、Actionの重要な作成候補者だ。そ
して、ほとんどのケースで、スクリプトを手で書くよりそれを早くできるよう
になるだろう。

# 「それ」が何を指してるのかよく分からん。Actionを作ることかしらん。
# よく読んだら、やっぱり古きよきUNIXの考え方にヒントを得たものなのね。
598名称未設定:05/01/31 03:50:00 ID:mWfqvAGV
すみません。複数のJPEGをPowerPointに1ページ一枚ずつ、一気に貼付けていくスクリプトを
誰か晒していただけませんか?
599名称未設定:05/01/31 03:50:33 ID:R1ubLn1J
Actionの美点は、たくさんの機能性の源泉を活かせること。

Actionは、Core ImageやCore Dataなどのcore OSフレームワークの機能にアク
セス可能。コマンドラインツール環境の「てこの力」や、個々のアプリケーショ
ンの専門化した特徴をうまく利用することもできる。

Actionは、AppleScript、もしくはObjective-Cのいずれか、容易な方で作成で
きる。

Automatorの登場は、顧客がワークフローで使うための小規模な機能性の拡張を
もたらすちっちゃなユニットの提供機会の創出を意味する。

あなたがアプリケーション開発者なら、ユーザのためのAction作りは、非常に
大きなビジネスチャンスだ。

# かなり適当な訳
600名称未設定:05/01/31 03:53:42 ID:R1ubLn1J
>>598
Office Xと2004でAppleScriptが大分違うと思うんだけど、どっちよ。


601名称未設定:05/01/31 03:56:48 ID:mWfqvAGV
>>600
あ、2004です。おねがいします。
602名称未設定:05/01/31 04:06:16 ID:7HMBvwK8
>>601
おねがいします。じゃないだろ。
603名称未設定:05/01/31 04:11:44 ID:mWfqvAGV
ひーん。おながいしまつ。
604名称未設定:05/01/31 05:43:26 ID:R1ubLn1J
つかもう寝ないと……。
Finderから得たファイルのリストをファイル名順にならべるのどうやるか忘れた。
do shell scriptでsort呼び出したはいいけど、戻すところでつっかかった。
ソートされたファイル名のリストを作ったら、後はrepeat文囲んでガガっとやればOK。
myPictureFileNameのクラスはaliasじゃなくてテキストね。
画像はアスペクト比が同じじゃないとうまくいかない。

--テストの画像
set myPictureFileName to "Macintosh HD:Users:anonymous:Desktop:picture.pct"

tell application "Microsoft PowerPoint"
--スライドをケツに一枚足す
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
--ケツの一枚にmyPictureFileNameで指定したファイルを貼り込む。
--20とか640とかのパラメータは自分で決めな。
do Visual Basic ("ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & myPictureFileName & "\", False, True, 20, 20, 640, 480"
end tell
605名称未設定:05/01/31 05:56:14 ID:R1ubLn1J
ん? 上のだと動かない? 一応、jpegも貼れたぞ。

set myPictureFileName to "Macintosh HD:Users:anonymous:Desktop:picture:picture01.jpg"
tell application "Microsoft PowerPoint"
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & myPictureFileName & "\", False, True, 20, 20, 640, 480"
end tell
606598:05/01/31 08:57:04 ID:mWfqvAGV
ありがとうございまつ。これをもとにガンガッテみまつ。
607598:05/01/31 12:38:07 ID:mWfqvAGV
できました。ありがとうございました。

on open pictureFiles
repeat with anItem in pictureFiles
tell application "Finder" to set aPicture to anItem as string
set aPicturePath to (quoted form of POSIX path of aPicture) as Unicode text
do shell script "echo $[ `sips -g pixelWidth " & aPicturePath & "|grep [0-9]|awk '{print $2}'` / `sips -g pixelHeight " & aPicturePath & "|grep [0-9]|awk '{print $2}'` ]"
set horizontalPictFlag to result as number
tell application "Microsoft PowerPoint"
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
if (horizontalPictFlag as boolean) then
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, 0, 0, 720, 540"
else
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, 157, 0, 405, 540"
end if
end tell
end repeat
end open
608名称未設定:05/01/31 22:06:25 ID:mIKwbED0
>>578
を見る限り、
AutometorはコマンドラインのGUI版って感じかな
普通のユーザーにも簡単に、たぶんAppleScriptよりも
ずっと容易に使えるだろうけど、ただ、この手のものは
制御構文や変数の扱いが貧弱なのが普通だから、
あまり複雑な処理には向かないと思う。

アプリ開発者から見ると、Autometorはユーザーに
簡易マクロ機能を提供する手段として、あるいは、
汎用のデータを扱うアプリなら、これをプラグイン環境
としてとらえることもできるかも。

スクリプターから見ると、Autometor自体がスクリプタブル
なのかが気になる。いや、それよりAutometorのコマンドは
入出力の定義を持っているわけだから、これをAppleScript上の
オブジェクトの型として直接扱えたらきっと楽しい…が、
それは難しそうな気が…。
609名称未設定:05/01/31 22:41:48 ID:ORR1Vo1i
基本的に用意しといたブロックを一本道でつなげた構造で、
複数のブロックにまたがるような制御構文や変数は無理そうだね。
もちろん個々のブロックの中では自由に記述できるだろうけど。

ところで、引数と返り値のバケツリレーで型チェックはないっぽいので
自分で書くとつまらないバグに悩まされそうで心配。
Javaで書けばこんなカンジでしょ?↓

  Object[] hoge(Object[] input, Object[] parameters) {
    ...
  }

何番目のデータが何を表して、ということを自分で管理しなければならず、
しかも実行時エラーの報告が今のようなデタラメだらけでは・・・
610590:05/01/31 23:00:29 ID:9m7bIpaB
>>591
Autometorで盛り上がっているところすみません。
無理ですか…
他のプロセスをストップしているってことだったんですね、つまりアップルスクリプトの
プロセスもストップしていると…、そりゃ動きませんよね。
なんだかものすごく納得です。

納得はしましたが、困ったなぁ。
何か裏技的な方法ないんでしょうか。
Kinesisというのは、あの不思議なキーボードですね。
これはこれでほしいけど、やりたいことは人の手を入れない自動化だったので、これまた無理ですね。
とほほ。
611名称未設定:05/02/01 00:43:53 ID:fl5m62Mg
tell application "iTunes"
set thisEncoder to item 4 of encoders
set current encoder to thisEncoder
convert selection
end tell

iTunesのスクリプトメニューから「MP3に変換」を実行するスクリプト。
(時によってAIFFにしたりACCにしたりするので同様のスクリプトを用意)
しかし必ず「AppleEventがタイムアウトしました」というメッセージが出てくる。
OKを押してしまえばエンコードが進行するとはいえ、解決策はないもんでしょうか。
delayじゃだめっす。
612名称未設定:05/02/01 00:51:59 ID:Hf6pjnV2
>>611
with timeout of 6000 seconds
end
で囲んでみるとか
613名称未設定:05/02/01 00:55:04 ID:oeenYfdD
>>611
以下のような感じでどうでしょうか。
tell application "iTunes"
set thisEncoder to item 4 of encoders
set current encoder to thisEncoder
ignoring application responses
convert selection
end ignoring
end tell
614名称未設定:05/02/01 01:25:18 ID:fl5m62Mg
>>612-613
ありがとうございます、が、どっちも解決せず。
どうもiTunes側のせいのような気がしないでもない。
AppleEventがよくわからないからな〜
615名称未設定:05/02/01 01:29:15 ID:tp0PTV+S
>>610
Snapz Proをあきらめたら? でも、Snapz Proほどパーフェクトなキャプチャユー
ティリティもまた無いんだよね。

古いキーボード改造してPICつないで自動化したら? 押す必要があるキーボー
ドの個々のスイッチに、フォトカプラを介してPICのポートをつなぐわけ。
プログラムはループ待ちとポートへの出力命令のみだから簡単。
初歩の初歩であるLEDの点滅レベルでOK。

インターバル時間が長いとタイマの分周器を使っても間に合わないかもしれな
いから、レゾネータはkHzオーダーの周波数の低いものにしておくと、考えるこ
とが少なくていいかも。

PICはライターが必要だから、それだけで6,000円ぐらいは見ておく必要がある
けど、それ以外の材料費はPIC含めて1,000円以内で収まると思う。

PIC タイマ シーケンサなどでググるといいよ。
秋月通商から4CHのシーケンサキットが出ているから、これをキーボードにつなぎゃOKかも。
http://akizukidenshi.com/catalog/items2.php?q=%a5%b7%a1%bc%a5%b1%a5%f3%a5%b5&s=score&p=1&r=1&page=#K-00127
http://www.t-net.ne.jp/~masa_hp/diy/fr_sequencer.html
616名称未設定:05/02/01 02:08:22 ID:tp0PTV+S
>>607
なかなかやるね。ポートレートとランドスケープで処理を変えるわけか。
$[ ]この構文は知らなかったなぁ。
自分はexpr A / Bだったな。echo A / B | bc とか。
しかし、複数のファイルをDrag & Dropすると、必ずしもファイル名順にならなくない?
だれもファイル名順じゃなきゃダメとはいってないけどね。

617名称未設定:05/02/01 02:26:59 ID:tp0PTV+S
>>608
普通のユーザーにも自動処理の門戸が開かれるということが重要。職場の人間
とか見てると、言語やスクリプトはおろか、マクロ、キーマクロすら知らない
し理解不能だから、ほとんど手作業だしね。そういう人間向けの道具としては、
分岐処理や変数などは理解を妨げるだけなので不要だと思う。
一本道でも素人に自動処理が出来るんであれば、それは喜ばしいことだと思うよ。

WindowsはいきなりWSHだから普通の人には無いも同然。普通の人に使わせると
いうアプローチの自動処理環境がOSに標準装備って、結構痛快。

>>609
型チェックはあるっぽくない?
Actionのプロパティで入力と出力の型を宣言するのでは。
それを見てAutomatorがActionの嵌合をチェックするんじゃないかな。

Actionの天地にある「Files/Folders」や「Images」というのがそれだと思うん
だけど。
618607:05/02/01 04:38:40 ID:VaIkiZyf
>>616

touch `jot -w %03d_file 100 1`



on open myFiles
my main(myFiles)
end open
on run
tell application "Finder"
set myFiles to selection
my main(myFiles)
end tell
end run
on main(myFiles)
set myFilesPath to {}
repeat with anItem in myFiles
set myFilesPath to myFilesPath & (anItem as string)
end repeat
choose from list myFilesPath
end main

で試した限りではなんとか行けそうに思うのでつが...。
# この板と海上氏とこばやし氏に感謝。
619名称未設定:05/02/01 05:16:31 ID:tp0PTV+S
その場で整然と作ったファイルなら順序よくならぶけど、
実際に使う画像は、あっちこっちから集めてきたものではない?
どっかの実際に使ってるフォルダでselectionを取得してみたら?

tell application "Finder"
selection
end tell

……で、今調べてみたら、アイコン表示とリスト表示のselectionは、ファイル
作成日、もしくはファイル変更日順みたい。カラム表示のselectionはファイル
名順のリストになった。selection取得時にカラム表示にしとけば、ソートはい
らんね。
620名称未設定:05/02/01 08:20:28 ID:oeenYfdD
>>607,616
やってる事、言ってる事が高度でわからにゃあ・・。
$[`いろいろ1`/`いろいろ2`]
の前後のどちらかが場合によって実行されるという事?
ネットのシェルスクリプト入門のページに載ってるでしょーか。
621名称未設定:05/02/01 08:23:12 ID:oeenYfdD
>>617
MS-Wordのヘルプとかけっこう丁寧にマクロの書き方説明してあったと思うけどね。
ヘルプだけ見て簡単なタグ挿入みたいなの書いた事あるし。
普通の人は存在も知らないだろうね。
622607:05/02/01 13:15:10 ID:VaIkiZyf
>>621
$[ 4 / 3 ]が整数演算。この場合は1になる。
つかうjpgが4:3か3:4なので。やけに縦長・横長なファイルだと{"0", "1"}以外になって
>>607のスクリプトではエラーになる。
sipsについては↓ここ参照。
http://pcweb.mycom.co.jp/column/osx/073/
623622:05/02/01 13:16:16 ID:VaIkiZyf
レス番間違えた。
>>620ね。
624名称未設定:05/02/01 14:15:02 ID:tp0PTV+S
>>619
Finder Basics見ると、将来の版ではちゃんとソート方法を明示的に指定してリ
ストが獲得できるようになるようだね。参照が格納されたリストはソートしづ
らいから、これは助かる。Tigerに期待。

sort: (NOT AVAILABLE YET) Return the specified object(s) in a sorted list
sort reference -- a list of finder objects to sort
by property -- the property to sort the items by (name, index, date, etc.)
[Result: reference] -- the sorted items in their new order

>>622
普通の人は、

理解不能なもの>余計な努力をする必要があるもの>不要
マニュアル>見えない>言葉で説明されても理解不能>人に目の前でやってみせられて初めて理解

我々みたいに、「楽をするためならどんな努力でもする」、という人間とは真
逆。Automatorですら、彼らにかかると上記から逸脱できないかもしれない。
625名称未設定:05/02/01 14:44:38 ID:DkBGhz+8
>>622
sipsはAppleScriptからも使える……のだが、よくわからんw

たぶんこんな感じだと思う

set selImage to choose file with prompt "Choose an image"

tell application "Image Events"
set anImage to open selImage
set imgDimensions to dimensions of anImage
close selImage
end tell

set horizontalPictFlag to (item 1 of imgDimensions) >= (item 2 of imgDimensions)
--横長か正方形ならtrue、縦長ならfalse
626622:05/02/01 15:07:20 ID:VaIkiZyf
>>625
おぉ。これは知らんかった。
ありがd。
627名称未設定:05/02/01 17:15:20 ID:oeenYfdD
>>622,623
ありがとうございます。

>>625
おぉ。これまた楽しそう。
628名称未設定:05/02/01 19:10:49 ID:DkBGhz+8
>>627
Image Eventsについては、

ttp://www.apple.com/applescript/imageevents/index.html

で、よろしこ
629611:05/02/01 19:33:52 ID:1FXb6MdN
よくわからんので結局try〜end tryで囲ってムリヤリ解決させました。
630名称未設定:05/02/01 20:53:32 ID:YYzm9ADL
/Library/Scripts/Folder Action Scripts
にImage Events使ったフォルダアクションのサンプルがあります。
631名称未設定:05/02/01 21:51:47 ID:O30SLqiC
>>629
それやってる人、他にもいるね。
他に解決法って無いのかも
632名称未設定:05/02/01 22:11:48 ID:oeenYfdD
試してみようと思って1曲AIFF→MP3変換してみたけど、
タイムアウトのエラーが出なかった・・。
長い曲じゃないとダメなのかな。
スクリプトエディタから実行したから?
633名称未設定:05/02/01 23:18:44 ID:h01xe7q2
おなかちゅいたよまみー
634名称未設定:05/02/02 02:36:05 ID:a4wOLqCY
>>632
スクリプトエディタからだと大丈夫なのよ。
iTunesのスクリプトメニューから「スクリプト書類」でやるとだめなのよ。
「アプリケーション」で保存してやればいけるけど、なんか居心地が悪いし。
635名称未設定:05/02/02 03:55:30 ID:/90GZ5L+
Jedit Xが今のベータでAppleScript対応になったね。結構用語が整理されてい
る。強化されたり、サックリ無くなってたり。
スクリプトウインドウ、マクロメニューが前より強化されたのはいいね。

個人的には、allow redraw / inhibit redrawが無くなったのが気になる。
パフォーマンスは大丈夫だろうか。

bookmarkも使い手があるね。正規表現で文書をなめて、ひっかかったのを一覧
にする、なんてことができると思われる。

Jedit XはCocoaだからI-Searchが使えるし、例のカスタマイズで多段のキーバ
インドが使えるのがいいね。そろそろ4から移行のタイミングかもしれん。
636名称未設定:05/02/02 04:02:35 ID:5R81zHAk
なるほどね。
うちのiTunes 4.7.1 @ OS 10.2.8 には
スクリプトメニューが無かったんで取りあえずエディタ上から実行してみたんだけど、環境依存的な問題なのかな。
間にはさまるメニューの実行環境がイベントの終了メッセージ待ちしててタイムアウト??
(メニューエクストラのスクリプトメニューの事?)

> 居心地が悪いし
しょっちゅう使うものだったらアプリにしてDockとかDragThingとかに入れとくのもアリと思うけどな。
勝手に終了しないようにしてon reopenで実行されるようにしとけば起動時間もかからないし。
637名称未設定:05/02/02 04:05:02 ID:5R81zHAk
>>635
うち試せないんでがしがしフィードバックしてください。
削られた用語は単にまだ実装できてないのか、
それとも将来にわたって不要と考えて削ったのか、
どっちなんでしょうね。

OS上げたら試すつもりなんで楽しみだ。
638607:05/02/02 04:34:37 ID:oSqPmYuv
結局、Finderでセレクト後、ScriptMenuから実行することにした。>>625に感謝。

tell application "Finder"
try
set current view of window 1 to column view
end try
set pictureFiles to selection
my main(pictureFiles)
end tell

on main(pictureFiles)
repeat with anItem in pictureFiles
tell application "Finder" to set aPicture to anItem as string
tell application "Image Events"
set anImage to open aPicture
set imgDimensions to dimensions of anImage
close aPicture
end tell

set widthValue to (item 1 of imgDimensions)
set heightValue to (item 2 of imgDimensions)
set aspectRatioValue to (heightValue / widthValue)

次につづく。
639607:05/02/02 04:35:43 ID:oSqPmYuv
つづき。

if aspectRatioValue = 0.75 then
set outputDimensions to {0, 0, 720, 540}
else
if (aspectRatioValue > 0.75) then
set outputWidth to (((540 * widthValue) / heightValue) div 1) as number
set widthMargin to ((720 - outputWidth) / 2) div 1
set outputDimensions to {widthMargin, 0, outputWidth, 540}
else
set outputHeight to (((720 * heightValue) / widthValue) div 1) as number
set heightMargin to ((540 - outputHeight) / 2) div 1
set outputDimensions to {0, heightMargin, 720, outputHeight}
end if
end if

set outputString to item 1 of outputDimensions & ", " & item 2 of outputDimensions & ", " & item 3 of outputDimensions & ", " & item 4 of outputDimensions

tell application "Microsoft PowerPoint"
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, " & outputString
end tell
end repeat
end main

終わり
640名称未設定:05/02/02 05:17:16 ID:/90GZ5L+
>>637
名前が変わっていたり、別々だったものが一つのメソッドのプロパティという
形になったりで、仔細を比較しないと全体像が見えない。

無くなったと思われる用語
aliasFile, picture, movie, sound, play --> attachmentになった?
byte, line, text flow(story) -->lineとparagraphの違い何だっけ。
select / selection --> さすがにこれはサポートされると思われ。つか今びっくりした。改善しる!!
undo, revert --> スクリプトからはあまり使わないよね。
style run --> attribute runになったっぽい?
text style info --> colorというのが増えた。ほかは?
OpenURL --> open locationがあれば無くても困らない?
allow redraw / inhibit redraw --> Cocoaだといらない?
justify
speak --> AppleScriptに元々あるしね……。
suspend
updateMacroMenu --> システム変わって不要になったのかも。
641名称未設定:05/02/02 05:36:27 ID:/90GZ5L+
>>607
結局Finderからselection取得する前にカラム表示にしたのね。
そこまで書けるならPowerPointの部分も自分で書けるだろうに(w

スクリプトと旅の恥は書き捨てだから、目的を果たすことこそが重要か。

>>637
あ、今のバージョンはAppleScriptに対応した最初のベータ版だから、リリース
版までには改善されると思われる。
642名称未設定:05/02/02 06:45:50 ID:5R81zHAk
>>640
報告ありがとうございます。

たしかJeditの場合は
文書幅によって決まる表示上の行→line
改行まで→paragraph
だった気がします。
両方あった方が便利な時もあると思うんだけどな・・。

(関係無いですがパラグラフの終端に改行を含むかどうかの扱いがエディタによって違ったりしたはず)

Jeditで使った事ないですけどOpenURLってヌevent WWW!OURLネなんですかね?
これ使うとAppleScript対応してないっぽいWebブラウザでもURL開けたりするんだけど古いイベントだから無くなるのかなあ。
まあopen locationでいいんですけど。
643名称未設定:05/02/02 16:33:50 ID:kBgS6He+
>>642
つか、全部付属ドキュメントに書いてあった。
selectionはselected textなどとして取得できること、
set selected text toなどでselectの代わりになること、
クラス構造の変化、文字コード関連など、重要な情報満載ですた。
644名称未設定:05/02/02 19:52:43 ID:5R81zHAk
>>643
付属ドキュメントは大事ですね。
俺も自分でDLしない事には始まらないですね。うずうず。

そういうやり方がOS Xっぽいんですかね?
SafariもドキュメントのURLをsetってやり方でページ開いたりするみたいだし。
645名称未設定:05/02/03 03:53:26 ID:0kuLDbVl
OS Xっぽいというよりは、OOPっぽいというべきじゃないかな。
http://e-words.jp/w/OOP.html

オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの
は、OOPの基本概念ってことでいいんだよね?
よく分からん。それは表面的な理解だって話もあるし。
646607:05/02/03 06:10:47 ID:Mt/B37Ao
>>641
いや、VBAはてんでわからんかったので。PPTもTestDriveで試してたんです。
実は、俺のツレが毎週50枚の写真を使ったプレゼンに倒れそうになってたので、
「俺がスクリプトでなんとかしてやるから、iBook買え!!!」
なんて言ってしまって。
「2ch 新・mac板のおかげで出来た」と伝えておきました。(w
647名称未設定:05/02/03 07:07:45 ID:0kuLDbVl
>>646
ほー。そうなのか。あつい友情(愛情?)だね。
Office XのPPTのAppleScript対応はdo visual basicのみだったけど、
2004になってからガツンときてるから、2004ならAppleScriptでも
同じことができるはずだよ。

今ExcelのVBAを勉強してるので、MSのアプリはVBAの方が分かるというだけ。
VBA馬鹿にしてたけど、結構おもろい。
648名称未設定:05/02/03 12:28:33 ID:QjSLg15A
>>645
>オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの
>は、OOPの基本概念ってことでいいんだよね?

俺的なOOPの基本概念
・実装(メソッド)とデータ(プロパティ)を一体化させた
 オブジェクト(クラス)を定義できる
・変数の隠蔽(カプセル化)が可能
・継承したり抽象化したりというOOP的な考え方を支える仕組みがある

個人的にはカプセル化ができるか否かが最も重要
649名称未設定:05/02/03 18:23:14 ID:7ps7o9II
そういや OS X になってからクラス構造がオブジェクト指向的に改変されたな
650名称未設定:05/02/03 18:52:48 ID:OJ1xhJAS
JavaScriptは基本的にオブジェクト指向なのに
変数が全部グローバルスコープなのが気持ち悪いね。
いちおう予約語にclassとかあるけど将来の拡張のためというよりは
Javaのをパクってきただけな希ガス。
651名称未設定:05/02/03 20:07:31 ID:89KovW5s
>>649
Apple Event Object Modelで最初からオブジェクト指向になっている。
1992年のこの記事は今でも通用する。
http://www.mactech.com/articles/develop/issue_12/Berdahl_final.html
OSXになってFinderを始め色々なアプリのApple Event Object Model
サポートはかなり後退した。今は少しずつ修復している過程
652名称未設定:05/02/06 03:09:17 ID:UJtEtkP6
オブジェクト指向言語で構造化プログラミングしてる奴が多いな。
この考え方自体古いか。
653名称未設定:05/02/06 03:25:56 ID:2vVTYR/X
おまいらせっかくshellscriptが使えるのに
なんでいまさらapplescriptなんだよ。
654名称未設定:05/02/06 03:29:24 ID:DQPJzWp3
(´,_ゝ`)
655名称未設定:05/02/06 03:32:34 ID:gDoRxMKQ
>>653
m9(^Д^)9m ポッギャ─────!!
656名称未設定:05/02/06 04:27:09 ID:hStjbpSE
do shell script が最強だということに何故気がつかないのだろう...
657名称未設定:05/02/06 04:47:47 ID:0y2KSM4d
どういう釣りなんだか判りかねる
658名称未設定:05/02/06 05:41:22 ID:+BeKYxey
>>653
Shell ScriptでAdobeアプリやOfficeを制御してみてくれ。
Shell ScriptでCocoaアプリを作ってみてくれ。

Shell Scriptも使ってるがな。併用しないと辛いし。
ともすると、「全部それShell Scriptでいいじゃん」
みたいなのを書いてることもある。
659名称未設定:05/02/06 07:57:08 ID:Aub/Z2I5
>>653
爆笑した
いつのまにこんな良質の餌をかけるようになったのか
向こうでいい勉強してるなぁ
660名称未設定:05/02/06 08:26:13 ID:2vVTYR/X
まぁ俺も>>653に同意。
OSXになってからバッチ処理はシェルスクリプトでやればいいし、
アップルスクリプトの出番が少なくなってるのも事実。
シェルスクリプトからでもアップルスクリプト呼びだせるしね。
例えば、
osascript -e 'tell application "Finder" to empty trash'
osascript -e 'tell application "Finder" to eject disk "DVD100GIRLS_02"'

とか。
661名称未設定:05/02/06 08:28:16 ID:Aub/Z2I5
>>660
そのイジェクトしたDVD100GIRLS_02くれ
662名称未設定:05/02/06 08:34:50 ID:2vVTYR/X
>>661
いいよ。住所と名前教えたら着払いで送ってあげられるけど?
66325:05/02/06 08:42:12 ID:8vGLAJKs
664名称未設定:05/02/06 11:01:41 ID:ieaqnQz9

皮先君 キタ━━━━(゚∀゚)━━━━!!!!


のか? もうあのスレ見るの止めたけど。
665名称未設定:05/02/06 14:34:59 ID:hStjbpSE
653 :名称未設定 :05/02/06 03:25:56 ID:2vVTYR/X
おまいらせっかくshellscriptが使えるのに
なんでいまさらapplescriptなんだよ。

660 :名称未設定 :05/02/06 08:26:13 ID:2vVTYR/X
まぁ俺も>>653に同意。
OSXになってからバッチ処理はシェルスクリプトでやればいいし、
アップルスクリプトの出番が少なくなってるのも事実。
シェルスクリプトからでもアップルスクリプト呼びだせるしね。
例えば、
osascript -e 'tell application "Finder" to empty trash'
osascript -e 'tell application "Finder" to eject disk "DVD100GIRLS_02"'

とか。

わかりやすい自演、乙。
666名称未設定:05/02/06 14:41:05 ID:TlPR2W2E
おまいら>>653とか>>660とか叩いてるようだが、
正論だと思うぞ。
AppleScriptでしかできないことは確かにまだまだ多いが、
一方でShellScriptの方が向いてる分野も多々ある。

これからのOSXerの正しいあり方を指摘していると思われる。>>653
667名称未設定:05/02/06 16:09:00 ID:9sLDKg67
ID変えてまで自演乙。
668名称未設定:05/02/06 16:18:07 ID:5moctVhn
これからのってんなら、Automatorで何をどこまで組み合わせられるか、じゃねーの?
669名称未設定:05/02/06 16:21:24 ID:+BeKYxey
おまいらせっかく(Perl|Ruby|Python)が使えるのに
なんでいまさらShell Scriptなんだよ。

と言い返しちゃうぞ。

(Perl|Ruby|Python)がShell Scriptを無用化するほど多機能で記述力が高いほか、
Shell Scriptにあるクオート、エスケープの問題が無いからね。
メタキャラクタやクオートがシェルで展開されることを考える必要が無い。
evalで多重展開するスクリプトを書いてみな。どこをどうエスケープしていい
か、わけわかんなくなるから。evalの中でメタキャラクタでも使おうもんなら、
もう何が何やら。

シェル変数のスコープの問題もある。この処理はカレントシェルで実行されて
いるのか、子亀か、孫亀か、孫亀からのResultの継承は、などということを考
えるうちに眠くなってくる。

だから、何でも自分でやっちゃう(Perl|Ruby|Python)みたいなインタプリタが
台頭するわけ。

AppleScriptにも、>>653を昨日感動させたパイプやバッククオートメカニズム
に匹敵する武器がある。それは、アプリケーション間通信。
AppleScriptの本質は、最初からそれ。

だから、言語仕様ががらんどう。
OS Xになって、AppleScriptが「使ってやる」対象にShell Scriptも入っただけ。
そう、AppleScriptはスクリプト界のプロデューサーなのだよ。
つまり、スクリプト界の つんく。すべては手駒に過ぎない。
670名称未設定:05/02/06 20:20:51 ID:Jz7NgqXA
傀儡使い
671名称未設定:05/02/06 20:22:08 ID:Jz7NgqXA
>>669
ところで
>>653を昨日感動させた』の所は人違いと思われ。
672名称未設定:05/02/06 21:23:12 ID:xaloEAaT
>>669の「それは、アプリケーション間通信」を忘れて
javascriptだのshellなんたらだの言ってる香具師多いね。
673名称未設定:05/02/06 21:28:05 ID:QW3lm4+V
>>669
>>672
つか、shellscriptの中にapplescriptを埋め込めるのに、
なんでわざわざ難しいapplescriptで作ろうとするのかな、
と疑問に思っただけ。
PerlとかRubyとかPythonといった、素人には「わけわからん言語」
のことなど誰も聞いてないよ。
ここは素人のための素人によるスレであって、
Perlとか使いこなすプロの方はPerlスレで勝手に暴れてくれ。
少なくとも俺はshellscriptに関しては数日で学習できたが
Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど
学ぶだけ時間の無駄と思ってる。
674名称未設定:05/02/06 21:33:51 ID:hStjbpSE
釣れますか?
675名称未設定:05/02/06 21:38:22 ID:xaloEAaT
さっぱりわからん
676名称未設定:05/02/06 21:43:57 ID:VITFGbAv
釣られますか!

> Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど
>学ぶだけ時間の無駄と思ってる。

どんな言語も最初は意味不明。perlは言う程、シキイ高くない。
折れにとっては、AppleScriptの方が難しい。
677名称未設定:05/02/06 21:48:34 ID:048ghQjd
やっぱ皮先だ〜。隔離スレに(・∀・)カエレ! Paperにケツを拭いて貰え。>>673
678名称未設定:05/02/06 22:53:57 ID:4HdbS1o+
皮先くんの今日の行動。

皮先くんosascriptを知る。
ttp://pc7.2ch.net/test/read.cgi/mac/1105074933/406

このスレで釣りを始める。
>>653

自演する。
>>660

IDの変えかたを知る。
>>666

再度釣る。
>>673

皮先くんにまじレスしとくと物事には適材適所というのがあって
Shell ScriptにはShell Scriptの
AppleScriptにはAppleScriptの
Perlその他にもそれぞれ得意不得意があるので使い分けましょう。
679名称未設定:05/02/07 04:34:22 ID:InOvKOYR
どれが誰とかは知らないけど、
結局>>678さんの最後に書いてる事に尽きる。
適材適所。

それでも言いたい事を書いちゃう。
>>673
Perlは色々な環境で同じスクリプトが動く&CGIまで作れちゃうので勉強量的には省エネと思う。
どうせシェルスクリプトで文字処理するなら何か勉強しないといけないし、
制御文だって変数だって使うわけだし。
可読性についても長くなった時のエスケープ・クォートのややこしさ等考えると
シェルスクリプトよりも読みやすいと思う。それは書きやすいという事でもあり。
正規表現はややこしくなるとひどいけどシェルスクリプトでも不可避のものだし。
データの入出力の部分がわかれば後は書けると思う。
省略して書く方法が多いので省略せずに書いた方がわかりやすい。

AppleScriptを一番上の制御役に持ってくるとダブルクリックで起動できたりドラッグ&ドロップさせたりできるし、ボタンやメニューのついた立派なGUIアプリにもできる。
GUIアプリケーションを制御して仕事させると余計な描画が付くぶん遅かったり邪魔だったりするが、工程が目で見えたり細かい処理を勝手にやってくれるので安心という利点もあったりする。
逆に言えばシェルスクリプトによるCUIソフトの制御は速さが利点かな。わかってる人が書くと構文もすごく短くて済むしね。
680名称未設定:05/02/07 09:57:22 ID:UliWkihy
>>678
>>679
俺様は皮先くんです。
ありがとうございます。
そんな意見を待ってました。(他のやつらはチンカス以下!)

やはり適材適所ですよね。同意です。
Perlもよさそうですが、最近phpが多いような気がするのですが、
phpを学ぶのと、Perlを学ぶのと、どっちかひとつだけ、
としたらどっちがおすすめですか?
俺みたいなものぐさにとって。
681名称未設定:05/02/07 10:28:21 ID:NS99lvIC
ここはAppleScriptのスレ。
AppleScriptに関連してのShell ScriptやPerlの話しならともかく
単体でそういう話がしたいのなら別スレでどうぞ。
682名称未設定:05/02/07 10:32:21 ID:Uj/bmBQ6
相手してんな、バカ。>>679
683名称未設定:05/02/07 10:47:28 ID:b39GZLuj
>>680
お前はまず人に聞かずに自習することを覚えろ。
684名称未設定:05/02/07 11:05:42 ID:UliWkihy
>>683
おまえには聞いてない。
685名称未設定:05/02/07 12:25:10 ID:dcniy7vh
隔離スレに(・∀・)カエレ!

何のためにPaperが控えてると思ってんだ? お前のケツを拭くためだぞ。
686名称未設定:05/02/07 12:49:38 ID:UliWkihy
それもそうですね。
つか、おまいらを釣るのにも飽きてきたので
(だって簡単すぎるしw pgr)
そろそろ巣に帰りますね。
687名称未設定:05/02/07 15:18:42 ID:c6LiRSrB
>Perlもよさそうですが、最近phpが多いような気がするのですが
気のせいだから。キミはShellScriptが使えるんだからそれで満足してなさい。
-- これ以上ほかのスレにまで出没されたらたまらん。
688名称未設定:05/02/07 15:46:51 ID:InOvKOYR
帰るって言ってるんだからほっときゃいいじゃん。
つか、どうせp2のカスタマイズにPHPいじってるだけなんでしょ?
689名称未設定:05/02/07 17:01:29 ID:uaeFl3WY
>>686
皮先さんは学生さんですか?それとも高校生?中学生?(あまりにも考え方が幼いので)
先生(paperさん?)の書くことはよく聞くようですが
しつもんするときはもう少し丁寧にした方がいいですよ。
ネタにしてもあまりにもひどすぎます。
よく考えて書き込むようにしましょう。社会に出たとき苦労しますよ。
690名称未設定:05/02/07 17:16:48 ID:iXAwgYDp
社会に出れたら苦労せんがな... (w
691名称未設定:05/02/07 17:33:26 ID:LBeWbFgp
>>689
お前、バカか? 帰ったスレで相手しろよ。わざわざ呼ぶような真似すんな。
氏ねよ、ボケ。
692名称未設定:05/02/07 17:50:36 ID:UliWkihy
かわさきは普通に社会人だろ。
693名称未設定:05/02/07 18:23:19 ID:8AbchTKY
自分のことを他人事みたいに書くなっつーの。>>692

>>686で書いた事は守れ。
694名称未設定:05/02/08 00:08:34 ID:yfLNGpsG
便乗しておもしろがって場を荒らす書き込みするのはやめましょうよ。
何かネタない?
発表か質問カモーン。
695名称未設定:05/02/08 00:29:17 ID:itdMN3ZT
Studio でGUI部品を参照するときダラダラ長くなってウザイ件について。

半年前に
 set button1 to button 1 of (中略) of window 1
とやって簡略化を図ろうとしたら妙なエラーに悩まされ、
それがトラウマとなって以来 Studio は使っていない。
エラー箇所で button1 ではなく律儀に
button 1 of (中略) of window 1 と書くとちゃんと動くという・・・。
696名称未設定:05/02/08 01:58:55 ID:AW2KFPrO
レスが判るようで判らんが、上手く行かない時は、カッコでくくって処理の優先順位を付けると上手く行く事ある。
って、折れも判らんレスだなぁ...
697名称未設定:05/02/08 02:36:43 ID:i5Y/CwOy
GUIをやるんなら、studioよりcocoa+obj-cの方が遥かにいいな。。
698名称未設定:05/02/08 02:41:27 ID:j0zefuHn
>695
set button1 to a reference to (button 1 of (中略) of window 1)
にすればうまくいくかもしれない。
699名称未設定:05/02/08 04:45:06 ID:yfLNGpsG
>>695
tell 〜で上のモノを呼んで囲んでやると中では省けたような・・。

まぁコピペを活用するしかないすかね。
700名称未設定:05/02/08 14:14:35 ID:oKaQu5Wq
700 ゲト
701名称未設定:05/02/08 23:01:57 ID:uklUH9tt
>>669
上から順番に読んでいると面白いな。
前半はともかく、後半は感情的には同意できる。
ただ、折れはsh系すらうまくつかえてない純粋なAppleScriptなんで、他の発言は大半が意味不明。
702名称未設定:05/02/09 00:43:12 ID:oHF7ndsg
皮先の相手をする香具師はチンカス以下!!!
703名称未設定:05/02/09 03:48:35 ID:Qgsn8LD2
>>701,702
レス番号ズレてないよね?
落ち着いて読めばそれぞれの言語の経験がなくてもだいたいわかる内容だと思うけど。
『シェルスクリプトには色々問題点があって、
 シェルスクリプトでできる事を全部置き換えられるような便利なスクリプト言語が台頭して来てる。
 だから君(653)の理屈だと「なぜ今更シェルスクリプトを使う?」と言い返せてしまうぞ。
 (でもシェルスクリプトだって使われている。それには理由がある)
 AppleScriptの場合のそれを使うメリット・本質は(以下はわかるでしょうから省略)』
と、これだけの話。

sh系“すら”っていうのはおかしいな。シェルスクリプト使えなくてもPerlは使える。
KTの頃からMacでも使えたわけだし。

さあ次のAppleScriptに関する話題をどうぞ。
704名称未設定:05/02/09 04:09:00 ID:3Owgs39W
ぶっちゃけ8A369でのAppleScriptの動向は?
705名称未設定:05/02/10 02:20:48 ID:EqyNj7bd
こんなスクリプトを書いてアプリケーション形式で保存してみましたが、
tell application "Finder"
do shell script "./Users/hoge/hoge.sh"
set kekka to result
display dialog kekka buttons {"へぇ"} default button "へぇ" with icon note
end tell

普通にダブルクリックでこのappを起動すると正常に動作するのですが、
Dockに登録して起動すると、一回目の起動時に必ず

書類"(null)"を開くための必要なデフォルトアプリケーションが指定されていません

と起こられます。そのまま二回目のクリックを行うと
普通に動作します。
その後またDockから起動すると・・・と延々と繰り返しでもう疲れました。

これはどういうことなのでしょうか?
706名称未設定:05/02/10 03:21:07 ID:0sL11/a+
俺全く分からんけど、hoge.shを何で開くのか指定してないとか
707名称未設定:05/02/10 03:52:55 ID:E7o87DXr
初めて聞く現象だけどDockの方でAppleScriptで作ったそのアプリケーションを
アプリケーションと認識できてないのかね?
1度Dockから登録外して
Macの再起動したあと登録しなおしでもすれば直りそうな気がするな。

あとそのスクリプトたぶん最初の1行と最後の1行要らない。
708名称未設定:05/02/10 04:35:44 ID:DPAQjVzn
皮先くんには放置の方向で。(w
709705:05/02/10 05:03:33 ID:EqyNj7bd
>>706
多分違う。
>>707
再起動したけどダメっぽい。

buttonsを日本語にしてて、tell application・・・・を
つけないとなぜか文字化けしてしまうのですよ。
710名称未設定:05/02/10 05:07:50 ID:DPAQjVzn
445 :25:05/02/10 02:32:33 ID:EqyNj7bd
>>444
これをこのアップルスクリプトで動かします。
tell application "Finder"
do shell script "./Users/sheel/sh/filebach.sh"
set kekka to result
display dialog kekka buttons {"へぇ"} default button "へぇ" with icon note
end tell

http://pc7.2ch.net/test/read.cgi/mac/1105074933/445

素直に隔離スレに(・∀・)カエレ!
711705:05/02/10 05:24:40 ID:EqyNj7bd
なんだ俺様の高度なshellscriptが理解不能だからといって
そんなに怒るなやw(pgr
おまいらは俺様の質問に答えるだけでいい。
712名称未設定:05/02/10 05:25:55 ID:U22pb/O5
    _∂_
  /○。_、 _ヽ
\|;;;:::...  ,_ノ` |/
  .\;;;::....  /
   | ̄ ̄ ̄|         Think Defferent
                     Apple
713名称未設定:05/02/10 06:05:34 ID:E7o87DXr
AppleScriptである程度量のあるデータを扱いたい場合って、
やっぱりFileMakerを前にすえるか、
(いまいちどういうものかわかってないけど)Valentinaアプリケーションを使うっていう感じなんですかね?

さほど大げさなものじゃなくてもデータのリストみたいなのを扱いたい時ってあると思うんですけど・・。
AppleScript Studioで扱おうにも??

MySQLとかいうのがフリーのリレーショナルデータベースでどうのこうのっていうから検索してみたけど、Webアプリケーション?用のものみたいだし、
使いやすいインターフェースもなさそうだし、ちょっと用途とずれてるような感じ。

Valentinaは下記URLのとこで販売されてます。Rb用のプラグイン?みたいなのもあるみたい。
ttp://www.paradigmasoft.com/product/vapp_jpn.html
714名称未設定:05/02/10 06:17:32 ID:EqyNj7bd
>>713
どういうデータを扱いたいの?
テキストデータならshell scriptが得意としてるけどね。
MacOSXに標準装備されているし。
715名称未設定:05/02/10 08:09:04 ID:hI5kF7xE
>>713
要求が分からないので、アドバイスしようがない。
普通にFileMakerを使うというのではダメなの?
AppleScriptを使わなきゃならない理由が見えない。

mySQLは、Webアプリに限ったものではないよ。
普通にdo shell scriptでmysqlを呼び出すと使える。このへんを読んでみれば。
http://lists.apple.com/archives/applescript-studio/2004/Jul/msg00152.html

mySQL4AppleScriptというハンドラがあるよ。
http://www.yvs.eu.com/otherproducts.html

大きなデータを扱うなら、??SQLみたいな信頼性の高いデータベースをバック
エンドで動かして、自作部分はフロントエンドとして設計するっていうのは、
いいんじゃない。作ったデータも汎用のものになるしね。
AppleScript自前のlistやrecordでシコシコやるというのはおすすめできない。

REALbasicはPluginをインストールするとmySQLやPostgreSQLに直接アクセスできるよ。
だから、クライアントを、おそらく容易に作れる。MySQLClassという、そのもの
のクラスがある。

クライアントがブラウザでも構わないなら、普通にLAMP、MAMPでいいんじゃな
い。PHPはmySQLとの親和性が高いらしいから、AppleScriptでdo shell script
を使って必死にやるより簡易な記述ができると思う。

ただしフォーム(UI)の設計が面倒そうだけど。PHPのRAD環境ってあるんですかね。
716名称未設定:05/02/11 04:10:19 ID:CjH87wXJ
濁点ありのカタカナが使えないあたり、Apple のやる気のなさが感じられる
717名称未設定:05/02/11 06:36:34 ID:CjH87wXJ
ここにいるような人たちは知ってるかもしれんが
AppleScript で日本語(ファイル名とか)を扱うとき
UnicodeUtils.osax ってのが非常に便利っす。
ttp://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html

ところで実行時にそのスクリプトのファイル名を取得する方法はないかね?
718名称未設定:05/02/11 07:19:13 ID:jzIl1wyY
path to me
path to current application

アプリケーション形式でないとダメ。
719名称未設定:05/02/11 07:40:04 ID:CjH87wXJ
>アプリケーション形式でないとダメ。

ああ、やっぱりそうなのか・・・。
.scpt のファイル名を使いたかったんだが、諦めて設計を変えますた。
Script Editor.app で実行すると Script Editor.app のパスが返り、
スクリプトメニューから.scptを実行すると System Events.app のパスが返る・・・。
720名称未設定:05/02/11 09:39:03 ID:T3bKTCXk
ファイル名を引き数に使おうという方式だったのかな?
ファイル名が変わるんでなければ決め打ちでいいんだろうけど。
721名称未設定:05/02/12 01:44:49 ID:cVGEe72J
スクリプトメニュー内の項目の並び方を変えられればいいのになあ。
ファイル名の頭にナンバリングするとメニューが煩雑になるので
FinderPopのようにメニューでは非表示になるナンバリング方式を用意してほしい。
722名称未設定:05/02/12 14:14:17 ID:VjEfmBLX
ここは自分で書いたスクリプトを発表するスレだと知りつつ、
強者が何人かいらっしゃるので、お願いします。

わたしは今、英会話教室に通っていて、その教室では、その日習ったことをNet上で
復習するシステムがあり、わたしはMacのSafariを使って勉強しています。

Safariの「表示された英文を、サービスメニューからSpeach(Text読み上げ)」
をよく利用するのですが、同じ箇所を何度も聞き直す際、サービスメニュー経由
では手続きが煩雑で、これをAppleScriptでアプリケーションとして保存、
Dockにそのアイコンを置いておいて、英文を選択したらDockのアイコンクリックで英文読み上げ開始となればなぁ。あるいは、Contextual Menuから即、読み上げ
ならもっと便利だろうなと思っています。
そういうスクリプトをどなたか書いていただけないでしょうか?
723名称未設定:05/02/12 14:26:43 ID:jklcNu7X
ショートカットキーでも割り当てときゃ良いじゃん。

って、Speechだろがよ。もっと手も使って覚えろ。
724名称未設定:05/02/12 14:36:35 ID:E/mIH8mG
>>722
こんな感じでどうでしょう。

tell application "Safari"
activate
tell application "System Events"
tell process "Safari"
click menu item "コピー" of menu "編集" of menu bar 1
end tell
end tell

if (clipboard info for string) is not {} then
set theText to the clipboard
end if


say theText as string
end tell

スクリプトメニューから動かしてます。
「ユニバーサルアクセス」→「補助装置にアクセスできるようにする」のチェックをいれて試してみてください。

725名称未設定:05/02/12 14:49:34 ID:WvYut9kK
>>722
>>723さんが書いてるようにショートカットの割り当てが出来る。
システム環境設定のスピーチの「読み上げインターフェース」のところ
「キーを押したときに選択しているテキスト」にチェックを入れて
横の「キーを変更...」ボタンでショートカットキーを設定。

(なおこれは10.2の場合なので10.3ではちょっと違うかも)
726名称未設定:05/02/12 15:07:17 ID:VjEfmBLX
>724
さっそくありがとうございます。試させていただきます。
AppleScriptに関しても初心者なもので、結果報告はちょっと時間をいだだいて
あらためて書き込みさせていただきます。ありがとう。
727722=726:05/02/12 15:12:19 ID:VjEfmBLX
>>723,724,725
うわっ、ありがとうございます。
728名称未設定:05/02/12 19:47:59 ID:cVGEe72J
OSAXの作り方の資料が見つからない件について
729名称未設定:05/02/12 21:03:46 ID:hnrheJzf
>>728
TN1164 ぐらいかなー
AppleScript Scripting Additions Guideは消えちゃったかな?
730名称未設定:05/02/12 23:03:56 ID:WvYut9kK
わ!すごい期待しちゃっていいですか?
731名称未設定:05/02/16 20:28:24 ID:Mu8c3jBM
すいません、初心者の質問です。

音量調節キーのないキーボードを使っているので、代わりに
ファンクションキーにAppleScriptを当てて、音量調節したいんですが、
どうやればいいんでしょうか?

Set Volume とか言うコマンドは音量の絶対値しか決められないみたい
なんで…。
押すと1コずつ音量が上がるスクリプトと下がるスクリプトを作りたいんです。
732名称未設定:05/02/16 21:04:23 ID:/MUYvP2c
>>731

システム環境設定>サウンド>「メニューバーに音量を表示する」
ではいけない理由を、誰でも納得できるように述べたら教えなくもない
733名称未設定:05/02/16 21:08:54 ID:D5jxoj+m
>731
まず get volume で今の音量の絶対値を取得して、
それに1なり10なり足した値を set volume してやればいいじゃない。
734名称未設定:05/02/17 05:11:42 ID:0lfqnZ2w
tell application "System Events"
tell application "System Preferences"
set current pane to pane "com.apple.preference.sound"
end tell
tell process "System Preferences"
tell window 1
click radio button 2 of tab group 1
set (value of slider 1 of group 1) to 0.05 as number
end tell
end tell
delay 1
tell application "System Preferences"
quit
end tell
end tell
735名称未設定:05/02/17 05:20:32 ID:WxrABtEa
ファンクションキーで音量調整できるアプリを探したほうが良いと思うよ。
736名称未設定:05/02/17 15:55:39 ID:IWfnODka
見たらKeyboard Maestroのmacroにあった。「それだけ」のためにはチトお高いがw
737名称未設定:05/02/17 18:43:49 ID:80c4zM+o
zipファイルをドロップして解凍、元のzipファイルは削除するという
ドロップレットを作ったのですがdesktopに展開出来ないと言うエラー
が出てうまく行きません。勉強し始めたばかりでかなりお恥ずかしいの
ですが作ったスクリプトの添削をお願いします。

on open drop_items
tell application "Finder"
open drop_items
delete drop_items
end tell
end open


738731:05/02/18 10:32:36 ID:nX7eg9R6
>>732
キー操作の方がラクなので…。

>>733
なるほど、get volume というコマンドもあるのですか。
そのへんの根本的なコマンド類をぜんぜん知らないもので…。

>>734
やってみたら、
click radio button 2 of tab group 1
のところで、
NSReceiverEvaluationScriptError:4
と出て、止まってしまいました。

>>735
新しもの好きで検索してみたんですが、これが意外と見つからなくて…。

>>736
あ、これは気付きませんでした。これでオッケーですね。ありがとうございます。


みなさん、いろいろありがとうございました。
739名称未設定:05/02/18 14:30:52 ID:Mr2Pe+Q/
>>731
スレ違いになるけど、Vectorにいろいろあるよ。アップルスクリプトじゃないけど。
http://www.vector.co.jp/vpack/filearea/mac/util/operate/keyboard/index.html
740名称未設定:05/02/18 21:05:41 ID:L/q2cbEw
>>737
openで別ソフトに解凍するようにした直後にdeleteされて
ゴミ箱に入るからエラーがでるのかな。
741名称未設定:05/02/19 17:35:12 ID:6D/s0nw1
click menu item 5 of menu 4 of menu bar item 5 of menu bar 1

メニューバーの

 アプリ名 ファイル 編集 ココ
                    ↑の5番目のプルダウンはこの記述じゃダメですか?
742名称未設定:05/02/19 18:41:55 ID:U1iF4K05
>>741
click menu bar item 5 of menu bar 1
743名称未設定:05/02/19 18:54:43 ID:U1iF4K05
なんか違う悪寒。
5番目のプルダウンってどこだyp
744名称未設定:05/02/19 19:09:49 ID:6D/s0nw1
>>742
さらに上から5番目を選択するにはどのようにしたらよいでしょうか。
メニューを開くことは出来ました。
745名称未設定:05/02/19 19:15:08 ID:6D/s0nw1
click menu item 5 of menu 1 of menu bar item 5 of menu bar 1でできました。
746名称未設定:05/02/20 00:05:25 ID:btuO7ne7
>>740
ということは、StuffItにtellするなり、do shell scriptでunzipしたあと、
アボーンすればいい事になるぽ。。。
747名称未設定:05/02/21 00:40:54 ID:FE4/CPRZ
Appleスクリプトでテキストの何行目から何行目を抜き出したり
指定した位置の(毎回微妙な位置変動あり)テキストを抜き出したり
決められた形式(タイトルがあって、概要があって本文とか)の一部分を抜き出したり
そんなこんなの方法が書かれてるサイトってありませんか?「文字 抽出」とかで検索は
してみましたが、具体的なサイトは出てこなかったので知っている方がいたらお願いします。
748名称未設定:05/02/21 01:10:15 ID:96LJ+AqB
>>747
何行目からというのはparagraph指定でいけると思います。
あとの指定位置や形式は…
Tanaka's osax が使えれば簡単ですが、OSXはわかりません。
749名称未設定:05/02/21 01:12:10 ID:RcpTZ0OP
>>747
OSXなら素直にPerlを使うほうが早げ
750名称未設定:05/02/21 02:34:17 ID:sv5BM641
どこが素直なんだか…
751名称未設定:05/02/21 03:43:09 ID:FE4/CPRZ
>>748
>>747
AppleScript以外は全く未知の領域です。学ぶしか無いのですかね。
Cocoaなんて言うのは具体的に何言語を使うのですか?C言語?
752名称未設定:05/02/21 23:14:25 ID:hBdhy10p
>>747
とりあえず何のエディタでやるつもり?あるいは何のワープロで?
システム標準の命令の範囲でもそれなりのテキスト操作はできるけど。

paragraphとかlineとかcharacterとかAppleScript's text item delimitersとか範囲要素参照形式なんかをうまく使うべし。

でも複雑な事をやるのは正直たいへん。

>>749,750
OS8だろうがOSXだろうがある程度複雑なテキスト処理をやるなら
AppleScript中からちょろっとPerlを呼び出せば楽なのは間違いない。

while(<>){
s/検索語句/置換語句/g;
}
が使えるだけでずいぶん楽。
753名称未設定:05/02/21 23:25:32 ID:hBdhy10p
considerとかends withなんかも便利。
例えばループで1行ずつ調べていく
もし目印となる語句を含んでいるならその行を変数に入れる・・とか。
754名称未設定:05/02/23 11:16:20 ID:hxcBD3fo
Finderでコピー(command+C)したファイルの参照を
クリップボードから取り出せませんでしょうか?
以下のようにやってもダメでした。

tell application "Finder"
  (the clipboard) as file
  (the clipboard) as reference
  (the clipboard) as alias
end tell
755名称未設定:05/02/23 15:33:05 ID:y61Z5Nj7
一から勉強し直した方が良さげ。
756名称未設定:05/02/23 15:40:05 ID:hxcBD3fo
補足。>>754 の例はその3つどれでもダメだったってことです。
>>755以外の方、有益な返答お願いします。
757名称未設定:05/02/23 15:41:01 ID:y61Z5Nj7
やっぱり。皮先か。(w
758名称未設定:05/02/23 16:18:11 ID:IeoSOmQs
>>754=756
クリップボードからは取り出せない。
俺ならFinderのStandard Suiteのコマンドにあるselectを使う。
selectの使い方は入門サイトで勉強してきてね。
759名称未設定:05/02/23 20:23:47 ID:uPIGSApf
the clipboard as 《class furl》
(class furlの前後は "<<",">>" の1byte文字)

clipboardってのはデータが複数おかれてる場合がある。
例えばスタイル付きテキストは、まず'TEXT'データがあって、
そのあとスタイルデータが続くとか、PICTがあってPSがあるとかな。

この場合も複数のデータがあるので、データタイプを指定して取り出す。

clipboard info

を実行してみれば、どんなデータがあるかわかる
760名称未設定:05/02/23 20:35:05 ID:2YUFeCpL
それが分かったとして彼には無理な気が
761名称未設定:05/02/24 00:46:02 ID:z8CnHUyG
«class furl»も複数ファイルには効かないし、
selectしてaliasのlist取って、repeat回してstringで渡す
んだろな。
762名称未設定:05/02/24 15:40:33 ID:aXmmZvP8
>>758>>759>>761
おっしゃる通り1項目をコピーした場合はclipboard infoに<<class hfs>>と<<class furl>>があるので、
(FSRefとCFURLかな?と思いますが)それを使って何とかできないかと思いましたが、無理そうですね。
しかも、2つ以上をコピーした場合はclipboard infoにはstringとUnicode textしか入ってないですしね。
selection of application "Finder" を使うことにします。ありがとうございました。
763hirano:05/02/25 18:23:11 ID:zYl+IjDt
>>754さんへ。
Web Scripter's Meetingというサイトで見つけましたが
tell application "Finder"
set theText to the clipboard as string
end tell
とやればクリップボードの中身がテキストtheTextで取得できます。
それとも>>754の質問の意図は
目的のファイルの「参照」なのでパス名が欲しいのでしょうか?
コピーしたあとなら、そのテキスト内容かと想像してますが。
764名称未設定:05/02/25 22:56:56 ID:e3ltjaXM
君はまだまだ勉強が足りない。
765名称未設定:05/02/25 23:30:30 ID:JQ6nzVz5
コピーしたファイルが一個の場合の取り出しに成功
tell application "Finder"
set theFile to «class furl» of (the clipboard as record)
set theFile to theFile as alias
set name of theFile to "test." & (name of theFile)
end tell
on open itemlist
repeat with i in itemlist
tell application "Finder"
set fldpath to folder of i
set fldpath to fldpath as alias
end tell
set fldpath to POSIX path of fldpath
set urlStr to ""
set urlStr to do shell script "cat " & quoted form of POSIX path of i & " | perl -wne 'if (m#ref href=\"(mms://.+wmv)#i) {print $1;last}'"
--display dialog urlStr
if urlStr is not "" then
do shell script "cd " & quoted form of fldpath & ";mmsclient " & urlStr
else
set urlStr to do shell script "cat " & quoted form of POSIX path of i & " | perl -wne 'if (m#ref href=\"(http://.+wmv)#i) {print $1;last}'"
do shell script "cd " & quoted form of fldpath & ";curl -O " & urlStr
end if
end repeat
beep 3
activate
display dialog "Downloads complete." buttons {"OK"} default button "OK"
end open
767名称未設定:05/02/26 12:59:19 ID:pBGAUjim
ちょっと質問。
OS9.2.2,AS1.6,FinderPop,Sandi'sAdditions
以下のスクリプトで、クリップボードデータの受け渡しがうまくいかない。
使用方法はグローバルスクリプト。
どうしたら渡せるのか?

tell application ((path to frontmost application) as string)
activate
TypeText "c" with Command
display dialog (the clipboard as string)
end tell
768名称未設定:05/02/26 14:47:57 ID:kQadJ1Jt
>>767
activateはアプリケーション予約語じゃなかった?
769名称未設定:05/02/26 15:00:26 ID:NgTtY/sn
>>767
一度他のアプリをactivateしてからthe clipboardを参照してみたら?
770名称未設定:05/02/26 15:43:33 ID:BHNnr81h
スタンダードadditionsが1.7だったとかいうオチだったり
771名称未設定:05/02/26 16:27:16 ID:KXZW03yr
アプリケーション切り替えないとクリップボード更新されないヨカン
772名称未設定:05/02/26 21:28:16 ID:9yHd50wE
>>768
ん?
フロントアプリケーションで使うんだからactivateはあってもなくても動く。
この場合あったほうが確実だろ?
>>769
それで動いたの?
それはだいぶ前にやってみてダメだったんだが。
>>770
標準機能追加は1.6だが。
773754,756,762:05/02/26 21:32:58 ID:O/k/FA51
>>763
テキストでなくファイル参照です。alias か item として取り出せないかと。
>>765
それです!それがしたかったんです。
でも1項目じゃないとできないのが残念。
the clipboard は as record することで内容がかなり変わるんですね。
ありがとうございました。
774名称未設定:05/02/27 00:35:03 ID:jHfXP7qD
>>772
クリップボード、
ToolBoxな名前ではスクラップって言うのだが、
これにはアプリ固有のプライベートスクラップと
システムの管理するデスクスクラップってのがある。
当然、the clipborad はデスクスクラップを意味している。

で、アプリでcmd+Cとかメニュー操作でコピーした時、
そのデータがプライペートになるか 
デスクスクラップになるかはアプリ次第。

ただ、どこかのタイミングで同期は行われている。
で、大抵は、
アプリケーションが、
・最前面になったとき。
・最前面でなくなったとき。
ってのが一般的。

またデスクスクラップ自体、実はアプリケーションのヒープ内にあって
アプリケーションの切り替えが発生するたびにコピーされていたりするので、
書き換えを確実に取りたいなら、強制的に切り替えを発生させてやる

……とうまくいくかもしれない。
775名称未設定:05/02/27 00:39:26 ID:vaKQqrbz
Photoshopなんかで馬鹿でかい画像のうえでコマンド+Cすると
アプリを切り替えたときに「クリップボードに転送できませんでした」とか出るよね
776名称未設定:05/02/27 04:59:47 ID:yrI+gjWE
stringとUnicode textで内容が変わるのはなんとかならないものか。
777767:05/02/27 16:10:21 ID:t4uZZi4C
>>772
うまくいかない。
強制的に切り替えても、クリップボードが働かない。
スクリプトが優先されてる。
難しい。。。
778767:05/02/27 16:10:56 ID:t4uZZi4C
>>774
779名称未設定:05/02/27 18:39:21 ID:JB5GEo6D
スクリプトからアプリケーションを切り替えてもクリップボードは更新されない。
一旦スクリプトを抜ければ良いと思うが、そういう方法あった?

HyperCardでApplicationメニュー(右上のアプリ切り替え)を
do menu で「実行」した時はうまくいった。
780名称未設定:05/02/27 19:13:15 ID:jHfXP7qD
>>777
状況がわからないのでなんとも言えないが、

・クリップボードアクセスは基本的に最前面のアプリだけが行う(前提で仕組みができている)。
・データのサイズによって更新に多少時間が掛かる。
・アプリでコピーしたものが独自のデータ形式だと、外部からは参照できない(プライベートスクラップに止まる)。
・ダイアログが出てたりする場合は難しいかも。

みたいな…。とりあえず delay でも入れてみたら?
--sampleみたいな
tell application "TextEdit" to activate
TepyText "C" with Command
tell application ((path to me) as string) to activate
delay 1
set cbData to the clipboard
781名称未設定:05/02/27 19:22:03 ID:jHfXP7qD
↑スクリプエディタ上でなら、こんな感じで動く。
delayを入れないとダメな場合がある。

このへんは更新に時間が掛かると言うより、
アプリに送られるイベントの順番あたりの問題かも。
782名称未設定:05/02/27 19:28:28 ID:jHfXP7qD
…続き
FinderPopってことは自分自身がターゲットで
かつスクリプトロードをしてるってことになるのかなあ?

そのへんが問題なのかもしれないけど、
仕組みがわからないので、なんとも言えない。

一度 Finder を activate してとかやってもダメなの?
783名称未設定:05/02/27 23:59:00 ID:asDKO/5I
HyperCardから "Application" メニューを使ってアプリを切り替えた時はうまく行った。
試しにアプリケーションを切り替えるツールボックスを呼び出した時はダメだった。
クリップボード更新のタイミングが良く分からない。
ファインダーが絡んでいるようだが、一旦スクリプトを抜ける必要があるかも。
784767:05/02/28 22:26:39 ID:gSlR6Z3S
>>780
その環境はOSX?
そのスクリプトもクリップボードが更新しない。

delayは効果ない。
delay中に裏で更新してくれればいいのだが、そういう造りになってないだろ。

最終的にダイアログは使わない。
使わなくてもうまくいかない。

Finderに切り替えてみると、Finderで選択中のファイル名が取得されてしまう。
つまりFinderでコピーしているのと同じ。

クリップボードイベントの終了をチェックするような方法があれば可能なんだろうが。
あるいは>>783が言うように、一旦スクリプトを抜ける方法とか。
785名称未設定:05/03/01 00:24:25 ID:5ysN9tgM
>>784
OS9.1
あくまでもスクリプトエディター上からの動作だけ確認している。
うちのシステムだとdelayがないとTextEditからは拾えなかった。

TypeTextした後にFinderに切り替えて、
Finderの選択項目を拾うなら、
それはなにかの理由でTypeTextが
ブロックされてるか、遅延を起こしてる
ってことじゃないのかな?
786767:05/03/01 12:45:01 ID:Rj33UOH5
>>785
スクリプトエディタ上だけで動作しても意味ないんだよ。
TypeTextがブロックまたは遅延されないように、
先にも上げたクリップイベントの終了チェックや
一旦スクリプトを抜ける方法はないかと言ってるわけで。
787名称未設定:05/03/01 13:28:17 ID:COXLd6LA
僕もCommand + CのGUI Scriptingじゃ不安定なので、
汎用的なコピーの手段で悩んだクチだけど、
まずtryでcopyを使ってみては?
……そのcopyもアプリによって意味が違うわけだけど。

Apple Eventには必ずcopyに相当するものって無かったでしたっけ?
788名称未設定:05/03/01 15:58:33 ID:EEUyvpus
copyはFinderの予約語だから、
他のアプリでは使えないんじゃないか?
789名称未設定:05/03/01 16:06:05 ID:0BgmwL62
ヌevent misccopyネ
790名称未設定:05/03/01 22:34:50 ID:K5q1AeKX
>一旦スクリプトを抜ける

数ticks後に自分にイベントを送る、という機能がASあればいいのに。
RuntimeRevolutionの「send xx to yy in zz ticks」みたいの。
791名称未設定:05/03/02 23:19:04 ID:T5lArt5N
>>790
頭を使うとできるような気がする。
ヒントはtellとapplication response
792名称未設定:05/03/03 16:17:49 ID:xCgerxvy
767のスクリプトをOSA Menuから"Run scripts more compatibly"オプションをOnにした状態で実行すると問題なく動作しました。
環境 Mac OS 9.2.2
793名称未設定:05/03/04 20:30:28 ID:Sm7173gw
10.2.8+ProjectBuilderでAppleScriptStudioを使ってるのですが、

フィールドのAS名をtextにして、Window名がwindow1で、
set str1 to string value of text field "text" of window "window1"
display dialog "こんにちは、" & str1 & "さん!"
とボタンが押された時のスクリプトに組み込んだのですが、
ボタンを押すとどうしても「The variable str1 is not defined. (-2753)」とダイアログが出てしまいます。

AppleScript系のサイトにある文そのものを引っ張ってきてテストしてみたので合ってるはずなのですが・・・
794名称未設定:05/03/04 21:49:12 ID:lhvASUCn
>>793
構文はあっているみたいですけど。
他のオブジェクトにtellした中にいれたりしてませんか?
set str1 to string value of text field "text" of window "window1" of me
その場合は of me にすると上手くいきます。
795名称未設定:05/03/05 16:29:26 ID:9a2a/ssl
>>794
最後に「of me」を入れて実行してみたのですがやっぱりdefinedと出てしまいます。

なんでだろう・・・
796名称未設定:05/03/06 01:05:57 ID:5D4PwpvB
>>793
うちにある本だと
set str1 to contents of text field "text" of window "window1"
ってなってるけどどうよ?
797名称未設定:05/03/06 01:17:45 ID:9JcdYuPY
>>794
参考になさったの、つやのさんところですかね。
(全体的に流れがつかみにくい構成の文だったけど)
あの指示通りにやってみましたが問題なく動きました。
もう一度順を追ってやり直してみてはいかがでしょか。
798793:05/03/06 14:52:38 ID:7CbZyZUj
どうにか>>796の文で試してみたら動きました。本当にありがとうございました。
799名称未設定:05/03/06 15:21:27 ID:vz85BPc4
>>793
(-2753)は書式の問題らしい。
「Script Editor」の[編集]-[AppleScriptフォーマット...]の書式で、
使用するフォントを、「演算子および句読点(+&、)」は英字フォント(Chicagoなど)に、
その他は日本語フォント(Osakaなど)に設定で直るかも。
800793:05/03/06 16:40:23 ID:7CbZyZUj
>>799
いえ、角ゴのままで今までScriptEditorで書いてきたのですが-2753は出てきませんでした。
なんでだろう・・・


あと、もう一つASStudioで質問なんですけど、どうしてもコマンド結果が出力されません。
つやさんの所ではCPUの使用率ということでpxコマンドの出力が出来る文が出てるので、
あれを加工してcurl >コマンドの結果をテキストビューに出そうとしたいのですが、
どうしても結果が出ずに録音コマンドだけが送られてしまいます。

ちなみにソースはこうです。
on clicked theObject
if name of theObject is "StartBTN" then
set URLf to contents of text field "URLf" of window "curlTest"
set OUTf to contents of text field "OUTf" of window "curlTest"
do shell script "curl" & space & URLf & space & ">" & space & "/users/" & OUTf
set contents of text view "TEXT" of scroll view "View" of window "curlRadioRecoder" to result
end if
end clicked


何度も何度もすみませんorz
801名称未設定:05/03/06 18:16:38 ID:vz85BPc4
>>800
do shell script は非対話型にしか対応してません。
なので下記のようになります。
do shell script "curl -o " & OUTf & space & URLf
802名称未設定:05/03/06 18:41:52 ID:vz85BPc4
って、勘違いしてますねorz
「OUTf」でファイルに出力しているので、read かな。
read (OUTf as POSIX file as alias)
803793:05/03/06 21:03:30 ID:7CbZyZUj
>>802
それだとスクリプトエラーでビルド出来ません・・・

やっぱり無理なのかなぁ・・・
804名称未設定:05/03/06 22:25:14 ID:vz85BPc4
>>803
result の部分を read ("/users/" & OUTf as POSIX file as alias) ですよ。
エラーを吐くという事は、やはり書式の問題では・・・
805hirano:05/03/07 18:32:09 ID:wGJTVuNV
>>763で書いた者です。
なるほど勉強不足でしたね。「参照」がわかってませんでした。
さて
>>793さんのAppleScript Studio、手元で実験しました。
MacOSX 10.3.8 + Xcodeでやってみると
793そのままのスクリプトで成功します。
Interface Builderで何箇所かに入れるチェックが
入れ忘れとかじゃないですかね。(想像)
参考書は掌田氏「ASSでゼンマイびゅんびゅん」です。
806793:05/03/07 20:08:01 ID:Lh5ie9nZ
>>804
すみません・・・場所を変えてもどうしても結果をリアルタイムどころか吐き出しません・・・

set OUTf to ~ と do shell script ~ の間だとCan't make file.
do shell script ~ と set contents of ~ の間だと録音のみで固まって結果を吐き出さないです。

なんでだろう・・・
807名称未設定:05/03/14 22:38:53 ID:QC+wTUPA

最近studioを使い始めたので久々にage
808名称未設定:05/03/15 12:35:52 ID:a3uiFTN0
Studioで作ったソフトがOSのバージョンが違うと動かなかったりするのは
しょうがないんかねー。
またTigerで変わるんやろうな。
809名称未設定:05/03/15 19:10:51 ID:Lq9Id6Te
applescriptの仕様がいい加減で資料も少ないのがガン。
しかも放置されたまんまのバグもけっこうあるみたいだし。
810名称未設定:05/03/15 23:00:44 ID:hA447gju
最近AS系に全然力入れてなさそうだし、Automatorのようなよりグラフィカルなアプローチに移行するんじゃない?
811名称未設定:05/03/16 00:47:02 ID:WS7r1QOd
いや、だからAutomatorのモジュールはAppleScriptやObjective-Cで書くのだか
ら、Automatorはフロントエンドに過ぎないと何度いったら(ry

812名称未設定:05/03/16 01:37:38 ID:MrijEpsc
フロントエンドも何も、そういうマクロの設計自体が変わるという話だろ。
何でもかんでもASで完結させるんじゃなく。
813名称未設定:05/03/16 07:06:36 ID:M2Ai7LeZ
>>811
AutomatorはFilterTopの焼き直しですな。
こういうのは昔からあって出ては消えを繰り返してるんだけど、
知らない人には新しい物に見えると。次に登場するのはCommando
のposix版あたり?
814名称未設定:05/03/16 10:10:18 ID:FoOOlN/s
どっちにしろ、Automatorじゃ変数使って条件分岐とかファイル読み書きは出来なさそうだ
そのへんでAS本体との棲み分けになるんだろう
815名称未設定:05/03/16 11:11:09 ID:miQ+MN4A
ほんとは文字列操作やリスト操作をMTOsax並みに強化してほしいんだけど、
そういうのはシェルやXcodeでやってくれ、ってことなんだろうな。(´・ω・`)
816名称未設定:05/03/16 19:46:30 ID:F4Qg1rYp
Automatorでつくる(初心者)

必要に応じてAppleScriptで編集(中・上級者)

こんなもんなんだろ?
817名称未設定:05/03/17 00:27:00 ID:RFSXuQGy
ぽいね
818名称未設定:05/03/17 03:06:04 ID:ueGhawPn
1.Automator用のモジュールをクレクレする。(初心者/クレ厨)

2.Automator向けにモジュールを作る。(中・上級者)

3.Automator使う。欲が出る。(初心者/クレ厨)

1.に戻る

中・上級者がAutomatorにどんな意義を見い出せるかがポイント。
819名称未設定:05/03/19 22:39:51 ID:GrHwU7HN
UIの拡張くらいしか意味はないな。
XCODEより少ししきいが狭いくらいか。
スクリプトアプリケーションで十分だ。
820名称未設定:05/03/19 22:50:02 ID:r0w1fw6j
Automatorの実行環境はどうなるんだろ。
できあがったスクリプトは現在のアップルスクリプトと互換性あって
スクリプトメニューや各種AppleScript実行ソフトから
実行できるようになるのかな?
821名称未設定:05/03/19 23:01:52 ID:rLg9WzBm
んなわけないじゃん
822名称未設定:05/03/20 01:57:44 ID:UESIBkw9
↑バカ発見
823名称未設定:05/03/20 02:03:32 ID:J/X/ATEk
Automatorが「作る」のは単なるマクロだろ。
824名称未設定:05/03/20 09:38:46 ID:KmoEkUZ8
Automatorのページにアプリケーション形式かドキュメント形式で保存出来るって書いてあるじゃん
825名称未設定:05/03/20 12:16:15 ID:Le3n3OaK
このまえAppleScriptに付いた、GUIスクリプティングを、
自動的に書いてくれるだけだと思う。
保存したファイル内では、Automatorのデータ部分と、
AppleScriptとして書き出した部分の二重構造になっていて、
実行するのはAppleScript、編集するときはAutomatorのデータ部分をいじることになると思う。
それがAppleにとって、一番開発費がかからない手法かと。
826名称未設定:05/03/20 13:30:35 ID:gUzs+FiP
てかAppleScriptで扱うGUIってCocoaにならないかな
827名称未設定:05/03/20 14:29:38 ID:A1aRiisi
>>824
ワークフローを保存としか書いてなけど、どのページ?
828名称未設定:05/03/20 15:32:11 ID:AdUH607J
変数名を、たとえば「thelist」から「theList」に変更しようと書き換えても
コンパイルすると勝手に「thelist」になってしまう。
これはどうすればいいのでしょうか。
829名称未設定:05/03/20 17:06:14 ID:UESIBkw9
theListに書き直してテキストとして保存し、
スクリプトエディタを再起動する。
830名称未設定:05/03/20 17:41:40 ID:AdUH607J
>>829
uoooooo,サンクス
831名称未設定:2005/03/21(月) 08:08:19 ID:s0zjlu+E
Automatorって案外ややこしいな。
ttp://developer.apple.com/macosx/tiger/automator.html
832名称未設定:2005/03/21(月) 10:53:33 ID:32KGtOYW
>>827
http://developer.apple.com/macosx/tiger/automator.html
のページのUsing Automatorのwindowの画像の下の下のパラグラフ

>>Once you have created a Workflow, you can save it as an editable document.



>>There aretwo more options for saving Workflows so that they can be run without Automator. The first is as a standalone application.
833名称未設定:2005/03/21(月) 15:35:34 ID:NDm48uZT
Recordボタンが無いのはちょっと悲しい。
エンドユーザがちょっとした作業の為に作るには少し敷居が高い感じ。
834名称未設定:2005/03/21(月) 17:12:15 ID:vFw7/cB+
つーかそれはASEditorでやったら。
835名称未設定:2005/03/22(火) 22:25:13 ID:IVRdkebV
文字列置換はOSXになってからdo shell scriptでやれってな雰囲気があるけど、
旧来のapplescript's text item delimitersでやったほうが50倍以上速いね。
836名称未設定:2005/03/23(水) 22:26:31 ID:fHGhPwmV
いろいろバグもあるけどな。
837名称未設定:2005/03/23(水) 22:39:34 ID:BoeEguXr
>>836
delimitersでバグ?
詳しく
838名称未設定:2005/03/23(水) 22:43:38 ID:BoeEguXr
839名称未設定:2005/03/23(水) 22:51:59 ID:gU71zK1g
>>838
as studioを使うようになってから文字列はとにかくas unicode textにしていたんだが、
boolean変換でつまづいたのはそういうことだったのか。
840名称未設定:2005/03/25(金) 01:06:04 ID:JT51xWuX
それに、多数のデリミタが含まれているとアプリがクラッシュしたりする。
このスレのテキストをコピーして、改行を適当な文字列に置き換えようとしたりするとクラッシュするはず。
841名称未設定:2005/03/25(金) 02:18:58 ID:gUgPhIOv
>>840
4000を超えるようなリストを変数に入れたりするとスタックオーバーフローになること?
それなら分割すれば大丈夫だよ。
842名称未設定:2005/03/25(金) 02:41:15 ID:Xd2lwNpN
>>839
それ、一旦unicode textにしちゃうと、stringにしてもbooleanにならん。
843名称未設定:2005/03/27(日) 11:13:58 ID:Z7zQSB7L
現状のAppleScriptStudioではフォントは扱えないんだっけ?
844名称未設定:2005/03/30(水) 15:54:54 ID:w/OwYmFM
unicodeで結果を返すとhelvetica12になってしまう
845名称未設定:2005/04/02(土) 16:43:47 ID:vG0R67c3
>>841
うひゃー。そんな大きなデータ扱うようなもの作った事ないや・・。
スタックオーバーフローは再帰とかで見た事あるけど。
846名称未設定:2005/04/02(土) 22:26:12 ID:1WIG3DLi
このスレのテキストの改行を全部<br>に置き換えてごらん。
847名称未設定:2005/04/02(土) 23:32:17 ID:vG0R67c3
そーか。
デリミタでテキストをリストにする場合を考えたら
案外4000項目のリストっていうのも身近な話ですね。

でもそういうのはだいたいPerl(旧OSの時はMacJPerl)呼び出しでやってるからな。
848名称未設定:2005/04/04(月) 01:29:52 ID:R/CzAUEm
data(16進数の)を含んだレコード(たとえばRTFや画像)データを
そのままdefault entryに書き込むことはできないのでしょうか?
書き込んでも空のStringになってしまいます。
849名称未設定:2005/04/04(月) 12:37:18 ID:ueSxPmHX
文字列が打てるタイプのdisplaydialogで文字列の最後の文字だけを取り出して次のdisplaydialogに出す方法てのはあるのでしょうか?

それと、propertyでの設定で一つの代用に複数の文字列を入れたいのですが、
コンマ区切りやor区切りでやってもbooleanに変更できませんと言われたのですが、
これも実質複数の言葉を代入するのは不可能なのでしょうか?
850名称未設定:2005/04/04(月) 19:12:40 ID:7xMSgPA5
>>849
set a to character -1 of text returned of (display dialog 〜〜〜)
display dialog 〜〜〜 default answer a

複数の文字列はリスト形式で。
property b : {"1", "2,", "3"}
その中のひとつを取り出すときは
item 1 of b
とする。二番目のを取り出すなら
item 2 of b
851名称未設定:2005/04/04(月) 21:14:59 ID:EQ8zrubS
>>848
いかにもバグっぽいよね。
852名称未設定:2005/04/06(水) 20:16:58 ID:6DEvqp9h
久しぶりに自作(OS9)。なんで動かないの・・・・

フォルダの並べ替えを選ぶの
property theSort : {"name", "size", "kind", "label", "creation date", "modification date", "comment", "version"}
tell application "Finder"
activate
choose from list theSort with prompt "Sort by:" default items "kind" without multiple selections allowed
set strSort to result
set view of window 1 to strSort
end tell

もいっこ、フォルダを選んで開くやつ
property theRecord : {ツ
{name:"cache iCab", URL:"OS9:書類:browser pref:pref iCab"}, ツ
{name:"cache Mozilla", URL:"OS9:書類:browser pref:pref Mozilla"}, ツ
{name:"cache MSIE", URL:"OS9:書類:browser pref:pref MSIE"}, ツ
{name:"cache Netscape", URL:"OS9:書類:browser pref:pref Netscape"}}
set nameList to {}
repeat with i in theRecord
set end of nameList to name of i
end repeat
set theName to (choose from list nameList with prompt "Cache folder of browser:" OK button name "OK" cancel button name "Cancel") as string
if theName is not "false" then
try
repeat with i in theRecord
if theName = name of i then set theLocation to URL of i
end repeat
end try
select file theLocation
open selection
end if
853名称未設定:2005/04/06(水) 20:22:09 ID:7si5qffv
set view of window 1 to strSort
select file theLocation
ここが怪しい。
854名称未設定:2005/04/06(水) 22:33:30 ID:fXVUda4q
system eventsを使って、例えばSafariのウインドウ内で
ある座標を指定してクリックさせる事はできますか?
用語説明やネット検索で、メニューやダイアログのボタンなどは
クリックできることは分かりました。
しかし、用語説明で「at list」の後ろへ座標らしき{x,y}という記述はありますが
意味がよく分かりません。
なにかヒントがあれば教えてください。

855せぶん:2005/04/07(木) 01:02:50 ID:WWWb2Al0
お世話になります。AppleScript初心者です。検索した結果、似たような項目を見つけられなかったので質問します。

【OS】Mac OS 9
【Q】「そのファイルが入っているフォルダの指定方法」がわかりません。
【やりたいこと】「GraphicConverter」を使ってスライドショーを実行。

1)フォルダをドラッグ&ドロップしたら、そのフォルダ内容をスライドショーで表示。

ここの掲示板などを参考に下記のようなスクリプトを作り、問題なく動いています。
----------
--フォルダをDrag & Dropすると、その中身のスライドショーを開始する
on open the_Target
try
tell application "GraphicConverter"
activate
slideshow the_Target
end tell
on error
return
end try
end open
----------

《つづく》
856せぶん:2005/04/07(木) 01:04:43 ID:WWWb2Al0
《つづき》

2)もしドラッグ&ドロップされたものが「ファイル」だったら、そのファイルが
入っているフォルダをスライドショーの対象にしたい。

【考えたこと】
ドラッグ&ドロップされたアイテムのname(pathのほうがいいのか?)を取得し、
もし「:」で終わっていなければ「ファイル」と判断する。→
そのファイルが入っているフォルダを、上記スクリプトの変数「the_Target」に
指定する。

‥‥ということを考え、以下の部分を上記スクリプトの冒頭に追加しました。

----------
--Drag & Dropされたものがファイルの場合、そのファイルが含まれるフォルダを対象に。
tell application "Finder"
set Target_name to (name of the_Target as text)
if Target_name does not end with ":" then
set the_Target to path to container window of the_Target
end if
end tell
----------
↑この部分がどうしてもうまくいきません。
何か根本的な間違いをしていると思うのですが‥‥。

ご存じの方、よろしくご教示ください。

《つづく》
857せぶん:2005/04/07(木) 01:05:18 ID:WWWb2Al0
《つづき》

【さらに・・・】
対象のフォルダの中身はPhotoshop EPSファイルです。
中身をざっと確認するだけならPhotoshopよりもGraphicConverterのほうが
早いのでこのスクリプトを作ろうと思ったわけですが、エラー処理として
「もしフォルダの中身のファイルがEPSファイルでなかった場合は中止」と
いう処理を追加したいと思いましたが、それ(↓)もうまくいきません‥‥。

if (file type of the items of entire contents of the_Target) is not equal to "EPSF" then return

《EOF》
858名称未設定:2005/04/07(木) 01:18:14 ID:KOJlqDrj
>>855
ぱっと見ただけだけど、the_targetはリストだから
アイテムを1個1個取り出して処理しないとだめじゃない?
特に最後のEPSうんぬんは。
859名称未設定:2005/04/07(木) 01:35:20 ID:ogGYkybH
ここにスライドショーdropletあるけど参考にならないかな?
ttp://www.lemkesoft.com/en/graphscripts.htm
860せぶん:2005/04/07(木) 15:06:30 ID:WWWb2Al0
ご回答、ありがとうございます。

>>858
》ぱっと見ただけだけど、the_targetはリストだから
》アイテムを1個1個取り出して処理しないとだめじゃない?

フォルダにしろファイルにしろ、ドラッグ&ドロップするのは1つだけなのですが、それでもリスト形式になるのでしたっけ?
具体的な処理方法がわからないのですが、、、もう少し調べてみます。


》特に最後のEPSうんぬんは。

画像ファイルが入っているフォルダは、EPSならEPSのみ、PICTならPICTのみとなっており、ファイルタイプは混在していません。
ですからその中の1つでもEPSファイルでなければ処理中止‥‥と考えたのですが。



>>859
》ここにスライドショーdropletあるけど参考にならないかな?
http://www.lemkesoft.com/en/graphscripts.htm

見てみましたが、私が855に書いたスクリプトとほぼ同じでした。
861名称未設定:2005/04/07(木) 19:29:11 ID:eKpM0HIx
なんかAppleScriptでゼンマイびゅんびゅんが絶版寸前だったから注文してみた。

何かの参考になるのかな。
862名称未設定:2005/04/07(木) 21:25:43 ID:NqRAyWp/
>>856
多分、、、name of と path to と window がいらない
>>857
フォルダの中の第一階層だけ見ればいいのか
set not_EPSF to every file in the_Target whose file type is not "EPSF"
ひとつでもEPSファイル以外のモノがあれば中止するのか
if number of not_EPSF > 0 then return
フォルダの中のフォルダの中にEPSファイルがある時はどうするかとか
細かい所が解らないと対処出来まへん
863名称未設定:2005/04/07(木) 22:02:35 ID:rkqsmelE
9で動くかわかりませんが

on open the_Target
tell application "Finder"
set the_TargetOne to (item 1 of the_Target) as alias
if kind of the_TargetOne is not "フォルダ" then
set the_TargetOne to (container of the_TargetOne as alias)
end if
if file type of item 1 of the_TargetOne is not "EPSF" then return
try
tell application "GraphicConverter"
activate
slideshow the_TargetOne
end tell
on error
return
end try
end tell
end open

複数フォルダのドロップには対応してません。
864名称未設定:2005/04/07(木) 22:56:19 ID:rkqsmelE
あ、先頭のアイテムがフォルダだとだめだわ。
865せぶん:2005/04/07(木) 23:29:06 ID:WWWb2Al0

先にこちらから‥‥。

>>863
ご教示、ありがとうございます。

結果は大成功でした!!!

>>864
後述しますが、対象の画像フォルダの中にはさらにフォルダはない
のでOKです。

自分のスクリプトと見比べると余分なものがなく、すっきりとして
見通しがいいですね。
また、「kind of」や「as alias」の使い方も勉強になります。

自分のはそれらしいコマンドを羅列しているだけのようで、恥ずか
しいです。

重ねてありがとうございました。

・・・とこれだけで終わってしまっては単なる教えてクンになって
しまうので、もう少し続けていいでしょうか。
私と同様のところでつまずいている初心者の手助けになればと‥‥。
866せぶん:2005/04/07(木) 23:38:07 ID:WWWb2Al0
>>862
アドバイス、ありがとうございます。

--on open the_Target
--Drag & Dropされたものがファイルの場合、そのファイルが含まれるフォルダを対象に。
tell application "Finder"
set the_Target to choose file★ -- for debug
set Target_name to (the_Target as text)
display dialog Target_name -- for debug
if Target_name does not end with ":" then
set the_Target to container of the_Target
end if
display dialog (the_Target as text) -- for debug
end tell

--if (ここにファイルがEPS形式でなかった場合の処理) then return

--try
tell application "GraphicConverter"
activate
slideshow the_Target
end tell
(*
on error
return
end try
end open
*)
−−−−−−−−−−−−−−−

《つづく》
867せぶん:2005/04/07(木) 23:39:19 ID:WWWb2Al0
》 多分、、、name of と path to と window がいらない
ご指摘の部分を削ってみました。
スクリプトがどのように動作しているのかを確かめるために、ドロップレットだったものの
「on open」と「end open」をコメントアウトし、「-- for debug」の行を書き加えました。
また「try〜on error〜end try」部分もコメントアウトしました。

【実験ファイルの置き場所状態】
Data HD:Test folder:sample_file-01.eps、sample_file-02.eps・・・・
(Test folderの中に入れ子になっているフォルダはありません)

【実験方法】
上記スクリプトの★の箇所を「folder」と「file」に変えて実験。

【結果】
1)フォルダを指定した場合→従来通り問題ありません。

■フォルダを指定した時の「履歴」ウインドウ内容-----------
tell application "Finder"
choose folder
--> alias "Data HD:Test folder:"
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
end tell
tell application "GraphicConverter"
activate
slideshow alias "Data HD:Test folder:"
end tell

《つづく》
868せぶん:2005/04/07(木) 23:40:52 ID:WWWb2Al0
2)ファイルを指定した場合→「display dialog」で確認すると「末尾が
コロンの場合はそれを含むフォルダにする」というのはうまくいって
いるようです。しかしスライドショーは実行されず、エラーになります。

■ファイルを指定した時の「履歴」ウインドウ内容--------
tell application "Finder"
choose file
--> alias "Data HD:Test folder:sample_file-01.eps"
display dialog "Data HD:Test folder:sample_file-01.eps"
--> {button returned:"OK"}
get container of alias "Data HD:Test folder:sample_file-01.eps"
--> folder "Test folder" of disk "Data"
get folder "Test folder" of disk "Data"
--> "Data HD:Test folder:"
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
end tell
tell application "GraphicConverter"
activate
end tell
tell application "Finder"
ヌevent GKONslidネ folder "Test folder" of disk "Data"
--> Finder got an error: folder "Test folder" of disk "Data" doesn't understand the slideshow message.


ここ↑の最後を見ると「slideshowという命令が理解できない」とありますが、そのエラー
を出しているのがGraphicConverterではなくFinderだというのもナゾです。
最後の「tell application "Finder"〜」の部分はスクリプトにはないものなのですが、そ
ういう仕組みになっているのでしょうか?

※毎回、長文ですみません・・・。
869せぶん:2005/04/07(木) 23:41:30 ID:WWWb2Al0
2)ファイルを指定した場合→「display dialog」で確認すると「末尾が
コロンの場合はそれを含むフォルダにする」というのはうまくいって
いるようです。しかしスライドショーは実行されず、エラーになります。

■ファイルを指定した時の「履歴」ウインドウ内容--------
tell application "Finder"
choose file
--> alias "Data HD:Test folder:sample_file-01.eps"
display dialog "Data HD:Test folder:sample_file-01.eps"
--> {button returned:"OK"}
get container of alias "Data HD:Test folder:sample_file-01.eps"
--> folder "Test folder" of disk "Data"
get folder "Test folder" of disk "Data"
--> "Data HD:Test folder:"
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
end tell
tell application "GraphicConverter"
activate
end tell
tell application "Finder"
ヌevent GKONslidネ folder "Test folder" of disk "Data"
--> Finder got an error: folder "Test folder" of disk "Data" doesn't understand the slideshow message.


ここ↑の最後を見ると「slideshowという命令が理解できない」とありますが、そのエラー
を出しているのがGraphicConverterではなくFinderだというのもナゾです。
最後の「tell application "Finder"〜」の部分はスクリプトにはないものなのですが、そ
ういう仕組みになっているのでしょうか?

※毎回、長文ですみません・・・。
870せぶん:2005/04/07(木) 23:45:55 ID:WWWb2Al0
>>869

あれっ、どういうわけかダブってアップされてしまいました。
申しわけありません。
871名称未設定:2005/04/08(金) 01:10:47 ID:5n7nWWNz
メッセージの意味はわからないけどGraphicConverterのslideshowは

slideshow alias "Data HD:Test folder:"

という書き方でないとだめで

slideshow folder "Test folder" of disk "Data"

だと怒られるようです。なので>>866
set the_Target to container of the_Target の部分を

set the_Target to (container of the_Target as alias) または
set the_Target to (container of the_Target as string)

としてやればいいみたい。多分。
872名称未設定:2005/04/08(金) 01:15:08 ID:33KIGIid
set afile to choose file
set afolder to container of afile as alias

これじゃだめ?
873名称未設定:2005/04/08(金) 07:43:32 ID:x/wtHnf2
>>871
後者の書き方はFinderのみの用語じゃなかったっけ。
GCが受け付けないのは当然かと。
874852:2005/04/08(金) 18:49:25 ID:shaf2w8/
>>853
どすればいいの?
875名称未設定:2005/04/11(月) 22:25:42 ID:7VynQ2X5
OS9でTCP/IPのconfigurationをスクリプトで一発変換できるようにしたいんですが、
できますか?
876名称未設定:2005/04/11(月) 22:52:39 ID:1aQmMcXH
それよりLocation Managerでやった方が簡単じゃね?
877せぶん:2005/04/14(木) 21:35:21 ID:qWyBe5xV
●「Drag & DropしたフォルダをGraphicConverterでSlideshow開始」の件。
>>871
みなさんのアドバイスを元に、下記のようにしました。
-------
on open the_Target

tell application "Finder"
set Target_name to (the_Target as alias)★
if Target_name does not end with ":" then
set the_Target to container of Target_name as alias
end if
end tell
(* 対象ファイルがEPSFでなかったらreturn *)--今回は記述を割愛
try
tell application "GraphicConverter"
activate
slideshow the_Target
end tell
on error
return
end try

end open
-------

この状態では「ファイルをDrag & DropするとOK、フォルダをDrag & Dropすると
NG(そのフォルダの上の階層が対象になる)」となります。
★印の「as alias」を「as text」に変えると、逆に「ファイル=NG(Can't get
container of "ファイルのフルパス"‥‥というエラー表示)、フォルダ=OK」となります。

う〜む、どうしたらいいんだろう‥‥。
878名称未設定:2005/04/14(木) 22:42:20 ID:Qss66Jyf BE:71045344-
applescript1.7の日本語パスにまつわるバグ?
879名称未設定:2005/04/14(木) 23:39:19 ID:J8NuRQa9
>>877
if (Target_name as text) does not end with ":" then
set Target_name to (the_Target as alias)
else
set the_Target to container of Target_name as alias
end if
とでもすればいいんでないの
880名称未設定:2005/04/15(金) 05:48:42 ID:tH9NpoCh
また来やがったか。

修行すんなら別スレでやれよ、糞野郎、氏ね! >>877
881名称未設定:2005/04/15(金) 15:16:37 ID:H/awuOw8
シヌナ、イ?「!
882名称未設定:2005/04/15(金) 16:39:48 ID:hwvvIIeE
修行スレはどこに?
883名称未設定:2005/04/15(金) 20:02:51 ID:iV54wXpJ
ttp://para-site.net/up/data/2087.zip

「この曲なんだっけ」「誰だっけ」と思ったタイミングで
ID3タグの情報をiAlertで表示するスクリプト。
CornerClickやSparkと組み合わせると使い勝手が良くなります。
どんなに小さくてもフローティングウインドウは邪魔と感じるiBookユーザーにおすすめ。
要iAlert 5.1以上。Panther専用スマソ。

iAlert
http://angeman.perso.cegetel.net/iAlert/index.php?language=en
884名称未設定:2005/04/15(金) 22:23:36 ID:wX1wB4js
>>877
とりあえず、無意味にFinderにtellするのをヤメてみな。
885名称未設定:2005/04/17(日) 06:17:32 ID:mcj8jRuv
既出ならすまん

tell application "Safari"
  activate
  open location "http://www.apple.com/jp/"
end tell
delay 5--環境次第で調節
tell application "System Events"
  tell process "Safari"
    click menu item "プリント..." of menu "ファイル" of menu bar 1
    delay 2--環境次第で調節
    click button "PDF として保存..." of UI element 3 of sheet "プリント" of window 1 of application process "Safari" of application "System Events"
    delay 2--環境次第で調節
    click button "保存" of window "ファイルに保存" of application process "Safari" of application "System Events"
  end tell
end tell
886名称未設定:2005/04/17(日) 12:01:49 ID:Mscmo3dy
>>885
do javascriptでSafariのページがロード完了したかどうかチェック出来るよ。
887名称未設定:2005/04/17(日) 17:36:47 ID:91kqFC49
こんなのどうか。

repeat
activate application "CocoMonar1096"
tell application "System Events"
tell application process "Cocomonar"
keystroke "r" using command down & shift down
keystroke "test"
keystroke tab using shift down
keystroke "sage"
keystroke "r" using command down & shift down
end tell
end tell
delay 30
end repeat
888名称未設定:2005/04/17(日) 17:51:30 ID:mcj8jRuv
>>886
ありがとうございます。勉強してみます。

>>887
(((((( ;゚Д゚)))))
889名称未設定:2005/04/19(火) 21:05:49 ID:dq8nE4Co
>>887
それを加工してありがたく定期更新スクリプトを作りました。
ありがとうございます
890名称未設定:2005/04/21(木) 00:14:37 ID:kYcwViiF BE:220234368-
乱上げ
891名称未設定:2005/04/23(土) 22:17:22 ID:9IYi4adU
iCalからToDoをもらってこようと思ってます。
で、こうやったら完了していないToDoを取得できたんですけど、、、
set theToDo to {}
tell application "iCal"
set CalendarList to every calendar
repeat with CurrentCalendar in CalendarList
set TodoList to every todo of CurrentCalendar
repeat with CurrentTodo in TodoList
if not (exists (completion date) of CurrentTodo) then
set CurrentData to {summary, priority, due date} of CurrentTodo
set end of CurrentData to title of CurrentCalendar as Unicode text
set end of theToDo to CurrentData
end if
end repeat
end repeat
end tell

theToDo

問題点の一つ目は、「メモ」の取得の仕方が分からないこと。もう一つは、うちのiCalのカレンダがClieのeにちょんがついてるんだけど、あの文字が化ける。
誰か教えてくらはい。
892名称未設定:2005/04/23(土) 22:33:15 ID:NotZGERX
ASでUnicodeつかえるOSAXがあるから落としてきなさい
893名称未設定:2005/04/23(土) 23:07:31 ID:9IYi4adU
>>892
ありがとさんです。
取得した文字はREALbasicから使おうと思ってまして、実は、REALから読むと、ちゃんとeにちょんになってました。スクリプトエディタの結果の表示がおかしかっただけですた。
おさわがせしてすみません。
メモのほうはどなたかご存じない?
894名称未設定:2005/04/23(土) 23:08:51 ID:DDGgejQL
895891:2005/04/25(月) 04:43:19 ID:F6QWpO70
>>893
documentに書いてないものはやっぱり無理っすかねえ。

出て来たものを文字列で処理したんですが、この文字列、UTF-16みたいです。
REALbasicはUTF-8で処理するので、変換する必要がありました。
どなたかの参考になれば。
896名称未設定:2005/04/27(水) 12:31:12 ID:tD+fUi0h
お前ら、もうすぐ祭だな!!
ハクるぞ!!
AppleScript Studioはどうなってるのかな。
897名称未設定:2005/04/30(土) 01:49:18 ID:RTLZjgqY
IB、ハンドラにautomator action view というのが追加されてる。
あと部品がいろいろ増えてるけどワカンネ
898名称未設定:2005/04/30(土) 05:03:27 ID:L6nO+Nbp
MovieView, QuickDrawが消えたね
899名称未設定:2005/05/01(日) 02:16:13 ID:q5+1IYgQ
オートメータースレが意外と盛り上がっているが、なんか全然手を付ける気がしない。。
使いたい場面が出てくれば使うのかもしれないが、ASヲタなら書いた方が速いもんなあ。
900名称未設定:2005/05/01(日) 11:12:18 ID:C4qsokWK
AutometorはAppleScriptを置き換えるものじゃないと思う
「キーボードから文字を打ち込む」時点で「漏れには無理」と尻込みする人もいるから
そういう人に向けた機能だと思った方がいいかもしれない
でも本当に単純な作業の繰り返しならAutometorの方が楽だった
条件分岐とかはできないからそういう時はAppleScript使えってことで
901名称未設定:2005/05/01(日) 11:41:59 ID:GYXYiYUL
アクションの中で作成予定のモノを次の処理で引数にできない。
乙女タンいまいち。
902名称未設定:2005/05/01(日) 22:14:26 ID:rk7FUsuk
Automatorで渡されるinputがよくわかんないよ。
ファイル名を取り出そうとして name of input とやると
name of alias "Macintosh HD:Users:username:desktop:hoge.txt" を取得できません
とか言われちまう。いや、そこに出てるファイル名が欲しいんだけど...
903名称未設定:2005/05/01(日) 23:20:25 ID:PAEjegQQ
つ name of (info for alias ...)
904名称未設定:2005/05/01(日) 23:56:21 ID:s4x92j3t
タイガーのおはなし

on idle
try
tell application "Finder"
set current view of window 1 to column view
end tell
end try
return 1
end idle

コンパイルする→アプリ保存→ログイン項目に登録
ログアウト→ログイン→アクティビティモニタを開く

なんかやたらにCPU喰ってる。んだけど、
ログイン項目に入れないで、ふつうに起動すると、べつにそうでもない…
なんだこれ?
905名称未設定:2005/05/02(月) 00:44:19 ID:4j8ZAVEI
>>903
うはwwww
マジありがとうございます
906名称未設定:2005/05/05(木) 14:03:37 ID:ScyJQFY8
the clipboard as record
で中身が変わった。utf16の項目ができた。
と思う。
907367:2005/05/07(土) 22:01:25 ID:rVjkPLja
the clipboardがかわったんじゃなくて、コピーを行ったもとのソフトが変わったんだ。
908名称未設定:2005/05/07(土) 23:54:27 ID:t9iL9F8m
初歩的な質問、よろしいでしょうか。見よう見まねで
パーソナルWEB共有開始をするスクリプトを作ってみたんですが、
もっと、マシなやり方は、ありますか?。

do shell script "sudo apachectl start" password "hogehoge" with administrator privileges

一応、動作はしてますが・・・。
909名称未設定:2005/05/09(月) 22:11:06 ID:2DM9o1DH
>>908
一番確実でいい方法だと思うけど。
910908:2005/05/09(月) 23:43:10 ID:kC97dDq2
>>909

おお、これでいいんですか。よかった。

システム環境設定がレコータブルだったら、いいのに・・・。
911名称未設定:2005/05/10(火) 02:04:37 ID:q51FoADy BE:35522742-#
10.4にて半角スクリプトを含むPOSIX pathの表記方法が変わった。

10.3では
do shell script "ls ~/Library/Application¥ Support/"
これで問題なかったスクリプトが、10.4だとエラーになる。

10.4ではこれならいける。
do shell script "ls ~/Library/Application¥¥ Support/"

aliasをPOSIX path of〜で変換した結果は従来通りなので混乱の元になる。
912名称未設定:2005/05/10(火) 02:27:55 ID:pBeFJmQ5
>>911
10.3でも動かないよ。
do shell script "ls ~/Library/Application' 'Support/"
と書くべき
913名称未設定:2005/05/10(火) 11:05:03 ID:sH/Q7RjT
半角スクリプトって何ですか
914名称未設定:2005/05/10(火) 11:19:37 ID:1l6azoW6
>>913
えっちな画像を自動収集するスクリプトです。
915名称未設定:2005/05/11(水) 20:41:25 ID:nnUeZ8Ii
えっちなのはいけないと思います
916名称未設定:2005/05/13(金) 19:58:16 ID:ySQEjMOS
性食寝

人間の三大快感
917名称未設定:2005/05/13(金) 20:23:56 ID:QWuYsO6G
最後の一つは「寝」じゃなくて「排」じゃないの?
918名称未設定:2005/05/14(土) 01:13:41 ID:fbuNXHYC
919名称未設定:2005/05/16(月) 13:13:33 ID:PaKXQYmp
ttp://www.apple.com/applescript/quicktime/

上の場所にあったQuickTime用のScriptを10.3.9で動かしていたのですが、
QuickTimeを7にアップデートしたら動作しなくなってしまいました。
(Save Copy in QT Formatをちょっと改良して、ムービーを一括変換していました)
さらにスクリプトエディタで開くと、何もいじくらなくても、
「構文エラー expression があるべきところですが unknown token が見つかりました」
といったメッセージが表示されて、編集すらできなくなってしまいます。
編集するようにするにはどうしたら、よいのでしょうか?
920名称未設定:2005/05/16(月) 13:36:29 ID:gJXWngHU BE:111008055-#
>>919
改行マークの¬が原因だね。とりあえずこれを削除して、その部分を一行にしちゃう。
921919:2005/05/16(月) 18:43:14 ID:m7AJQ+IG
>>920
ありがとうございます。おかげでどうにかいじくれるようになりました。
なんか基本的なことだったみたいで、ちょっと恥ずかしいです。
さて、これからいろいろといじくったり、調べたりしながら解決しないと……。
QuickTimeが変わったからの割にはFinderの操作で引っかかっているみたいだし。
922名称未設定
>>921
スクリプトエディタのバグみたいなものだからね。
気にしないように。
でも、忘れないように。