おもろい、めずらしいアップルスクリプト発表会 5
http://pc11.2ch.net/test/read.cgi/mac/1067367790/
1 名前: 1 Mail: 投稿日: 03/10/29 4:03:00 ID: poGphYMe
【前スレ】
おもろい、めずらしいアップルスクリプト発表会 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 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 4:05:00 ID: poGphYMe
訂正。
3スレ目はこちら
http://pc.2ch.net/mac/kako/971/971295440.html
3 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 4:06:00 ID: poGphYMe
>>俺
乙。
4 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 4:08:00 ID: Le8Lbcg7
>>1-3
乙
5 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 11:49:00 ID: VPUjhqSj
乙
前スレ、早くも落ちてしまいますた。
6 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 16:27:00 ID: ksJyDnW1
前スレ、何レスまで行ったの?
7 名前: 名称未設定 Mail: 投稿日: 03/10/29 21:25:00 ID: x8Lfg8ud
次スレ用にとっておく?
8 名前: 名称未設定 Mail: 投稿日: 03/10/30 18:50:00 ID: k74TLggK
http://kfn.ksp.or.jp/~gauche/MacTweaks/Hiragino/
こちらに載っている
補足情報(2001/07/03)
ATMで「画面上でフォントの縁をスムージング」を指定するのはアンチエイリアス機能を使うためですが、256色モードではこ
の機能が効果を発揮しません。フルカラーでお使いください。また、アピアランスで「Finder 表
示用フォント」を変更しても再起動するとデフォルトの[Osaka]に戻ってしまうことを確認しました。Finder 表示用フォントまで
変更したい方は、起動のたびに指定するかAppleScriptを書いて自動化する必要があります。
これに載ってるフォントを切り替えるスクリプト教えてください〜
9 名前: 名称未設定 Mail: sage 投稿日: 03/10/30 22:13:00 ID: A/dW7GY3
アピアランスコンパネの用語説明を見るといいよ
10 名前: 名称未設定 Mail: sage 投稿日: 03/10/31 9:57:00 ID: bWcBwzfT
>>1
乙
>>6
987くらいかな
11 名前: 8 Mail: 投稿日: 03/10/31 16:52:00 ID: IJy4rfCH
tell application "アピアランス"
set views font to "ヒラギノ丸ゴ Pro W4"
set views font size to 12
end tell
自分でここまでは発見出来たのですが、実行するとアピアランスコンパネが開いてしまいます。
アピアランスコンパネを開かないで変更するにはどうしたらよいのでしょう???
12 名前: 名称未設定 Mail: sage 投稿日: 03/10/31 16:56:00 ID: gAJtODe8
閉じれば?
13 名前: 8 Mail: sage 投稿日: 03/10/31 17:03:00 ID: IJy4rfCH
>>12
アピアランスコンパネの画面がでないようにしたいんです.
tell application "アピアランス"
set views font to "ヒラギノ丸ゴ Pro W4"
set views font size to 12
quit
end tell
ってしたら閉じるんですけど、コンパネの画面が前面に来てしまうんです。
出ないようには出来ないのでしょうか??
14 名前: 名称未設定 Mail: 投稿日: 03/11/07 2:27:00 ID: BA/EK9Ls
保守
15 名前: 名称未設定 Mail: 投稿日: 03/11/08 14:56:00 ID: Q0UkXung
MOをイジェクトさせるスクリプトを書いてファンクションに割り当てたんだけど
Finderがアクティブになっちゃうのね。
んで、たとえばイラレ使っててMOを取り出した後に、イラレをアクティブに戻す
ってのはどうやればいいですかね?
16 名前: 名称未設定 Mail: sage 投稿日: 03/11/08 16:29:00 ID: GWab+I4n
>>15
Finderの用語辞書のProcessにある、frontmostを使えば出来るよ。
17 名前: 名称未設定 Mail: sage 投稿日: 03/11/08 19:38:00 ID: tuIppE8x
OSA Menuから使うようにすれば?
18 名前: 名称未設定 Mail: 投稿日: 03/11/14 23:47:00 ID: dptsBLX8
safariからURLドラッグすると、pdf作成してくれるようなスクリプトありますか?
メニューでもいいけど。
19 名前: 名称未設定 Mail: sage 投稿日: 03/11/15 0:34:00 ID: ZMQ9BJj9
>>18
コマンド+P
20 名前: 名称未設定 Mail: sage 投稿日: 03/11/15 8:38:00 ID: nqhcQ6el
>>19
スクリプトかメニューでって言ってるでしょ!!
>>18
メニュー→プリント
21 名前: 名称未設定 Mail: sage 投稿日: 03/11/17 11:50:00 ID: T1hRDMws
pdfを作成そのものをASにしろというのは、まずむりかと。
そんで、探し物なら他でどうぞ。
22 名前: 名称未設定 Mail: 投稿日: 03/11/18 1:07:00 ID: Y/Tpel1D
>>18
ぺn
23 名前: 名称未設定 Mail: 投稿日: 03/11/20 13:58:00 ID: PMWDp00v
選択された文字列を取ってくるのはSystem Eventsを使えばいいんでしょうか?
具体的にはSafariで選択した文字列を取ってきてURLに加工したいんですが。
24 名前: 名称未設定 Mail: sage 投稿日: 03/11/22 0:51:00 ID: OUmtzoIY
>>23
keystrokeでコマンド+Cをポストしてクリップボードから文字列とりだせばよいんでないか?
Quickeysと組み合わせた方が簡単だけど。
25 名前: 名称未設定 Mail: sage 投稿日: 03/11/23 5:50:00 ID: MVXaa5es
>>23
以前からそれやってます
OS9にiCabでCMScript使って、、だけど
コンテクストメニューから出来ると便利です
Safariでもittecみたいなの使って出来ないかな
26 名前: 名称未設定 Mail: sage 投稿日: 03/11/23 14:19:00 ID: Yqo8QCc5
CMScriptって便利なのにほとんど普及しなかったね。
iCab+CMScriptは漏れも使ってまつ。
27 名前: 名称未設定 Mail: sage 投稿日: 03/11/23 17:04:00 ID: Lw3zqp/z
>>25
コンテクストメニューでいいなら
OnMyCommandCM
http://free.abracode.com/cmworkshop/on_my_command.html
ってので選択した文字をゲットできますが
AppleScriptだけでは無理なので結構めんどくさいですね。
日本語が絡むとさらにめんどくさくなるけど
一回テンプレートになる物を作ればあとは楽になるかな。
わたしはPerlで書いてます。
・選択文字をgooの和英、英和辞書で検索する
・選択文字をGoogleで検索する
・選択文字の中からURLっぽい部分を探して開く
ってのが今は登録されてます。あんまり使ってないけどね
28 名前: 名称未設定 Mail: sage 投稿日: 03/11/25 0:29:00 ID: aUEej+l+
CMScript、私も使ってますよ。特にFinderで。
必要なメニューだけが出てくるのがいいですね。
FinderでOSAメニュー開くとズラッと並んじゃうようになったんで、
OSAメニューの方はほとんど使わなくなりました。
29 名前: 名称未設定 Mail: sage 投稿日: 03/11/25 2:07:00 ID: k1OBoONd
特にFinderで、っていうよりFinder以外ではいまひとつ使えないのが欠点だからな。
対象項目によって出現するしないを制御できるのが便利だよね。
30 名前: 名称未設定 Mail: 投稿日: 03/11/28 13:16:00 ID: jSQA3gr7
5になってから伸びないね
31 名前: 名称未設定 Mail: sage 投稿日: 03/11/29 1:15:00 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 & "" & return
end repeat
set wvx_text to "" & return & wvx_text & ""
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 名前: 名称未設定 Mail: sage 投稿日: 03/11/29 1:34:00 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 名前: 名称未設定 Mail: sage 投稿日: 03/11/29 1:51:00 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 "" & return
set duration_value to (text returned of (display dialog "再生秒数" default answer "30")) as integer
set duration_value to "" & return
set repeat_count to (text returned of (display dialog "再生回数" default answer "3")) as integer
set repeat_count to "" & return
set wvx_text to "" & return & start_time & duration_value & "" & return & "" & return
set wvx_text to "" & return & repeat_count & wvx_text & "" & return & ""
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 名前: 名称未設定 Mail: sage 投稿日: 03/11/30 12:47:00 ID: gvIvCxOP
そういえば、ここって「発表」するスレだったのね。
35 名前: 名称未設定 Mail: sage 投稿日: 03/12/07 8:32:00 ID: Gm019T9q
いきなり落ちそう、保守
36 名前: 名称未設定 Mail: 投稿日: 03/12/13 1:56:00 ID: yPjIq1fK
捕手
37 名前: 名称未設定 Mail: 投稿日: 03/12/14 7:21:00 ID: lkBo6yEa
質問ですが、
bpmカウンターというのをapple scriptで作る事は可能ですか?
===
bpmカウンターとは、
bpm、beat par minute(1分間にビートを何回刻んだかを表した数字)
を計測する装置で、大体4~8回程度、タップするとbpmを計算して表示してくれる。
38 名前: 37 Mail: sage 投稿日: 03/12/14 7:31:00 ID: lkBo6yEa
4~8回程度って書きましたが、
2度目のタップからbpmを表示し続けるのもあるし(タップ毎に表示が変わる)
>>37で書いたように、例えば8回タップした後にbpmを表示するのもあります。
39 名前: 名称未設定 Mail: sage 投稿日: 03/12/14 7:48:00 ID: ZTyrmCaJ
>>37
キータイピングを検知するOSAXを使えばできそう
40 名前: 名称未設定 Mail: sage 投稿日: 03/12/15 11:57:00 ID: z2UwB5Sk
>>37
iTunes-BPM inspectorは? iTunesで再生しているトラックに限るが。
41 名前: 37 Mail: sage 投稿日: 03/12/16 22:07:00 ID: 9rS7HNe+
>>39
OSAX?
参考書買って来ます。。
>>40
ほとんど、12インチなのと、リッピングもしないんで
今のとこ使えないんだけど、情報ありがとうございます。
42 名前: 名称未設定 Mail: sage 投稿日: 03/12/21 2:22:00 ID: kkS2ZyF1
ストップウォッチと計算機のほうが早いね・・・
43 名前: 名称未設定 Mail: sage 投稿日: 03/12/26 0:05:00 ID: GgyQCNfN
ほしゅ
44 名前: 名称未設定 Mail: 投稿日: 04/01/01 13:05:00 ID: EsbC9NKJ
おめでた保守
45 名前: 名称未設定 Mail: 投稿日: 04/01/08 9:27:00 ID: KBAeJUO6
>>42
BPMカウンタの用途を考えるとその方法は手数が多すぎて実用的じゃないね
BPMカウンタ使用時ってのは恐らく曲を再生しながら他の作業もしているはず
例えば、2枚のレコードのテンポ(BPM)を合わせたりとか
だから2回のタップで即座にBPMが表示される様な仕組みでないと使ってられない
>>37
OS XのAppleScriptStudioならApplicationクラスにon keyboard downイベントがあるんだけど
46 名前: 名称未設定 Mail: sage 投稿日: 04/01/09 3:05:00 ID: LJf6up8F
アップルスクリプトの同期の正確さってどのぐらいなんだろ・・・
まあ厳密さは要求されないけどさ。
47 名前: 名称未設定 Mail: sage 投稿日: 04/01/09 9:52:00 ID: oXHUApl+
>>37
市販のBPMカウンタ買った方が良いと思うよ
操作性とか携帯性とか考えると
BOSSのDB-12とかマジおすすめ
板違いレススマソ
48 名前: 名称未設定 Mail: 投稿日: 04/01/19 0:47:00 ID: IknwxPKd
ほしゅ
だけでは申し訳ないので、一応
keydownはJonユs CommandsやS穫di's Additions
あとはGetMilliSecなどのOSAX使えば出来ると思いまつ。
しかし、keydownなんぞで苦労するとは…
やはりHyperCardは偉大だなと今更ながらに思う今日この頃。
49 名前: 名称未設定 Mail: sage 投稿日: 04/01/23 22:03:00 ID: VFBfTDmz
質問なんですけど、特定階層のフォルダに命令を与えるには、どうすればいいでしょうか?
上層のウィンドウさえ開いていれば
set fList to every folder of window 1
repeat with obj in fList
open obj
end repeat
これでいけるんですが、
というか、特定階層だけじゃなく、階層の深さ別に別々の命令を実行させたいのですが。
50 名前: 名称未設定 Mail: sage 投稿日: 04/01/25 3:12:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/01/25 23:14:00 ID: uNSIwcAB
>>50
なるほど。ありがとうです。
ご教示いただいたサンプルとは関係ないんですが、
複数のフォルダを開き、その1つ1つ対してウィンドウ操作の命令を与えようとすると、
命令がずれますね。
ウィンドウ位置などを統一しようとすると、避けられない問題でしょうか。
52 名前: 名称未設定 Mail: sage 投稿日: 04/01/26 6:50:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/01/26 19:58:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/01/26 20:01:00 ID: bhb/aScW
最初から、何をやろうとしているのか全部書けばよかったです。
すいませんでした。
特定階層のフォルダに(←>>50で解決)
open命令を与えて開き、
set positionでウィンドウの左上位置を指定する。
(ここまで正常に動けば、close windowを追加)
これをやろうとしています。
55 名前: 名称未設定 Mail: sage 投稿日: 04/01/27 0:09:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/01/27 7:04:00 ID: 1guJgef9
>>55
なるほど。これは簡潔ですね。
ただ、新しい問題が起きました。
これを実行すると、上層フォルダの仕分けに関わらず、同一階層の全フォルダを
一度に開こうとするので、Finderメモリ割り当て量か、命令結果の待ち時間を
オーバーすることが多くなります。
同時に開くフォルダの数を少なく抑えるために、上層フォルダ別にopen~closeを
完了するか、深めの階層のフォルダをターゲットにしてシーケンスを実行するかで
今夜帰ったら作ってみます。
57 名前: 名称未設定 Mail: sage 投稿日: 04/01/28 0:44:00 ID: uKDpV+a2
windowが開いて無いとエラーになってしまいます。
これを避けるためにFinderのresultが来るのを待つ必要が有るため
速度が遅いのは最初から覚悟していました。
時間が掛り過ぎる場合はtimeoutを調整して下さい。
操作対象のwindowが確実に開いているなら
ignoring application responses
で実行速度をあげる事も出来るでしょう。
なんでopenしたfolderを位置設定だけしてすぐ閉じるのか良くわからなかったんですが、
朧げながら、あなたのやろうとしている事が分って来た様な気がします。
もしかすると、opening folderなどのフォルダアクションが利用出来るかもしれません。
フォルダアクションはスクリプトで任意のフォルダに付け外し出来ますので…
出来たら、ここにスクリプトを書き込んでみて下さい。
58 名前: 37 Mail: sage 投稿日: 04/02/03 1:55:00 ID: F+mU8OWZ
>>45,47
bpmカウンタは持ってるんですが、複数あればより正確に測定できるという目的と
ただMacで、やってみたいなって理由です。
あらかじめbpmは測定してフロア用のはだいたい覚えてるし、ジャケにもシールで貼ってるんですが
アンビエントのdjする時はけっこうbpmの管理って大変で。
最初、スパコラで作りたいな。って思ったんですが
もともと他のパッチを修正して使うぐらいしかできないので
0から作るのは無理でした。
時間ができたらオブジェクト指向のプログラムの本でも買ってがんばります。
亀レススミマセン
レスありがとう。
59 名前: 名称未設定 Mail: 投稿日: 04/02/08 14:37:00 ID: NwubDhVf
OS9なんですけど日時設定って実現できませんか?
電池が切れたMacにNTPで自動修正させたいんですが、
1904年の状態だとTCP/IPが動作しないんで、
起動時に最近の適当な日時に設定したいんです。
60 名前: 59 Mail: sage 投稿日: 04/02/08 15:08:00 ID: NwubDhVf
Akua SweetsっていうOSAXでできました。
ほかにも機能もりだくさんでうれしいかぎりです。
61 名前: 名称未設定 Mail: sage 投稿日: 04/02/08 15:08:00 ID: sJR8dOR4
>>59
とりあえず、そういうOSAXが無いか探してみる
62 名前: 59 Mail: sage 投稿日: 04/02/08 15:09:00 ID: NwubDhVf
>>61
レスどうも^^
63 名前: 名称未設定 Mail: 投稿日: 04/02/08 15:16:00 ID: stC4Ysw3
自己IPの取得法を教えてくらさい
10.3
64 名前: 名称未設定 Mail: sage 投稿日: 04/02/08 15:26:00 ID: sJR8dOR4
>>62
かぶったw
>>63
OSXはこちらの方がよいかと
「AppleScript,Perl,Shell」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1055091471/l10
たぶんターミナルでサクッと出来ると思うよ
65 名前: 名称未設定 Mail: sage 投稿日: 04/02/17 15:12:00 ID: JY+/mNmS
★
66 名前: 名称未設定 Mail: sage 投稿日: 04/02/19 15:30:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/02/20 6:46:00 ID: 8CcmdAge
control + EJECTで良いじゃん。
68 名前: 名称未設定 Mail: sage 投稿日: 04/02/20 7:12:00 ID: tLtYgDE2
>>66
Super Shut Down 1.0.2
ttp://www.bajram.com/downloads/softwares/
69 名前: 66 Mail: sage 投稿日: 04/02/20 16:22:00 ID: g3gGCAo6
>>67
終了系のキーコンビネーションは知っているけど使いたくないので。
「ボタン一つで」かつ「マウス使わず」終了系のメニューを実行させたいって
のがもともとのコンセプトです。
>>68
というわけでこのソフト良さげですね。対応するメニューのイニシャル打てば
選択できるっぽいし。しばらく使って様子を見た上で乗り換えます。
ありがとう。
70 名前: 名称未設定 Mail: 投稿日: 04/02/27 0:09:00 ID: gZ2P+Hvr
保守
71 名前: 名称未設定 Mail: sage 投稿日: 04/03/06 12:43:00 ID: KY9cA+nV
保守
72 名前: 名称未設定 Mail: 投稿日: 04/03/11 22:38:00 ID: 58GlCs9q
こらー
なんでこんなに寂れてる!!!
73 名前: 名称未設定 Mail: 投稿日: 04/03/19 23:45:00 ID: Zsj2gS20
あるスクリプトを書いて、スクリプトエディタから「実行」すると、正常に実行される。
しかしそれをアプリケーション形式で保存してダブルクリックで実行すると、
途中で実行が終わって不完全なまま終了してしまう。
何が原因なんだろう・・・? バグ? OSX10.3.3です。
74 名前: 名称未設定 Mail: 投稿日: 04/03/20 1:45:00 ID: FafNnvhk
とにかくあげる
75 名前: 73 Mail: 投稿日: 04/03/21 14:08:00 ID: Jd4rCgHr
日本語関連のバグが原因だったようで、
OSXスクリプトスレにあった下記の方法を試したら正常に動作しますた。
FAQ: アプリケーションに保存すると日本語が使えません
(1) 保存時の「フォーマット」を「アプリケーションバンドル」に。
(2) Finderで「Japanese.lproj」という名前の空フォルダを作っておく。
(3) Finderで(1)で保存したアプリを選択し、
情報を見る=>言語=>追加で、(2)のJapanese.lprojを選ぶ。
76 名前: 名称未設定 Mail: 投稿日: 04/03/24 23:58:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/04/03 13:49:00 ID: dwufcYEl
ほしゅ
78 名前: 名称未設定 Mail: 投稿日: 04/04/06 12:09:00 ID: ilrATQYG
関連スクリプトのまとめが見れません。
79 名前: 名称未設定 Mail: sage 投稿日: 04/04/06 12:12:00 ID: ilrATQYG
http://members.at.infoseek.co.jp/obto/script/script.html
見れました
80 名前: 名称未設定 Mail: 投稿日: 04/04/07 20:39:00 ID: 0Z7zTZDb
URLの一部を抽出して、他のURLにくっつけたいのですが。
81 名前: 名称未設定 Mail: sage 投稿日: 04/04/07 21:14:00 ID: KsLP6+bk
(゚Д゚)ハァ?
82 名前: 名称未設定 Mail: 投稿日: 04/04/07 21:31:00 ID: 0Z7zTZDb
例えば、このスレの1067367790 って部分だけ抜き出して、
他のある特定のURLの後ろにくっつけてそのページを表示したいんですけど。
83 名前: 名称未設定 Mail: sage 投稿日: 04/04/07 22:12:00 ID: Ck9yXmv5
質問はスレ違いじゃないかと思うんだが?
84 名前: 名称未設定 Mail: 投稿日: 04/04/07 23:28:00 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 名前: 名称未設定 Mail: 投稿日: 04/04/07 23:59:00 ID: 4sMS9gyn
ありがとうございます。
set AppleScript's text item delimiters to "/"
set nukidasi to text item -2 of motonourl
この部分を
.netより前の一単語を抜き出すとか、
もっと具体的に指定することは可能ですか?
86 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 0:02:00 ID: OkyIjWvD
テメエで書く気はこれっぽちもないわけですかそうですか
87 名前: 名称未設定 Mail: 投稿日: 04/04/08 0:24:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 5:26:00 ID: o3sv/8Qy
今更だけど、発表会というより講習会だねぇこりゃ
89 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 11:52:00 ID: IUguQvfL
まあいいんじゃないの。
人の書いたスクリプトをもとに自分なりにああしたいこうしたいと思って学ぶものだし。
90 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 12:52:00 ID: nH/2skOJ
このスレって伝統的に半々ってところじゃない?
91 名前: 名称未設定 Mail: 投稿日: 04/04/08 21:16:00 ID: GPnFjvWJ
>>87
わかりやすいサンプルありがとうございます。
一応思った通りのものは出来たのですが、
コンパイルしてCMScriptで使おうとしても反応しないのですが、
CMScriptで使う場合に変えなければならない部分があるんでしょうか?
92 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 23:14:00 ID: 2AZZr05f
徹底して教えてくんだな。
もう放置ってことで。
93 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 23:58:00 ID: ShgSub30
>>91
ttp://homepage.mac.com/tkurita/scriptfactory/Monologue/CMScript/
この辺を参考に。
94 名前: 名称未設定 Mail: sage 投稿日: 04/04/09 12:39:00 ID: xDraMp8X
何となく厚顔無恥、という単語が頭に浮かんだ。
95 名前: 名称未設定 Mail: sage 投稿日: 04/04/09 22:51:00 ID: +1StqS8h
聞かれても無視してちゃスレが盛り上がらないじゃん。
つーか、91が一連のやりとりで作ったスクリプトを発表してみれば、
丸く収まる。
96 名前: 名称未設定 Mail: 投稿日: 04/04/09 23:11:00 ID: hpBeVwpn
さぁ、、、、、、、発表シル!
97 名前: 名称未設定 Mail: sage 投稿日: 04/04/10 0:01:00 ID: pq/Yb/8X
そんな発表なんて厚顔無恥な真似は出来ないっす。
しかしながらアドバイスを下さった諸先輩方には感謝の念を禁じ得ません。
煽って下さった方々の新たなスクリプトの発表を期待しつつ
私はこの辺で失礼したいと思います。では
98 名前: 名称未設定 Mail: 投稿日: 04/04/13 0:42:00 ID: qxPmDXY3
>>97
発表しなければ逆に「単なる教えて君」で厚顔無恥だと思うよ。
99 名前: 名称未設定 Mail: sage 投稿日: 04/04/16 13:08:00 ID: PXijATwO
>私はこの辺で失礼したいと思います。では
これって、食い逃げじゃないか。
ネットというものはギブ&テイクでなりたってんだぞっていう
10年も前の話を蒸し返したくなった。
100 名前: 名称未設定 Mail: sage 投稿日: 04/04/16 13:29:00 ID: 4UZlskxQ
まぁ餅搗け。こういうタイプはヒット&アウェイだから多分もうこのスレにはいない。
文句を言っても無意味っしょ。マターリいきましょ。
#彼が旋毛をまげたのも俺が「厚顔無恥」なんて言葉を持ち出したせいだろうし。
ちょい反省。
101 名前: 名称未設定 Mail: sage 投稿日: 04/04/16 18:25:00 ID: 4ET29Dtj
http://www.excite.co.jp/dictionary/japanese/?search=%E6%97%8B%E6%AF%9B&match=beginswith&itemid=13660700
(´・∀・`)つ〃∩ヘーヘー
102 名前: 名称未設定 Mail: 投稿日: 04/04/19 12:34:00 ID: Q0aIRuCr
ヤフオク自動ログインスクリプトを創って下さい。
103 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 13:22:00 ID: zzIuLqbI
作成してくれた人にあなたはどういう対価を支払えますか?
104 名前: 名称未設定 Mail: 投稿日: 04/04/19 13:49:00 ID: Q0aIRuCr
当スレッドの繁栄を保証いたします。
105 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 17:11:00 ID: o/T8j0k6
103のレスがないので本日のマネーの虎はここまでです。
106 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 17:48:00 ID: iHugRxj+
safariのブックマークを名前順にソートするスクリプトなんてありませんかね?・・・
107 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 23:10:00 ID: KDo8/S8v
>>104
具体性が不足しています。その「保証」を実現するための明確かつ可能なプランを
提示してください。
108 名前: 106 Mail: sage 投稿日: 04/04/20 14:42:00 ID: cl+YINft
ないか・・・OTZ
109 名前: 名称未設定 Mail: 投稿日: 04/04/21 4:19:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/04/21 15:21:00 ID: mI2L8YeC
>>109
無理です。諦めて下さい。
111 名前: 名称未設定 Mail: sage 投稿日: 04/04/21 15:43:00 ID: MTYa/os+
>>109
かういふ生パスワードをブックマークファイルに保存するやうなマネは
よゐこのみなさんはしない方がよいでせう。
112 名前: 名称未設定 Mail: sage 投稿日: 04/04/21 18:05:00 ID: UGUyi4lY
>>109
こっちの方がいいかも。
http://pc3.2ch.net/test/read.cgi/mac/1047361032/l50
113 名前: 名称未設定 Mail: 投稿日: 04/04/24 16:43:00 ID: 8KPeuyyk
エキサイトの日英翻訳スクリプトを使かっているのですが
翻訳結果を新たに開いたウインドウに表示するのではなく
同じウインドウの異なるタブに表示するにはどこを変えれば
宜しいのでしょうか?
114 名前: 名称未設定 Mail: sage 投稿日: 04/04/24 17:09:00 ID: 2GKHy+dd
>>113
browser側で設定する。
115 名前: 名称未設定 Mail: sage 投稿日: 04/04/24 21:13:00 ID: eD0CU/V2
>>113
まず、使ってるブラウザを教えなさい。
116 名前: 名称未設定 Mail: 投稿日: 04/04/25 0:23:00 ID: 9Yq/c+u7
>>114
それは既に設定してあって、タブで開かれるスクリプトもあるのです。
>>115
iCabです。
117 名前: 名称未設定 Mail: sage 投稿日: 04/04/25 0:46:00 ID: V61mzlbT
>>116
OpenURL "www.apple.com" toWindow -2
で新規タブで開くよ。
118 名前: 名称未設定 Mail: 投稿日: 04/04/25 0:49:00 ID: NzKP49F8
>>116
ここにあるjavascriptをホットリストに入れてじゃ駄目?
俺これ重宝してるよ
ttp://freezone.kakiko.com/bookmarklets/
119 名前: 名称未設定 Mail: 投稿日: 04/04/26 12:02:00 ID: nuDH+nw0
>>102
javascript:
document.forms[0].passwd.value='パスワード';void(0);
setTimeout('document.forms[0].Login.click() ',1000);void(0);
bookmarkletだけど。
120 名前: 名称未設定 Mail: sage 投稿日: 04/05/11 19:56:00 ID: Zrr/Ybg/
「AppleScript,Perl,Shell」OS Xでスクリプトスレって鯖移転で消えた?
121 名前: 名称未設定 Mail: sage 投稿日: 04/05/11 20:43:00 ID: L85+hApk
>>120
消えたね。たぶん。
もしかして漏れはマカー用だから見えないのか?w
122 名前: 120 Mail: sage 投稿日: 04/05/11 21:23:00 ID: Zrr/Ybg/
>>121
俺もマカー用w
pc3鯖には978まで残ってるね。手許のログは983まで。pc5鯖じゃもう見られない。
123 名前: 名称未設定 Mail: 投稿日: 04/05/12 15:22:00 ID: xsrqZv8M
OS X用の新スレは立たないの?
ここと併合するの?
124 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 15:54:00 ID: MJ8sMq4E
アップルスクリプトだけ併合して、その他は別に立てるのがいいんじゃない?
アップルスクリプトが2つあるのはややこしいよ。
このスレもともとクラシック専用じゃないし、もう「OSXで」って時代じゃないでしょ。
OS9の場合はそのことを書くようにすれば?
125 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 17:14:00 ID: RJoyG+7b
AppleScriptとPerl、Shellの組み合わせって微妙に違和感あったから
AppleScript
オンリーのスレが出来るのは賛成なんだけど、そうなると「おもろい、めずらしい」
という括りが邪魔な気が。AppleScriptがカタカナ表記なのも正直ちょっと……。
最近このスレも停滞気味だし、いっそAppleScript総合スレってのができると嬉しい。
#「AppleScript,Perl,Shell」OS Xでスクリプトスレ自体、結構重宝してたんだけどね。
126 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 18:33:00 ID: /6tuWuza
スレタイどおりの機能はしていないが、これをやめると
作って作ってクレクレスレに成り下がるので。
127 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 18:54:00 ID: Yt9Adumd
スレタイに違和感はあるけど、伝統ってことで。。。
それに、他にAppleScriptスレ作らなければ嫌でも総合スレになるのでは?
128 名前: 新しく作るんならこんな感じ? Mail: sage 投稿日: 04/05/12 19:06:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 19:08:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 19:09:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 19:41:00 ID: RJoyG+7b
>>128-130
お〜、乙。個人的には【クレクレ】〜【厳禁!】の方がいいかと思ったり、制作依頼は「原則禁止」じゃなく「絶対禁止」にした方が気持ちよく常駐できるかと思ったり。
ところでいつの間にか「AppleScript,Perl,Shell」OSXでスクリプトスレ復活してるね。
新スレ立てる必然性が弱くなった気もするけれど、総合スレがあればやはりありがたい気がするので、総合スレ新規立ち上げに一票。
私見だが、将来的には
・AppleScript総合スレ
・作品発表系の本スレ
・OSXで〜&「AppleScript,Perl,Shell」OSXで〜スレを統合してスクリプト全般スレ
・Xcode&DeveloperTools等、開発環境総合スレ
なんてラインナップになると嬉しいかも。
132 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 20:22:00 ID: 8wRb9hTH
作るんなら、スクリプト総合スレが先だろ。
AppleScript総合スレが「OSXでスクリプトスレ」の次スレってのも変だし。
133 名前: 名称未設定 Mail: 投稿日: 04/05/12 20:37:00 ID: 6KRlDQAn
他板から移ってきました。くだらない質問ですいません!
AppleScriptで、Classicの起動有無チェックや、停止、起動は制御できるのでしょうか?
Classic内フォントフォルダのフォントを出し入れするScriptを作っているのですが、
出し入れの前にClassicを停止し、出し入れが終わったらClassicを起動させるようにしたいのです。
OSX10.3.3です。どうかみなさん、よろしくです。
134 名前: 名称未設定 Mail: sage 投稿日: 04/05/13 1:48:00 ID: 28c+VHmE
>>133
tell application "System Events"
processes
end tell
"Classic Support" の有無でclassicが起動しているかどうかを調べられる。
name of processes でやったほうが処理は楽だけど。
classic起動アプリは"Classic Startup" という。
135 名前: 名称未設定 Mail: 投稿日: 04/05/13 3:45:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/05/13 13:54:00 ID: 4SoX1ZPm
>>134
どうもありがとうございました。
すみません、もっと頭を使うようにします。
137 名前: 名称未設定 Mail: sage 投稿日: 04/05/16 11:05:00 ID: YXVzPiE3
すっげぇ久々にアップルスクリプト触る必要が出たので
昔使っていたリファレンス本探したらみつからない…………
138 名前: 名称未設定 Mail: 投稿日: 04/05/21 6:23:00 ID: FxyGEABa
なんだかよくわかんないけど、
逆ギレののたん置いていきますね
∋oノハヽo∈
(`?D´ ) <なんに!
O^ソ⌒とヽ
(_(_ノ、_ソ
139 名前: 名称未設定 Mail: sage 投稿日: 04/05/21 15:31:00 ID: istz2+O/
モーオタイラネ
140 名前: 名称未設定 Mail: sage 投稿日: 04/05/24 2:17:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/05/25 3:15:00 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 名前: 名称未設定 Mail: 投稿日: 04/05/25 16:48:00 ID: IPgUFLHd
すいません、質問です。
QuarkXPress3.3Jを、OSXのClassic環境で動作させているのですが、
AppleScriptで、例えばPictureBoxのプロパティを得ると、
bounds:《data FRMS0038B1630038B16300C66CDA00C66CDA》
みたいになってしまいます。
通常ならbounds値は、
bounds:{100mm,100mm,100mm,100mm}
のようなリストで帰ってくるはずなのですが……。
これはOSXのClassic環境では仕方のないことなのでしょうか?
それとも、設定が必要とか……。
143 名前: 140 Mail: sage 投稿日: 04/05/25 19:49:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/05/25 22:20:00 ID: jTw5tg6X
うちは10.3.3なので、>>141で無問題。
145 名前: 140 Mail: sage 投稿日: 04/05/25 22:31:00 ID: At2kt0Mx
>>144
そうですか。じゃあ10.2のSystem Eventsの不具合かもしれませんね。
146 名前: 名称未設定 Mail: 投稿日: 04/05/28 23:05:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/06/05 22:29:00 ID: iCy5XZqT
★
148 名前: 名称未設定 Mail: age 投稿日: 04/06/12 4:59:00 ID: P6SALBfl
149 名前: 名称未設定 Mail: sage 投稿日: 04/06/19 16:23:00 ID: RSTkpEgg
なぁ、誰かそろそろ「スクリプト総合スレ」立ててくれよん。(´・ω・`)
150 名前: 名称未設定 Mail: sage 投稿日: 04/06/19 22:47:00 ID: cOPzDllr
建前だけでも発表会にしておかないと作ってクレクレスレに成り下がります。
151 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 3:38:00 ID: zeKayWJw
safariで使えるscript一覧がみたい!ってときどこを探せばよいですか?
152 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 3:50:00 ID: BbguurDB
>>151
用語説明なら
スクリプトエディタのメニュー「ウインドウ」の「ライブラリ」で表示できる
ウインドウにSafariがあるならそれをダブルクリック。無ければ追加する。
もしくはSafariをスクリプトエディタにドロップ。
153 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 4:21:00 ID: oDTtpw2D
>>151
スクリプトエディタで shift+command+L
154 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 11:05:00 ID: zeKayWJw
>>150,151 thx ハゲミマス。
155 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 22:37:00 ID: 2uyxcqOt
AppleScriptでHomeにある
Desktop
Library
Music
Public
Documents
Movies
Pictures
Sites
あたりのフォルダを参照するのって"Macintosh HD:Users:〜ってずらずら書くしかないの?
156 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 22:58:00 ID: ah2QLxOg
/Library/Scripts/Navigation Scripts/Open Special Folder.scpt
を見る。
157 名前: 名称未設定 Mail: 投稿日: 04/07/05 22:38:00 ID: ZVhnPpmI
(´・ω・`)
158 名前: 名称未設定 Mail: sage 投稿日: 04/07/14 0:21:00 ID: jHw/7rkj
/Library/Scripts/(´・ω・`)/Navigation Scripts/
159 名前: 名称未設定 Mail: sage 投稿日: 04/07/14 15:05:00 ID: gjBqyPmm
yahooのログインスクリプトSafariで使えないぞ
どうにかしてくろよ
160 名前: 名称未設定 Mail: 投稿日: 04/07/16 13:16:00 ID: 0SBEIijE
良スレ 保守age
161 名前: 名称未設定 Mail: 投稿日: 04/07/23 2:47:00 ID: G/iPxOOn
昔、Dialogue Editorをイジってヘンな警告メッセージを出す
AppleScript、ってなかったでしたっけ?
「あなたの脳ミソに重要な欠陥が発見されました。修復はできません。」みたいな。
162 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 17:33:00 ID: NnwVfnmZ
display dialog "「あなたの脳ミソに重要な欠陥が発見されました。修復はできません。」"
163 名前: 名称未設定 Mail: 投稿日: 04/07/25 23:26:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 23:27:00 ID: cb5ukQFx
>>162
不可能
手作業でやれ
165 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 23:38:00 ID: zNojXqcY
awk
166 名前: 名称未設定 Mail: 投稿日: 04/07/25 23:47:00 ID: Ln2StDlC
順番はその通りなの?
01-2004-06-21.wav = 01 song1.wav
02-2004-06-21.wav = 02 song2.wav
という事?
て言うか、共通する部分が有れば良いけど。
だったら可能だよ。
やり方としてはまず、元ファイル名をリストに取って、
変更したいファイルネームの入ったファイルを開いて、リストに取って。
んで、共通する部分でsortして、
リピートして名前変えて行けば良いんじゃん?
漏れだったらperlだな。
167 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 23:49:00 ID: cb5ukQFx
>>166
彼はAS何も知らないと思う。
レスしたなら最後まで面倒見てあげてね。
168 名前: 名称未設定 Mail: 投稿日: 04/07/25 23:54:00 ID: Ln2StDlC
>>167
なんで?
169 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 0:05:00 ID: a+E/jU6y
>>163
どうしたらいいでしょうか?じゃなくて作りなさいよ。
易しい記述でできるから。実際俺はよく使ってる。
必要なのはiTunesのリストの取得とファイルのオープン/クローズだけ。
170 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 0:21:00 ID: qkSDcJBR
ん〜、30分考えてみたが、
オカシイナ。
>>164
>不可能
>手作業でやれ
これは嘘、出来るもの。
>>167
>彼はAS何も知らないと思う。
>レスしたなら最後まで面倒見てあげてね。
何故163がASを何も知らないと言うのか、意味が分からん。
>>163 は
>一気に変更するにはどうしたらいいでしょうか?
こう言っている。
だから考え方を言っただけだし、これ以外の方法も何通りでもある。
漏れなら、perlでsortしながらglob()して、ファイルをopenして、…
レスしたから全部面倒を見る?
オマイそうしているのか?
だとしたら、良い香具師だな。
嘘つきではあるが。
171 名前: 163 Mail: 投稿日: 04/07/26 1:07:00 ID: CMN4F3GW
みなさん、レスありがとうございます。
>>166
>順番はその通りなの?
>01-2004-06-21.wav = 01 song1.wav
>02-2004-06-21.wav = 02 song2.wav
>という事?
そういうことです。
ちなみにASのことはほとんど知りません。
他のスクリプト言語は昔少しだけかじったことがありますが、
ほとんど忘れています。
>>169
>易しい記述でできるから。実際俺はよく使ってる。
もしさしつかえなければ、あなたが使っているスクリプトを
ここにのせていただければ感謝いたします。
172 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 1:28:00 ID: rGfsDYwK
>>171
まず作ったスクリプト、できたとこまで晒してみた方が早いかと
(できてるなら)
173 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 1:35:00 ID: 45QR3iXr
ここは一切努力したくない人は受け入れられないスレです。
もっともそれを承知でクレクレ言ってる節もあるが。
174 名前: 163 Mail: 投稿日: 04/07/26 1:59:00 ID: CMN4F3GW
>>173
まあここはスクリプトの質問スレではないですもんね。
昔使ったスクリプトの本をさがしてトライしてみます。
こまったら質問にきますね。
175 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 3:50:00 ID: rGfsDYwK
何だ結局クレクレ房か
176 名前: 名称未設定 Mail: 投稿日: 04/07/26 19:59:00 ID: 1LuHabEM
すいません、質問です。
スクリプトエディタから実行すると正常に実行できて、
アプリケーション形式で保存してダブルクリックで実行
するとエラーになるという現象が起きてます。
>75
に10.3.3での解決方法がありますが、うちは10.2.8のせい
か、「アプリケーションバンドル」で保存や情報を見る=>
言語=>追加が出来ません。解決方法を御存じの方がいらっ
しゃいましたら御教授願います。
(10.3にする、ってのはなるべくさけたいです)
177 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 20:51:00 ID: 45QR3iXr
晒せないのか?
178 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 23:07:00 ID: DTt+8Jxx
エラーの内容くらい晒してくれないとどうしようもない。
そのスクリプト自体を晒してくれるのが一番良い。
179 名前: 176 Mail: 投稿日: 04/07/27 11:41:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/08/06 22:32:00 ID: jFIExWeW
★
181 名前: 名称未設定 Mail: 投稿日: 04/08/19 19:58:00 ID: t6Toq4HR
なるほど
182 名前: 名称未設定 Mail: 投稿日: 04/08/24 13:43:00 ID: Fgl/d5RW
質問なんですがちょうど良いスクリプトスレがないのでお願いします。
do shell scriptについてなのですが、
tell application "terminal"
do script " "
end tell
の場合ように、shell scriptに処理はまかせてapple Scriptで処理を継続する方法は
ないでしょうか?
try timeout と ignoring applicatiron responsesを試したのですが、
どちらも処理が終わるまで戻ってきませんでした。
terminalを立ち上げたくないんですけど、仕様なんですかね…?
183 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 14:02:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 16:00:00 ID: Fgl/d5RW
>>183
ありがとうございます。そこのページは読んでいたのですが、見落としていました。
で、やってみたのですが、
Q: 1 つの do shell script で複数のコマンドを使用するにはどうしたらよいですか?
A: 1 回の呼び出しで複数のコマンドを実行するには、次のようにセミコロンでコマンドを区切ります。
これとの共存は出来ないみたいですね。複数コマンドの最後に付けただけでは戻ってきませんでした。
こりゃ、terminal立ち上げないと駄目かな。
185 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 17:15:00 ID: sLkeE8wQ
>>184
試してないけど、こんな感じで入れ子にできないかなw
do shell script "osascript 'do shell script "command a;command b"' > file_path 2>&1 &"
186 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 18:40:00 ID: G2fUZM82
>>184
よーわからんけど、普通に ; の代わりに & じゃ行かんの?
187 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 18:44:00 ID: G2fUZM82
コマンド列を全体で、ってこと? (a; b)& とかは?
188 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 19:05:00 ID: Fgl/d5RW
>>185
""大杉とスクリプトエディタに怒られました。
だめっぽいです。
>>187
うほ!できた。普通に括弧使えたんですね。知らなかった(w
&で並行処理ができるってのもさっき調べて知りました。
ただ今回の場合処理の順番が重要なので&だと駄目だったんですよね。
これを機にshell scriptもきちんと勉強することにします。
ありがとうございました。
189 名前: 188 Mail: sage 投稿日: 04/08/26 22:02:00 ID: QvvKFSXb
また質問なんですけどいいでしょうか?
今度はdelayコマンドなんですけど、これって馬鹿みたいにCPU喰うんですけど、
仕様でしょうか?
appleScript Studioで使うと消費しないみたいなんですけど、
will finishing launchと組み合わせて使うとやっぱりCPU喰いまくる模様。
do shell script "sleep" でやるとCPUの消費は回避できたんですけど、
今度はdo shell scriptから戻ってこないので、操作不能に陥って、
途中で処理を終了させたいような場合にどうしようもなくなってしまいます。
CPUを喰わずに数秒間処理を待たせる方法って無いでしょうか?
190 名前: 名称未設定 Mail: sage 投稿日: 04/08/26 22:23:00 ID: EQg8eC6u
>>189
sleep 10とかは?
191 名前: 188 Mail: sage 投稿日: 04/08/26 23:03:00 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 名前: 名称未設定 Mail: sage 投稿日: 04/08/26 23:27:00 ID: Lu6c7XBI
on idle
return 秒数
end idle
だと軽いという話もあるようですが
193 名前: 188 Mail: sage 投稿日: 04/08/27 0:34:00 ID: MfOmeuVx
普通にコマンドを二つ並べただけでは処理が早すぎてファイルの増加を
捉えられないため、ファイルの増加を捉えるにはチェックする2点間の時間差を
作る必要があります。
idleの使い方がいまいちわからないのですが、
調べた限りではidleに挟まれたスクリプトを延々続ける
常駐スクリプトを作るためのものですよね。
となると時間差を儲けるためには利用できないような…。
idleを呼び出して待機させるみたいな使い方って出来るのでしょうか?
idle
ファイルA
do shell script "sleep1"
ファイルA'
return 30
end idle
(ファイルABは不適切だったので変更しました。)
これでCPUの消費を抑えつつ30秒に一回チェック(但し一秒間固まる)
という風にできるのでなんとかごまかしにはなるのですが、
プログレスバーとかを利用するとその都度止まるのでやはり目立ちますね。
う〜ん…。
194 名前: 名称未設定 Mail: 投稿日: 04/08/27 20:02:00 ID: 5v0uKj1E
質問です。
普段使わないパーティションをアンマウントする
スクリプトはどう書けば良いのでしょうか? 10.3.5です。
以前、たしか10.1.5のころは
tell application "Finder"
activate
eject disk "普段使わないHD"
end tell
でいけてた気がするんですけど、10.3.5だとできない、
ひさびさにXをさわっているので、よくわからない…
教えてくんですみません。
195 名前: 名称未設定 Mail: sage 投稿日: 04/08/27 22:55:00 ID: DSSUIhBx
とりあえず
do shell script "diskutil unmount /Volumes/ボリューム名"
196 名前: 194 Mail: sage 投稿日: 04/08/27 23:32:00 ID: 5v0uKj1E
>195
ありがとうございます!できました。
けど、アンマウントするまでにけっこう時間(10秒くらい)がかかりますね。
197 名前: 名称未設定 Mail: sage 投稿日: 04/08/31 12:15:00 ID: S2i7lRIG
>>193
delay 10
じゃだめ?
198 名前: 188 Mail: sage 投稿日: 04/08/31 18:21:00 ID: n5TGMAoP
>>197
もしかしてdelayで馬鹿みたいにCPUを喰うのはうちだけですか?
AppleScript , Delayあたりでぐぐって見たんですけど、
CPU消費に関する記述を見つけれられず。
海外のフォーラムで一件、CPUを消費しないようなことが書いてあったのですが、
たとえば、
repeat
delay 10
beep
end repeat
だけでもうちでは半分以上のCPUを消費してます。同時に別の重い処理をさせたいので
これだとお話にならないんですよね。
今のところ、インジケータなどの動きが鈍くなるのは諦めて、
idleとdo shell script "sleep 〜"の組み合わせでごまかしてるんですが…。
199 名前: 名称未設定 Mail: sage 投稿日: 04/08/31 19:26:00 ID: e7wf23hk
>>198
試してみました。
CPU食いまくりです。
10.3.5
200 名前: 名称未設定 Mail: sage 投稿日: 04/08/31 19:32:00 ID: RL3JPk34
>>198
CPU消費を気にするくらいならアップルスクリプトは卒業した方が良いよ。
201 名前: 188 Mail: sage 投稿日: 04/08/31 20:06:00 ID: n5TGMAoP
>>199
やっぱそうですか。仕様なのかな?
>>200
う〜ん、趣味のレベルなのでそれを言われると辛い(笑)
入門用にはApple Scriptってわかりやすくて良かったと思います。
(未だにファイル参照とかでなんでうごかねーんだよ!とかしょっちゅうですが…)
Apple Scriptで出来るようなことは、shell Scriptで大抵出来るのでしょうか?
今回いくつかの箇所で利用しているので、次はこの辺りに手をつけようかとは
思っているのですが…。
202 名前: 名称未設定 Mail: sage 投稿日: 04/09/02 4:10:00 ID: fHTzBjY9
/(_,
(、 )
)/
AppleScript
203 名前: 名称未設定 Mail: sage 投稿日: 04/09/02 5:20:00 ID: Jd5S/g7D
ファイル増加捉えるなら、フォルダアクション使こたら?
204 名前: 名称未設定 Mail: sage 投稿日: 04/09/02 22:42:00 ID: AgJghtpE
>>202
Safariでずれてる。
xていうか、OS Xでまともなノンプロポーショナルフォントがないような気が...
205 名前: 名称未設定 Mail: 投稿日: 04/09/05 2:47:00 ID: M+cmEJlO
キーボードのコマンドキーと上の列の数字を擬似的に押す
Scriptはできまんのん?
206 名前: 名称未設定 Mail: sage 投稿日: 04/09/05 4:38:00 ID: +FH99fMK
tell application "Finder" to activate
tell application "System Events"
tell process "Finder"
keystroke "N" using command down
end tell
end tell
207 名前: 名称未設定 Mail: sage 投稿日: 04/09/05 4:40:00 ID: +FH99fMK
あ、間違った。こっちだ。
tell application "System Events"
tell process "Finder"
keystroke "#" using {command down, shift down}
end tell
end tell
208 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: 投稿日: 04/09/14 9: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 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 0:58:38 ID: DbtHs2Q3
>>209
will finish launchingでは読み込んだのをproperty変数に代入するだけにして
launchedでコントロールをセットするようにしてみれば?
211 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 18:01:51 ID: zXjUXSSN
スクリプト関係の質問をしたいのですが、そういうスレってないですか?
タイトルからは見つからなかったんですが。
スレ汚しですみませんがちょっと教えてください。
212 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 18:21:57 ID: XTXzTDIJ
以前は、OS Xでスクリプトスレとかあったけど消えた。
213 名前: 209 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 21:23:49 ID: dBgMYZZi
>213
true,false は as boolean を付けて明示的にboolean値として
default entry に書き込んでやればよい。
as boolean を付けないと、次にdefault entry から読み出すときに
boolean 値として取り出せなくなって、ラジオボタンのstateをset
するときにうまくいかなくなる。
215 名前: 211 Mail: sage 投稿日: 04/09/15 22:31:45 ID: zXjUXSSN
無さそうなのでちょっと教えてください。
Mail.appで指定のメールをスクリプトから表示させたいのですが
何か方法はありますか?
216 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 22:40:18 ID: Y4o2eOOG
>>215
辞書は見てみたの?
217 名前: 名称未設定 Mail: sage 投稿日: 04/09/16 0:10:03 ID: ll1/7IA1
tell application "Finder" to shut down
218 名前: 名称未設定 Mail: sage 投稿日: 04/09/16 6:24:59 ID: cCQwtS+V
スクリプトから表示、ってとこの意味がわからん。
219 名前: 215 Mail: sage 投稿日: 04/09/16 17:54:09 ID: oFS8A0dj
>>216
一応見ました。
messageクラスがメールの参照ですよね?
これを外部から参照する方法と、ウィンドウで表示(選択でも良いですが)する方法が分かりません。
前者はmessage viewerなどでselected messagesで取り出すくらいしかわからなかったです。
メールボックス内の番号とかでメッセージの参照を取り出せないもんでしょうか?
後者は簡単にできそうなのにさぱーり見つかりません。
ここを良く見ろ、程度のヒントで良いのでよろしくお願いします。
>>218
分かりにくくてすみません。
Mail.appを前に持ってきて指定のメールを表示させる、ということです。
「何日までに返事をしなくてはいけないメール」を表示するスクリプトを作って、
cronで自動表示させるとかそんな感じのことをやってみたいわけです。
220 名前: 名称未設定 Mail: sage 投稿日: 04/09/17 17:56:22 ID: s1RVMjq/
>>219
辞書の message viewer に selected mailboxes と selected messages があります。
リスト形式なので注意、あと動かない場合はバグです。
221 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/09/26 5:16:06 ID: f5zIxPkz
★
223 名前: 名称未設定 Mail: 投稿日: 04/10/02 14:28:57 ID: d9+dOidu
OS10.3 でシステム終了をAppleScriptで実行したいのですが、出来たらファンクションキーに割り当てられると
どなたか使っている方がいたら教えてください、お願いします。
224 名前: 名称未設定 Mail: sage 投稿日: 04/10/02 16:47:35 ID: wEwo/pjv
ファンクションキーに割り当てることの意義がわからんが、Keyboard Maestroでも
買ったら?
225 名前: 名称未設定 Mail: sage 投稿日: 04/10/02 16:55:36 ID: 4i3TFRo2
tell application "Finder" to shut down
226 名前: 名称未設定 Mail: age 投稿日: 04/10/02 19:20:04 ID: kgEAA4v6
OS9でクリッピングファイルを作るコマンドって無いのでしょうか?
Finderからfileをmakeして、クリエーターとファイルタイプを
それぞれ"drag"と"clpt"に変えてみたのですが、Finderから開けませんでした。
クリッピングファイル作成のコマンドを教えてください。
227 名前: 名称未設定 Mail: sage 投稿日: 04/10/02 19:40:31 ID: MG1WP7kQ
Tanaka's osax
228 名前: 226 Mail: sage 投稿日: 04/10/02 20:08:04 ID: kgEAA4v6
>>227
"MT Write Clipping" でいけました。THX!
229 名前: 名称未設定 Mail: 投稿日: 04/10/02 20:54:08 ID: I2LNiOMX
> 217
ありがとうございました。
230 名前: 名称未設定 Mail: 投稿日: 04/10/07 10:12:06 ID: m8rgYK90
UI Elementなんですけど、Safariで表示させたページ上のフォームなどはAppleScriptでは扱えないんでしょうか?
Inspectorでは見えてるのに探してもみつからないorz
231 名前: 名称未設定 Mail: 投稿日: 04/10/07 20:57:06 ID: Cjni9kAp
>>230
答えになってないかもしれんが、do JavaScript "..." in document ... で扱える。
ここら辺を参考に
http://www.apple.com/applescript/safari/
232 名前: 名称未設定 Mail: sage 投稿日: 04/10/08 0:39:22 ID: IIC+pTPt
>>198
解決してるかな。
スクリプトのままだと思い切りCPUパワーを食いますが
「アプリケーション」等にすれば問題なかったです(うちで約2%)。
>>206なんと、OSXだと純正で命令方法があるんですね。
>>230ちょっとInspectorで覗いたけど
textfield 、 scrollarea 等の扱いがよくわからなかったです。
「アプリケーションパッケージ」にしたらスクリプト途中の quit (me)を受け付けませんね。
無理矢理解決したけど。
233 名前: 198 Mail: sage 投稿日: 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 名前: 非通知さん Mail: sage 投稿日: 04/10/10 10:22:21 ID: MB8bCHWK
スクリプトの中でquitすると、古いスクリプトアプリケーションではアプリ自身がquitするが、
Studioアプリではアプリの中の1オブジェクトのスクリプトがquitするだけなのかも。
tell my application to quit
でいけそうな予感。
だれか検証して。
235 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 11:28:20 ID: Y84ktt85
quit my application
236 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 12:04:33 ID: kMxucGfV
AppleScript Studio アプリケーションでも
quit
でアプリ自身がquitしてるけどなぁ。
237 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 21:52:06 ID: h4mMySUs
>>236
うちのも単にquitでアプリが終了したよ。
ところで質問なんですけれども。
AppleScript Studio で popup button を使いたいのですが
ポップアップに含まれる項目を設定する方法がわかりません。
デフォルトで「item1」〜「item3」というのが設定されているのですが、
これを変更するにはどうすればよいのですか? 教えてちょうだい。
238 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 21:57:54 ID: bFirPcIR
>>237
「変更」の具体的な内容を書け。
あと、「教えてちょうだい」ではなく「教えてください」だな。
239 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 22:03:51 ID: h4mMySUs
こっちでも叱られた─────!! ていうか同じひとじゃん!
最初からポップアップにある「item1」〜「item3」ってのを
例えば「あ」「い」「う」「え」にしたいんだけど。
説明ベタ?ですまんね。おねがいだから教えてください。
240 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 22:14:08 ID: bFirPcIR
>>239
PopUpButton に MenuItem を追加するには、
PopUpButton をダブルクリックして Menu を表示させた状態で
InterfaceBuilder の Cocoa-Menus パレットにある Item を
その表示された Menu にドラッグ&ドロップする。
MenuItem に表示される文字を変更するには、
変更したい MenuItem をダブルクリックする。
こういうことが訊きたいのか?
242 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 22:24:32 ID: h4mMySUs
>>241
おおっ、まさにそれが聞きたかった!
なるほどメニューを表示させた状態で設定するんですね。
InfoパネルのAttributesから設定できなかったので
コード内から直接いじくるしかないのかと思ってました。
どうもありがとう。多謝。
ちなみにコード内からset ~ とかでいじくる方法はないんでしょうか?
243 名前: 名称未設定 Mail: sage 投稿日: 04/10/12 19:38:12 ID: uKbR7eDJ
>240のImage Eventsで画像アイコンをつける方法は
画像を再圧縮するのでjpgとかに使うと劣化しますので注意してください。
244 名前: 名称未設定 Mail: sage 投稿日: 04/10/12 22:35:05 ID: LpjzlUgf
最近、カキコを読んで「ああ、あの人だな」とわかることがある...
狭い世界だから...
245 名前: 名称未設定 Mail: sage 投稿日: 04/10/17 0: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 名前: 名称未設定 Mail: 投稿日: 04/10/24 13:13:01 ID: rw3ptXbP
age
247 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 3:14:49 ID: rR2cymuu
2バイト文字に限らずファイルパスってのは普通は囲むだろ。
248 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 3:56:35 ID: rR2cymuu
という話ではないのか、、、スイッチの-noLargeだな。
249 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 5:51:23 ID: EhC+PGLP
発表会スレなのに、ほかに関連スレが無いようなので質問させていただきます。
AppleScript Studioアプリに非標準UNIXコマンドをパッケージ内にバンドル
したいのですが、アプリの設置パスを獲得する方法はないでしょうか。
250 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 6:42:08 ID: rR2cymuu
>>249
アプリの設置パスって path to current application とか?
バンドルならまんま bundle があるし。
AppleScriptKit を見ればわかるでしょ。
251 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 18:52:40 ID: x+qjW0Wy
プレーンなテキストファイルのドラドロで原稿用紙換算できるAppleScript作ろうと勉強中なんだけどwebにある情報だけじゃどうにもならんですた
なんかそこに至る為のお勧めな本とかありませんか。
技量はベーマガ世代でPHPでシンプルな掲示板くらいなら作れてCocoa+Objective-Cでヘボなシューティングゲーム作った事がある程度です。
252 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 19:16:21 ID: piCvLv0u
N88BASIC以来のほぼ0から初めましたが
「AppleScript Programming for Mac OS X」(掌田津耶乃著・ソシム刊)は
AppleScriptの基礎的な部分の解説が充実しててわかりやすかったですね。
アスキーから出てる「AppleScript Studioでゼンマイびゅんびゅん!!」の方は
Cocoaアプリ作成例集といった感じですた
253 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/10/26 14:32:36 ID: wJ/lC24p
>>252
レスどもです。
「AppleScript Programming for Mac OS X」所望してみます。
255 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 5:55:31 ID: yfjLVJw4
AppleScript Studioで作ったアプリのウインドウを、
常に最上位に表示するにはどうしたらよいんでしょうか。
ヘルパーアプリを作っているんですけど、それがネックで……。
トグルできるといいんですけどね。
ゼンマイびゅんびゅんに載っているっぽい感じですが。
週末には買おうと思いますが、ご存知の方がいらしたら教えてください。
256 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 6:38:24 ID: 7qCTI3vX
>>255
フローティングウインドウにしたいなら
set floating of window "hoge" to true
で逝けるかと。ググり情報なんで違ったらスマソ。
以前作りかけたアプリで使ったのに削除してたよorz
何か作る度にWebと睨めっこするのは効率が悪いな。
自前でリファレンス作ってまとめなきゃならんか……。
257 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 9: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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 16:52:16 ID: wVbz5O7P
>>258
構文はあってる。
思うに progress indicator オブジェクトまでのパスが通って無い。
オブジェクトのある Windows もしくは Sub View に tell してないでしょ。
260 名前: 258 Mail: sage 投稿日: 04/10/28 19:30:04 ID: JYWwq5Zn
レスありがとうございます。自分勘違いしてました。
2行目のdialogが表示されてれば、1行目のtellは通っているものだと思っていました・・。
確認したところパスが通ってない部分(凡ミス)を発見し
修正して無事動きました。
アホな質問ですみませんでした・・。
レスいただけて助かりました。重ね重ね感謝です。
261 名前: 255 Mail: sage 投稿日: 04/10/28 23:39:04 ID: yfjLVJw4
>>256
無事常に最上に表示されるヘルパーアプリになりました。
ありがとうございます。
262 名前: 名称未設定 Mail: sage 投稿日: 04/10/30 7:13:33 ID: /PQwgGPn
>>256
サンプルアプリ作ってわかりやすいファイル名で保存しとくというのも手かと。
263 名前: 255 Mail: sage 投稿日: 04/10/30 8: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 名前: 名称未設定 Mail: sage 投稿日: 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でしか動作確認しとりません。
265 名前: 255 Mail: sage 投稿日: 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 みたいなメソッドがあるといいんですけどね。
266 名前: 255 Mail: sage 投稿日: 04/11/01 5:20:40 ID: L8OLmO4Y
InDesignばっかりで申しわけないです。
最前面のウインドウをサイクルさせるスクリプトを作ったのですが、
set myUnSortedWindowList to windows
で取得できる参照のリスト(?)の順序が不定なのでソートしたいのです。
いい方法はあるでしょうか。普通にやろうとすると、型変換に失敗
してエラーになってしまいます。一応、下記で問題はないのですが、
ソートできればスッキリするだけに、ちょっとお聞きしてみました。
267 名前: 255 Mail: sage 投稿日: 04/11/01 5: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 名前: 名称未設定 Mail: sage 投稿日: 04/11/01 6:12:23 ID: ufV1fFkM
>>266
InDesign を持っていないので出来るかわかりませんが、
window の id を取得して地道に並べ替える手が使えるのでは。
269 名前: 255 Mail: sage 投稿日: 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)も試したのですが。
こんな基本すらできない自分が悲しい。
270 名前: 255 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/11/01 14:40:05 ID: ufV1fFkM
>>269
用語辞書は知ってますよね。
set myWindows to windows
properties of front of myWindows
これで属性一覧を取得した中に id は入ってませんか?
これらが参照できる筈の属性なんですけど。
272 名前: 255 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: age 投稿日: 04/11/05 8:23:50 ID: nNsLenx+
Script Debugger超絶便利で、ほかに勝る存在も無いようなので
買おうかと思うんですが、アンチエイリアスが切れなくて、
フォントが変えられない部分の表示が見辛くて仕方ありません。
これって何とかならんもんでしょうか。
274 名前: コピペ推奨 Mail: 投稿日: 04/11/05 8:29:09 ID: Qvz7AgN/
▲911が自作自演の可能性は?
http://news17.2ch.net/test/read.cgi/news5/1080481431/l50
275 名前: 255 Mail: sage 投稿日: 04/11/08 5: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 名前: 名称未設定 Mail: sage 投稿日: 04/11/09 11:01:39 ID: MS4Vk1ag
新規の質問なんですが、お邪魔します。
propertyを並列的に書くことって、できるんでしょうか?
リストから名前を選ぶと、名前に対応した個人データ(URLなんですが)を
クリップボードに収める、というスクリプトを作って使ってるんですが、
名前とデータを別々のpropertyに収めています。
property nameList : {"あ","い","う"}
property siteList : {"A","B","C"}
これを
{"あ" "A",ノ
"い" "B",ノ
"う" "C"}
というように書きたいんです。
IMの辞書登録とファイルメーカーでも同じものを作ってますが、
一番使っているのがこのスクリプトなので、なるべくこれを
編集しやすくしたいのです。
277 名前: 名称未設定 Mail: sage 投稿日: 04/11/09 18:56:55 ID: gd/e3JdJ
「keystroke」(>>207)は、ショートカットにしか対応してないのですか。
キーボードを自由に打たせる、
例えばテキストエディットで文字を入力したり、削除deleteしたりする方法はありませんか。
シェアウェアではあるようですが。(Script Palette)
278 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/11/10 0:39:16 ID: ktiGuBya
>>278
すっげ!
281 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 0: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 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 4: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 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 5: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 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 13:38:54 ID: pWJTbFsz
そもそも面倒なAppleScriptだけで作ってるのかな?
AppleScript Studioならリストから対を取得すれば済む事だし。
286 名前: 名称未設定 Mail: sage 投稿日: 04/11/12 9:41:11 ID: BEYhNaaO
>>282
>>283
>>284
ありがとうございます。なんか、できました。できたかも。
とにかく、入れ子にできるのは知らなかったです。
>>285
勤務先のが、お古のOS9機でして。
287 名前: 名称未設定 Mail: sage 投稿日: 04/11/13 1:59:29 ID: KHTuzFTh
マウスクリックを AppleScript で実行することは可能なのかな?
288 名前: 名称未設定 Mail: sage 投稿日: 04/11/13 4:03:07 ID: T254oc/V
>>287
OS9ではCursor OSAX,S穫di's Additionsなどが有ります。
289 名前: 名称未設定 Mail: sage 投稿日: 04/11/15 4:19:55 ID: 8u1xX1hE
ScriptDebuggerのDebugモードで動いて、Debugモードを外すと動かなくなるのっ
て何なのだろう。デバッグできねーじゃん!!
あと、ScriptDebuggerでコンパイルできて、ScriptEditorでコンパイルできな
いのがある。
あと、コメントでエラーが出ることがある?
わけわかんねー!!
290 名前: 名称未設定 Mail: sage 投稿日: 04/11/20 8:12:06 ID: 3zze8c2Y
スクリプトエディタの2バイト文字の処理は最悪で毎度腹が立つ。
291 名前: 名称未設定 Mail: sage 投稿日: 04/11/20 17:09:22 ID: WIEoO1BY
そうか?
StringとUnicode textを使えば問題ないと思うけど。
292 名前: 290 Mail: sage 投稿日: 04/11/23 11:28:09 ID: kaBH1AF/
スクリプトエディタでプログラムを書いているときに;
コンパイルできない時の指摘部分選択がずれる。
日本語がうまく入力できない時がある。(後ろに「-」等を書いておくと行けるけど)
>>291どうすればよいでしょ。
293 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/11/23 14:33:03 ID: dr/z3RuG
>>292
俺の場合AppleScriptStudioでファイル文字数を数えるスクリプトなんだけど、
濁点とかを一文字と数える場合があるらしくはまった。
規則性がイマイチはっきりしなくて対処に困ったんだけれど、
あまり意味のなさそうな部分にもひたすらstringを突っ込んだらうまく数えられるようになった。
でも凄く見にくいスクリプトになっちゃったので、俺も日本語のうまい使い方を教えて欲しい。
295 名前: 名称未設定 Mail: age 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/11/23 23:42:33 ID: eVOwJ40A
>297
あ、動いたんだ。動かないのは変だなぁと思ってたから
それはそれでよかった。。
ScriptDebbugerとの相性は持ってないから何とも言えないが、
一行スクリプトなら
tell application "Excel" to Select Row hogehoge
と、正に一行で書いてみたら通らないかな。試しに。
299 名前: 名称未設定 Mail: 投稿日: 04/11/27 21:03:37 ID: Ctmsh+4I
Dialog Directorでダイアログ作るときに
front above 〜ってすると、常に特定のアプリの前面に
ダイアログを表示できて、便利だったんだけど
AppleScript Studioで同じようなことする方法あります?
過去ログに常に最前面にする方法があったけど
特定のアプリの前面ってのがわからないんです。
300 名前: 名称未設定 Mail: sage 投稿日: 04/11/27 22:13:21 ID: kcjMJLOP
ScriptDebbugerを使っている方に質問です。
ScriptDebbuger v106JはOS9にてよく使っていましたが、現在のv.308+OSXの日本語の相性はどうですか?
デモ版を入れてみたところメニューやウィンウタイトルなどが文字化
けするようですが、その他の不都合などあれば教えてください。
301 名前: 255 Mail: sage 投稿日: 04/12/01 2:07:44 ID: M3RYh2dz
>>298
今試してみたら、どっちでも動きます……。
いろいろ試しているうちに、どっがおかしくなっていたのかな。
何が何やら……。おかしくなったらログアウトするか再起動してみます。
302 名前: 255 Mail: sage 投稿日: 04/12/01 2:27:10 ID: M3RYh2dz
>>299
僕が思い付くのは、常にfrontmostを監視する常駐スクリプトを別に走らせて
おき、ターゲットアプリがactiveになったら、もしくはdeactiveになったら、
AppleScript Studioで作ったヘルパーアプリ(?)に対してtellしてやる、という
ものです。例えば、以下をアプリケーション形式かつ終了しない設定で保存し
実行すると、それを行なう常駐アプリになります。動作は確認しています。
303 名前: 255 Mail: sage 投稿日: 04/12/01 2: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
304 名前: 255 Mail: sage 投稿日: 04/12/01 2:46:45 ID: M3RYh2dz
上記のスクリプトは、そのAppleScript Studioアプリ内に記述することができ
ることも分かりました。つまり、on idleハンドラをAppleScript Studioアプリ
内に書けるということです。上記をただ書いただけだと不満が出ると思うので
改良は必要ですが……。
tell application "Your Applecation Name"
↓
tell window "wi"
などとして、自分のウインドウオブジェクトに対してtellします。
on idleを置くことで、通常の処理とは別に、バックグラウンドで別のことをさ
せられるんですね。初めて知りました。on idleを使うスクリプトは専用に作る
しかないと思ってました。これはスクリプトの幅が広がるなぁ。
305 名前: 255 Mail: sage 投稿日: 04/12/01 3:09:59 ID: M3RYh2dz
>>300
変数やリスト、レコードに日本語が入っていても、それが変数モニタ上で文字
化けして見られないということはないようです。
ソース内の文字列、コメントに日本語を使う際、カーソルを右に移動するとき
「1バイト文字、2バイト文字」というならびがあった場合、2バイト文字の間に
入ってしまうことぐらいですかね。
例えば「aあ」という文字のならびで、行頭から行末に向かってカーソルを移動
していくと、aの次にカーソルが移動するのは「あ」の1バイト目と2バイト目の
間です。行末から行頭に向けての移動では問題ないようです。
マウスでの指定は常に正常なので、困ったらマウスでポイントを移動するなり、
選択範囲を作ります。
あとは、特定の環境でフォントの設定が予期せずデフォルトに戻ってしまう、
ということを経験しています。
既に指摘されているように、フォント設定ができないところでは文字化けしま
すね。あと文字が小さい!! 小さい上にアンチエイリアスがかかるのでMac OS
X上では辛いです。
結構困るのは用語説明が文字化けしてしまうこと。本文に日本語が使われてい
るのを見たことがないので使う分には困りませんが、アプリケーション名が日
本語のものについては、開いてみないことには何だか分かりません。
306 名前: 名称未設定 Mail: 投稿日: 04/12/01 11:05:24 ID: qTzsl7tX
すいません、かなり今更なんですが、
tanaka's osaxの使用方法に関する資料を探しています。
特に文例みたいなものを探しています。Web/書籍問いません。tanaka's osaxに
辞書は付いていますが、辞書だけですぐ使い方が分かるほどのレベルではないのです…。
OSXが使えればPerlなんかで済ませられるんですがOSXを使えない環境で
スクリプト制作をしなければならないもので。
307 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 11:19:07 ID: m/bP4cH+
>>306
何を作るのかわかりませんけど、Mac Perlではダメですか?
308 名前: 名称未設定 Mail: 投稿日: 04/12/01 11:29:56 ID: QYMIqq8Q
tell me to run
309 名前: 300 Mail: sage 投稿日: 04/12/01 12:00:18 ID: kZHOTIgD
>>305
ご回答ありがとうございます。
Open Recentなどの日本語ファイル名が化けるのは意外に不便ですが、実質
上スクリプト作成には問題がないようですね。
>あと文字が小さい!!
確かに!ふと気づくと梅干し食ったような顔になっているときがありますw
>>306
ソフトバンクから出版されている「AppleScriptリファレンス」に幾つかの
コマンドについて田中氏本人による用例、解説がのっています。
もしくは、ご存知かもしれませんが田中氏のフォーラムがありますのでそち
らで聞いてみるのも良いかと思います。
http://mtlab.ecn.fpu.ac.jp/webcon.mtxt
310 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 12:22:57 ID: Js4nfbxz
ありがとうございます。
AppleScriptリファレンス探してみます。フォーラムは知ってはいるのですが
私のような初心者が厨な質問をするのは失礼かと思いまして…。
Macperlは使えないのですよ。会社で使うので新たにソフトをインストールするのは
色々手続きが面倒で…。 tanaka's osaxはすでに入っている環境なので。
311 名前: 300 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 18:55:03 ID: PCpTKVdU
たしかにOSXオンリーな辞書は欲しいかも。いまのソフトバンクパブじゃ
そういうの出す体力ないかもしれないけど。
313 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 20:41:05 ID: m/bP4cH+
OSのバージョンが細かく上がったりする度に状況が変わってるというのも
出しにくい一つの原因では。
314 名前: 名称未設定 Mail: sage 投稿日: 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
315 名前: 277 Mail: sage 投稿日: 04/12/01 21:14:02 ID: SxbH7PCw
>>278ありがとう。
でもテキストエディット上で動かしたところ、カタカナ化がうまく行かないです。
(ことえりだし手打ちなら行ける)
316 名前: 名称未設定 Mail: sage 投稿日: 04/12/02 2:43:20 ID: zJfSc9//
>>314
さんくすです。解説文書参考になりますね。
317 名前: 名称未設定 Mail: 投稿日: 04/12/03 1:12:09 ID: BY+ylefZ
>>304
ていねいな回答ありがとうございます。
個人的にはon idleハンドラってこれまでなんとなく避けてたんです。
OS 9までは常駐アプリってうっとうしい感じがあったので。
今はそんなこと気にしてないくせに、自分では気づかなかったです。
作成中のスクリプトに組み込んでみます。
318 名前: 255 Mail: sage 投稿日: 04/12/03 5:08:14 ID: ncAXmMZ+
>>317
InDesignのヘルパーアプリを作っていて、そういう動作ができるのがベストだ
な、と思っていたのでついでですよ。おかげで勉強になりました。
僕も常駐アプリをうっとおしがる方です。用が無いときにも定期的にアップル
イベントが飛んでいるのは気持ち悪いですし。
それより、REALbasic でウインドウのプロパティにあるGlobal floating
windowをONにしたとき相当のGlobal floating windowにする方法は無いですか
ねぇ。これを設定したウインドウは、クリックしてもタスクスイッチしないん
ですよね。あたかも親アプリのツールパレットであるかのようになります。
319 名前: 名称未設定 Mail: sage 投稿日: 04/12/03 10:11:16 ID: wkeVnTpA
REALbasicスレあるよー
REALbasicってどうもいつもREALbasic本体にバグがつきまとう感じで
好きじゃなかったけど今は直ってるのかな。
320 名前: 名称未設定 Mail: sage 投稿日: 04/12/03 12:12:31 ID: fNDUM7/r
REALbasicの開発状況が改善でもされなけりゃバグは出つづける。
321 名前: 名称未設定 Mail: sage 投稿日: 04/12/03 12:29:17 ID: bo7qMwm1
もうだめぽですか?
OSXだとXCodeでアップルスクリプトにGUI簡単に付けられるしね。
322 名前: 名称未設定 Mail: 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 12:33:55 ID: vDPlr+JC
>322
>どこが駄目なのでしょうか。
質問の仕方とか。情報が足りない。
で、Excelを持っていないのでExcelのAppleScript辞書が見られないのだけど、
openやsaveのその妙な構文、それで合ってるの?
324 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 13:43:19 ID: 9CQS5XqL
自身と同階層のテキストファイルを読み込ませるにはどうすればよいですか。
path からうまく item扱いにできません。
325 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 14:45:20 ID: IAHU0GHs
>>324
read ((((path to me) as string) & "ファイル名") as alias)
これじゃダメ?
326 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 14:49:28 ID: IAHU0GHs
ミスった。。。
read ((((path to me) as string) & ":" & "ファイル名") as alias)
327 名前: 300 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: 投稿日: 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の言う通り、妙な構文と感じると思います。
つづく
331 名前: 322 Mail: 投稿日: 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で良かったですね。
つづく
332 名前: 322 Mail: 投稿日: 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さん、回答ありがとうございました。
333 名前: 322 Mail: 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 19:51:27 ID: 4g+BzK2W
as string は?
336 名前: 255 Mail: sage 投稿日: 04/12/06 20:13:53 ID: Fmmo6R4v
>>334
as Unicode textですかね。
OS Xではtextと使い分けないといけないようです。
>>303でも使ってますが、文字列照合でもハマるので覚えて覚えておいた方がいいですよ。
つまり、textとUnicode textを比較しても一致しません。
337 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 20:39:34 ID: qM8QEzat
いえ、えっと、utxtから普通のテキストにしないといけないと思うので、
as Unicode textではないように思います。
やはりダメでした。
338 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 21:03:07 ID: qM8QEzat
すいません。問題のスクリプトをここにペーストして、
検証・添削してもらっていいでしょうか?
339 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 21:56:11 ID: +0o5LVL7
Unicode変換にはTEC.osax、比較にはCompareUnicode.osaxてのが有ったと思う。
340 名前: 334,338 貼っちゃいます Mail: sage 変数名が変なのは見逃して 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 22:32:08 ID: mRHUEHgG
>>340
ちゃんと動くみたいだよ。
342 名前: 340 Mail: sage 投稿日: 04/12/06 22:49:56 ID: qM8QEzat
>>341
Σ(・_・)
マジですか。
よろしければ環境等教えていただけませんでしょうか。
私の環境(10.2.8 AppleScript 1.9?)では
> insert aRecord at end of aDoc
のところで、
『Jedit4でエラーが起きました:一部のデータを目的のデータ型に変換できません』
となります。
スクリプトエディタ上からの実行です。
343 名前: 名称未設定 Mail: sage 投稿日: 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
他のフォルダも試しましたが日本語化けもないですよ。
344 名前: 340 Mail: sage 投稿日: 04/12/06 23:08:42 ID: qM8QEzat
>>343
検証&報告ありがとうございました。(_ _)
盲点でした・・・。
Jedit4を4.2.0r0から4.2.3r0にアップデートしたところ
動くようになりました。
何だったんだぁ・・。
疲れた。 orz
さてこれからサブルーチンとかちゃんと仕上げないと。
そう言えばAppleScript関係のMLも見なくなってるから、
10.3になって変わった事とか調べてないなあ。
改良とかあったんだろうか。
345 名前: 255 Mail: sage 投稿日: 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
346 名前: 340 Mail: sage 投稿日: 04/12/06 23:34:38 ID: qM8QEzat
>>345
おお!すっきりきれいなコードですね。エラー処理もしてあるし、
変数の名前もカッコ(・∀・)イイ!
> every item of window 1 & {}
の
『& {}』がミソなのでしょうか?
これは一体どういう事なのでしょうか?
けっこう知られてるTipsなのでしょうか。
347 名前: 255 Mail: sage 投稿日: 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から、というこ
とならまだいろいろありますよね。
348 名前: 340 Mail: sage 投稿日: 04/12/07 0:05:19 ID: L5iLS6TS
>>347
ぐっはー。
中断してる期間も含めてだけどキャリア10年近くなろうとしてるのに、
ぜんぜんわからんかった。
orz
色々ありがとうです!(・∀・)
その情報の源はどこですか?やっぱりMLとか?
349 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 0: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
350 名前: 255 Mail: sage 投稿日: 04/12/07 1: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 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 2:22:16 ID: L5iLS6TS
(month of (current date)) as number
は10.2.8じゃダメみたいですた。
352 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 2:23:34 ID: L5iLS6TS
ありゃ。お返事来てたのに気付かずズレた書き込みしてしまった。
orz
353 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 2:34:48 ID: EnGxPlt3
>>350
> 「AppleScript言語ガイド 英語表現形式」
昔ダウソしたpdfもあるけど、これって、Xcodeとかインスコすると見られる奴じゃ
なかったっけ?
354 名前: 255 Mail: sage 投稿日: 04/12/07 3:42:57 ID: kjM0M1Mw
AppleScriptKit.asdictionaryのことですか?
これはAppleScript Studioのものですね。
http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/AppleScriptLanguageGuide.pdf
内容的には上記のものでしょうが、「AppleScript言語ガイド 英語表現形式」
は日本のアップルから出ていた書籍で、日本語で書かれているはずです。
日本語版のpdfもあったんですかね? うpキボンヌ。
355 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 3:45:06 ID: L5iLS6TS
新しいのって言ったら、「ぜんまいびゅんびゅん」はOS Xが出た後に改訂版が出なかったですっけ?
ところで、Jeditの用語のsuspendってどんな時に使うんだろう。
って試してみればいいんだけど・・。
ハイパーカードで画面の変化を隠して動作を速くするようなのがあった気がするけど、そういうのとは違うのかな。
356 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 11:26:14 ID: +/FTYqH9
スクリプトマニュアル読め。
357 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 22:23:10 ID: Tg7BQRJ2
as number ちょうど作ってる部分だから助かる。
weekday は無理か。
358 名前: 名称未設定 Mail: 投稿日: 04/12/07 23:33:18 ID: S20VFWzT
Macintosh HD9.2/フォルダA
このフォルダAの中にある全てのファイル(pdf)をプリントアウトする、
というようなスクリプトってありませんか?
359 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 23:39:40 ID: NRq0bMya
ある
360 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 23:44:45 ID: eCYeY7Cq
月の as number って逆はできないのかなぁ?
361 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 0:01:30 ID: XF6w7z/w
ちょっとちがうけど
weekday of (current date) as text
↓
"Wednesday"
362 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 0:19:23 ID: Q3YmnXXu
>>360
無精せずにハンドラ定義しませう
>>361
これコンパネの設定に関係なく英語の長い曜日名みたいですね。
363 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 0:39:33 ID: y96g/90f
>>359
おしえて
364 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 1:06:12 ID: D2tEr0a2
>363
まずサンプルはどの程度探したのかと問いたい。apple.comで検索したキーワードとかもあわせて聞きたい。
365 名前: 360 Mail: sage 投稿日: 04/12/08 1:25:16 ID: ydK11mTi
>>362
なんかくやしいんだよねw
date ({2004, " ", 12, " ", 31} as string)
で数字から直に date を作れるのに
書式の影響で汎用では使えない
366 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 1:54:49 ID: y96g/90f
>>364
プリントアウト フォルダ 全て ファイル スクリプト
こんな感じのキーワードでググッたけども、めぼしいものにあたらない。
apple.comでサーチですか。 それはやってなかった。
さて
script print out これでサーチしてみましたが、やはりみつからない。
367 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 2:03:13 ID: JHLewExG
>366
プリント方法より「AppleScript 基礎」とかで検索して
AppleScriptの基本を学んだ方が早いんじゃない?>>1のリンクとか。
あと、「アウト」は要らないよ。プリント。print。
print 命令はrequired suite…全アプリが必ずサポートしているから、
焦点は「どうやって特定のフォルダにあるすべてのpdfファイルを参照するか?」
ということになるでしょう。
repeat ループでフォルダの全ファイルを見て、
name属性やcreator、file type属性をチェックしてpdfだったら
print すればいいんじゃないかな。
368 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 2:09:27 ID: Q3YmnXXu
印刷と言えば、MLや掲示板で頻出の質問が、セレクターをどうするか。
369 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 21:23:11 ID: rHd1qJSG
http://www.apple.com/software/
http://www.apple.com/jp/software/
米アップルにはPantherの次にAppleScriptがあるのに日アップルにはAppleScriptがないショボーン。
Downloadのところとかちょっとバージョンが違ってるようだけど、どうなんだろ。。。
370 名前: 名称未設定 Mail: sage 投稿日: 04/12/09 8:49:29 ID: umW4eyDo
>>366
フォルダ開く
セレクトオールPDF
セレクションから名前を貰う
プリントできるアプリにわたして印刷
ここまで言えばあとはできるっしょ
371 名前: 名称未設定 Mail: sage 投稿日: 04/12/11 11:08:46 ID: kfmjvZvI
>>365
-- AS date -> ISO8601 format
((current date) as <>) as string
-- ISO8601 format -> AS date
"1997-07-16T19:20:00" as <> as date
372 名前: 名称未設定 Mail: sage 投稿日: 04/12/12 19:16:55 ID: jaxA0+RB
驚いたな。かなり融通が利くじゃないですか・・・
373 名前: 名称未設定 Mail: sage 投稿日: 04/12/12 20:16:32 ID: zh5VyTvy
ISO8601 formatなんてのがあるんだ。
色んなモノで使われてるんでしょうか?
日付の後の『T』って何?タイム?時間と日付の区切りかな。
374 名前: 360 Mail: sage 投稿日: 04/12/12 22:44:25 ID: JTeQS373
>>371
動かないけど?なんか必要なの?
375 名前: 名称未設定 Mail: sage 投稿日: 04/12/12 22:57:04 ID: g70v/5cA
>>374
<<と>>を半角のに置き換えてる?
化けると思うけど
"1999-07-16T19:20:00" as ?class isot ? as date
376 名前: 360 Mail: sage 投稿日: 04/12/12 23:08:59 ID: JTeQS373
>>375
あんがとうごいた
377 名前: 360 Mail: sage 投稿日: 04/12/13 0:24:05 ID: 16exasSr
OS9.1では動かなかったけど、
XML-RFC and SOAP Suport 絡みなんかなあ?
だとすると10.1あたりから使えてたのかも。
TZの付かない時間表記はISO的には
問題ありそうな気もするけど、
こっちの目的には使えそう。さんくす
378 名前: 371 Mail: sage 投稿日: 04/12/13 7: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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/20 20:28:32 ID: rW2XcJnZ
du -ks $HOME とか?
du -hs $HOME とか?
381 名前: 名称未設定 Mail: sage 投稿日: 04/12/20 20:45:56 ID: 5SU4olvI
アリガ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・*トウサン
382 名前: 名称未設定 Mail: sage 投稿日: 04/12/21 1:35:26 ID: +UXZcmyK
純粋に文字列表記で使うだけなら良いけど、ASのintegerは
2^29が最大だからディスク容量の計算では簡単にオーバー
フローするよ。
"536870912" as integer -- error
383 名前: 名称未設定 Mail: sage 投稿日: 04/12/21 5:55:32 ID: z0kiRC8x
>>382
対策ありますか?
384 名前: 名称未設定 Mail: sage 投稿日: 04/12/21 9:45:03 ID: AZsSIEDs
integerつかわなきゃいいんじゃ?
385 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/22 2:09:43 ID: rd5/iTIJ
う・・。じゃがやと動かへん・・。
どこをどう変えたら・・。
ああ自分のアホさがうらめしい。
387 名前: 名称未設定 Mail: sage 投稿日: 04/12/22 7: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でも動くので大丈夫では。
388 名前: 386 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/23 17:13:34 ID: 8qBdA2cc
質問なのですが、AppleScriptで、キー入力ってできないんでしょうか?
ぐぐると補助ソフトのようなものばかり出てくるんですが。
391 名前: 名称未設定 Mail: sage 投稿日: 04/12/23 17:25:43 ID: qh6ctVF6
>>390
>278とか
392 名前: 名称未設定 Mail: sage 投稿日: 04/12/24 2:36:00 ID: Hn9wSqaq
TigerはAppleScript関係もバグ無しで日本語も快適操作になってるといいなー。
Automatorの影響がどっちに転ぶか・・。
もしAutomatorがAppleScriptジェネレーターなら、AppleScriptをきちんと仕上げない事には話にならないわけで。
AppleScriptを介在しないとしたら、AppleScriptはなおざりにされる可能性も・・。
Terminalもいじらなくてもヨユーで日本語使えるくらいであってほしい。
393 名前: 名称未設定 Mail: sage 投稿日: 04/12/27 4:45:38 ID: boXmZcO+
すいません。純粋なアップルスクリプトではないのですが、
JavaとシェルスクリプトとAppleScriptを組み合わせて
メールをチェックしてメールがあったら任意の動作を行わせるというものを作りました。
ソースと手順のテキストをアップしているので、
よかったら見てやってくださいませ。m(_ _)m
ttp://mac.oheya.jp/up/src/macroom0320.gz
圧縮はdmg.gzです。
394 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/27 21:28:14 ID: 8s88DMDc
>>394
何だかわからんけど、2行目のas text外したら逝けたよ。
396 名前: 255 Mail: sage 投稿日: 04/12/27 21:31:43 ID: 4MllGtox
>>394
Unicode text
397 名前: 名称未設定 Mail: 投稿日: 04/12/27 23:18:08 ID: w3uGIU7v
自分ではさっぱり書けないのですが、こんなのを
ツールバーに登録したいのですが。
・finderのウインド上で選択されてるフォルダを「新しいウインド」で表示するスクリプト
・選択されてる対象に関係なく、クリックすると「同じウインドのままで一つ上の階層に移動する」ボタンとして使えるスクリプト
おながいしまつ。
398 名前: 394 Mail: sage 投稿日: 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 名前: つづき Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 0:48:41 ID: 8sRTLgZB
確かに変だよね
"h" はstring型で theChar もstring型に変換してあるはずなのに
どうして?
401 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 6:12:12 ID: RmynAZ9E
実行環境として便利そうなのでコピペ
http://pc5.2ch.net/test/read.cgi/mac/1100447652/320
AppleScriptのスクリプトメニューをONにして、
ユーザ<ライブラリ<Scripts(無かったら作って)に
Applicationsフォルダを作りその中にFinderやAppleWorks等のアプリの名前のフォルダを作る。
アプリ名のフォルダの中にそのアプリで使うAppleScriptを入れておくと、
そのアプリがアクティブの時にアプリ名のフォルダに入れてあるAppleScriptだけが表示される。
AppleScriptを多用するする人には良いと思う。
402 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 6:55:48 ID: pH+pK8Sv
>>401
そんなことはこのスレにいる人はみんな知ってると思うけど
403 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 13:50:32 ID: mKqqdX27
>>401
知らなかった。サンクス。
OS9の頃は何かのユーティリティー使ってそういう事してた気がするけど。
つかスクリプトメニュー表示させてるけど全然使ってないや・・・。
(-_-;
404 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 2:46:04 ID: 4isdLE/G
さっきは動いたスクリプトが動かなくなるってのが結構あるのがイヤ。
エラー報告が「タイプ1の・・・」とかクソの役にも立たないのもイヤ。
405 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 3:20:07 ID: izRQESSe
エラーコード表みたいなものってないのか
406 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 3:31:15 ID: ssrmI0xS
エラーコードの意味なんて知ってもまず役に立たんだろ。
407 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 6:56:04 ID: KYPwX0xa
>>404
> さっきは動いたスクリプトが動かなくなるってのが結構ある
マジで?
単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で結果が違うとかじゃなく?
>>405
ちょっと古くなっちゃったけど
AppleScriptリファレンスに載ってる。
>>406
try構文で囲んでエラーコードを拾って分岐処理ってのも一応よくある手段。
408 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 13:09:48 ID: 4tQBrVPE
<=が実質使えないのがイヤ。
is less than or equal toって毎回忘れるし
409 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 13:37:00 ID: KYPwX0xa
> 実質使えない
そうだっけ?そんなバグあった?
算術記号は日本語フォントじゃなくて英語のフォントにしといた方がよかった気がする。
410 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 19:33:17 ID: 4isdLE/G
>>407
>単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で
それ。それが言いたかった。言葉足らずでごめんなさい。
アプリ形式だと実際上バグ追っかけられないのがツラい。
せいぜいダイアログで進行状況表示するくらいか。
>>408
is not greater than ではどうか。
411 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 23:33:44 ID: +lIPQKVh
>>409
新規テキストと演算子が欧文フォントになっていてもエラーが起きない?
412 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 5:46:02 ID: H4At5RJU
>>411
<=がコンパイル後に≦の半角のやつになるんだけど
和文フォントにこれは含まれてないので
半角の『イ』になっちゃうんだよね?
だからスクリプトエディタの編集メニューの
『AppleScriptフォーマット』で
上から2番目の『演算子など』を欧文フォントにしておくと、
コンパイル後にちゃんと≦が出るよね。
(スクリプトエディタのバージョンによってメニューの名前は違うかも)
この事を言ってるんじゃなかったらごめんね。
413 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 5:52:06 ID: H4At5RJU
>>410
そですねー。。
beepとかダイアログが頼り。
一ヶ所クリアしたらコメントアウトして、また次。
たいへんですよね。
なまじ『イベントログ』がわかりやすいだけにアプリ形式の時は困る。
idleハンドラを使う時なんかはアプリにしてみないとわからんですからね。
普通のデバッガに慣れてる人はAppleScriptStudioを使うと多少はマシなのかな?
漏れはAppleScriptから入ったんで、HyperCardのデバッガの使い方もよくわかんなくて、上記のASのアプリの時のような方法で確認したりしてた。w
414 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 12:44:29 ID: 1VBbbdny
Studioは純正AppleScriptからの変更点がいくつかあって変なところでよくハマる。
デバッガが使えるのはいいんだけど、エラー報告は基本的にデタラメのまま。
GUI部品の参照がダラダラと長くなるのもウザイ。
なので漏れはStudioは嫌いです。
415 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 13:57:56 ID: H4At5RJU
あーたしかにStudio使うとできない事とかあるみたいですね。
あのできたアプリがパッケージ形式?になってるのがややこしい。
自分自身へのパスとか出すと変だったような気が。
416 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 15:47:02 ID: H4At5RJU
>>416
やっぱり有償の開発環境はそれ相応の機能があるって事ですね。
あれ?前はフォーサイトが日本語版売ってたような・・。
今フォーサイトのサイトに行ったら無いみたいですね。扱いやめちゃったのか・・。
AppleScriptを本格的に使ってるような人は英語に困らない人が多いって事かな。
(漏れは困ります)
そういえばフランスの方のフリーウェアの開発環境もありましたよね?
Smileだっけか。
色々機能ありそうだけど使い方よくわかんなくて
結局スクリプトエディタ使ってました。w
何か今見に行ったらお金払うと3Dグラフとか書ける機能が付くみたい?w
Affrusというのは知りませんでした。
ttp://www.latenightsw.com/affrus/screenshot.html
なんかすごそうですね。
関心空間にもページができてるみたいですね。
うーん。。
Perlというと文字列変換やCGIしか思い浮かばない私^^;
418 名前: Late Night Software社員 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 21:12:59 ID: 1VBbbdny
いかん・・・宣伝とはわかっていても・・・ゴクリ
420 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 21:34:45 ID: H4At5RJU
日本語化されてて日本語のドキュメントが付いてきて
日本の住所から日本円で銀行振り込みで簡単に支払いできて納得できる値段なら買うけどね。
まあとりあえず買うのはSmileを試してからでも遅くないと思うよ。
421 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 22:14:06 ID: H4At5RJU
すいません。質問なんですが、
今Standard Additionsの辞書見ててふと思ったんですが、
Class URLとかClass Internet addressとかClass web pageって、どんな時にどう出てくるもんなんですかね?
422 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 2:16:03 ID: Qcxym1t3
スクリプトメニューがショートカットキー登録できればなあ・・・
423 名前: Script Software社員 Mail: sage 投稿日: 04/12/31 2: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 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 4:48:32 ID: Qcxym1t3
こ、これは・・・まさに理想どおり・・・ゴクリ
425 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 7:40:13 ID: ZR1sj9Te
わらた
426 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 14:35:07 ID: aEx1M9U9
>>408-412
今は必ず (a>428
ScriptEditor2.0のバグです。International/LanguagesでEnglishを
最上位にしてloginすれば正常に動きます。AppleScriptはplain
textを返しますが、NSTextViewで扱うためにUnicode化する所で失敗
している感じです。
ScriptDebuggerはWASTEベースなので問題無く動きます。
430 名前: 名称未設定 Mail: sage 投稿日: 05/01/02 14:37:40 ID: lUu2TB5G
>>428-429
知らなかった。>>427で回避できるのかな。
431 名前: 名称未設定 Mail: 投稿日: 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」の形に直したいのですが、
どのようにすればいいでしょうか。
432 名前: Late Night Software社員 Mail: sage 投稿日: 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"
433 名前: Late Night Software社員 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 0:28:34 ID: LOs3VTeg
>>433
お手数をおかけして済みませんでした。
435 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 2: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:pass@ftp.server.com/"
上記の表記によるftpサーバへのURLだと、user nameとpasswordというレコード
が追加されるみたいです。
Internet addressは、Class URLのhost属性のクラスそのものだそうです。
Class web pageはよくわからないですね。
436 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 2: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
437 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 3: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 + ↑でいいんでしょ?
まあ分かってて書いたわけですが。
438 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 3:43:57 ID: 3OP8JbdV
>>432
テキストの部分抜き出しは from character ? to character ? of〜でしたね。
439 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 8:05:40 ID: Kx7/qYau
>>435
その表記のuser nameとpasswordの記述は標準的なもので、http:のwebサイトとかでも使えますよ。
afp:でも使えたかな?
440 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 12:08:33 ID: HiCEb5SX
>>435
ありがとうございます。
おおー。"URL文字列" as URL とかできたんですね。
.weblocファイルからURLを取り出したり、
.weblocファイルを作ったりできるんですかね?
それできると広がるんだけどな。
.weblocのファイル名をページのTitleにするとか
更新チェックするとか・・。
441 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 18:15:17 ID: HiCEb5SX
日付のフォーマットの話は>>371のあたりにも。
443 名前: Late Night Software社員 Mail: sage 投稿日: 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です。
444 名前: Late Night Software社員 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 18:51:03 ID: HiCEb5SX
>>443
おお!
446 名前: Late Night Software社員 Mail: sage 投稿日: 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
こんな感じですかね。基本的に端数は無いみたいなんで。
447 名前: Late Night Software社員 Mail: sage 投稿日: 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
448 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 19:51:28 ID: 3OP8JbdV
(month of (current date)) as numberを使っているので
AppleScript"1.9.3"以降に依存してますね。
"言語"に依存しないということで……。
それ以前だとそれぞれの言語が取りうる月の表記を全部比較参照して数値化し
ないといけないですかね。本当にAppleScriptって糞ですね(w
449 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 21:43:03 ID: 3OP8JbdV
>>445
choose URL
というのの返り値としてもClass URLが扱える……と思ったら、resultは単なる
stringですね。
set myURL to choose URL
myURL as URL
450 名前: 397 Mail: 投稿日: 05/01/04 22:35:44 ID: PL5tAsdN
>>436>>437
ありがとうございますた。後ほどやってみます。
>でもこれあなた、Command + ↑でいいんでしょ?
もちろん解っててです。たまにどうしても片手だけでなんとかしたいときがあるんで。
451 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 23:15:42 ID: BGUlvB6B
>>437
このスクリプト、1つ上の階層を別ウィンドウで開ければ
上の階層へのファイル移動に便利かも。
452 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 23:31:42 ID: z/iPYJlJ
うちとこではOS9なので日付やテキスト関連処理はTanaka's osax使ってます。
453 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 0:03:50 ID: iydlByFQ
tell application "Finder" to open folder of insertion location
つうのをコンテクストメニューに入れて使ってますが
これではダメですか
455 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 3:44:30 ID: 4/QiSZMS
社員すげえな!
456 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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\>/ ) {print $1;last}'
458 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 12:44:40 ID: MZsOtLpO
お舞いは氏んでろ!
459 名前: 名称未設定 Mail: sage 投稿日: 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\>/ || m/\(.*)\<\/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 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 15:44:44 ID: 6gxeiD5H
>>459
問題が一つ発覚しました。
Amazonの商品ページのようにリダイレクトがかかる所だと上手く行かないようです。
curlに-Lオプションを付けてもだめ。
なんでやー。
461 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 17:06:08 ID: 4/QiSZMS
何がしたいのかがよくわからん
462 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 18:13:24 ID: 6gxeiD5H
>>461
FirefoxとかでURL欄からドラッグして作った.weblocとか、
あとSafariでも場合によるみたいだけど
ファイル名が『URL.webloc』になるでしょ?
それを、『ページのタイトル.webloc』にしたいんです。
463 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 20:27:14 ID: UWA0ZDBb
Safariならfaviconをドラドロすればなるだろ。
464 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 0: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 4:26:27 ID: M3mQkVIX
do shell script + iKey = 最高のスクリプト環境
467 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 9:34:17 ID: l65dp0ju
>>465
おー。そんな書き方ができたんですか。
何かオブジェクト指向っぽい?(←わかってない)
468 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 16:05:04 ID: ai60fai5
>>471
それはURLエンコードといいます。
packとかunpackを使うんだったような。
473 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 17:59:52 ID: o5YUh2G/
>>469
ジャガーでも使えるよ。
477 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 19:11:51 ID: l65dp0ju
>>476
何かインストールしないとダメじゃなかったですっけ?
今のままだと>>468とかコンパイル通りません。
478 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 19:16:39 ID: 1EgfsqrS
10.3が出てβ版の公開も止めたから無理だろ。
479 名前: 473 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 19:24:59 ID: o5YUh2G/
>>477
>>478
10.2.8とかなら標準で入って無かったっけ?
システム環境設定>ユニバーサルアクセス>補助装置にアクセスできるようにする
で出来ない?
481 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 21:35:14 ID: EEAVD+jS
Terminalスレの気温野郎と同じくウゼェ
484 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 21:44:41 ID: M3mQkVIX
>>482
(゚д゚) ポカーン
485 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 21:57:38 ID: l65dp0ju
(´・ω・`)ショボーン
486 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 22:12:02 ID: M3mQkVIX
(・∀・) ユッテミタダケ
487 名前: 471 Mail: sage 投稿日: 05/01/06 23:27:42 ID: U6kxFFM+
ワカラネェヨウワァン>匙投げ な質問に丁寧に答えてくれて
ありがとうありがとうとってもありがとう。後でいじってみます。
ちなみにどういう使い方をしようかと思ってたのか説明すると
自分はあるIRC(chatみたいな物)の部屋に常駐してるのですが
グーグルの検索結果とかwikipediaとかのURLをIRCに投げると
windows側のブラウザだと日本語のurlだと駄目みたいで
エンコードしてから送りたかったってだけなんです。
解らないってのはperlがさっぱり解らなかったのと返り値とかどーすんだって事だったのです。
長文レス失礼しました、ホントありがとう。
488 名前: 名称未設定 Mail: sage 投稿日: 05/01/07 1:21:06 ID: c4MmNJWB
>>482
>% perl -we "$str='abcd'"
>とすると、str: Undefined variable.
シングルクオートじゃないと「シェルが」$strをシェル変数として展開しよう
とするから。以下をターミナルで試してください。=の前後は空白を開けてはだ
めです。
str="abcd"
echo "$str dayo"
#↑$strが展開される
echo '$str dayo'
#↑$strが展開されない
489 名前: 名称未設定 Mail: sage 投稿日: 05/01/07 1: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/07 11:15:46 ID: MWuih740
>>488,489
めちゃめちゃありがとうございます!
シェルが変数を展開!そうかー・・。
普通にTerminalで打ち込んだ時もシェルスクリプトと一緒ですよね。
perlに引数として渡すものだからperlだけが解釈するんだとしか考えてませんでした。あほだ。
という事は、>>482の上の文も、do shell scriptで呼び出されたシェルにとって展開すべきだけど値のない変数を含んでるからエラー?
必要な事は調べながらやってるつもりだったのですが、全然足りなかったようです。
Googleに頼りすぎてAppleのそのページの事も忘れてました。
orz 勉強します。
491 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 9:05:54 ID: jLt9Z+bf
>>481
Dec 2002 Mac OS X Developer Tools に入っている、
System Events 1.2 でないとダメみたいですね。
ただし、300MB・・・
気が向いたら Developer (フリー) になってDLしてください。
492 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 16:13:23 ID: KINJa0I2
10.2.8
choose fileで決めた名前でテキストファイル開いて短い文を書き込んで閉じる
という簡単なスクリプト。
再帰呼び出しとかループとか全然無いんですけど
なぜかスタックオーバーフロー・・。
他にも同じような経験した方いらっしゃいますか?
494 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 17:06:58 ID: 8m+pPYhF
ファイル書き込みはけっこうコツがいる。
様々な場面に対応して安定して書き込める書き込みサブルーチンを作るのは大変だよ。
とりあえず、今書いているスクリプトの一部でも上げてみては?
495 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 21:25:13 ID: LzXH+nMC
choose fileとchoose file nameは全然違うもんだろう
497 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 2:16:11 ID: JApCHH+h
あれ?OS Xにもちゃんと『choose file』ありますね。
古いコードの流用で手抜きしたのがまずかったか。
orz
こんなんばっかや。スレ汚しすいません。
498 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 12:52:42 ID: FVszgUCx
ファイル書き込みがめんどいので
do shell script & touch を使っちゃう俺は負け組
499 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 13:15:50 ID: JApCHH+h
>>498
touchって知りませんでした。ありがとう。
今調べたらtouchって空のファイルを作るだけみたいですけど?
テキストファイルだったら、
echo 'なんとかかんとか' > foo.txt
で新規ファイル作って書き込みまで一発でできますよね?
500 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 13:24:17 ID: FVszgUCx
>>499
いま見たらecho使ってたスマソ。
自分の書いたサブルーチンの内容も覚えてない負け組・・・
501 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 13:41:40 ID: JApCHH+h
ひょっとして、書き込み用のサブルーチンとかライブラリ化してるんですか?
漏れもそういう事しないといかんなーと思いつつ、
テキトーに昔のスクリプトを検索で見つけて
開いてコードをコピペという原始的な事をしてます。
touchはtouchで使い道があると思います。
えーと確かIEか何かでファイルをダウンロードさせる時に
指定先に空ファイルが必要だった気が。
502 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 15:40:47 ID: SNbTZcg7
読み書きのサブルーチンはライブラリ化するべき。
書き込もうとしたらボリュームがロックされていたり、書き込み途中でボリュームがいっぱいになったり、いろいろなハプニングがある。
場合によってはそのままファイルがopenされたままになって次に開けなくなるなど、トラブることがある。
それらに対する対処をぜんぶ盛り込むと読み書き命令はかなり長いサブルーチンになる。
独立したサブルーチンとして使い回ししやすくする方が賢い。
503 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 15:54:23 ID: A+ufYLLP
読み書きにはopen/close不要のOSAX使ってる。
エラー処理も殆ど必要なくて便利です。
504 名前: 名称未設定 Mail: sage 投稿日: 05/01/10 3:40:15 ID: V5GsB8UW
>>502
>書き込もうとしたらボリュームがロックされていたり、
>書き込み途中でボリュームがいっぱいになったり、
>いろいろなハプニングがある。
うわ。そういうのマジメにやった事ないや・・。
他人のコードは見た事ある気がするけど。
エラーコードで分岐ですかね。
今のとこ大ざっぱにtry構文で囲んでエラーがあったらcloseさせてるだけっす。
そういえばAppleScript Studioにはファイルの読み書き用のハンドル?が用意されてるみたいで、
それを使えば安全にできそうな気もするんですが、
いまいち使い方がわからない。
505 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/11 7:21:55 ID: RvfmBlcs
前のversionと同じ挙動で落ちます。
507 名前: 名称未設定 Mail: sage 投稿日: 05/01/11 10:12:11 ID: yurdvSaa
>>506
またまた報告ありがとうございます。
ありゃ(ずこ
何で複雑なブックマーク作成はOKで単純なブックマーク開くがダメなんだろ・・。
速度犠牲にしてブラウザ別の命令に分岐した方がいいのかなぁ。
508 名前: 名称未設定 Mail: sage 投稿日: 05/01/11 15:03:38 ID: nIBENIiR
1 + 1
509 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 2:01:13 ID: CDPbrQ0m
ドットシンタックスで参照したい...
510 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 2:46:01 ID: WdZ69FPS
確かに 〜 of 〜 of って参照は表記が冗長ですよね。
メソッド等との区切りも視覚的に分かりづらいし。
あと、親子の順序が逆なのものヤですね。
Child --> Parent (AppleScript)
Parent --> Child (ドット記法)
DashboardのWidgetもJavaScriptで書くようだし、
いっそのこと、OSAにJavaScriptが使えるようになるといいのに。
でも対応アプリが無いことには意味無しか。
511 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 3:07:20 ID: WZ1UA0Js
>>510
例えば、
ttp://www.latenightsw.com/freeware/JavaScriptOSA/
スクリプタブルアプリケーションは自分が扱えるオブジェクトを
辞書として公開し、OSAとAppleEventを使って交信するだけ。
だから、OSAの先の言語がASかJSかとかは関係ない。
オブジェクトが表記・操作できるような言語なら
OSAに組み込める可能性はある。
前からとか後ろからとかは、言語の問題でOSAの問題じゃない
512 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 4:24:05 ID: UAHJFjiH
510はコンファブのウィジェットいじった事あるのかなと。
513 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 5: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 5:27:25 ID: UAHJFjiH
前はクイッキーズか何かも独自のOSA対応言語を搭載してなかったっけ?
何か違うような気もするが・・。
うーん。
ユーザーランドなんたら言うのは何だったっけ。
515 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 20:29:11 ID: xusk0ph1
現在開いているウインドウのIDや名前などを取得/命令の送信って
AppleScriptでできませんか?
516 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 20:49:07 ID: Oxx0AkgQ
できるでしょ?
517 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 20:58:59 ID: HmlJEPMl
アプリケーションの用語にもよるけど。
Panther なら System Events でも取れるかな。
518 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 21:03:50 ID: oka9PPG4
>>510
parent's child
519 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 23:29:19 ID: UAHJFjiH
front most なapplicationを調べられるけど、
その答えにAppleScript自体が返って来ちゃったり。w
520 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 23:31:40 ID: MzPVJ2a8
ユーザーランド・フロンティアもOSA対応言語だったよね。
使ったことなかったけど。
昔はけっこうAppleScript以外のOSA対応言語があったよね。
AppleScriptにも日本語とかフランス語とかあったし。
なつかしー
521 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 0:54:19 ID: ugV7KcoW
日本語から入ったからしばらく両刀だった。w
って懐かし話してる場合じゃないや。
こないだ今一番手前に出てるアプリ(or ウインドウ)を調べようとして
>>519な感じだったんですけど、
何か解決策ありますか?
522 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 1:21:33 ID: ywey2I13
スクリプトエディタから動かしてるかぎり、どうにもならんかと。
523 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 2:09:37 ID: ugV7KcoW
いやえーと、アプリ形式で保存してもそうなるでしょ?
起動したら前に出ちゃうから。
自分を下げる命令とかあったらいいんですけど、
他のをアクティベートするしかないわけで、
そしたら「今一番前のを知りたい」という目的に合わないですよね?
スクリプトメニューから実行すると大丈夫なのかな。
でもアプリじゃないと困る事もあるわけで・・。
ほかに手はないですかね。
OS Xになってウインドウばらばらになったから
今のウインドウの順番をリストで取得とかできるようにならないかな・・。
リストだったら自分自身は取得後に消せばいいわけで。
524 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 2:32:02 ID: ZDc2IX21
>>523
クドクドと言い分けじみたことを並べるより、ストレートに何がしたいか
つまり何故最前面アプリを調べたいか言うほうが良い
525 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 6: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 15:28:06 ID: ugV7KcoW
>>525
レスありがとうございます。
なるほど。Rbでそんな事ができるのですね。
残念ながらRbはとても古いのしか持ってないのですが、
手があるとわかってうれしいです。
AppleScript Studioで同じような事できませんかね。
Global floating Windowは作れないですよね。
on idle回しっぱなしは重いかなーと思うんですが、そんな事もないですか?
5秒間隔にしててもその間隙にユーザーが切り替える可能性もあるのがちょっと痛いですね。
ありがとうございました。
527 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 1: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 1: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 7: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 11:57:39 ID: OaTTOcBT
>>527
おお!興味深い情報。英語・・・。がむばって読みます。
>>528
今すぐ何かしたいというんでもないのですが、
たまに使いたくなってはあきらめるという繰り返しというか。
たとえば、最前面のアプリケーションに対して補助パレット的に働くようなものとか。
まぁ相手が明確ならそのアプリに対してtellすればいいんですが。
〜というアプリが最前面なら何かするとか。
>>529
> plistでNSUIElementかLSBackgroundOnlyを指示すれば良い。
をを!?
アプリ/Contents/Info.plist
???
いじる所がわかってない時点で触る資格なし??
orz
おー。検索すると何か色々出てきました。OMEの開発陣のお話とか・・。
> C/C++で〜ちゃんとしたコード
そんな能力があれば・・・。
(´・ω・`)
531 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/16 15:44:35 ID: ApFVuSDE
スクリプトでなくても構わないのですが、ディスプレイだけをスリープさせる方法はないでしょうか。
寝る前にiTunesを再生したあと、しばらくディスプレイがつきっぱなしになってしまうので…
御存知の方いませんでしょうか。
533 名前: 名称未設定 Mail: sage 投稿日: 05/01/16 15:59:57 ID: b2dqR9y4
>>532
システム環境設定>省エネルギー設定>カスタム>ディスプレイがスリープするまでの時間を別に指定する
iBookやPowerBookならF1の明度ボタンで暗くする。
外付けのディスプレイならディスプレイの電源だけ切ってしまう。
534 名前: その1 Mail: sage 投稿日: 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 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/16 19:40:47 ID: b2dqR9y4
>>535
pmset -g diskなのは理由があるのでしょうか?
これだとノート型だとAC電源の場合とバッテリーの場合の2通り表示されます。
awkは詳しくないのでどっちの結果を拾うかわかりませんが。
pmset -g か pmset -g live なら現在使用中の設定が出ると思います。
537 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: 投稿日: 05/01/17 19:38:08 ID: UoyTYoys,
すいません質問です。
AppleScriptからクリッピングファイルを作るにはどうしたらいいのでしょうか。一応
以下のようにするとファイル自体は出来たのですが、これだけでは中身が無いようです。
tell application "Finder"
make new clipping to "hogehoge"
end tell
それと、出来ればテキストクリッピングだけでなくピクチャクリッピングというものも
作りたいのですが、これは可能でしょうか?(実はそもそも見た事ない>ピクチャクリッピング)
539 名前: 名称未設定 Mail: sage 投稿日: 05/01/17 22:46:25 ID: 0f4TU0z4
>>538
OS9だとTanaka's osaxのMT Write Clippingでテキストもピクチャも(URLも)出来ますが。
540 名前: 名称未設定 Mail: sage 投稿日: 05/01/17 23:37:23 ID: UoyTYoys
>>539
レスありがとうございます。
環境書き忘れてましたすいませんOS X 10.3.7です。
ググったらこのスレが出てきたりしましたorz >>226で既出だった。。。
Tanaka's osaxというのはOS Xでは無理なのですね……これは残念です。
541 名前: 名称未設定 Mail: sage 投稿日: 05/01/20 23:11:36 ID: CErtLa24
煮詰まってます。
do shell script "curl 'http://www.google.co.jp/'"
これだけのスクリプトが、
『一部のデータを目的のデータ型に変換できません』となり実行できません。
なぜ???
542 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 0:11:48 ID: e6i+sJr3
>>541
試したけど普通に実行できてダウンロードもできてhtmlもげっとできた@OS X 10.3.7
543 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 0:46:03 ID: wBJmQOuD
PopUp Buttonで現在選択されているアイテムの項目名を取得するにはどうすればいいんですか?
544 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:09:18 ID: bkZIOcof
ここで聞いていいのかな、スレ違いでしたらスマソ
テキストから四百字詰の枚数を換算するAppleScriptってありませんかね。
545 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:27:20 ID: gH5JIHoV
これを改造してみれ。
ttp://www.artman21.net/product/Jedit3/Jedit3Script.html#anchor96681
546 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:37:44 ID: bkZIOcof
ども、助かります。
いい機会だし勉強してみよ
547 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:42:46 ID: bkZIOcof
ありゃ、開けない
……AppleScript本買ってくるかな
548 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 5:02:48 ID: ASsM4AEP
>>542
レスありがとうございます。
どうもdo shell scriptの最終的なリザルトがUTF-8じゃないとエラーになる模様。
10.2.8
549 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 5:04:56 ID: ASsM4AEP
>>544
いわゆる2バイト文字である日本語と半角アルファベットが混じったテキストの字数を数えるのはけっこう面倒な気がします。
字数数えてくれるエディタなかったかな。
550 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 5:56:12 ID: 2o7SY2N4
TextInfo.osax
551 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 6: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 12:52:30 ID: MQc1eGXv
>>549
他のは知らないけどmiはバイトじゃなく文字で数えたと思うよ。
553 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 13:35:28 ID: fxhOK5rr
>>551
わざわざどうも、とても参考になり助かります。
帰ったら色々挙動など調べてご報告します。
554 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 13:58:57 ID: oumNNSO4
改行後の空白とか考慮するとなると段落ごとに処理しなくちゃならないね。
555 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 14:19:42 ID: B7cXghTH
幅を二十字に設定したエディタに流し込んで行数を数える、とかが一番確実なような。
556 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 14:24:51 ID: fxhOK5rr
まあそうなんだけど、ファイル数がだいぶ増えたのとWinにそういうツールが存在しててMacにないというのも寂しいなと思ってた物で。
一度自動化できれば人為的なミスも大部減りますし
557 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 14:55:30 ID: BSPixBnQ
>>556
文字コードが固定しているのなら、段落ごとに20文字で割って
20行で割ってってやっていったらできますよ。
それほど難しくないと思うから頑張ってみたら。
558 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 21:44:22 ID: wevqu65C
>>558
そのままだと空の改行をカウントしないんじゃね?
5行めの後に
if numberOfCharacter = 0 then set n to n + 1
>>557
TEC OSAX入れるとテキストエンコーディングの判定と変換もできる
560 名前: 名称未設定 Mail: sage 投稿日: 05/01/23 23:12:13 ID: YU6TBoGB
http://www.warprecords.com/bleep/
このサイト、試聴するのにとっても便利なんですが30秒で一時停止してしまいます。
もう一度再生ボタンを押せば通して聴けるんですが、この動作をアップルスクリプトでできますか?
561 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 0:41:46 ID: 5R+fZ1VG
そこまで微妙なタイミングを要求される動作はちょっと無理ではないかと。
562 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 4: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 4:15:12 ID: 9zR/SnHH
>--再生/一時停止ボタンにフォーカスを合わせてから実行
Tabを押して、です。再生/一時停止ボタンが黄色くなったらGO!
564 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 7:04:14 ID: 5R+fZ1VG
うーん。わくわくするなあ♪
うまく行く事を祈る。
GUI scriptingでactivate待ちとかはdelayを使えばいいのか。勉強になりました。
565 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 19:49:35 ID: oypLhcax
>>562
thx.
しかしTabでもopt + Tabでも選択出来なかったです。。
566 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 23:53:45 ID: 9zR/SnHH
>>565
一度プレイヤーのところをクリックしてからTabを押してください。
なんかもう、まるでダメ男君みたいだね。
567 名前: 名称未設定 Mail: sage 投稿日: 05/01/25 4:13:02 ID: ccE8xFrU
>>566
ありがとう。
できました。
>>562
ありがとう。
568 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 8:41:59 ID: DcrUlE5Z
Pages、スクリプタブルじゃないじゃん……。
569 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 18:44:42 ID: +yPaCxWS
ぱげすって何?
570 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 21:06:52 ID: uHC6uZmr
>>568
うっわー。
Pages自体どうでもいいんだけど、
それをきっかけにスクリプタブルじゃないソフトが幅を利かせたりしたら嫌だねえ。
571 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 21:16:41 ID: zRdMYf2+
AppleとしてはこれからはAutomator用のアクション対応に力を入れるんじゃないの?
572 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 21:26:48 ID: 6ZCI/DB6
AutomatorのアクションってAppleScriptでも自作出来るとかじゃなかったかな。
下手に対応させないとAutomatorの首を絞めるかも。後々対応させるのでは?
573 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 22:14:04 ID: ZrbI+GPE
あれ、乙女タソってAppleScript自動生成じゃないの?
574 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 23:27:19 ID: uHC6uZmr
>>573
そうだといいなとは思ってます。
ADC会員で早く使ってる人は何も言えないだろうしなあ・・。
Appleから公式にそのへんのコメントないかな。
575 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 23:45:35 ID: DcrUlE5Z
>>570
まさにそういうことだね。
EGWordはAppleScriptへの対応ぶりがショボいし……。
Wordはちゃんと取り組んだことがないけど、MSアプリのAppleScript対応機能は
バギーだとMARo氏が書いてたな。
ところで、MARo氏って「これこれ、こういう方法を発見した」だの書いておき
ながら、具体的なことを書かないんだよね。
576 名前: 名称未設定 Mail: sage 投稿日: 05/01/27 7:36:20 ID: aPm7gDSr
>>575
> MSアプリ〜バギー
そうなんだ。
でも対応はいい方ですよね。使える命令多いし。
漏れはIEくらいしかいじらんですけどOE関係のスクリプトなんかも一時期は多かったような。
WordはVBのマクロをちょこっと触った事しかないな・・。
AppleScriptは実行専用にするとソースが隠せる事もあってか
昔からけっこう秘密主義の人も多いですね。
あまり整った言語ではない?ために直球ではできない事やわかりづらい事も多いので、
そこをどうにかする変則的なノウハウのようなものも生まれてくるし。
オープンにしちゃうとシェアウェアとか商売でやりたい人は困るんでしょうけど、まだまだ小規模なコミュニティーだと思うしオープンにしてほしいよなと思う事もしばしば。
有償であっても書籍などの形で公開してくれればまだいいんですけどね。
577 名前: 名称未設定 Mail: sage 投稿日: 05/01/27 18:48:15 ID: 4XTbR5mz
流れぶった切ってちょっと質問です。
環境はOS Xなんですが、Finderのentire contents命令って何かバグとかありますか?
ググったらそれっぽい記述があったんだけど、どうもその情報自体古いみたいで……。
578 名前: 名称未設定 Mail: sage 投稿日: 05/01/27 21:04:03 ID: +NpEMX5w
http://developer.apple.com/macosx/tiger/automator.html
579 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 5:23:24 ID: uh1bNbrD
KonfにならってJavaScriptを標準にしてしまった方がいいような
580 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 7:33:03 ID: p1w7CzEl
>>578
リンクありがとうございます。
AutomatorはASの自動生成をしてくれるインターフェースってわけではなさそうですね。
これはマジでASピンチ?
>>579
ずーっとそれ書いてますけど(別の人ならスマソ)WindowsでWSH使った方が幸せなのでは?
漏れはAS覚えた事を無駄にしたくない&ASはラクで(・∀・)イイ!と思ってるのでMacを使い続けてるんですけど。
581 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 11:35:50 ID: b6oxW9te
漏れもJavaScriptだったら覚えていなかったと思う。
582 名前: 別の人 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 15:19:54 ID: p1w7CzEl
うーん。>>582さんはばりばり使ってるからこそ限界を感じるんですかね?
もちろんアプリごとの不統一だとかバージョンごとの細かいバグみたいなものとか標準での機能不足とか色々ASにしっかりしてほしい所はあるわけですけど、
だからといってJavaScriptで記述がメインになったからといってそれらが一気に解決するなんて事はありえないでしょうからね・・。
(正規表現っていうと文字列の検索とか置換とかでしょうか?
漏れは文字列扱う時は昔からPerl呼び出して使ってるし
それ用のOSAXもあるみたいですけど・・)
584 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 15:34:02 ID: p1w7CzEl
(ああ、JavaScriptがいいっていう発言を何度も見た気がするのは
別のスレでDashboard関係の話題が出た時にも書いてあったからかな・・。
しかもその発言した人コンファブレーターのWidget作った事ないみたいだったし。
あれって使いたい機能によってはASやShellScriptを呼び出して使うようになってるはず。)
585 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 15:41:12 ID: c2xj6VuQ
>>583
フィルタ参照形式で正規表現が使えないかと思ってるんだよね。
586 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 16:24:46 ID: p1w7CzEl
なるほど。それができたら便利そうかも。
587 名前: 名称未設定 Mail: sage 投稿日: 05/01/29 11:12:30 ID: adSmIe+r
俺はフィルタ参照自体よくわからん
何にたいしてどんなフィルタが実行可能なのかの一覧とか欲しいよほんとに
588 名前: 名称未設定 Mail: sage 投稿日: 05/01/29 13:19:34 ID: 3EeyHq0Y
なんかFinderが悲惨みたいだね
589 名前: 名称未設定 Mail: sage 投稿日: 05/01/29 18:57:46 ID: t3TN3xE5
>>587
そのクラスが持ってるプロパティーで条件指定してフィルタかけるっていうのが基本なんぢゃないの?とおそるおそる書いてみる。
あるクラスは上位のクラスの属性を継承してたりするからそのへんわからんとあれだけど「AppleScriptリファレンス」とか、ネット上で公開してくれてる人が居る用語集とか見ると書いてありますよね。
釈迦に説法だったらごめんなさい。
>>588
現状でどんな問題があるかは知らないです。最近MLも見てないし。
590 名前: 名称未設定 Mail: sage 投稿日: 05/01/30 7: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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/30 23:34:08 ID: Gkkht6T/
虎の Automator おもしろそう。
サイト見たかぎりでは関数をブラックボックス化して組み合わせるみたいだから
フォーマットに従えば自作のスクリプトも使えそうだ。
593 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 0: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 1:37:37 ID: bH+T6ZLE
情報漏洩 キタ━━━━(゚∀゚)━━━━!!!!
595 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 2:04:49 ID: exUqoKA4
>>594
>>578
596 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 2:41:44 ID: R1ubLn1J
Automatorは、Mac OS X Tigerのパワフルな新機能の一つ。プログラムすること
無しに、素早く、効果的に、楽々と、毎日繰り返す手作業を能率化できる。
大量のファイルのリネーム、数ダースもの画像の処理、アドレスブックに登録
した従業員の作業カレンダー作りといった仕事を、容易に「オートメート」で
きる。
一度「オートメート」すれば、それらの仕事を何度も何度も繰り返せる。
---
これってUNIXのツールチェーン、コマンドの直交性みたいな話でなかなかおも
しろいよね。Automatorが広く認知されたプラットフォームになったら、案外凄
いことになるかも。ちょっと形は違うけど、OpenDocを思い出す。
597 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 3:20:41 ID: R1ubLn1J
Automatorは、「Action」を積み重ねて構成する。
おのおののActionは、一つの仕事をこなすようにデザインされている。
例えば、Webページからリンクされた画像を見つけ出したり、あるフォルダにあ
るファイルを別のフォルダにコピーしたりといったようなことだ。
一つのツールですべてのことをやってしまうのではなく、一つのActionは、
「一つの仕事をうまくやる」ようにデザインされている。
Automatorのパワーは、ワークフローの中のActionの連鎖に由来している。
個々のAction一つでは成し遂げられない仕事でも、ワークフローの中にあるい
くつかのActionが力を合わせることで、素早く、容易に成し遂げられる。
この小さな個々の部品から機能性の構築をするというアイデアは、古きよき
UNIXに始まったものだ。
Automatorのもたらした躍進点は、直感的なGUIで小さなツールの組み立てをや
りやすくしたこと。
スクリプターや開発力のある人はだれでも、Actionの重要な作成候補者だ。そ
して、ほとんどのケースで、スクリプトを手で書くよりそれを早くできるよう
になるだろう。
# 「それ」が何を指してるのかよく分からん。Actionを作ることかしらん。
# よく読んだら、やっぱり古きよきUNIXの考え方にヒントを得たものなのね。
598 名前: 名称未設定 Mail: 投稿日: 05/01/31 3:50:00 ID: mWfqvAGV
すみません。複数のJPEGをPowerPointに1ページ一枚ずつ、一気に貼付けていくスクリプトを
誰か晒していただけませんか?
599 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 3:50:33 ID: R1ubLn1J
Actionの美点は、たくさんの機能性の源泉を活かせること。
Actionは、Core ImageやCore Dataなどのcore OSフレームワークの機能にアク
セス可能。コマンドラインツール環境の「てこの力」や、個々のアプリケーショ
ンの専門化した特徴をうまく利用することもできる。
Actionは、AppleScript、もしくはObjective-Cのいずれか、容易な方で作成で
きる。
Automatorの登場は、顧客がワークフローで使うための小規模な機能性の拡張を
もたらすちっちゃなユニットの提供機会の創出を意味する。
あなたがアプリケーション開発者なら、ユーザのためのAction作りは、非常に
大きなビジネスチャンスだ。
# かなり適当な訳
600 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 3:53:42 ID: R1ubLn1J
>>598
Office Xと2004でAppleScriptが大分違うと思うんだけど、どっちよ。
601 名前: 名称未設定 Mail: 投稿日: 05/01/31 3:56:48 ID: mWfqvAGV
>>600
あ、2004です。おねがいします。
602 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 4:06:16 ID: 7HMBvwK8
>>601
おねがいします。じゃないだろ。
603 名前: 名称未設定 Mail: 投稿日: 05/01/31 4:11:44 ID: mWfqvAGV
ひーん。おながいしまつ。
604 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 5: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 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 5: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
606 名前: 598 Mail: 投稿日: 05/01/31 8:57:04 ID: mWfqvAGV
ありがとうございまつ。これをもとにガンガッテみまつ。
607 名前: 598 Mail: 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 22:06:25 ID: mIKwbED0
>>578
を見る限り、
AutometorはコマンドラインのGUI版って感じかな
普通のユーザーにも簡単に、たぶんAppleScriptよりも
ずっと容易に使えるだろうけど、ただ、この手のものは
制御構文や変数の扱いが貧弱なのが普通だから、
あまり複雑な処理には向かないと思う。
アプリ開発者から見ると、Autometorはユーザーに
簡易マクロ機能を提供する手段として、あるいは、
汎用のデータを扱うアプリなら、これをプラグイン環境
としてとらえることもできるかも。
スクリプターから見ると、Autometor自体がスクリプタブル
なのかが気になる。いや、それよりAutometorのコマンドは
入出力の定義を持っているわけだから、これをAppleScript上の
オブジェクトの型として直接扱えたらきっと楽しい…が、
それは難しそうな気が…。
609 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 22:41:48 ID: ORR1Vo1i
基本的に用意しといたブロックを一本道でつなげた構造で、
複数のブロックにまたがるような制御構文や変数は無理そうだね。
もちろん個々のブロックの中では自由に記述できるだろうけど。
ところで、引数と返り値のバケツリレーで型チェックはないっぽいので
自分で書くとつまらないバグに悩まされそうで心配。
Javaで書けばこんなカンジでしょ?↓
Object[] hoge(Object[] input, Object[] parameters) {
...
}
何番目のデータが何を表して、ということを自分で管理しなければならず、
しかも実行時エラーの報告が今のようなデタラメだらけでは・・・
610 名前: 590 Mail: sage 投稿日: 05/01/31 23:00:29 ID: 9m7bIpaB
>>591
Autometorで盛り上がっているところすみません。
無理ですか…
他のプロセスをストップしているってことだったんですね、つまりアップルスクリプトの
プロセスもストップしていると…、そりゃ動きませんよね。
なんだかものすごく納得です。
納得はしましたが、困ったなぁ。
何か裏技的な方法ないんでしょうか。
Kinesisというのは、あの不思議なキーボードですね。
これはこれでほしいけど、やりたいことは人の手を入れない自動化だったので、これまた無理ですね。
とほほ。
611 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 0: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 0:51:59 ID: Hf6pjnV2
>>611
with timeout of 6000 seconds
end
で囲んでみるとか
613 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 0: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 1:25:18 ID: fl5m62Mg
>>612-613
ありがとうございます、が、どっちも解決せず。
どうもiTunes側のせいのような気がしないでもない。
AppleEventがよくわからないからな〜
615 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 1: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 2:08:22 ID: tp0PTV+S
>>607
なかなかやるね。ポートレートとランドスケープで処理を変えるわけか。
$[ ]この構文は知らなかったなぁ。
自分はexpr A / Bだったな。echo A / B | bc とか。
しかし、複数のファイルをDrag & Dropすると、必ずしもファイル名順にならなくない?
だれもファイル名順じゃなきゃダメとはいってないけどね。
617 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 2:26:59 ID: tp0PTV+S
>>608
普通のユーザーにも自動処理の門戸が開かれるということが重要。職場の人間
とか見てると、言語やスクリプトはおろか、マクロ、キーマクロすら知らない
し理解不能だから、ほとんど手作業だしね。そういう人間向けの道具としては、
分岐処理や変数などは理解を妨げるだけなので不要だと思う。
一本道でも素人に自動処理が出来るんであれば、それは喜ばしいことだと思うよ。
WindowsはいきなりWSHだから普通の人には無いも同然。普通の人に使わせると
いうアプローチの自動処理環境がOSに標準装備って、結構痛快。
>>609
型チェックはあるっぽくない?
Actionのプロパティで入力と出力の型を宣言するのでは。
それを見てAutomatorがActionの嵌合をチェックするんじゃないかな。
Actionの天地にある「Files/Folders」や「Images」というのがそれだと思うん
だけど。
618 名前: 607 Mail: sage 投稿日: 05/02/01 4: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 5:16:31 ID: tp0PTV+S
その場で整然と作ったファイルなら順序よくならぶけど、
実際に使う画像は、あっちこっちから集めてきたものではない?
どっかの実際に使ってるフォルダでselectionを取得してみたら?
tell application "Finder"
selection
end tell
……で、今調べてみたら、アイコン表示とリスト表示のselectionは、ファイル
作成日、もしくはファイル変更日順みたい。カラム表示のselectionはファイル
名順のリストになった。selection取得時にカラム表示にしとけば、ソートはい
らんね。
620 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 8:20:28 ID: oeenYfdD
>>607,616
やってる事、言ってる事が高度でわからにゃあ・・。
$[`いろいろ1`/`いろいろ2`]
の前後のどちらかが場合によって実行されるという事?
ネットのシェルスクリプト入門のページに載ってるでしょーか。
621 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 8:23:12 ID: oeenYfdD
>>617
MS-Wordのヘルプとかけっこう丁寧にマクロの書き方説明してあったと思うけどね。
ヘルプだけ見て簡単なタグ挿入みたいなの書いた事あるし。
普通の人は存在も知らないだろうね。
622 名前: 607 Mail: sage 投稿日: 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/
623 名前: 622 Mail: sage 投稿日: 05/02/01 13:16:16 ID: VaIkiZyf
レス番間違えた。
>>620ね。
624 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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
626 名前: 622 Mail: sage 投稿日: 05/02/01 15:07:20 ID: VaIkiZyf
>>625
おぉ。これは知らんかった。
ありがォ。
627 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 17:15:20 ID: oeenYfdD
>>622,623
ありがとうございます。
>>625
おぉ。これまた楽しそう。
628 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 19:10:49 ID: DkBGhz+8
>>627
Image Eventsについては、
ttp://www.apple.com/applescript/imageevents/index.html
で、よろしこ
629 名前: 611 Mail: 投稿日: 05/02/01 19:33:52 ID: 1FXb6MdN
よくわからんので結局try〜end tryで囲ってムリヤリ解決させました。
630 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 20:53:32 ID: YYzm9ADL
/Library/Scripts/Folder Action Scripts
にImage Events使ったフォルダアクションのサンプルがあります。
631 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 21:51:47 ID: O30SLqiC
>>629
それやってる人、他にもいるね。
他に解決法って無いのかも
632 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 22:11:48 ID: oeenYfdD
試してみようと思って1曲AIFF→MP3変換してみたけど、
タイムアウトのエラーが出なかった・・。
長い曲じゃないとダメなのかな。
スクリプトエディタから実行したから?
633 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 23:18:44 ID: h01xe7q2
おなかちゅいたよまみー
634 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 2:36:05 ID: a4wOLqCY
>>632
スクリプトエディタからだと大丈夫なのよ。
iTunesのスクリプトメニューから「スクリプト書類」でやるとだめなのよ。
「アプリケーション」で保存してやればいけるけど、なんか居心地が悪いし。
635 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 3:55:30 ID: /90GZ5L+
Jedit Xが今のベータでAppleScript対応になったね。結構用語が整理されてい
る。強化されたり、サックリ無くなってたり。
スクリプトウインドウ、マクロメニューが前より強化されたのはいいね。
個人的には、allow redraw / inhibit redrawが無くなったのが気になる。
パフォーマンスは大丈夫だろうか。
bookmarkも使い手があるね。正規表現で文書をなめて、ひっかかったのを一覧
にする、なんてことができると思われる。
Jedit XはCocoaだからI-Searchが使えるし、例のカスタマイズで多段のキーバ
インドが使えるのがいいね。そろそろ4から移行のタイミングかもしれん。
636 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 4:02:35 ID: 5R81zHAk
なるほどね。
うちのiTunes 4.7.1 @ OS 10.2.8 には
スクリプトメニューが無かったんで取りあえずエディタ上から実行してみたんだけど、環境依存的な問題なのかな。
間にはさまるメニューの実行環境がイベントの終了メッセージ待ちしててタイムアウト??
(メニューエクストラのスクリプトメニューの事?)
> 居心地が悪いし
しょっちゅう使うものだったらアプリにしてDockとかDragThingとかに入れとくのもアリと思うけどな。
勝手に終了しないようにしてon reopenで実行されるようにしとけば起動時間もかからないし。
637 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 4:05:02 ID: 5R81zHAk
>>635
うち試せないんでがしがしフィードバックしてください。
削られた用語は単にまだ実装できてないのか、
それとも将来にわたって不要と考えて削ったのか、
どっちなんでしょうね。
OS上げたら試すつもりなんで楽しみだ。
638 名前: 607 Mail: sage 投稿日: 05/02/02 4: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)
次につづく。
639 名前: 607 Mail: sage 投稿日: 05/02/02 4: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 5: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 5:36:27 ID: /90GZ5L+
>>607
結局Finderからselection取得する前にカラム表示にしたのね。
そこまで書けるならPowerPointの部分も自分で書けるだろうに(w
スクリプトと旅の恥は書き捨てだから、目的を果たすことこそが重要か。
>>637
あ、今のバージョンはAppleScriptに対応した最初のベータ版だから、リリース
版までには改善されると思われる。
642 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 6:45:50 ID: 5R81zHAk
>>640
報告ありがとうございます。
たしかJeditの場合は
文書幅によって決まる表示上の行→line
改行まで→paragraph
だった気がします。
両方あった方が便利な時もあると思うんだけどな・・。
(関係無いですがパラグラフの終端に改行を含むかどうかの扱いがエディタによって違ったりしたはず)
Jeditで使った事ないですけどOpenURLってヌevent WWW!OURLネなんですかね?
これ使うとAppleScript対応してないっぽいWebブラウザでもURL開けたりするんだけど古いイベントだから無くなるのかなあ。
まあopen locationでいいんですけど。
643 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 16:33:50 ID: kBgS6He+
>>642
つか、全部付属ドキュメントに書いてあった。
selectionはselected textなどとして取得できること、
set selected text toなどでselectの代わりになること、
クラス構造の変化、文字コード関連など、重要な情報満載ですた。
644 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 19:52:43 ID: 5R81zHAk
>>643
付属ドキュメントは大事ですね。
俺も自分でDLしない事には始まらないですね。うずうず。
そういうやり方がOS Xっぽいんですかね?
SafariもドキュメントのURLをsetってやり方でページ開いたりするみたいだし。
645 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 3:53:26 ID: 0kuLDbVl
OS Xっぽいというよりは、OOPっぽいというべきじゃないかな。
http://e-words.jp/w/OOP.html
オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの
は、OOPの基本概念ってことでいいんだよね?
よく分からん。それは表面的な理解だって話もあるし。
646 名前: 607 Mail: sage 投稿日: 05/02/03 6:10:47 ID: Mt/B37Ao
>>641
いや、VBAはてんでわからんかったので。PPTもTestDriveで試してたんです。
実は、俺のツレが毎週50枚の写真を使ったプレゼンに倒れそうになってたので、
「俺がスクリプトでなんとかしてやるから、iBook買え!!!」
なんて言ってしまって。
「2ch 新・mac板のおかげで出来た」と伝えておきました。(w
647 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 7:07:45 ID: 0kuLDbVl
>>646
ほー。そうなのか。あつい友情(愛情?)だね。
Office XのPPTのAppleScript対応はdo visual basicのみだったけど、
2004になってからガツンときてるから、2004ならAppleScriptでも
同じことができるはずだよ。
今ExcelのVBAを勉強してるので、MSのアプリはVBAの方が分かるというだけ。
VBA馬鹿にしてたけど、結構おもろい。
648 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 12:28:33 ID: QjSLg15A
>>645
>オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの
>は、OOPの基本概念ってことでいいんだよね?
俺的なOOPの基本概念
・実装(メソッド)とデータ(プロパティ)を一体化させた
オブジェクト(クラス)を定義できる
・変数の隠蔽(カプセル化)が可能
・継承したり抽象化したりというOOP的な考え方を支える仕組みがある
個人的にはカプセル化ができるか否かが最も重要
649 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 18:23:14 ID: 7ps7o9II
そういや OS X になってからクラス構造がオブジェクト指向的に改変されたな
650 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 18:52:48 ID: OJ1xhJAS
JavaScriptは基本的にオブジェクト指向なのに
変数が全部グローバルスコープなのが気持ち悪いね。
いちおう予約語にclassとかあるけど将来の拡張のためというよりは
Javaのをパクってきただけな希ガス。
651 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: 投稿日: 05/02/06 3:09:17 ID: UJtEtkP6
オブジェクト指向言語で構造化プログラミングしてる奴が多いな。
この考え方自体古いか。
653 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 3:25:56 ID: 2vVTYR/X
おまいらせっかくshellscriptが使えるのに
なんでいまさらapplescriptなんだよ。
654 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 3:29:24 ID: DQPJzWp3
(´,_ゝ`)
655 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 3:32:34 ID: gDoRxMKQ
>>653
m9(^Д^)9m ポッギャ─────!!
656 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 4:27:09 ID: hStjbpSE
do shell script が最強だということに何故気がつかないのだろう...
657 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 4:47:47 ID: 0y2KSM4d
どういう釣りなんだか判りかねる
658 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 5:41:22 ID: +BeKYxey
>>653
Shell ScriptでAdobeアプリやOfficeを制御してみてくれ。
Shell ScriptでCocoaアプリを作ってみてくれ。
Shell Scriptも使ってるがな。併用しないと辛いし。
ともすると、「全部それShell Scriptでいいじゃん」
みたいなのを書いてることもある。
659 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 7:57:08 ID: Aub/Z2I5
>>653
爆笑した
いつのまにこんな良質の餌をかけるようになったのか
向こうでいい勉強してるなぁ
660 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 8: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 8:28:16 ID: Aub/Z2I5
>>660
そのイジェクトしたDVD100GIRLS_02くれ
662 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 8:34:50 ID: 2vVTYR/X
>>661
いいよ。住所と名前教えたら着払いで送ってあげられるけど?
663 名前: 25 Mail: 投稿日: 05/02/06 8:42:12 ID: 8vGLAJKs
664 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 11:01:41 ID: ieaqnQz9
↑
皮先君 キタ━━━━(゚∀゚)━━━━!!!!
のか? もうあのスレ見るの止めたけど。
665 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 14:41:05 ID: TlPR2W2E
おまいら>>653とか>>660とか叩いてるようだが、
正論だと思うぞ。
AppleScriptでしかできないことは確かにまだまだ多いが、
一方でShellScriptの方が向いてる分野も多々ある。
これからのOSXerの正しいあり方を指摘していると思われる。>>653
667 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 16:09:00 ID: 9sLDKg67
ID変えてまで自演乙。
668 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 16:18:07 ID: 5moctVhn
これからのってんなら、Automatorで何をどこまで組み合わせられるか、じゃねーの?
669 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 20:20:51 ID: Jz7NgqXA
傀儡使い
671 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 20:22:08 ID: Jz7NgqXA
>>669
ところで
『>>653を昨日感動させた』の所は人違いと思われ。
672 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:23:12 ID: xaloEAaT
>>669の「それは、アプリケーション間通信」を忘れて
javascriptだのshellなんたらだの言ってる香具師多いね。
673 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:28:05 ID: QW3lm4+V
>>669
>>672
つか、shellscriptの中にapplescriptを埋め込めるのに、
なんでわざわざ難しいapplescriptで作ろうとするのかな、
と疑問に思っただけ。
PerlとかRubyとかPythonといった、素人には「わけわからん言語」
のことなど誰も聞いてないよ。
ここは素人のための素人によるスレであって、
Perlとか使いこなすプロの方はPerlスレで勝手に暴れてくれ。
少なくとも俺はshellscriptに関しては数日で学習できたが
Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど
学ぶだけ時間の無駄と思ってる。
674 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:33:51 ID: hStjbpSE
釣れますか?
675 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:38:22 ID: xaloEAaT
さっぱりわからん
676 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:43:57 ID: VITFGbAv
釣られますか!
> Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど
>学ぶだけ時間の無駄と思ってる。
どんな言語も最初は意味不明。perlは言う程、シキイ高くない。
折れにとっては、AppleScriptの方が難しい。
677 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:48:34 ID: 048ghQjd
やっぱ皮先だ〜。隔離スレに(・∀・)カエレ! Paperにケツを拭いて貰え。>>673
678 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 4:34:22 ID: InOvKOYR
どれが誰とかは知らないけど、
結局>>678さんの最後に書いてる事に尽きる。
適材適所。
それでも言いたい事を書いちゃう。
>>673
Perlは色々な環境で同じスクリプトが動く&CGIまで作れちゃうので勉強量的には省エネと思う。
どうせシェルスクリプトで文字処理するなら何か勉強しないといけないし、
制御文だって変数だって使うわけだし。
可読性についても長くなった時のエスケープ・クォートのややこしさ等考えると
シェルスクリプトよりも読みやすいと思う。それは書きやすいという事でもあり。
正規表現はややこしくなるとひどいけどシェルスクリプトでも不可避のものだし。
データの入出力の部分がわかれば後は書けると思う。
省略して書く方法が多いので省略せずに書いた方がわかりやすい。
AppleScriptを一番上の制御役に持ってくるとダブルクリックで起動できたりドラッグ&ドロップさせたりできるし、ボタンやメニューのついた立派なGUIアプリにもできる。
GUIアプリケーションを制御して仕事させると余計な描画が付くぶん遅かったり邪魔だったりするが、工程が目で見えたり細かい処理を勝手にやってくれるので安心という利点もあったりする。
逆に言えばシェルスクリプトによるCUIソフトの制御は速さが利点かな。わかってる人が書くと構文もすごく短くて済むしね。
680 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 9:57:22 ID: UliWkihy
>>678
>>679
俺様は皮先くんです。
ありがとうございます。
そんな意見を待ってました。(他のやつらはチンカス以下!)
やはり適材適所ですよね。同意です。
Perlもよさそうですが、最近phpが多いような気がするのですが、
phpを学ぶのと、Perlを学ぶのと、どっちかひとつだけ、
としたらどっちがおすすめですか?
俺みたいなものぐさにとって。
681 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 10:28:21 ID: NS99lvIC
ここはAppleScriptのスレ。
AppleScriptに関連してのShell ScriptやPerlの話しならともかく
単体でそういう話がしたいのなら別スレでどうぞ。
682 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 10:32:21 ID: Uj/bmBQ6
相手してんな、バカ。>>679
683 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 10:47:28 ID: b39GZLuj
>>680
お前はまず人に聞かずに自習することを覚えろ。
684 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 11:05:42 ID: UliWkihy
>>683
おまえには聞いてない。
685 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 12:25:10 ID: dcniy7vh
隔離スレに(・∀・)カエレ!
何のためにPaperが控えてると思ってんだ? お前のケツを拭くためだぞ。
686 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 12:49:38 ID: UliWkihy
それもそうですね。
つか、おまいらを釣るのにも飽きてきたので
(だって簡単すぎるしw pgr)
そろそろ巣に帰りますね。
687 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 15:18:42 ID: c6LiRSrB
>Perlもよさそうですが、最近phpが多いような気がするのですが
気のせいだから。キミはShellScriptが使えるんだからそれで満足してなさい。
-- これ以上ほかのスレにまで出没されたらたまらん。
688 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 15:46:51 ID: InOvKOYR
帰るって言ってるんだからほっときゃいいじゃん。
つか、どうせp2のカスタマイズにPHPいじってるだけなんでしょ?
689 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:01:29 ID: uaeFl3WY
>>686
皮先さんは学生さんですか?それとも高校生?中学生?(あまりにも考え方が幼いので)
先生(paperさん?)の書くことはよく聞くようですが
しつもんするときはもう少し丁寧にした方がいいですよ。
ネタにしてもあまりにもひどすぎます。
よく考えて書き込むようにしましょう。社会に出たとき苦労しますよ。
690 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:16:48 ID: iXAwgYDp
社会に出れたら苦労せんがな... (w
691 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:33:26 ID: LBeWbFgp
>>689
お前、バカか? 帰ったスレで相手しろよ。わざわざ呼ぶような真似すんな。
氏ねよ、ボケ。
692 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:50:36 ID: UliWkihy
かわさきは普通に社会人だろ。
693 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 18:23:19 ID: 8AbchTKY
自分のことを他人事みたいに書くなっつーの。>>692
>>686で書いた事は守れ。
694 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 0:08:34 ID: yfLNGpsG
便乗しておもしろがって場を荒らす書き込みするのはやめましょうよ。
何かネタない?
発表か質問カモーン。
695 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 0:29:17 ID: itdMN3ZT
Studio でGUI部品を参照するときダラダラ長くなってウザイ件について。
半年前に
set button1 to button 1 of (中略) of window 1
とやって簡略化を図ろうとしたら妙なエラーに悩まされ、
それがトラウマとなって以来 Studio は使っていない。
エラー箇所で button1 ではなく律儀に
button 1 of (中略) of window 1 と書くとちゃんと動くという・・・。
696 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 1:58:55 ID: AW2KFPrO
レスが判るようで判らんが、上手く行かない時は、カッコでくくって処理の優先順位を付けると上手く行く事ある。
って、折れも判らんレスだなぁ...
697 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 2:36:43 ID: i5Y/CwOy
GUIをやるんなら、studioよりcocoa+obj-cの方が遥かにいいな。。
698 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 2:41:27 ID: j0zefuHn
>695
set button1 to a reference to (button 1 of (中略) of window 1)
にすればうまくいくかもしれない。
699 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 4:45:06 ID: yfLNGpsG
>>695
tell 〜で上のモノを呼んで囲んでやると中では省けたような・・。
まぁコピペを活用するしかないすかね。
700 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 14:14:35 ID: oKaQu5Wq
700 ゲト
701 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 23:01:57 ID: uklUH9tt
>>669
上から順番に読んでいると面白いな。
前半はともかく、後半は感情的には同意できる。
ただ、折れはsh系すらうまくつかえてない純粋なAppleScriptなんで、他の発言は大半が意味不明。
702 名前: 名称未設定 Mail: sage 投稿日: 05/02/09 0:43:12 ID: oHF7ndsg
皮先の相手をする香具師はチンカス以下!!!
703 名前: 名称未設定 Mail: sage 投稿日: 05/02/09 3:48:35 ID: Qgsn8LD2
>>701,702
レス番号ズレてないよね?
落ち着いて読めばそれぞれの言語の経験がなくてもだいたいわかる内容だと思うけど。
『シェルスクリプトには色々問題点があって、
シェルスクリプトでできる事を全部置き換えられるような便利なスクリプト言語が台頭して来てる。
だから君(653)の理屈だと「なぜ今更シェルスクリプトを使う?」と言い返せてしまうぞ。
(でもシェルスクリプトだって使われている。それには理由がある)
AppleScriptの場合のそれを使うメリット・本質は(以下はわかるでしょうから省略)』
と、これだけの話。
sh系“すら”っていうのはおかしいな。シェルスクリプト使えなくてもPerlは使える。
KTの頃からMacでも使えたわけだし。
さあ次のAppleScriptに関する話題をどうぞ。
704 名前: 名称未設定 Mail: sage 投稿日: 05/02/09 4:09:00 ID: 3Owgs39W
ぶっちゃけ8A369でのAppleScriptの動向は?
705 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 2: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 3:21:07 ID: 0sL11/a+
俺全く分からんけど、hoge.shを何で開くのか指定してないとか
707 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 3:52:55 ID: E7o87DXr
初めて聞く現象だけどDockの方でAppleScriptで作ったそのアプリケーションを
アプリケーションと認識できてないのかね?
1度Dockから登録外して
Macの再起動したあと登録しなおしでもすれば直りそうな気がするな。
あとそのスクリプトたぶん最初の1行と最後の1行要らない。
708 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 4:35:44 ID: DPAQjVzn
皮先くんには放置の方向で。(w
709 名前: 705 Mail: 投稿日: 05/02/10 5:03:33 ID: EqyNj7bd
>>706
多分違う。
>>707
再起動したけどダメっぽい。
buttonsを日本語にしてて、tell application・・・・を
つけないとなぜか文字化けしてしまうのですよ。
710 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 5: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
素直に隔離スレに(・∀・)カエレ!
711 名前: 705 Mail: 投稿日: 05/02/10 5:24:40 ID: EqyNj7bd
なんだ俺様の高度なshellscriptが理解不能だからといって
そんなに怒るなやw(pgr
おまいらは俺様の質問に答えるだけでいい。
712 名前: 名称未設定 Mail: 投稿日: 05/02/10 5:25:55 ID: U22pb/O5
_∂_
/○。_、 _ヽ
\|;;;:::... ,_ノ` |/
.\;;;::.... /
| ̄ ̄ ̄| Think Defferent
Apple
713 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 6:05:34 ID: E7o87DXr
AppleScriptである程度量のあるデータを扱いたい場合って、
やっぱりFileMakerを前にすえるか、
(いまいちどういうものかわかってないけど)Valentinaアプリケーションを使うっていう感じなんですかね?
さほど大げさなものじゃなくてもデータのリストみたいなのを扱いたい時ってあると思うんですけど・・。
AppleScript Studioで扱おうにも??
MySQLとかいうのがフリーのリレーショナルデータベースでどうのこうのっていうから検索してみたけど、Webアプリケーション?用のものみたいだし、
使いやすいインターフェースもなさそうだし、ちょっと用途とずれてるような感じ。
Valentinaは下記URLのとこで販売されてます。Rb用のプラグイン?みたいなのもあるみたい。
ttp://www.paradigmasoft.com/product/vapp_jpn.html
714 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 6:17:32 ID: EqyNj7bd
>>713
どういうデータを扱いたいの?
テキストデータならshell scriptが得意としてるけどね。
MacOSXに標準装備されているし。
715 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 8: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 4:10:19 ID: CjH87wXJ
濁点ありのカタカナが使えないあたり、Apple のやる気のなさが感じられる
717 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 6:36:34 ID: CjH87wXJ
ここにいるような人たちは知ってるかもしれんが
AppleScript で日本語(ファイル名とか)を扱うとき
UnicodeUtils.osax ってのが非常に便利っす。
ttp://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html
ところで実行時にそのスクリプトのファイル名を取得する方法はないかね?
718 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 7:19:13 ID: jzIl1wyY
path to me
path to current application
アプリケーション形式でないとダメ。
719 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 7:40:04 ID: CjH87wXJ
>アプリケーション形式でないとダメ。
ああ、やっぱりそうなのか・・・。
.scpt のファイル名を使いたかったんだが、諦めて設計を変えますた。
Script Editor.app で実行すると Script Editor.app のパスが返り、
スクリプトメニューから.scptを実行すると System Events.app のパスが返る・・・。
720 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 9:39:03 ID: T3bKTCXk
ファイル名を引き数に使おうという方式だったのかな?
ファイル名が変わるんでなければ決め打ちでいいんだろうけど。
721 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 1:44:49 ID: cVGEe72J
スクリプトメニュー内の項目の並び方を変えられればいいのになあ。
ファイル名の頭にナンバリングするとメニューが煩雑になるので
FinderPopのようにメニューでは非表示になるナンバリング方式を用意してほしい。
722 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 14:14:17 ID: VjEfmBLX
ここは自分で書いたスクリプトを発表するスレだと知りつつ、
強者が何人かいらっしゃるので、お願いします。
わたしは今、英会話教室に通っていて、その教室では、その日習ったことをNet上で
復習するシステムがあり、わたしはMacのSafariを使って勉強しています。
Safariの「表示された英文を、サービスメニューからSpeach(Text読み上げ)」
をよく利用するのですが、同じ箇所を何度も聞き直す際、サービスメニュー経由
では手続きが煩雑で、これをAppleScriptでアプリケーションとして保存、
Dockにそのアイコンを置いておいて、英文を選択したらDockのアイコンクリックで英文読み上げ開始となればなぁ。あるいは、Contextual Menuから即、読み上げ
ならもっと便利だろうなと思っています。
そういうスクリプトをどなたか書いていただけないでしょうか?
723 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 14:26:43 ID: jklcNu7X
ショートカットキーでも割り当てときゃ良いじゃん。
って、Speechだろがよ。もっと手も使って覚えろ。
724 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 14:49:34 ID: WvYut9kK
>>722
>>723さんが書いてるようにショートカットの割り当てが出来る。
システム環境設定のスピーチの「読み上げインターフェース」のところ
「キーを押したときに選択しているテキスト」にチェックを入れて
横の「キーを変更...」ボタンでショートカットキーを設定。
(なおこれは10.2の場合なので10.3ではちょっと違うかも)
726 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 15:07:17 ID: VjEfmBLX
>724
さっそくありがとうございます。試させていただきます。
AppleScriptに関しても初心者なもので、結果報告はちょっと時間をいだだいて
あらためて書き込みさせていただきます。ありがとう。
727 名前: 722=726 Mail: sage 投稿日: 05/02/12 15:12:19 ID: VjEfmBLX
>>723,724,725
うわっ、ありがとうございます。
728 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 19:47:59 ID: cVGEe72J
OSAXの作り方の資料が見つからない件について
729 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 21:03:46 ID: hnrheJzf
>>728
TN1164 ぐらいかなー
AppleScript Scripting Additions Guideは消えちゃったかな?
730 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 23:03:56 ID: WvYut9kK
わ!すごい期待しちゃっていいですか?
731 名前: 名称未設定 Mail: 投稿日: 05/02/16 20:28:24 ID: Mu8c3jBM
すいません、初心者の質問です。
音量調節キーのないキーボードを使っているので、代わりに
ファンクションキーにAppleScriptを当てて、音量調節したいんですが、
どうやればいいんでしょうか?
Set Volume とか言うコマンドは音量の絶対値しか決められないみたい
なんで…。
押すと1コずつ音量が上がるスクリプトと下がるスクリプトを作りたいんです。
732 名前: 名称未設定 Mail: sage 投稿日: 05/02/16 21:04:23 ID: /MUYvP2c
>>731
システム環境設定>サウンド>「メニューバーに音量を表示する」
ではいけない理由を、誰でも納得できるように述べたら教えなくもない
733 名前: 名称未設定 Mail: sage 投稿日: 05/02/16 21:08:54 ID: D5jxoj+m
>731
まず get volume で今の音量の絶対値を取得して、
それに1なり10なり足した値を set volume してやればいいじゃない。
734 名前: 名称未設定 Mail: sage 投稿日: 05/02/17 5: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 名前: 名称未設定 Mail: sage 投稿日: 05/02/17 5:20:32 ID: WxrABtEa
ファンクションキーで音量調整できるアプリを探したほうが良いと思うよ。
736 名前: 名称未設定 Mail: sage 投稿日: 05/02/17 15:55:39 ID: IWfnODka
見たらKeyboard Maestroのmacroにあった。「それだけ」のためにはチトお高いがw
737 名前: 名称未設定 Mail: sage 投稿日: 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
738 名前: 731 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/18 21:05:41 ID: L/q2cbEw
>>737
openで別ソフトに解凍するようにした直後にdeleteされて
ゴミ箱に入るからエラーがでるのかな。
741 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 18:41:55 ID: U1iF4K05
>>741
click menu bar item 5 of menu bar 1
743 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 18:54:43 ID: U1iF4K05
なんか違う悪寒。
5番目のプルダウンってどこだyp
744 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 19:09:49 ID: 6D/s0nw1
>>742
さらに上から5番目を選択するにはどのようにしたらよいでしょうか。
メニューを開くことは出来ました。
745 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/20 0:05:25 ID: btuO7ne7
>>740
ということは、StuffItにtellするなり、do shell scriptでunzipしたあと、
アボーンすればいい事になるぽ。。。
747 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 0:40:54 ID: FE4/CPRZ
Appleスクリプトでテキストの何行目から何行目を抜き出したり
指定した位置の(毎回微妙な位置変動あり)テキストを抜き出したり
決められた形式(タイトルがあって、概要があって本文とか)の一部分を抜き出したり
そんなこんなの方法が書かれてるサイトってありませんか?「文字 抽出」とかで検索は
してみましたが、具体的なサイトは出てこなかったので知っている方がいたらお願いします。
748 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 1:10:15 ID: 96LJ+AqB
>>747
何行目からというのはparagraph指定でいけると思います。
あとの指定位置や形式は…
Tanaka's osax が使えれば簡単ですが、OSXはわかりません。
749 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 1:12:10 ID: RcpTZ0OP
>>747
OSXなら素直にPerlを使うほうが早げ
750 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 2:34:17 ID: sv5BM641
どこが素直なんだか…
751 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 3:43:09 ID: FE4/CPRZ
>>748
>>747
AppleScript以外は全く未知の領域です。学ぶしか無いのですかね。
Cocoaなんて言うのは具体的に何言語を使うのですか?C言語?
752 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 23:25:32 ID: hBdhy10p
considerとかends withなんかも便利。
例えばループで1行ずつ調べていく
もし目印となる語句を含んでいるならその行を変数に入れる・・とか。
754 名前: 名称未設定 Mail: 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 15:33:05 ID: y61Z5Nj7
一から勉強し直した方が良さげ。
756 名前: 名称未設定 Mail: 投稿日: 05/02/23 15:40:05 ID: hxcBD3fo
補足。>>754 の例はその3つどれでもダメだったってことです。
>>755以外の方、有益な返答お願いします。
757 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 15:41:01 ID: y61Z5Nj7
やっぱり。皮先か。(w
758 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 16:18:11 ID: IeoSOmQs
>>754=756
クリップボードからは取り出せない。
俺ならFinderのStandard Suiteのコマンドにあるselectを使う。
selectの使い方は入門サイトで勉強してきてね。
759 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 20:23:47 ID: uPIGSApf
the clipboard as 《class furl》
(class furlの前後は "<<",">>" の1byte文字)
clipboardってのはデータが複数おかれてる場合がある。
例えばスタイル付きテキストは、まず'TEXT'データがあって、
そのあとスタイルデータが続くとか、PICTがあってPSがあるとかな。
この場合も複数のデータがあるので、データタイプを指定して取り出す。
clipboard info
を実行してみれば、どんなデータがあるかわかる
760 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 20:35:05 ID: 2YUFeCpL
それが分かったとして彼には無理な気が
761 名前: 名称未設定 Mail: sage 投稿日: 05/02/24 0:46:02 ID: z8CnHUyG
?class furl ?も複数ファイルには効かないし、
selectしてaliasのlist取って、repeat回してstringで渡す
んだろな。
762 名前: 名称未設定 Mail: sage 投稿日: 05/02/24 15:40:33 ID: aXmmZvP8
>>758>>759>>761
おっしゃる通り1項目をコピーした場合はclipboard infoに<>と<>があるので、
(FSRefとCFURLかな?と思いますが)それを使って何とかできないかと思いましたが、無理そうですね。
しかも、2つ以上をコピーした場合はclipboard infoにはstringとUnicode textしか入ってないですしね。
selection of application "Finder" を使うことにします。ありがとうございました。
763 名前: hirano Mail: 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/25 22:56:56 ID: e3ltjaXM
君はまだまだ勉強が足りない。
765 名前: 名称未設定 Mail: sage 投稿日: 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
766 名前: asxをドロップするとwmvをDLするスクリプト Mail: sage 流れと関係なくてすまそ。作りもいいかげん。 投稿日: 05/02/26 11:54:54 ID: FkUJu6b5
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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 14:47:57 ID: kQadJ1Jt
>>767
activateはアプリケーション予約語じゃなかった?
769 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 15:00:26 ID: NgTtY/sn
>>767
一度他のアプリをactivateしてからthe clipboardを参照してみたら?
770 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 15:43:33 ID: BHNnr81h
スタンダードadditionsが1.7だったとかいうオチだったり
771 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 16:27:16 ID: KXZW03yr
アプリケーション切り替えないとクリップボード更新されないヨカン
772 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 21:28:16 ID: 9yHd50wE
>>768
ん?
フロントアプリケーションで使うんだからactivateはあってもなくても動く。
この場合あったほうが確実だろ?
>>769
それで動いたの?
それはだいぶ前にやってみてダメだったんだが。
>>770
標準機能追加は1.6だが。
773 名前: 754,756,762 Mail: sage 投稿日: 05/02/26 21:32:58 ID: O/k/FA51
>>763
テキストでなくファイル参照です。alias か item として取り出せないかと。
>>765
それです!それがしたかったんです。
でも1項目じゃないとできないのが残念。
the clipboard は as record することで内容がかなり変わるんですね。
ありがとうございました。
774 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 0:35:03 ID: jHfXP7qD
>>772
クリップボード、
ToolBoxな名前ではスクラップって言うのだが、
これにはアプリ固有のプライベートスクラップと
システムの管理するデスクスクラップってのがある。
当然、the clipborad はデスクスクラップを意味している。
で、アプリでcmd+Cとかメニュー操作でコピーした時、
そのデータがプライペートになるか
デスクスクラップになるかはアプリ次第。
ただ、どこかのタイミングで同期は行われている。
で、大抵は、
アプリケーションが、
・最前面になったとき。
・最前面でなくなったとき。
ってのが一般的。
またデスクスクラップ自体、実はアプリケーションのヒープ内にあって
アプリケーションの切り替えが発生するたびにコピーされていたりするので、
書き換えを確実に取りたいなら、強制的に切り替えを発生させてやる
……とうまくいくかもしれない。
775 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 0:39:26 ID: vaKQqrbz
Photoshopなんかで馬鹿でかい画像のうえでコマンド+Cすると
アプリを切り替えたときに「クリップボードに転送できませんでした」とか出るよね
776 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 4:59:47 ID: yrI+gjWE
stringとUnicode textで内容が変わるのはなんとかならないものか。
777 名前: 767 Mail: sage 投稿日: 05/02/27 16:10:21 ID: t4uZZi4C
>>772
うまくいかない。
強制的に切り替えても、クリップボードが働かない。
スクリプトが優先されてる。
難しい。。。
778 名前: 767 Mail: sage 投稿日: 05/02/27 16:10:56 ID: t4uZZi4C
↑>>774
779 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 18:39:21 ID: JB5GEo6D
スクリプトからアプリケーションを切り替えてもクリップボードは更新されない。
一旦スクリプトを抜ければ良いと思うが、そういう方法あった?
HyperCardでApplicationメニュー(右上のアプリ切り替え)を
do menu で「実行」した時はうまくいった。
780 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 19:22:03 ID: jHfXP7qD
↑スクリプエディタ上でなら、こんな感じで動く。
delayを入れないとダメな場合がある。
このへんは更新に時間が掛かると言うより、
アプリに送られるイベントの順番あたりの問題かも。
782 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 19:28:28 ID: jHfXP7qD
…続き
FinderPopってことは自分自身がターゲットで
かつスクリプトロードをしてるってことになるのかなあ?
そのへんが問題なのかもしれないけど、
仕組みがわからないので、なんとも言えない。
一度 Finder を activate してとかやってもダメなの?
783 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 23:59:00 ID: asDKO/5I
HyperCardから "Application" メニューを使ってアプリを切り替えた時はうまく行った。
試しにアプリケーションを切り替えるツールボックスを呼び出した時はダメだった。
クリップボード更新のタイミングが良く分からない。
ファインダーが絡んでいるようだが、一旦スクリプトを抜ける必要があるかも。
784 名前: 767 Mail: sage 投稿日: 05/02/28 22:26:39 ID: gSlR6Z3S
>>780
その環境はOSX?
そのスクリプトもクリップボードが更新しない。
delayは効果ない。
delay中に裏で更新してくれればいいのだが、そういう造りになってないだろ。
最終的にダイアログは使わない。
使わなくてもうまくいかない。
Finderに切り替えてみると、Finderで選択中のファイル名が取得されてしまう。
つまりFinderでコピーしているのと同じ。
クリップボードイベントの終了をチェックするような方法があれば可能なんだろうが。
あるいは>>783が言うように、一旦スクリプトを抜ける方法とか。
785 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 0:24:25 ID: 5ysN9tgM
>>784
OS9.1
あくまでもスクリプトエディター上からの動作だけ確認している。
うちのシステムだとdelayがないとTextEditからは拾えなかった。
TypeTextした後にFinderに切り替えて、
Finderの選択項目を拾うなら、
それはなにかの理由でTypeTextが
ブロックされてるか、遅延を起こしてる
ってことじゃないのかな?
786 名前: 767 Mail: sage 投稿日: 05/03/01 12:45:01 ID: Rj33UOH5
>>785
スクリプトエディタ上だけで動作しても意味ないんだよ。
TypeTextがブロックまたは遅延されないように、
先にも上げたクリップイベントの終了チェックや
一旦スクリプトを抜ける方法はないかと言ってるわけで。
787 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 13:28:17 ID: COXLd6LA
僕もCommand + CのGUI Scriptingじゃ不安定なので、
汎用的なコピーの手段で悩んだクチだけど、
まずtryでcopyを使ってみては?
……そのcopyもアプリによって意味が違うわけだけど。
Apple Eventには必ずcopyに相当するものって無かったでしたっけ?
788 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 15:58:33 ID: EEUyvpus
copyはFinderの予約語だから、
他のアプリでは使えないんじゃないか?
789 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 16:06:05 ID: 0BgmwL62
ヌevent misccopyネ
790 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 22:34:50 ID: K5q1AeKX
>一旦スクリプトを抜ける
数ticks後に自分にイベントを送る、という機能がASあればいいのに。
RuntimeRevolutionの「send xx to yy in zz ticks」みたいの。
791 名前: 名称未設定 Mail: sage 投稿日: 05/03/02 23:19:04 ID: T5lArt5N
>>790
頭を使うとできるような気がする。
ヒントはtellとapplication response
792 名前: 名称未設定 Mail: sage 投稿日: 05/03/03 16:17:49 ID: xCgerxvy
767のスクリプトをOSA Menuから"Run scripts more compatibly"オプションをOnにした状態で実行すると問題なく動作しました。
環境 Mac OS 9.2.2
793 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/03/05 16:29:26 ID: 9a2a/ssl
>>794
最後に「of me」を入れて実行してみたのですがやっぱりdefinedと出てしまいます。
なんでだろう・・・
796 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 1:05:57 ID: 5D4PwpvB
>>793
うちにある本だと
set str1 to contents of text field "text" of window "window1"
ってなってるけどどうよ?
797 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 1:17:45 ID: 9JcdYuPY
>>794
参考になさったの、つやのさんところですかね。
(全体的に流れがつかみにくい構成の文だったけど)
あの指示通りにやってみましたが問題なく動きました。
もう一度順を追ってやり直してみてはいかがでしょか。
798 名前: 793 Mail: sage 投稿日: 05/03/06 14:52:38 ID: 7CbZyZUj
どうにか>>796の文で試してみたら動きました。本当にありがとうございました。
799 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 15:21:27 ID: vz85BPc4
>>793
(-2753)は書式の問題らしい。
「Script Editor」の[編集]-[AppleScriptフォーマット...]の書式で、
使用するフォントを、「演算子および句読点(+&、)」は英字フォント(Chicagoなど)に、
その他は日本語フォント(Osakaなど)に設定で直るかも。
800 名前: 793 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 18:16:38 ID: vz85BPc4
>>800
do shell script は非対話型にしか対応してません。
なので下記のようになります。
do shell script "curl -o " & OUTf & space & URLf
802 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 18:41:52 ID: vz85BPc4
って、勘違いしてますねorz
「OUTf」でファイルに出力しているので、read かな。
read (OUTf as POSIX file as alias)
803 名前: 793 Mail: sage 投稿日: 05/03/06 21:03:30 ID: 7CbZyZUj
>>802
それだとスクリプトエラーでビルド出来ません・・・
やっぱり無理なのかなぁ・・・
804 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 22:25:14 ID: vz85BPc4
>>803
result の部分を read ("/users/" & OUTf as POSIX file as alias) ですよ。
エラーを吐くという事は、やはり書式の問題では・・・
805 名前: hirano Mail: 投稿日: 05/03/07 18:32:09 ID: wGJTVuNV
>>763で書いた者です。
なるほど勉強不足でしたね。「参照」がわかってませんでした。
さて
>>793さんのAppleScript Studio、手元で実験しました。
MacOSX 10.3.8 + Xcodeでやってみると
793そのままのスクリプトで成功します。
Interface Builderで何箇所かに入れるチェックが
入れ忘れとかじゃないですかね。(想像)
参考書は掌田氏「ASSでゼンマイびゅんびゅん」です。
806 名前: 793 Mail: sage 投稿日: 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 名前: 名称未設定 Mail: 投稿日: 05/03/14 22:38:53 ID: QC+wTUPA
最近studioを使い始めたので久々にage
808 名前: 名称未設定 Mail: sage 投稿日: 05/03/15 12:35:52 ID: a3uiFTN0
Studioで作ったソフトがOSのバージョンが違うと動かなかったりするのは
しょうがないんかねー。
またTigerで変わるんやろうな。
809 名前: 名称未設定 Mail: sage 投稿日: 05/03/15 19:10:51 ID: Lq9Id6Te
applescriptの仕様がいい加減で資料も少ないのがガン。
しかも放置されたまんまのバグもけっこうあるみたいだし。
810 名前: 名称未設定 Mail: sage 投稿日: 05/03/15 23:00:44 ID: hA447gju
最近AS系に全然力入れてなさそうだし、Automatorのようなよりグラフィカルなアプローチに移行するんじゃない?
811 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 0:47:02 ID: WS7r1QOd
いや、だからAutomatorのモジュールはAppleScriptやObjective-Cで書くのだか
ら、Automatorはフロントエンドに過ぎないと何度いったら(ry
812 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 1:37:38 ID: MrijEpsc
フロントエンドも何も、そういうマクロの設計自体が変わるという話だろ。
何でもかんでもASで完結させるんじゃなく。
813 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 7:06:36 ID: M2Ai7LeZ
>>811
AutomatorはFilterTopの焼き直しですな。
こういうのは昔からあって出ては消えを繰り返してるんだけど、
知らない人には新しい物に見えると。次に登場するのはCommando
のposix版あたり?
814 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 10:10:18 ID: FoOOlN/s
どっちにしろ、Automatorじゃ変数使って条件分岐とかファイル読み書きは出来なさそうだ
そのへんでAS本体との棲み分けになるんだろう
815 名前: 名称未設定 Mail: 投稿日: 05/03/16 11:11:09 ID: miQ+MN4A
ほんとは文字列操作やリスト操作をMTOsax並みに強化してほしいんだけど、
そういうのはシェルやXcodeでやってくれ、ってことなんだろうな。(´・ω・`)
816 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 19:46:30 ID: F4Qg1rYp
Automatorでつくる(初心者)
↓
必要に応じてAppleScriptで編集(中・上級者)
こんなもんなんだろ?
817 名前: 名称未設定 Mail: sage 投稿日: 05/03/17 0:27:00 ID: RFSXuQGy
ぽいね
818 名前: 名称未設定 Mail: sage 投稿日: 05/03/17 3:06:04 ID: ueGhawPn
1.Automator用のモジュールをクレクレする。(初心者/クレ厨)
↓
2.Automator向けにモジュールを作る。(中・上級者)
↓
3.Automator使う。欲が出る。(初心者/クレ厨)
↓
1.に戻る
中・上級者がAutomatorにどんな意義を見い出せるかがポイント。
819 名前: 名称未設定 Mail: sage 投稿日: 05/03/19 22:39:51 ID: GrHwU7HN
UIの拡張くらいしか意味はないな。
XCODEより少ししきいが狭いくらいか。
スクリプトアプリケーションで十分だ。
820 名前: 名称未設定 Mail: sage 投稿日: 05/03/19 22:50:02 ID: r0w1fw6j
Automatorの実行環境はどうなるんだろ。
できあがったスクリプトは現在のアップルスクリプトと互換性あって
スクリプトメニューや各種AppleScript実行ソフトから
実行できるようになるのかな?
821 名前: 名称未設定 Mail: sage 投稿日: 05/03/19 23:01:52 ID: rLg9WzBm
んなわけないじゃん
822 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 1:57:44 ID: UESIBkw9
↑バカ発見
823 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 2:03:32 ID: J/X/ATEk
Automatorが「作る」のは単なるマクロだろ。
824 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 9:38:46 ID: KmoEkUZ8
Automatorのページにアプリケーション形式かドキュメント形式で保存出来るって書いてあるじゃん
825 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 12:16:15 ID: Le3n3OaK
このまえAppleScriptに付いた、GUIスクリプティングを、
自動的に書いてくれるだけだと思う。
保存したファイル内では、Automatorのデータ部分と、
AppleScriptとして書き出した部分の二重構造になっていて、
実行するのはAppleScript、編集するときはAutomatorのデータ部分をいじることになると思う。
それがAppleにとって、一番開発費がかからない手法かと。
826 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 13:30:35 ID: gUzs+FiP
てかAppleScriptで扱うGUIってCocoaにならないかな
827 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 14:29:38 ID: A1aRiisi
>>824
ワークフローを保存としか書いてなけど、どのページ?
828 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 15:32:11 ID: AdUH607J
変数名を、たとえば「thelist」から「theList」に変更しようと書き換えても
コンパイルすると勝手に「thelist」になってしまう。
これはどうすればいいのでしょうか。
829 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 17:06:14 ID: UESIBkw9
theListに書き直してテキストとして保存し、
スクリプトエディタを再起動する。
830 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 17:41:40 ID: AdUH607J
>>829
uoooooo,サンクス
831 名前: 名称未設定 Mail: sage 投稿日: 05/03/21 8:08:19 ID: s0zjlu+E
Automatorって案外ややこしいな。
ttp://developer.apple.com/macosx/tiger/automator.html
832 名前: 名称未設定 Mail: sage 投稿日: 05/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.
???
902 名前: 名称未設定 Mail: sage 投稿日: 05/05/01 22:14:26 ID: rk7FUsuk
Automatorで渡されるinputがよくわかんないよ。
ファイル名を取り出そうとして name of input とやると
name of alias "Macintosh HD:Users:username:desktop:hoge.txt" を取得できません
とか言われちまう。いや、そこに出てるファイル名が欲しいんだけど...
903 名前: 名称未設定 Mail: sage 投稿日: 05/05/01 23:20:25 ID: PAEjegQQ
つ name of (info for alias ...)
904 名前: 名称未設定 Mail: 投稿日: 05/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 名前: 名称未設定 Mail: sage 投稿日: 05/05/02 0:44:19 ID: 4j8ZAVEI
>>903
うはwwww
マジありがとうございます
906 名前: 名称未設定 Mail: sage 投稿日: 05/05/05 14:03:37 ID: ScyJQFY8
the clipboard as record
で中身が変わった。utf16の項目ができた。
と思う。
907 名前: 367 Mail: sage 投稿日: 05/05/07 22:01:25 ID: rVjkPLja
the clipboardがかわったんじゃなくて、コピーを行ったもとのソフトが変わったんだ。
908 名前: 名称未設定 Mail: sage 投稿日: 05/05/07 23:54:27 ID: t9iL9F8m
初歩的な質問、よろしいでしょうか。見よう見まねで
パーソナルWEB共有開始をするスクリプトを作ってみたんですが、
もっと、マシなやり方は、ありますか?。
do shell script "sudo apachectl start" password "hogehoge" with administrator privileges
一応、動作はしてますが・・・。
909 名前: 名称未設定 Mail: sage 投稿日: 05/05/09 22:11:06 ID: 2DM9o1DH
>>908
一番確実でいい方法だと思うけど。
910 名前: 908 Mail: sage 投稿日: 05/05/09 23:43:10 ID: kC97dDq2
>>909
おお、これでいいんですか。よかった。
システム環境設定がレコータブルだったら、いいのに・・・。
911 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 2:04:37 ID: q51FoADy ?#
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 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 2:27:55 ID: pBeFJmQ5
>>911
10.3でも動かないよ。
do shell script "ls ~/Library/Application' 'Support/"
と書くべき
913 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 11:05:03 ID: sH/Q7RjT
半角スクリプトって何ですか
914 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 11:19:37 ID: 1l6azoW6
>>913
えっちな画像を自動収集するスクリプトです。
915 名前: 名称未設定 Mail: sage 投稿日: 05/05/11 20:41:25 ID: nnUeZ8Ii
えっちなのはいけないと思います
916 名前: 名称未設定 Mail: sage 投稿日: 05/05/13 19:58:16 ID: ySQEjMOS
性食寝
人間の三大快感
917 名前: 名称未設定 Mail: sage 投稿日: 05/05/13 20:23:56 ID: QWuYsO6G
最後の一つは「寝」じゃなくて「排」じゃないの?
918 名前: 名称未設定 Mail: HAGE 投稿日: 05/05/14 1:13:41 ID: fbuNXHYC
919 名前: 名称未設定 Mail: sage 投稿日: 05/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 名前: 名称未設定 Mail: sage 投稿日: 05/05/16 13:36:29 ID: gJXWngHU ?#
>>919
改行マークの?が原因だね。とりあえずこれを削除して、その部分を一行にしちゃう。
921 名前: 919 Mail: sage 投稿日: 05/05/16 18:43:14 ID: m7AJQ+IG
>>920
ありがとうございます。おかげでどうにかいじくれるようになりました。
なんか基本的なことだったみたいで、ちょっと恥ずかしいです。
さて、これからいろいろといじくったり、調べたりしながら解決しないと……。
QuickTimeが変わったからの割にはFinderの操作で引っかかっているみたいだし。
922 名前: 名称未設定 Mail: sage 投稿日: 05/05/16 22:47:28 ID: qHSzKIS4
>>921
スクリプトエディタのバグみたいなものだからね。
気にしないように。
でも、忘れないように。
923 名前: 919 Mail: sage 投稿日: 05/05/20 18:14:57 ID: xYHUM3Ou
結局、QuickTimeを6.5.2に戻しました。すると普通に作動してくれている。
う〜ん、なんか俺のスキルじゃ無理っぽい。
TigerにしてAutomatorに期待するってのは現状だとまだ不安だし、
何よりもQuickTimeが7になってしまうし。
今どきはQuickTimeのファイルなどをAppleScriptでいじくるなんてのは古いのかな。
924 名前: 名称未設定 Mail: sage 投稿日: 05/05/20 23:47:08 ID: AYEih1Qe
>>921
QuickTimeのsaveまわりのコマンドの仕様が変更になっているらしいですね。
<<・・・>>みたいな表示になっている行がおかしいところ。
新しいQuickTimeの用語を調べて書き直すように。
925 名前: 名称未設定 Mail: sage 投稿日: 05/05/20 23:55:07 ID: ELUNu9vw
ttp://www.apple.com/applescript/
applescriptのページってなくなったのかね。
つーかリダイレクト先のページの中程にもこのリンク張ってあるんだけど。
926 名前: 919 Mail: sage 投稿日: 05/05/21 7:59:10 ID: cDOdvQtJ
>>924
save movie 1 given <>:file new_file, <>:self contained
たぶん、ここのことなんだろうなあ。とはわかった(ありがとうございます)のですが、
QuickTimeの新しい用語がさっぱりとわからないです。
927 名前: 名称未設定 Mail: sage 投稿日: 05/05/21 10:40:46 ID: kNy2wlyc ?#
<<と>>が文字コードの問題でエラーしてる可能性があるかな。
<< >>をそれぞれ ヌ ネ に置き換えてもだめ?
928 名前: 名称未設定 Mail: sage 投稿日: 05/05/21 10:45:20 ID: nJiEdyPm
( ´_ゝ`)ヌヌネネヌヌネノヌヌネネヌヌネノヌヌネネヌヌネノヌヌネネヌヌネノ
929 名前: 名称未設定 Mail: sage 投稿日: 05/05/21 15:53:31 ID: vQ8zdavV
>>927
ちゃうちゃう
本当に記述方法のコマンドが変更になっている
だから、その行は同じ意味の別のコマンドに置き換える
めんどうだから試してないけど、用語辞書のsaveのところを見ればわかるよ
930 名前: 名称未設定 Mail: sage 投稿日: 05/05/24 2:50:59 ID: weIInpsj
なんか画質悪い
tell application "Finder"
if (exists of file "ss.jpg" of (path to desktop folder)) is true then
set var to 2
repeat
if (exists of file ("ss " & var & ".jpg") of (path to desktop folder)) is false then
set fileName to "ss' '" & var & ".jpg"
exit repeat
else
set var to var + 1
end if
end repeat
else
set fileName to "ss.jpg"
end if
end tell
do shell script "screencapture -t'JPEG' ~/Desktop/" & fileName
931 名前: 名称未設定 Mail: sage 投稿日: 05/05/24 7:30:23 ID: UVDJnaK7
UIElementInspector.appで文字化け(?)してるんですけど仕様ですか?
932 名前: 名称未設定 Mail: sage 投稿日: 05/05/24 12:51:43 ID: /EBXo4E1
>>930
man screencaptureしたけど、JPEGのQualityは指定できないっぽいね。
Image Eventsも、JPEGのQualityは指定できないみたいだし。
933 名前: 名称未設定 Mail: 投稿日: 05/05/24 15:20:54 ID: eYz1kwfG
tell application "TextEdit" to quit
delay 3
tell application "TextEdit" to save (front document) in (path to desktop)
934 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 0:56:44 ID: UkkHbwcG
>>933
すげー無意味な気がするが。
なにが姿態の?
935 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:26:41 ID: /5X5z4BK
1枚だけ開いてるときに問答無用で終了させるのか
936 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:51:34 ID: vmeCZ+5o
TextEditにあるテキストで新規作成させたいときって
make new document with theText
じゃ駄目なの?
937 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:52:26 ID: vmeCZ+5o
あるテキストでTextEditに新規作成させたいときって
のほうがいいかな。
938 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:56:46 ID: Dnm6N/gO
>>933
やってみた。なるほど。
939 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 2:00:53 ID: Dnm6N/gO
ってか10.3じゃないとお前の望むようにはならんぞ
940 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:09:37 ID: DhQuC+id
偽Grab。
tell application "System Events"
if (processes whose frontmost is true) is {application process "Script Editor" of application "System Events"} then
existsPlist() of me
else
tell application "Finder"
if (exists of file "nisegurabu050524.plist" of folder "Preferences" of (path to library folder from user domain)) is false then
set theFormat to "PNG"
set theExtn to ".png"
set theOption to "t"
set mA to "1"
set captCursor to "C"
captureIt(theFormat, theExtn, theOption, mA, captCursor) of me
else
set theFormat to (do shell script "defaults read nisegurabu050524 NGImageFormat")
set theExtn to (do shell script "defaults read nisegurabu050524 NGNameExtension")
set theOption to (do shell script "defaults read nisegurabu050524 NGOptionCommand")
set mA to (do shell script "defaults read nisegurabu050524 NGManualActivation")
if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then
set captCursor to "C"
else
set captCursor to ""
end if
captureIt(theFormat, theExtn, theOption, mA, captCursor) of me
end if
end tell
end if
end tell
つづく
941 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:11:12 ID: DhQuC+id
on captureIt(theFormat, theExtn, theOption, mA, captCursor)
if mA is "1" then
tell application "System Events"
activate
set runningApps to (name of processes whose visible is true)
choose from list (runningApps as list) with prompt "Running applications" default items (item 1 of (runningApps as list)) cancel button name "Cancel"
if result is false then
return
else
set theApp to (item 1 of result)
end if
end tell
tell application theApp to activate
delay 1
end if
tell application "Finder"
if (exists of file ("nisegurabu" & theExtn) of (path to desktop folder)) is true then
set var to 2
repeat
if (exists of file ("nisegurabu " & var & theExtn) of (path to desktop folder)) is false then
set fileName to "nisegurabu' '" & var & theExtn
exit repeat
else
set var to var + 1
end if
end repeat
else
set fileName to ("nisegurabu" & theExtn)
end if
end tell
do shell script "screencapture -" & captCursor & theOption & "'" & theFormat & "' ~/Desktop/" & fileName
end captureIt
942 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:12:21 ID: DhQuC+id
on existsPlist()
tell application "Finder"
if (exists of file "nisegurabu050524.plist" of folder "preferences" of (path to library folder from user domain)) is false then
do shell script "defaults write nisegurabu050524 '
{
NGCaptureCursor = 1;
NGImageFormat = PNG;
NGManualActivation = 1;
NGNameExtension = .png;
NGOptionCommand = t;
NGScreenCaptureMode = Fullscreen;
}'"
end if
chooseActions() of me
end tell
end existsPlist
943 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:12:48 ID: DhQuC+id
on chooseActions()
display dialog "Please select." buttons {"Cancel", "Options", "Capture!"} default button 3
if button returned of result is "Cancel" then
return
else if button returned of result is "Options" then
chooseOptions() of me
else
set theFormat to (do shell script "defaults read nisegurabu050524 NGImageFormat")
set theExtn to (do shell script "defaults read nisegurabu050524 NGNameExtension")
set theOption to (do shell script "defaults read nisegurabu050524 NGOptionCommand")
set mA to (do shell script "defaults read nisegurabu050524 NGManualActivation")
if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then
set captCursor to "C"
else
set captCursor to ""
end if
captureIt(theFormat, theExtn, theOption, mA, captCursor) of me
end if
end chooseActions
944 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:15:25 ID: DhQuC+id
on chooseOptions()
if (do shell script "defaults read nisegurabu050524 NGManualActivation") is "1" then
set curman to "YES"
else
set curman to "NO"
end if
if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then
set captCursor to "YES"
else
set captCursor to "NO"
end if
choose from list {"Image format", "Screencapture mode", "Manual activation", "Capture cursor"} with prompt "Image Format: " & (do shell script "defaults read nisegurabu050524 NGImageFormat") & return & "Screencapture Mode: " (改行)
& (do shell script "defaults read nisegurabu050524 NGScreenCaptureMode") & return & "Manual activation: " & curman & return & "Capture cursor: " & captCursor default items "Image format" OK button name "Select" cancel button name "Done"
if result is false then
return
else
if (item 1 of result) is "Image format" then
chooseFormat() of me
else if (item 1 of result) is "Screencapture mode" then
chooseMode() of me
else if (item 1 of result) is "Manual activation" then
manualAct() of me
else
captureCursor() of me
end if
end if
end chooseOptions
945 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:22:53 ID: DhQuC+id
on chooseFormat()
set theFormatList to {"PNG", "JPEG", "GIF", "BMP", "TIFF", "PDF", "PICT"}
set theExtnList to {".png", ".jpg", ".gif", ".bmp", ".tif", ".pdf", ".pict"}
choose from list theFormatList with prompt "Image format" default items "PNG" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set theFormat to (item 1 of result)
repeat with i from 1 to (number of items of theFormatList)
if (item i of theFormatList) is theFormat then
set theExtn to (item i of theExtnList)
exit repeat
end if
end repeat
do shell script "defaults write nisegurabu050524 NGImageFormat " & theFormat
do shell script "defaults write nisegurabu050524 NGNameExtension " & theExtn
chooseOptions() of me
end if
end chooseFormat
946 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:23:26 ID: DhQuC+id
on chooseMode()
choose from list {"Fullscreen", "Interactive"} with prompt "Screencapture Mode" default items "Fullscreen" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set theMode to (item 1 of result)
if theMode is "Fullscreen" then
set theOption to "t"
else
set theOption to "it"
end if
do shell script "defaults write nisegurabu050524 NGScreenCaptureMode " & theMode
do shell script "defaults write nisegurabu050524 NGOptionCommand " & theOption
chooseOptions() of me
end if
end chooseMode
947 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:24:04 ID: DhQuC+id
on manualAct()
choose from list {"YES", "NO"} with prompt "Manual activation" default items "YES" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set mA to (item 1 of result)
do shell script "defaults write nisegurabu050524 NGManualActivation -bool " & mA
chooseOptions() of me
end if
end manualAct
on captureCursor()
choose from list {"YES", "NO"} with prompt "Capture cursor" default items "YES" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set captCursor to (item 1 of result)
do shell script "defaults write nisegurabu050524 NGCaptureCursor -bool " & captCursor
chooseOptions() of me
end if
end captureCursor
~/Library/Preferencesに"nisegurabu050524.plist"というファイルを作ります。
スクリプトメニューから実行するとスクリーンショットを撮り、
スクリプトエディタで開いてから実行するとオプションの設定ができます。
Fullscreenモードはcommand+shift+3と同じ。ただしcontrolを押してもクリップボードには入りません。
Interactiveモードはcommand+shift+4と同じです。
Manual activationをNOにするとSystem Eventsが最前面になるため全ウインドウが非アクティブになります。
Capture cursorをNOにするとカーソルを隠して撮影します。
948 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 18:27:59 ID: DcENUvYS
Dock の設定て AppleScript でコントロールできる?
位置(左下右) を変更したい。一撃で。
949 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 19:21:10 ID: DhQuC+id
topも入れてみました
choose from list {"bottom", "right", "left", "top"} default items "bottom"
set theResult to result
if theResult is false then return
do shell script "defaults write com.apple.dock orientation " & ((item 1 of theResult) as string)
do shell script "killall Dock"
950 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 22:22:08 ID: eDp8eaCc
試してないけど、最後は
tell application "Dock" to quit
のほうが良くないか?
951 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 23:51:57 ID: DhQuC+id
これはTiger専用?
tell application "Finder" to set plistPath to (file "com.apple.dock.plist" of folder "Preferences" of (path to library folder from user domain) as string)
choose from list {"bottom", "right", "left", "top"} default items "bottom"
set theResult to result
if theResult is false then return
tell application "System Events" to set value of property list item "orientation" of property list file plistPath to ((item 1 of theResult) as string)
tell application "Dock" to quit
952 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 0:17:22 ID: GPIPRdaB
うおぉ、Tigerで初めて用語説明開いたらクラスブラウザみたいになってる!
今頃気づいた!
953 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 0:26:38 ID: G31XlElf
でも俺みたいな初心者にとってはこの用語説明全然わけわかりません
954 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 11:35:42 ID: 10Q+7tSV
>949.950,951 ありがとー。
955 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:23:33 ID: Ha55uHB5
tell application "System Events"
if (exists of process "Safari") is false then return
tell application "Safari" to activate
tell process "Safari"
keystroke "," using command down
tell application "Safari"
set x to true
repeat until x = false
set x to (exists document of window 1)
end repeat
end tell
startClick() of me
if (do shell script "defaults read com.apple.Safari WebKitJavaEnabled") is "0" then
click radio button 3 of radio group 1 of group 1 of group 1 of window 1
if (do shell script "defaults read .GlobalPreferences AppleCollationOrder") is "ja" then
set theMessage to "ごくふつうにしました"
else
set theMessage to "This is very usual setting."
end if
tell application "Safari" to display dialog theMessage buttons {"OK"} default button 1 with icon note giving up after 1
else
click radio button 2 of radio group 1 of group 1 of group 1 of window 1
if (do shell script "defaults read .GlobalPreferences AppleCollationOrder") is "ja" then
set theMessage to "あやしい場所を訪れる準備が整いました"
else
set theMessage to "Now we're ready to visit weird place."
end if
tell application "Safari" to display dialog theMessage buttons {"OK"} default button 1 with icon stop giving up after 2
end if
end tell
tell application "Safari" to if (exists of document of window 1) is false then close window 1
end tell
956 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:23:53 ID: Ha55uHB5
on startClick()
tell application "System Events"
tell process "Safari"
try
click button 7 of tool bar 1 of window 1
set x to 0
repeat until x = 3
set x to (number of radio buttons of radio groups of group 1 of group 1 of window 1)
end repeat
click checkbox 3 of group 1 of group 1 of window 1
click checkbox 5 of group 1 of group 1 of window 1
on error
startClick() of me
end try
end tell
end tell
end startClick
957 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:30:44 ID: Ha55uHB5
たぶんSafari 2.0専用↑
958 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:57:29 ID: OKDglWgK
>>957
なにこれ。
959 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 21:06:00 ID: Ha55uHB5
Java、JavaScript、Cookisの設定を一度に変更するやつをGUIで
言語環境に依存しないで実行できるように書けないかなと思って。
でも実行前の設定がバラバラだとうまく変更できないことに気づいた_| ̄|○
960 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 21:07:06 ID: Ha55uHB5
× Cookis
○ Cookie
重ね重ねアフォかと_| ̄|○
961 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 0:38:16 ID: i7I+/fq0
曲ファイルのアートワークをJPEGファイルとして書き出す。
要るもの:
「iTunes Musicフォルダを整理する」
「ライブラリへの追加時にファイルを"iTunes Music"フォルダにコピーする」
にチェックが入った状態のiTunes。
GraphicConverter (5.5.xぐらい。5.6はNG)
tell application "Finder"
set artFolder to (choose folder) as alias --ここで新規フォルダを作成
if (exists of (folder "ArtworkTempFolder" of artFolder)) is false then make new folder at artFolder with properties {name:"ArtworkTempFolder"}
set tempFolder to (folder "ArtworkTempFolder" of artFolder) as alias
end tell
tell application "GraphicConverter" to activate
tell application "iTunes"
activate
set myLibrary to (name of playlist 1)
choose from list (name of every playlist as list) default items myLibrary
if result is false then
return
else
set thePlaylist to (item 1 of result) as string
end if
repeat with theTrackNum from 1 to (number of tracks of playlist thePlaylist)
try
set theTrack to (track theTrackNum of playlist thePlaylist)
if artworks of theTrack is not {} then
repeat with awsCount from 1 to (number of artworks of theTrack)
set theTrackPath to (location of theTrack) as alias
962 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 0:39:41 ID: i7I+/fq0
tell application "Finder"
set theTrackName to (name of theTrackPath) as string
set theAlbumFolder to (container of theTrackPath) as alias
set theAlbumName to (name of theAlbumFolder) as string
set theArtistFolder to (container of theAlbumFolder) as alias
set theArtistName to (name of theArtistFolder) as string
set theUpsideDown to ""
set theAudioExtn to (name extension of theTrackPath) as string
repeat with i from 1 to (number of characters of theTrackName)
set theUpsideDown to ((item i of theTrackName) & theUpsideDown)
end repeat
set theOffset to (offset of "." in theUpsideDown)
set theNewName to ""
repeat with i from (theOffset + 1) to (number of characters of theUpsideDown)
set theNewName to ((item i of theUpsideDown) & theNewName)
end repeat
set thePictureName to (theNewName & "(" & awsCount & ").jpg") as string
if (exists of file thePictureName of folder theAlbumName of folder theArtistName of artFolder) is false then
if (exists of folder theArtistName of artFolder) is false then make new folder at artFolder with properties {name:theArtistName}
if (exists of folder theAlbumName of folder theArtistName of artFolder) is false then make new folder at folder theArtistName of artFolder with properties {name:theAlbumName}
963 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 0:40:11 ID: i7I+/fq0
tell application "iTunes"
activate
set the clipboard to data of artwork awsCount of theTrack as picture
end tell
set theAssumedName to "artwork.jpg" as string
set thePath to (tempFolder & theAssumedName) as string
tell application "GraphicConverter"
new image from clipboard
save window 1 in (thePath as string) as JPEG with wwwready
close window 1
end tell
tell application "System Events"
set creator type of file theAssumedName of tempFolder to ""
set file type of file theAssumedName of tempFolder to ""
set name of file theAssumedName of tempFolder to thePictureName
end tell
move file thePictureName of tempFolder to (folder theAlbumName of folder theArtistName of artFolder)
end if
end tell
end repeat
end if
end try
end repeat
display dialog "完了" buttons {"OK"} default button 1 giving up after 30
end tell
964 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 2:00:24 ID: YPVbd+M7
>>939
これはバグなのかね?
965 名前: 919 Mail: sage 投稿日: 05/05/29 11:38:27 ID: vdRz31TS
あれからいろいろといじくってもさっぱりわからないです。
QuickTime7に戻してみるとやはりエラーが出てしまいます。
「Can't get name of "Volumes/***/***/***/***.mov"」
といった感じのメッセージが出るので、問題の文章の前辺りもおかしいのかなあ、と思うのですが……。
tell application "Finder"
set the file_name to the name of this_file
set the new_file to ((the target_folder as text) & the file_name) as string
end tell
save movie 1 given 《class dfil》:file new_file, 《class savk》:self contained
何か解決策やヒント、アドバイスなどありましたら御教示ください。
966 名前: 名称未設定 Mail: sage 投稿日: 05/05/29 16:16:11 ID: Of0WBwVO
tell application "Finder"
set the this_file to (this_file as POSIX file)
set the file_name to the name of this_file
set the new_file to ((the target_folder as text) & the file_name) as string
if (exists file new_file) then ?
delete file new_file
end tell
save movie 1 in file (new_file as string) as self contained
とりあえずmovのコピーを保存することはできたっぽいけど
そもそもこのスクリプトが何をするものなのか理解できないレベルなので
参考までにということでひとつ。
967 名前: 名称未設定 Mail: sage 投稿日: 05/05/29 16:38:51 ID: iyPt6iML
面倒な方法で新しいムービーの保存先のパスを文字列で得て、そのために作成した一時ファイルを削除してから保存を実行しているらしい。
無駄が多いが、ようはそういうことらしい。
>>965の最後の1行を>>966の最後の一行に入れ替えたら?
968 名前: 名称未設定 Mail: sage 投稿日: 05/05/31 6:17:13 ID: 5WvSUPA/
>>965
QT7からQuickTime Playerのsaveコマンドの「as self contained」の定義が無くなっている。
これから独立形式のムービーを保存するときは、新しく追加されたsave self containedコマンドを使うっぽい。
最後の行を新しいコマンドに合わせて書き換えると直りそうです。
save self contained movie 1 in file (new_file as string)
969 名前: 名称未設定 Mail: sage 投稿日: 05/06/01 0:37:04 ID: Fi+tVils
Mailなんかであったスクリプトメニュー(メニューエクストラでなく)ってなくなったのかな?
970 名前: 名称未設定 Mail: sage 投稿日: 05/06/01 5:14:23 ID: 7Y3WQztG
初心者ですが最近アポスクリプトはじめました。おもすれー!
971 名前: 名称未設定 Mail: sage 投稿日: 05/06/01 15:01:27 ID: P2bm/qA7
display dialog " _ ∩" & return & "( ゚∀゚)彡 おっぱい!おっぱい!" & return & " ⊂彡"
972 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 0:24:28 ID: QH98HzNs
遊んでてうっかり
tell app "System Events"
key down command
end tell
とやってしまった。戻すのに苦労した。
973 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 0:49:07 ID: h2lMplnN
>>971
お前は俺か
少し前にダイアログにおっぱい!おっぱい!を表示させて
遊んでたのだが……
974 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 0:52:48 ID: fcMI/f1n
System Eventsのclick at {} ってまともに使える対象あるの?
975 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 2:30:40 ID: IeGD1wOs
display dialog " " & space & "'⌒ヽ" & space & return & ". " & space & " " & space & "☆" & space & " " & space & " " & ¬
space & " _ノノ" & space & " + *" & space & return & " '´ " & space & " " & space & "ヽ" & space & " " & space & ¬
" " & space & " " & space & return & " " & space & "l(〈从ノ)))〉 " & space & return & " 'ノl" & space & ¬
"(l.゚" & space & "ヮ゚ノ" & space & "l" & space & " ´ " & space & "/ ゜ ☆ " & space & return & " 、_ " & space & " " & ¬
space & " <´ヽWノフつ " & space & return & ". " & space & " ミ≡=_、_(,ノ(,," & space & "_,-、ゝ____" & space & "-、 " & ¬
space & return & "." & space & " " & space & "彡≡=-'´ ̄ ̄`~し'ヽ) ̄" & space & " ̄ ゙̄\"′" & space & return & ¬
" ´" & space & " ☆" & space & return & " " & space & " " & space & "☆" & space
976 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 2:39:29 ID: IeGD1wOs
んー、専ブラからコピペしないと無理か
977 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 2:57:11 ID: LeGy6sJC
>975を選択してサービスメニューから
「スクリプトエディタ」>「AppleScript として実行」してみた。
うまくいった。>976乙。
978 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 19:49:57 ID: T/f3AuLh
強制改行を抜かしたら出来た。
979 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 0:33:13 ID: JSMjUDQf
ログインウィンドウを呼び出すスクリプト。ファストユーザスイッチが有効な場合のみ。
tell application "System Events"
tell process "SystemUIServer"
tell first menu bar
set menuExtraList to every menu bar item
repeat with aExtra in menuExtraList
try
tell aExtra
select
tell front menu
tell menu item "ログインウインドウ..." to click
return 0
end tell
end tell
end try
end repeat
end tell
end tell
beep
end tell
980 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 0:37:16 ID: IH4KuMke
相当伝統のあるスレだけど、次スレって立つのかな?
981 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 0:48:15 ID: GFuQ47XU
スクリプト総合スレがdat落ちしたままだけど
ここが実質的に総合スレということでいいのかな
982 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 2:17:36 ID: TDFHKBbq
シェルスクリプト総合スレが(隔離スレとしても)機能してるし、perlとかの話も
出てたと思った。
こっちはアップルスクリプトだけの方が良いと思う。
983 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 2:35:35 ID: H1r99zwF
次スレは普通にAppleScript総合スレとして、
「AppleScript 6」
でいいと思うんだけど。
984 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 2:54:44 ID: iE0kq51Z
>>979
おかげで入力モードをUSにしてからマカエレを起動するスクリプトが書けました。
ありがとう<(_ _)>
985 名前: 979 Mail: sage 投稿日: 05/06/04 4:04:26 ID: JSMjUDQf
>>984 どういたしまして
でも時々失敗するようなのでちょっと修正
tell application "System Events"
tell process "SystemUIServer"
tell first menu bar
set menuExtraList to every menu bar item
repeat with aExtra in menuExtraList
try
tell aExtra
click
try
tell front menu
tell menu item "ログインウインドウ..." to click
return 0
end tell
on error
click
end try
end tell
end try
end repeat
end tell
end tell
beep
end tell
986 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 12:42:16 ID: xxL0HDD+
2つのColorSyncディスプレイプロファイルを登録しておいて、
呼び出されるたびに切り替えるスクリプト。
property kDisplayProfilesPOSIXPath : (("Library/ColorSync/Profiles/Displays" as Unicode text) as POSIX file)
property pProfiles : {missing value, missing value}
--"ファイルのプロファイルを取得"
on AliasGetProfileName(inAlias)
set theName to ("<未設定>" as Unicode text)
try
tell application "ColorSyncScripting"
set profileList to (every profile that location is inAlias)
if (count of profileList) is greater than or equal to 1 then
set theName to ((name of (item 1 of profileList)) as Unicode text)
end if
end tell
end try
return theName
end AliasGetProfileName
987 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 12:42:53 ID: xxL0HDD+
--"未設定のプロファイルがあれば選択"
on setProfiles()
tell application "Finder" to set chooserDefault to kDisplayProfilesPOSIXPath as alias
--"選択する必要があることを通知"
if missing value is in pProfiles then
set profilesText to ""
repeat with i from 1 to (count of pProfiles)
set profilesText to profilesText & return & (i as string) & ". " & (my AliasGetProfileName(item i of pProfiles))
end repeat
tell application "System Events"
activate
display dialog "切り替える2つのプロファイルを選択します" & return & profilesText buttons {"OK"} default button 1 giving up after 3
end tell
end if
--"選択させる"
tell application "System Events"
activate
repeat with i from 1 to (count of pProfiles)
if item i of pProfiles is missing value then
choose file with prompt "プロファイル" & (i as string) & "を選択してください" of type {"prof"} default location chooserDefault without invisibles and multiple selections allowed
set item i of pProfiles to result
end if
end repeat
end tell
end setProfiles
988 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 12:43:30 ID: xxL0HDD+
--"プロファイルを切り替え"
on toggleProfiles()
tell application "ColorSyncScripting"
set setNum to 1
if ((name of display profile of display 1) as Unicode text) is equal to (my AliasGetProfileName(item setNum of pProfiles)) then
set setNum to setNum + 1
end if
try
set display profile of display 1 to (item setNum of pProfiles)
set setName to my AliasGetProfileName(item setNum of pProfiles)
on error errmsg
tell application "System Events"
activate
display dialog "エラー" & return & return & (errmsg as Unicode text) buttons {"OK"} default button 1
end tell
return 0
end try
end tell
activate
display dialog "プロファイルを「" & setName & "」に設定しました" buttons {"設定を消去", "OK"} default button 2 giving up after 1
if button returned of result is "設定を消去" then set pProfiles to {missing value, missing value}
end toggleProfiles
on run
my setProfiles()
my toggleProfiles()
end run
989 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 23:56:43 ID: 9D22aKPA
>>979, 985
通りすがりのものですが、わたしゃ、今選ばれている入力メニューがなんであっても
目的の入力メニューに一発で切り替えることができるスクリプトを模索していたので、
979と985が参考になりました。3種以上の入力メニューを頻繁に切り替えたいときは、
command-spaceで直前の入力メニューに切り替わるという現行の仕様では使いにくく
てしょうがないわけです。しかし、Menu Extraへのアクセスは回りくどいですな。
クリックしてメニューを表示させなければ item が有効にならないみたいなんで、しょう
がないですけど。
で、システム環境設定のキーボードショートカットを併用する方法も考えてみました。
汎用ではなくて、かなり決め打ち的な手法です。(実演はTigerにて)
【準備】
(1) キーボードショートカットで、「メニューバーのステータスメニューを操作する」に
適当なキーを割り当てる。
(ここでは、command, shift, option - z を割り当てている)
(2) 目的の入力メニューに適当なキーを割り当てる。
(ここでは、U.S. に command, shift, option - ] を割り当てている)
(3) 入力メニューをMenu Extraの一番左に配置する。
(4) ログインし直すと割り当てたキーが有効になる。
tell application "System Events"
keystroke "z" using {command down, shift down, option down}
tell process "SystemUIServer"
tell menu bar item 1 of menu bar 1 to select
keystroke "[" using {command down, shift down, option down}
end tell
end tell
「ひらがな」「Pinyin」などにそれぞれ適当にキーを割り当てて、それぞれを
別個のスクリプトファイルとして保存し、それを適当なユーティリティで起動
します。わたしゃ、iKey2を使ってます。おかげで、切り替えが相当楽になり
ました。どうもでした。
990 名前: 名称未設定 Mail: sage 投稿日: 05/06/05 12:02:17 ID: 3iB7sq8I
test
991 名前: 名称未設定 Mail: sage 投稿日: 05/06/05 23:00:58 ID: KGQNvadS
おもろい、めずらしいアップルスクリプト発表会 6
http://pc7.2ch.net/test/read.cgi/mac/1117979906/l50
992 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 2:02:20 ID: Up5D2c3A
んじゃ埋め
993 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 2:05:19 ID: T/b57Yua
梅!
994 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 2:08:56 ID: UphQ20Ss
宇目
995 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 17:48:57 ID: 8aCX37sa
旨
996 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 18:42:35 ID: PRli7Pu5
Uh! May
997 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:02:02 ID: YLNDCqw0
a
998 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:02:33 ID: YLNDCqw0
a
999 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:03:04 ID: YLNDCqw0
静かに眠れ
1000 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:03:34 ID: YLNDCqw0
やあやあどうもどうも
1001 名前: 1001 Mail:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。