AppleScript アップルスクリプト 質問、発表 5at MAC
AppleScript アップルスクリプト 質問、発表 5 - 暇つぶし2ch97:名称未設定
12/06/13 02:56:43.06 1z4pUs3m0
|はパイプではないと云々

それはそうとAppleScriptはもっと機能拡張してくれないかなあ
特にリスト系をね

98:名称未設定
12/06/13 14:24:10.45 7rJFza94i
>>97
おお、パイプは仕組みの名前であって、記号としては単に縦線でいいのか
素で知らなかったわ…お恥ずかしい限り

99:名称未設定
12/06/13 23:16:39.28 F+0oQic50
>>96
なんとか分かる部分だけ使って残りはapplescriptで書いて、get every file of ~を置き換え、
同様にget name of ~も
do shell script "ruby -e \"puts File::basename(" & (POSIX path of theFolder)'s quoted form & ")\""
にすべて置き換えてみたところ、2分15秒かかっていた処理が、1分15秒になりました。

考えて見たら、get every file of とかしたあともいろいろファイル操作しているのですが、
それもUNIXのコマンドのオプションで対応できそう置き換えてみる予定です。
とても勉強になりました。ありがとうございます。

100:名称未設定
12/06/16 09:23:34.03 hI8ntOWj0
この1年ほど我慢して使ってたんですが、教えてください。
GUIスクリプトでAcrobatProfessionalを操作しているのですが、
さる設定のときに設定のサブウインドウを出して、数値を入力します。
手動の場合は「数値」+returnで数値が確定してPDFのプレビューが変わるのですが、
GUIスクリプトでその欄のに数値を入れても変化なし。数値+returnも変化なしで
困ってます。
ウインドウ内で数値を設定して確定させるにはどうすればいいんでしょう。
具体的には出力プレビューのインキ総量をプレビューする際の数値の欄です。

101:名称未設定
12/06/18 10:26:55.49 gtDPOYVd0
AcrobatProfessionalとやらを使った事が無いので何とも言えないけど、l
まずは深呼吸をして>>1を読まれい

102:名称未設定
12/06/18 19:07:01.61 YMwEvm5b0
>>97
こんなのを使ってみてはどうでしょう?AppleScript のリストを機能拡張するスクリプトオブジェクトです。

URLリンク(www.script-factory.net)

103:97
12/06/18 19:51:21.17 6XB7BUHD0
>>102
おお、これはいいものですね。
しかもリファレンスも参照してくれるんだね。
情報感謝です

104:名称未設定
12/06/18 21:26:33.57 YMwEvm5b0
>>95
スクリプトオブジェクトで連想配列を提供するモジュールがあります。
XDict : URLリンク(www.script-factory.net)

これを使えばさらに高速化するはず。
内部でのリスト処理が工夫されているからね。

105:名称未設定
12/06/23 09:27:03.93 Ye4Ru9zv0
なんかapplescriptのHelp消えてない?

URLリンク(docs.info.apple.com)
とか。
(applescript Disk でググると出る一番上のもの)

同様にほかの用語ヘルプ消えてるみたいだけど、試合終了?

106:名称未設定
12/06/23 09:52:17.93 kf1quHWF0
>>105
docs.info.apple.com が現在お亡くなり中みたいやね

107:名称未設定
12/06/23 09:55:48.68 kf1quHWF0
あ、いや、亡くなっていなくてなんか混乱中かな

108:名称未設定
12/06/25 23:30:17.87 08WWsjy10
ミラーサイト頼む

109:名称未設定
12/07/01 01:07:00.76 vl0cqZpt0
もうちょっと高速にならんかなぁ
処理に拘束されたくない

110:名称未設定
12/07/04 02:20:26.65 Lyk8Zhbf0
AppleScript自体の処理速度は割と速いと思う
遅いのは他のアプリケーションに処理をさせている時
つまり、ほとんどの処理が遅いだろと言われれば、まあその通りなんだが

俺は特に遅いところはシェルスクリプトとか他の言語で置き換えているよ

111:名称未設定
12/07/04 21:51:29.51 tJ5vyuWy0
Xcodeでapplescriptプログラミングするとき、TableViewで複数の
行を選んで削除すめるにはどうすればいいんだ?
1行だけ消すことはできるけど、複数行はできない。
いろいろググってはみるんだけど、うまく検索できない。
今からびゅんびゅん読んでみる。

112:名称未設定
12/07/05 07:48:20.04 Mk46A7OF0
なんでAutomatorとAppleScriptとVBAが一体にならんの?

113:名称未設定
12/07/05 08:26:37.70 zBQpL1J10
VBAとな?

114:名称未設定
12/07/05 09:14:45.38 Hh6ui2xs0
AutomatorとAppleScriptが一体ってAutomatorでAppleScript使えるから何を言っているのかわからないが、
AutomatorのAppleScriptエンジンっていままでのと別物だよなあ。なんでだろ

115:名称未設定
12/07/05 10:03:09.37 9E/rHgLv0
>>112
AppleがMSを買いたくないんだろうな。

116:名称未設定
12/07/06 18:44:46.00 LoN/GvHC0
>>111
複数行の選び方次第でできるよ

連続してる行なら
delete data rows X thru Y of data source Z

特定のセルの状態で検索するなら
delete (data rows whose content of data cell X is Y) of data source Z

一旦自力でリスト化して~みたいなのは無理だね
--delete {data row X, data row Y} of data source Z
その場合はループさせて1回ずつ実行するしかない
repeat with aRow in {data row X, data row Y} of data source Z
delete aRow
end repeat

117:名称未設定
12/07/07 13:03:56.47 4JO1/J3+0
>>116
あーありがとー。なんとなく分かりますが、実際にプログラムを
動かしているときにmuitiple selectをオンにした場合、Shift+クリック
などでrowが複数選択できるようになると思うんだけど、それを
set aRows to selected row
delete aRows
などとしても消えるのは1行のみ。なんか違う概念が必要な気がするけど
わかんねーっすorz 全部消すことと1行消すことはできるのだが、、、、、、

118:名称未設定
12/07/08 08:18:30.90 28jLwfFq0
>>117
なるほど、実際に選んでいる行って事ね

今試せないんだけど、
delete selected row でもダメかな?

119:名称未設定
12/07/09 09:44:39.23 gxgsuixy0
do Script系の強化 頼む

120:名称未設定
12/07/09 15:43:42.92 hlo4YXgz0
>>118
出先にてすみませんが
applescript delete tableview multiple rows
でググると一番目の結果に答ありました。
リピート処理するみたいですね。お騒がせしました。

121:名称未設定
12/07/09 17:20:36.61 r7NfULU30
>>119
リスト操作の強化も

122:名称未設定
12/07/10 03:53:49.58 u0/TMXnA0
みんなスクリプト組めるように
国民の教化も必要だな

123:名称未設定
12/07/10 10:23:54.31 JyO7VxaQi
>>120
解決した様だけど折角なのでまとめておく

selected row 選択している中で最後に選んだ行番号
selected rows 選択している行番号のリスト
selected data row 選択している中で最後に選んだ行への参照
selected data rows 選択している行への参照のリスト

deleteに直接selected data rowを渡すと無反応
selected data rowsは選択状態が解除されるだけで削除されない
set selected rows to {}
set selected data rows to {}
実質的にこれらと同じ

なので複数行を削除するなら結局repeat使うしかない
repeat with anOrder in reverse of (get selected rows of tableView)
delete data row anOrder of data source of tableView
end repeat
もしくは
repeat with aRow in (get selected data rows of tableView)
delete aRow
end repeat

124:名称未設定
12/07/17 14:22:45.86 nMJuq4i50
なんかXcode上でコーディングするのがめんどくさくなってきた。
入力支援スクリプトとかないのかな?
探したけどみつかんねー

125:名称未設定
12/07/18 23:46:46.54 pb5VLfAM0
>>124
つくってくださいな

126:名称未設定
12/07/19 22:12:37.87 kBNLf+wHP
すみません。どうにもこうにもわかりません。
Xcode上で複数のスクリプトファイルを作ってプログラミングしているとき、
すべてのスクリプトファイルでグローバル変数を共有するにはどうすればいいんでしょう?
別のファイルにあるscriptなどをload script? できることはわかったんですが、
別のファイルのグローバル変数を持ち込むことができません。どなたかご助言を。
つか単純にグローバル変数にしたい変数を返すハンドラを作って、それを他のファイルで
読み込めばいいのかな。今回は別の方法で乗り切ったので他の方法を試す気がしないけど。

127:名称未設定
12/07/20 06:52:08.63 bjGGU0q30
スクリプトを1つのファイルにまとめた方が早くね?

128:名称未設定
12/07/20 10:14:27.23 dCbm6U/S0
>>127
まとめるとXcodeが不安定になって
頻繁に落ちて使い物にならない。

129:名称未設定
12/07/20 12:21:59.21 RVs/ID9h0
>>126
Studio Applicationの話をしてるのかな?
だったらこの辺を参照
How do I add user preferences to my application?
URLリンク(macscripter.net)
Variable Scope in Applescript and Applescript Studio
URLリンク(macscripter.net)

130:名称未設定
12/07/20 19:25:40.58 5tvw7fUs0
>>126
load scriptする側をA、される側をBとする

AとBに同じ名前のglobalがあった場合、
Bのハンドラを読んだ時点でAでの値がBにコピーされ、
Bのハンドラから抜けた所でBでの値がAにコピーされる

A側がpropertyの場合にも同じ事が起こるが、逆はなし
run scriptでも同様

131:名称未設定
12/07/22 21:19:24.55 9lpkn479P
ちょっと心配なんだけどさ、これから、applescriptって廃れて使えなくなるの?
applescript対応アプリを連携させながら、ちょこちょことした処理をするには必須
だと思うんだけど、最近はどんどんいろんなページが閉鎖されたりして、
今後、そのような用途はどうすればいいのかとちょっと不安なんだけど。
業務で使ってる自作アプリ、どうすりゃいいのかな、、これから。

132:名称未設定
12/07/22 21:39:47.28 Xzg1sMwx0
URLリンク(www.apple.com)

133:名称未設定
12/07/22 21:46:06.71 YETyrATc0
>>131
そんなの中の人にもわからんよ

134:名称未設定
12/07/26 05:05:49.60 fajQweQs0
どうせ他のスクリプトに繋げるんだから
Apple Scriptをスクリプトのオープンドックにして欲しいんだが


135:名称未設定
12/07/26 23:03:30.87 IpfeFEhdP
いやーいろいろ面白いね。この前自作のスクリプトで人からもらったメディアを自動コピー
してたらなぜか2個しかファイルは見えないのに、コピーしたらファイルが50個になってた。
いろいろ調べたら、そのメディアを初期化せずに使いまわししているみたいでゴミのような
不可視ファイルがコピーされた模様。POSIX pathで"/."を含むファイルを除外したらうまくいった。

それはそうと、TableViewにファイルのパスのリストを表示させておき、そのリストの1行を表示すると
image viewに表示させているのだが、リストからパスをクリックさせたときの反応が悪い。
ハンドラはselection changing 使ってるんだけど、さくさく反応させるにはとうすればいいのん?

136:名称未設定
12/07/30 19:31:05.15 eixgVwZH0
>>135
selection changedを使う
つか質問するならまず>>1ぐらい読んどけ

selection changedは何か変な動きすんのね
2回目以降の操作が突っかえるみたいな

137:名称未設定
12/07/30 19:32:09.29 eixgVwZH0
あーミスった
2つめはselection changingの間違い

138:名称未設定
12/07/31 20:24:42.61 3FbmcHoO0
>>137
ありがとー。ものすごく快適になったよ。
アップル謹製のサンプルがselection changingなのはものすごく疑問。

139:名称未設定
12/08/12 15:18:56.06 mthuHR8B0
質問です。

applescriptを使って、キーボード操作をシミュレートできるのでしょうか?


140:名称未設定
12/08/12 15:56:32.47 wqOFJUWi0
できるよ

141:名称未設定
12/08/13 11:17:39.91 qshbB8Ux0
クリックした場所を1秒間に16回連続クリックする高橋名人は作れますか?

142:名称未設定
12/08/13 12:16:00.57 qshbB8Ux0
すいません、今のどうでもいい書き込み無しで本気で聞きたいことができました。

環境設定の「フォーマット」で好きなフォントを選んでも、気がついたらリセットされます。
まだ2回目で、リセットされる条件は分かりません。
AppleScript エディタ、Macを再起動してもリセットされませんし、いつの間にかリセットされてます。
みなさんはフォントの設定がリセットされることはありませんか?

Mountain Lionで、AppleScript エディタのバージョンは2.5です。

143:139
12/08/14 09:23:23.66 m205qqOi0
>>140
レスありがとうございます。


144:名称未設定
12/08/14 11:40:29.22 DHd8svKD0
Onyx禁止

145:名称未設定
12/08/14 15:10:54.34 F+avXQbb0
>>142
Snow Leopardだと設定ファイルはこれ
~/Library/Preferences/com.apple.applescript.plist

バックアップを取っておいておかしくなったら元に戻して使ってる。というか未だ直ってないんだ。

146:142
12/08/14 17:24:03.45 w0wQVETJ0
>>144
Onyxは使っていません。
ちなみにMountain Lionはクリーンインストールしたばかりで変なものは入れてないので、AppleScript Editorの問題かと思います。

>>145
前から不具合があるのですね。
なるほど、そのファイルのコピーをとっておいて、設定がリセットされたらそれを置き換えるAppleScriptを書けば楽チンですね。

しかし何が原因なんでしょうね、いつリセットされてるのか全く分かりません。
メニューにあるフォントのとこなど怪しいのですが、全くいじってないですし。
リセットされるのは「環境設定」→「フォーマット」の設定だけのようです。

147:142
12/08/14 17:28:40.93 w0wQVETJ0
ちょっと間違えました。
>>146みたいな処理は常駐させないと出来ませんね。
まぁいいや。

148:名称未設定
12/08/15 12:48:09.48 3W5/+CtD0
しっかしAppleScriptの情報って時代遅れの古いのばっかだな。
誰か今の環境に合わせた新しい情報まとめ作ってくれよ。

149:名称未設定
12/08/15 14:04:06.59 CX0Bq0eD0
言い出しっぺの法則
…は、兎も角としても

Leopard辺りからさほど変わってないしな

150:名称未設定
12/08/15 14:07:32.27 8F+aWjaJ0
古い情報を除外したければ
「AppleScript -掌」
で検索するというのはどうだろう

151:名称未設定
12/08/15 18:53:45.02 3W5/+CtD0
Leopard辺りならまだいいよ
掌田さんの本も古いの多いけどまぁ最後に出たの2003年だしまだいい
ていうか、その、およそ10年前の本がAppleScriptの本としては最新なんだよな...

深く知ろうとするとすぐOSX以前の古文書を読まなきゃいけないのが辛い
そんで書いてあること試して、エラー出ても自分が間違えたのか、環境が変わったせいなのか、そもそもその文自体が間違ってるのか判断つかない

グチっただけなので言い出しっぺの法則は勘弁して

152:名称未設定
12/08/15 20:28:18.60 K5u11JZu0
>エラー出ても自分が間違えたのか、環境が変わったせいなのか、そもそもその文自体が間違ってるのか判断つかない
よくわかってんじゃんw
基本的に机上が通じないトライアンドエラーが一番効率的な言語実装なんだから、その感じでやってけばいんじゃね?

153:名称未設定
12/08/16 00:19:31.29 I7NzCwhJ0
GUI Scriptingで仕事してる身だけど書籍の類の情報は無いに等しいので、
基本1行単位でトライ&エラーの繰り返しだな

154:名称未設定
12/08/16 01:15:13.41 QiaLkPuo0
もうちょっと変数型の処理とかがマシだったらいいんだけどねえ
現状だとどうでもいいところでエラー出してくるからトライアンドエラーの労力も倍増だよ

155:名称未設定
12/08/16 01:25:47.29 OP/uNk+10
ちょっと具体的に言ってくれたらみんなで対応を考えたりもできるのに
愚痴ばっかりじゃどうしようもないんじゃね?

俺的にいやなのは
open location
open file
なんかは処理を待たないとならないんだけど
終わったことを確かめるルーチンをいちいち書くのはめんどくさいし
delay 3とかだと遅すぎたり足りなかったりすること

156:名称未設定
12/08/16 01:52:19.03 dJCkSpLv0
open locationで読み込みが終わったか確認したいなら
do JavaScript "document.readyState" in document 1
で確かめればいいんじゃないかな。Chromeならloadingってのも使えるよ

157:名称未設定
12/08/16 07:45:44.63 djwwnD/g0
>>153
UIをシミュレートする操作は元々その場凌ぎだよ。
AppleScriptに元からあった機能じゃないし、アプリ側のちょっとしたUI変更で
動かなくなる。本来AppleScriptはAEOMに基づいたモデル操作を行うための言語。
>>154
具体的にエラーになる例をどうぞ。
それに対しあーだこーだ言うのがこのスレです。

158:名称未設定
12/08/16 20:05:32.07 GSRej/Fz0
>>149
Leopard時代からほとんど変わってないって・・・。
つまり、全く進化してないの?何年も経ってるのに?
Objective-Cにはいくつも新しい機能が追加されてるのに?

てか、Leopard辺りからってどういうこと?
Leopardのときすごい変わったの?

159:名称未設定
12/08/16 21:07:55.92 wpGkApxT0
変化がわからなければ変化がわからないのだから、どうでもいいんじゃないの

160:名称未設定
12/08/16 21:38:59.74 GSRej/Fz0
変化が分からないも何も、最近始めたばかりなので昔のことは知りません。

161:名称未設定
12/08/17 00:05:07.14 +w+gtIvh0
自分が使うだけなら「動けばいい」で済むけど、頼まれものなんかは色々と面倒くさい。
エラーチェックは真面目にしなきゃいけないし、こっちで再現しない不具合とか頭を抱える。
相手がシステムを無闇にいじってたのが原因だったことも。

162:名称未設定
12/08/17 00:11:12.50 XtvXuCYC0
>>158
Release Notes見れ。
10.5でtextが全てUnicodeになったのが最大の変更で、それに比べれば他の変更は些細な物。
URLリンク(developer.apple.com)

163:名称未設定
12/08/17 00:56:53.57 L8Pheu760
>>157
アプリ側のちょっとしたUI変更程度には影響を受けない、
または少変更で追随できる様に作っておくんだよ
その場しのぎというのは全くもってその通りだけどね

>>158
13年前の絶版リファレンス本が未だに役立つぐらい変化が少ないんだもの

Leopardでは>>162のリリース通りで大きく変わったとはいえないけど、
Snow Leopard以降の変化にくらべれば若干多いかという程度

164:名称未設定
12/08/17 18:05:59.38 yQhRGYgE0
どんどん更新されると、それはそれで不便なんだけどね。

165:名称未設定
12/08/17 19:05:00.98 sEBNxyjm0
再帰処理を練習してみたYO( ´∀`)
URLリンク(pastebin.com)

UI Elementが含んでいるUI Elementsをchoose from listで再帰的に表示するの
アプリケーションのどこが補助装置で操作可能なのか知りたかったから作ったんだけど、ボタンの名前とか分からないし結局あんまり役に立たないの

166:名称未設定
12/08/18 21:40:21.78 XPMsaQQO0
ぬるぽ

167:名称未設定
12/08/18 22:59:14.40 1Z85bj9s0
ぬるぽ

168:名称未設定
12/08/19 01:51:20.55 J9yEHOOh0
ぬるぽ

169:名称未設定
12/08/19 12:17:06.32 MeMp7MUN0
質問です。
applescriptの勉強をしたいのですが、市販の書籍は古いバージョン対応のものばかりです。
古いバージョン対応の書籍で勉強しても、
最新バージョンでapplescriptを使えるようになるのでしょうか?


170:名称未設定
12/08/19 12:48:49.82 bwiu6g3P0
元の知識がゼロなら、最低限の情報は得られるかもしれないけど、
基本的な文法はネットだけでも勉強できるような…。

AppleScriptって、文法よりは、「どのアプリで何をしたいか」が重要で、
その書籍が自分の動かしたい「今のアプリ」を扱ってなければ、
大して役に立たない気がする。
アプリごとに使える命令が変わってくるから。
(どんな命令が使えるかは、スクリプトエディタのライブラリにアプリを登録すれば見れる)

Finder関係も、OS9→OS Xで結構変わってる部分があるし、
ネット上のサンプルスクリプトを改造しながら覚えていくのが
今は普通なんじゃないかな。

171:名称未設定
12/08/19 13:18:53.21 aTXczDVJ0
勉強というのが仕組みというか基礎的(基本的という意味ではない)なことなのであれば本も選択肢としていいと思う
何かやりたいことがあってそれのためなら上の人も書いてるがネットで十分だ

172:名称未設定
12/08/19 14:31:56.97 J9yEHOOh0
AppleScriptってのはな、古い情報を大量に読んで新しい環境でも使えるものを抽出して
普通の言語より何回も失敗しながら体に刻み込む根性が必要な言語なんだよ
もっといいスクリプト言語はたくさんあるし、Macを操作すること以外に学ぶ意味はないからMacへの愛が試されてるんだよ

173:名称未設定
12/08/19 15:43:01.75 m07moEoI0
ちゃんとしたドキュメントあるんだから、まず読め。
AppleScript Overview
URLリンク(developer.apple.com)
AppleScript Language Guide
URLリンク(developer.apple.com)
AppleScript Release Notes
URLリンク(developer.apple.com)

>>170
その通り。何ができるかはAppleScript言語側で決まってるんじゃなくて、アプリや
OSAX側の機能で決まる。それを記述してるのが各アプリやOSAXのディクショナリ。
アプリ以外にもshellやAutomatorとも連携取れるから、それらの機能も取り込める。

174:名称未設定
12/08/19 16:17:34.60 J9yEHOOh0
英語読めるなら障壁なんて無いんだけどな...Appleのドキュメント読めばいいだけだし
いかんせん日本語の情報が少なすぎるわけで
情報が古いって嘆いてる日本人に英語のドキュメント読めってのはひどいですね
もっとやれ

175:名称未設定
12/08/19 16:37:11.07 XbANaOhk0
日本語AppleScript超おすすめ

ごめん嘘

176:名称未設定
12/08/19 17:45:05.72 lQHwFJpX0
>>175
一時、日本語OSの標準が日本語AppleScriptになってた事があったが、とにかく面倒で困った。
やはりプログラミングのキーワードは英語の方がわかりやすい。
説明は、日本語のほうがわかりやすいのは言うまでもないけど。

177:名称未設定
12/08/19 20:45:38.55 J9yEHOOh0
やっぱりそんな大昔からAppleScript使ってるベテランばっかりなんだこのスレ

178:名称未設定
12/08/19 22:17:19.37 3oQybz2r0
ぴゅう太の頃から使ってるからな

179:169
12/08/20 10:47:28.44 22RoPjY00
>>170-178
レスありがとうございます。

「辞書」アプリのラッパーアプリを作って、英単語の検索履歴をファイルに記録したいのですが…

180:名称未設定
12/08/20 10:53:48.07 tLONAurQ0
辞書アプリはAppleScript対応ではない(≠操作できない)ようだが、
そのくらいなら不可能ではないと思う、がんばれ

181:名称未設定
12/08/20 14:57:05.05 73KnvJq/0
>>179
AppleScriptは、「スクリプトでアプリを操作する」ためのもので、
元のアプリに無い機能を追加するのに使うのは無理があると思う…。

しかも辞書.appはAppleScript非対応のアプリだから、
操作するにはシステムイベントっていう、UI操作をシミュレートする機能を使って
無理やりやるしかない。

履歴をファイルに記録するのは、できなくはないけど、
そのためにAppleScriptを一から勉強するのは時間の無駄かと…。
検索履歴付きの有料辞書アプリを買った方が早い。

それでもやるなら…。
入力フォームをAppleScriptで出して、入力内容をテキストエディタに
送ると同時に、辞書.appの入力欄にコピペして検索、
みたいな無様な形になるんじゃないかな…。

182:名称未設定
12/08/20 15:33:48.39 ikDz+Hjr0
/Library/Dictionaries/
にある辞書ファイルのパッケージの内容を表示して読み込むってのは・・・無理か
見てみたらテキストが書き込んであるのはバイナリっぽいし

でも初めて見たけど画像がそのまま入ってて楽しいね

183:名称未設定
12/08/20 16:16:51.25 3RIEiArc0
辞書.appでの検索ならopen locationという手もあるよ。
open location "dict://" & URLエンコード済み検索語句

184:179=169
12/08/21 09:09:47.31 KR+jATdS0
>>180-183
レスありがとうございます。
で、applescript全く知らないのですが、どうやって勉強したら良いのでしょうか?
検索履歴の中に検索単語の出現媒体も入れたいので
>>181の「無様な形」しかないかも知れませんが…

185:名称未設定
12/08/21 10:11:11.45 guxgiAji0
>>1

186:名称未設定
12/08/27 15:59:51.21 vKd5wiBw0
Adobe Illustratorの、「Collect for Output」をディレクトリ決め打ちにしたいけど、
デスクトップとかの参照がよくわかりません。

要は書き出し先を ~/Desktop/Collect4outpt に書き換えたいだけなんです..


と、>>13さんの書き込みを見て解決しました。
時空を超えて感謝感謝です

187:名称未設定
12/08/27 22:07:03.37 vKd5wiBw0
誰かの役に立つかもしれないので覚書メモ

「AI付属の「Collect for Output」スクリプトの、
 書き出し先を手動選択でなく~Desktop/Collect4/<filename>+<"_collect">/ にする」
該当箇所を以下のように書き換える:

on collectCurrentDoc()
tell application "Finder"
activate
set homePath to POSIX path of (home as alias)
set aPath to homePath & "Desktop/collect4"
set myFolder to POSIX file aPath as string
end tell
try
tell application "Adobe Illustrator"
set docRef to document 1
set mydocname to name of docRef

copy mydocname to CollectName
set myFolder to myFolder & CollectName & "_Collect:"
set createPath to POSIX path of myFolder
set myCommand to "mkdir -p " & quoted form of createPath
do shell script myCommand

save docRef in file (myFolder & mydocname)

188:名称未設定
12/08/27 22:07:25.48 vKd5wiBw0
タブが全部落ちてしまった...

189:名称未設定
12/08/28 01:19:15.73 i9U75a3F0
>>186-188乙
タブ落ちは2chの仕様上しょうがない

190:名称未設定
12/08/28 01:31:43.22 a3m7EdIF0
まあタブあるとコピペじゃ動かなかったりするし
これでいいんじゃね?おつかれ

191:名称未設定
12/08/28 07:15:11.07 hMcrulGn0
datにはしっかり残ってるから直読みすればおk

192:名称未設定
12/08/29 01:47:02.38 0eEgW68Y0
>>179
コマンドラインから辞書を引けるコマンド作っている人がいるから、
これ使ってdo shell scriptしたら?
URLリンク(github.com)

193:名称未設定
12/08/29 06:02:15.93 Ol1nQMoc0
AppleScriptでいろいろやろうとすると結局はシェルスクリプトも覚えなくちゃならないよね
特にネット関連
AppleScriptだけじゃダウンロードすらできない

194:名称未設定
12/08/29 11:55:02.64 MLg5Dajl0
つかAppleScriptってそういうもんだし

195:名称未設定
12/08/29 13:02:23.90 +uYLsanb0
だよねえ
元々必要だったらOSAX作ってだけど、シェルスクリプト呼べるようになってからそれすらほとんど必要無くなってしまったという

196:名称未設定
12/08/29 13:49:28.82 boM1/3nc0
まあ、どう捉えるかだな
結局シェルスクリプトのほうが歴史も汎用性もあるから
勉強になっていいと思うが

197:名称未設定
12/08/29 16:51:59.28 dzmIr9kX0
単なるコマンドをシェルスクリプトと勘違いしてね?
比較対象にする時点でAppleScriptがよくわかってないと思うけど、
多分シェルスクリプトもよくわかってない

シェルスクリプトと比較するならPerlとかだろ
Unix一般のCUI体系をシェルスクリプトとはいわんよ

198:名称未設定
12/08/29 17:56:51.76 +uYLsanb0
do shell script
だから、別に今の話題ではどうでもいいような

199:名称未設定
12/08/29 18:07:56.56 7uZHla1D0
>>186
path toでもお決まりのフォルダ位置は得られる。
POSIX path of (path to "cusr") -- home
POSIX path of (path to "desk") -- Desktop
POSIX path of (path to "down") -- Downloads
POSIX path of (path to "docs") -- Documents
POSIX path of (path to "pdoc") -- Pictures
POSIX path of (path to "mdoc") -- Movies
POSIX path of (path to <<data TEXTB5646F63>>) -- Music
POSIX path of (path to "spot") -- Saved Searches
POSIX path of (path to "trsh") -- Trash
POSIX path of (path to "font" from user domain) -- Fonts
POSIX path of (path to "pref" from user domain) -- Preferences
POSIX path of (path to "asup" from user domain) -- Application Support

200:名称未設定
12/08/29 18:37:41.15 Ol1nQMoc0
>>197
揚げ足とるようだが一つのコマンドでもシェルスクリプトとして書けばシェルスクリプトだし
特に、AppleScriptからコマンド使うならシェルスクリプトしかないでしょう
いちいちAppleScriptからターミナル起動する意味はあんまりない

一応UNIXの基本やシェルスクリプトは知ってるよ。君の書き方は何かカチンと来るね
比較対象がPerlってのもよく分からない

201:名称未設定
12/08/29 18:46:56.17 Fd37oWvl0
197の反論予想
「そもそもdo shell scriptなどというコマンド名が意味不明なのである。
 Appleは何もわかっていない、使う奴もわかっていない、俺は天才だけど。」

202:名称未設定
12/08/29 18:53:26.83 7uZHla1D0
使うのはどうせone-linerでしょ。
調べるのもshellの文法じゃなくて、コマンドのパラメータの方。
on download(aURL, aPath)
do shell script "curl -L " & aURL & " -o " & quoted form of aPath
end download

set aURL to "URLリンク(www.nasa.gov)"
set aPath to (POSIX path of (path to "down")) & "mars_rovers.jpg"
download(aURL, aPath)
tell application "Finder" to reveal my POSIX file aPath

203:名称未設定
12/08/29 18:59:19.12 boM1/3nc0
ネットでハウツー読んだのを披露してみたかったんじゃねえの
こっちに自信があればいちいち相手にする必要はない

一応言っておくと例えばAppleScriptをサービスとして走らせると便利だからその中で自作シェルスクリプト呼んで組み合わせたりするわけだけど
そうやっていろんなツールを組み合わせて使うためのwrapperとして、AppleScriptもシェルスクリプトも同列に語られるわけだよね

204:名称未設定
12/08/29 19:03:04.52 9Xov/X/A0
デバッグは別にして、
シェルスクリプトに
osascript で AppleScript を
here document とかで
埋め込むのもそこそこ
使いやすいと思う。

205:名称未設定
12/08/29 19:15:41.79 dzmIr9kX0
反論ツーかwww
そもそもシェルスクリプトじゃダウンロードすら出来ないんだがw

自信www
お前らこそ変な自信持つなよw
ホントしょうがねー奴の集まりだなw

>>200
>特に、AppleScriptからコマンド使うならシェルスクリプトしかないでしょう
>いちいちAppleScriptからターミナル起動する意味はあんまりない
do shell script "/usr/bin/curl"
これはシェルスクリプトでもなんでもないじゃんw
まあ>202が書いてるけど
揚げ足取る以前に理解してないだろw

206:名称未設定
12/08/29 19:19:32.20 +uYLsanb0
だねえ。それこそ>>199なのをとかちょっとしたのでも使えるしね

207:名称未設定
12/08/29 19:22:03.61 +uYLsanb0
>>206>>204

>>205
うん、お前は人よりも賢い賢い、ID: dzmIr9kX0
賢いお前にはここは場違いだと思うよw

208:名称未設定
12/08/29 19:24:01.20 MLg5Dajl0
間違い指摘したらその扱いかw
お前も立派なカスだったんだな、残念

209:名称未設定
12/08/29 19:27:30.33 +uYLsanb0
ん?んんーー??w

210:名称未設定
12/08/29 19:28:09.06 Ol1nQMoc0
ごめんめんどくさい奴の相手しちゃったね・・・
スルーすれば良かった

211:名称未設定
12/08/29 19:30:00.55 EipBq5mI0
>>209
VPNで仕事してるんでな。IDはころころ変わるんだよ、こんな風に

212:名称未設定
12/08/29 19:32:58.25 +uYLsanb0
>そもそもシェルスクリプトじゃダウンロード
イミフ
>do shell script "/usr/bin/curl"
サンプルにしてもそれは無いだろうw
賢い人の考えることは愚かな俺にはわからんw

そもそも do shell script の "" 内をまた勉強するのがちょっと面倒ねってことだけだろう
do shell script てのだからシェルスクリプトって言っているだけで、その内容が制御文をいろいろ使ったシェルスクリプトかどうかなんてどうでもいい話しなのに、「俺はシェルスクリプトを知っている」ってのを自慢したくてしたくてたまらないとしか愚かな俺にはわからない

>>211
ふーんw

213:名称未設定
12/08/29 19:37:07.92 MLg5Dajl0
ID:boM1/3nc0(2)が
>>196
>歴史も汎用性もある
って書いてるがコマンド呼び出すだけには、たいした歴史も汎用性も無い
俺は歴史と汎用性があるシェルスクリプトの事を語っただけだ
しかしこの程度で自慢とかどんだけ低レベルなんだよ、お前w

214:名称未設定
12/08/29 19:43:04.71 +uYLsanb0
Unixコマンドには歴史も汎用性もあるだろうに。賢い人の狭量さはわからんなあw
また、VPN切り替えたのかw

215:名称未設定
12/08/29 19:46:52.04 MLg5Dajl0
>>214
>Unixコマンドには歴史も汎用性もあるだろうに。賢い人の狭量さはわからんなあw
これは無い。
それぞれ環境が違う中で入ってるコマンドの汎用性なんか信じてたら、まともな仕事出来ないだろw

216:名称未設定
12/08/29 19:48:55.53 +uYLsanb0
なるほど
俺はパイプ使って処理いろいろできるのは汎用性、tailとかsedとかたくさんのもろもろは歴史があると思うんだけど、賢い人はやっぱ使い方が違うんだなw

217:名称未設定
12/08/29 19:52:32.59 MLg5Dajl0
>>216
パイプはシェル。お前はコマンドとシェルの区別がついてないのはわかったw
何故shなのか?歴史と汎用性があるのはbashやその他シェルスクリプトでは無いのかがわからんのだろうな

218:名称未設定
12/08/29 20:01:55.70 +uYLsanb0
パイプから入力できるかどうかはコマンド(のプログラミング)による。まあ入力はstdin、出力はstdoutにしとけばいいんだけど
パイプで繋げられるようにプログラミンされているコマンドが多いのがUnixらしだだと思うけど

>何故shなのか
やっぱり自慢したいだけじゃん。何をいまさらと思っているのは俺だけじゃないとおもうぞw

219:名称未設定
12/08/29 20:03:19.10 MLg5Dajl0
>>218
俺だっていいたくねえよ、それこそ今更
お前がパイプとかアホなこと言い出すからだろが

220:名称未設定
12/08/29 20:06:12.04 +uYLsanb0
パイプを使ってコマンドを繋げていろいろ成形できるのがUnixの世界の汎用性ってことだけど
人を小馬鹿にするために書いた文を、人のせいにするのかあ。やるなw

221:名称未設定
12/08/29 20:09:48.42 MLg5Dajl0
何となくわかって来たような気がする。
シェル自体がわかってないのか?シェルが無い状態とかがわからないのか?
いや小馬鹿じゃなくて大バカだろ。この程度で歴史と汎用性に乗っかるなんて

222:名称未設定
12/08/29 20:11:36.17 H6O0wbKG0
実行権限付けたテキストファイルだろうがワンライナーだろうがヒアドキュメントだろうが、
AppleScriptで文字列をdo shell scriptに渡そうが、シェルで実行できる内容があらかじめ羅列されたものならそれだけでシェルスクリプトだよ
ただの普通名詞

だから>>205の挙げてるよくわからない例も、意味があるかどうかは置いといてシェルスクリプトには違いない

223:名称未設定
12/08/29 20:17:56.74 boM1/3nc0
まさかこうなるとはな……不毛にもほどがある
別にお互い相手が正しく理解してようがいるまいがどーでもいいんだから
相手の知識を量る意味も、諭す意味もないだろ?

224:名称未設定
12/08/29 20:18:40.16 +uYLsanb0
>>221
>シェルが無い状態
この話題で何を話しを膨らませているんだかw

いや大馬鹿でもいいよ。言っているでしょ、お前は賢い、俺は愚かだとw
よいシメになったな。おもろかったよ。ありがとう

225:名称未設定
12/08/29 20:19:26.80 +uYLsanb0
>>223
うん、すまんかった。ちょっとおもろかったから図に乗った。すまん

226:名称未設定
12/08/29 20:21:44.52 MLg5Dajl0
>>223
>203
お前が無意味な煽りでのっかったんだろーが。
ちょっと上から風にいわれると、すぐ逆切れして人を煽る、そのくせ今更だなw

227:名称未設定
12/08/29 20:37:47.15 27IdV/+g0
FreeBSD-users-jpは「レスありがとうございます」と書いただけで3日間フレームの嵐が吹くのでQandAに注意書きがある

URLリンク(d.hatena.ne.jp)


228:名称未設定
12/08/29 20:40:38.63 boM1/3nc0
>>226
「相手にする必要はない」と煽ったのは正直すまんかった
が「ちょっと上から風に」言うのはヤメテクレ

229:名称未設定
12/09/06 11:36:12.93 3/vBW/W/0
AppleScriptがかなり役に立ったとか、AppleScriptがなければ即死だったってことある?

230:名称未設定
12/09/06 11:40:46.70 uWveQ2vS0
役に立たなければわざわざ使わない。

231:名称未設定
12/09/06 13:24:35.17 S+KDuhbT0
即死だったってことはないかな。なきゃないでなんとかしてたとは思うからね。
でも、あるおかげでその「なんとか」がめちゃくちゃ楽になった。

232:名称未設定
12/09/07 08:26:17.21 A8jc37E50
即死回避って状況がちょっと思いつかないw
日常がちょっとだけ楽になる、って方が大きいかなあ

家帰ったら、Mail・Bathyscaphe立ち上げて新着読み込みさせつつ
巡回してるWebサイト7~8コをSafariで一気に開く・・・
的なことがアプレット1つ立ち上げただけでおkなのは、ものぐさな
自分にはすんげえ重宝

233:名称未設定
12/09/07 09:29:15.85 mjcdocV40
>>232
よくわかる
複雑なことができてうれしいのはもちろん、
そういうランチャー+α機能付きみたいなのが地味に効く

234:名称未設定
12/09/07 10:05:28.31 Q3AIP0d+0
iTunesのタグ編集機能が貧弱だから、ちょこちょこと編集機能を書いたり集めたりしてたら、
iTunesでタグ編集アプリ並みの編集が出来るようになった。

235:名称未設定
12/09/07 10:32:03.07 mjcdocV40
>>234
公開したらみんな幸せになれるかもよ

おれもタグ編集ではないが、自分用に書いて膨大になった再生関連のスクリプト(フェードさせるとか)をブログでも開設して公開しようかと思ってる

236:名称未設定
12/09/12 21:03:18.86 fbOA0tSA0
Xcode使ってプログラム組んでいるんだが、原因不明のトラブルに悩まされてる。

・データチェック、ファイル名変換、印刷など

・ドロップレットにそのファイルを投げる→ドロップレットが処理→フォルダアクション

終了

という流れで動かしているのだが、ドロップレットの処理が途中でハングしてしまうことがある。
delayをそこかしこに入れて試しているが改善しない。
tell application "Finder"
open theFile using ~(ドロップレット)
end tell
的な処理ってうまくコントロールできないんでしょうか。
ドロップレットのエラーを疑って某アドビに連絡したら「サポート外です。これ以上は有料です」
とか言われてしまったorz もうアドビのソフトなんて嫌いだ!

237:名称未設定
12/09/12 22:51:11.07 YRJx8AHd0
>これ以上は有料です
出会い系サイトのような巧妙な手口だな。

238:名称未設定
12/09/13 01:16:46.17 mT0PFh6p0
>>236
Adobeがどこに関係してるのか分からないけど
フォルダアクションはファイルのコピーが終わる前に発動したり
フォルダアクション実行中にファイル追加されると処理しなかったりするから
その辺りの可能性もあるんじゃないk?

239:名称未設定
12/09/13 04:24:01.70 3E5NQOyn0
>>236
・delayじゃなくて、UI Elementが存在するかどうかで終了判定
・tell Finder to openの代わりにdo shell script "open -a..."
試してみれ

240:名称未設定
12/09/13 20:43:12.19 VPsgu9QY0
ドロップレットの処理が「途中で」止まるんだとしたら、
呼び出すところにゃ何も関係無いんじゃねーの

どっちの方法でも普通にドロップする場合と違って引数は1つしか処理できないみたいではあるが

241:236
12/09/13 22:16:11.01 mJ0MoTTz0
お返事いただいた方ありがとうございます。
あまり書きすぎると恥ずかしいので詳しくは書けないのですが、
ドロップレットにファイルを投げると処理自体は終了し、
その結果フォルダアクションが働きいろいろ処理される。ここまでは
いいのですが、ドロップレットのウインドウが閉じることもできず
そのアドビのアプリを終了しないと元に戻らなくなってしまうのです。
そのドロップレット、ちょっと設定を変えるともっとひどいエラーに
なり、アメリカのアドビのフォーラムでも問題になっているのに
解決策は出てこないまま。どう考えてもアドビのアプリのバグだと
思うんだけど、「サポートは有料です」なんだって。あほらしいよ。
それから問題に再現性がない。同じデータでもエラーになったり
ならなかったりする。今日は50ファイルくらい処理して1回もなかったが、
なる時はなるらしい。もう本当に訳わからん。
>>238->>239の方のアドバイスを参考に明日も頑張ってみます。

242:名称未設定
12/09/13 22:56:08.19 3E5NQOyn0
>>241
もうちょっと具体的に何やってるか書かないとこれ以上アドバイスのしようがないな

243:名称未設定
12/09/13 23:17:31.20 etFzQyH60
かなりさがってるので上げとく

244:名称未設定
12/09/14 02:59:33.16 A4VRorak0
ドロップレットがAdobe製かつ実行専用なら何もできる事は無いし、
自作或いは編集可能なら内容見ない事には始まらん

245:名称未設定
12/09/14 19:41:53.02 ojEbrDUC0
>>241
そういやこれとは関係ないよな?

お仕事メモ帳 [Illustrator][AppleScript]テキストのアウトライン
URLリンク(macneko.blog77.fc2.com)

246:sage
12/09/17 13:37:45.84 svlwv1FR0

AppleScriptを使用して、定期的にDDNS(Dynamic Do!)のIPアドレス更新をやりたいのですが、うまく動いてくれません。。

---- ソース ---------------------------------------------

set str_Domain to [ドメイン名]
set str_Pass to [パスワード]

on idle
do shell script "\"URLリンク(free.ddo.jp)" & str_Domain & "&pw= " & str_Pass & "\""
return 3600
end idle

------------------------------------------------------

なにか間違っている個所がございますでしょうか??




247:sage
12/09/17 13:39:14.55 svlwv1FR0
すみません訂正です。 curlコマンドが抜けていました。。

---- ソース ---------------------------------------------

set str_Domain to [ドメイン名]
set str_Pass to [パスワード]

on idle
do shell script "curl \"URLリンク(free.ddo.jp)" & str_Domain & "&pw= " & str_Pass & "\""
return 3600
end idle

------------------------------------------------------


248:名称未設定
12/09/17 13:42:47.13 6et2QTZt0
"&pw= "
末尾のスペースはソースそのまんま?

249:sage
12/09/17 13:56:13.68 svlwv1FR0
すみません!! スペースはありません。

250:名称未設定
12/09/17 14:05:04.49 Mc0FQ1sq0
>>247
log Result
で結果くらい見てみたら?
あとメタ文字使わんで、quoted form ofで繋ぐ。
パスワードはhttpで送って大丈夫なのか?

251:名称未設定
12/09/17 14:05:53.99 Mc0FQ1sq0
このバカはコピペすらできんのか。

252:名称未設定
12/09/17 14:08:17.72 6et2QTZt0
ドメイン、IPアドレス、パスワードのセットで登録するみたいだけど?

253:sage
12/09/17 15:36:53.54 svlwv1FR0
>>250
あとメタ文字使わんで、quoted form ofで繋ぐ。
  > 勉強になります。

パスワードはhttpで送って大丈夫なのか?
  > ん?違うんですか??

  -----------------------------------------------------------------------
  4.IPアドレスの自動更新
  定期的に自動で更新するには、 HTTPクライアントから下記URLを読み込んでください。
  URLリンク(ddo.jp)ドメイン&pw=パスワード
  (無料サービスの場合は URLリンク(free.ddo.jp))
  IPアドレスはページにアクセスした端末に設定されます。 プロキシを中継した場合はプロキシのIPアドレスが設定されてしまう 場合がありますのでご注意下さい。 IPアドレスを指定する場合は
  URLリンク(ddo.jp)ドメイン&pw=パスワード &ip=xx.xx.xx.xx
  (無料サービスの場合は URLリンク(free.ddo.jp))
  として下さい。 IPv6アドレス(AAAAレコード)を指定する場合は
  URLリンク(ddo.jp)ドメイン&pw=パスワード &ipv6=xxx:xxx:xxx:xxx:xxx:xxx:xxx:xxx
  として下さい。
  -----------------------------------------------------------------------

254:名称未設定
12/09/17 16:38:01.08 6MsBVBXW0
>>253
なんつーか、君には早いと思うんだ
素直にWhat's Up!ってフリーウェア使ったら?

ログも出さないしコピペすら合ってるかわからんから上のソースはいちいち確認せんけど
うちの環境では普通にcurlでうまくいってるから100%どこかおかしい

まあ提案としては、きっちりエスケープできてない気がするから
独立したシェルスクリプトをつくって(.shで保存して)それを呼ぶ形にしてみたら~

255:sage
12/09/17 17:41:17.07 M1yIekyd0
>>254
What's Up!なんて糞アプリ使うやついねぇの分かってるから自作しようとしてんだろ
つーか、AppleScriptのスレでフリーソフト使えとか馬鹿なの?
お前、>>253の質問の意図あんまわかってねーだろ? ド低能。

256:名称未設定
12/09/17 18:13:34.29 8UJQwC7+0
罵倒は良くない

257:名称未設定
12/09/17 18:14:41.53 rpxwERG20
>>255
>AppleScriptのスレでフリーソフト使えとか馬鹿なの?
「使えるものはなんでも使う」って基本姿勢はあるかも


258:名称未設定
12/09/17 18:14:47.66 UjAE4tFl0
>>255
正論すぎてふいたw

259:名称未設定
12/09/17 18:33:49.63 6MsBVBXW0
これはひどいw
つらつら書いてる暇があったら教えてやれよww
実質ワンライナーだろ

260:名称未設定
12/09/17 22:38:23.75 X+ATL1uC0
まずTerminalで試して次にrunハンドラのdo shell scriptで同じ事ができる事を確認する
それをidleハンドラに置き換える

って段階を踏まずにいきなり完成系から書くから原因がわからなくなるのさ

261:名称未設定
12/09/17 22:47:02.43 X+ATL1uC0
あー
>>247は2つの変数がrunハンドラで代入されてるけど、
トップレベルでのglobal宣言またはidleハンドラでのglobal宣言が無いので、
idleハンドラ内では未定義扱いになってるんだな

262:名称未設定
12/09/18 08:20:50.65 JBMoMS/J0
>>261
  247です。

  変数のスコープというか、AppleScriptでの変数の扱いをよく理解出来ていませんでした。。
  下記のソースで、ちゃんと更新が出来ました。
  ありがとうございます!!

-------------------------------------------------
global str_Domain, str_Pass, str_Cmd

set str_Domain to "DOMAIN"
set str_Pass to "PASSWORD"
set str_Cmd to "curl \"URLリンク(free.ddo.jp)" & str_Domain & "&pw=" & str_Pass & "\""

on idle

do shell script str_Cmd
return 3600

end idle
-------------------------------------------------


263:名称未設定
12/09/18 10:45:43.53 BPoZ91TC0
bash ← ってどう読むの??

ボーンアゲインシェル?
バッシュ??

264:名称未設定
12/09/18 12:36:47.09 4+Aws5/10
ググれよカス

265:名称未設定
12/09/18 13:27:44.54 QI38jrp00
>>263
>bash
ばっしゅ。
ビーエーシェルって言い方を最近聞かなくなった気がする


266:名称未設定
12/09/18 14:09:11.48 4gAdRKsD0
なんなんだよ最近
コピペもできないわググりもしないわ
クソみたいなのが湧いてくるな

267:名称未設定
12/09/18 17:08:08.61 u9BhGRU8I
まぁまぁ

268:名称未設定
12/09/18 17:16:18.60 u9BhGRU8I
>>263, 265
俺もバッシュていうな
ボーンなんとかは言ったことねぇw

269:名称未設定
12/09/20 19:54:10.05 dI1CCsHc0
scriptオブジェクトを呼び出す時に、任意の文字列でオブジェクト名を指定することはできませんか?
set hoge to script "nini"
のようなことをしたいんですが。

270:名称未設定
12/09/20 20:09:29.07 MNFNxRt00
run script はどうだろう?

271:名称未設定
12/09/20 20:12:14.23 emmz7Dp30
setしてその後どうしたいのかよくわからないが、
Script FactoryさんとこのOSAX使う手もあるよ

ModuleLoader
URLリンク(www.script-factory.net)

272:名称未設定
12/09/20 21:45:55.29 dI1CCsHc0
>>270
変数を共有しないため、できそうでできなかったっす。

>>280
別ファイルに分割せずにしたいっす。

273:名称未設定
12/09/20 23:57:46.59 MNFNxRt00
script Hoge
property hogeprop : "hogeprop"
property name : "Hoge"
end script
script Manager
property objects : {}
on add(obj)
set my objects to my objects & {obj}
end add
on fetch(str)
repeat with obj in my objects
if str is obj's name then
return obj
end if
end repeat
end fetch
end script

set oldHoge to Hoge
set oldHoge's hogeprop to "hogehoge"
tell Manager to add(Hoge)
set newHoge to Manager's fetch("Hoge")
newHoge's hogeprop

自分には>>270と、これくらいしか思いつかない。
AppleScriptってAppleEventにコンパイルする言語だから、
動的な事をするのが難しいんだよね。
runscriptと文字列処理を幾重にも重ね合わせた事有るけど、
自分で書いてるのに意味不明過ぎてワロタ。

274:名称未設定
12/09/21 00:45:22.60 6hAt0+4m0
>>273
おぉ、擬似連想配列的なやり方ですか。
言語機能上、素直にはできなくて、工夫が必要なんですね。

275:名称未設定
12/09/21 19:09:29.31 s3eoosiO0
任意の文字列とスクリプトオブジェクトとの関連付けをどうするつもりなのかが見えない
各々のスクリプトオブジェクト内で定義する形なら俺も>>273みたいな方法しか思い付かないわ
どうやったって連想配列っぽくなる

単にオブジェクト名と同じ言葉を文字列で指定したいだけなら、
もっと単純にできるけども

276:名称未設定
12/09/21 21:34:23.77 hhCWEBk50
すまん煮詰まってしまった(誤用)ので質問させてくれ

iTunesで曲を右クリックすると出てくる「iTunes DJで次に再生」をスクリプトからやらせたい
前提はiTunesがactivateしててその曲がすでに選択済みかつ再生中

UI Scriptingで現在選択中のelementを右クリする方法がよくわからなかったのでとりあえず
tell front window of process "iTunes"
scroll area 3's outline 1's row whose static text's value begins with "再生中"
と行を絞り込もうとしたんだけどエラーが出る

次の方法ならとりあえずstatic textを全回収できるんだけどそこで詰みました
set labels to value of scroll area 3's outline 1's rows's static text

277:名称未設定
12/09/21 22:44:22.88 hhCWEBk50
あれ、もしかしてSystem Eventsでコンテキストメニュー操作って無理なのか……

278:名称未設定
12/09/22 01:06:41.96 vkvJjimq0
>>277
正解

279:名称未設定
12/09/23 16:41:15.27 L1ayzhIM0
Gmailでメール送信するのをMail.appとか使わずに実現したいんだけど、
もしかして無理? 添付も付けたい。

280:名称未設定
12/09/23 17:54:37.56 f2zG4Rg70
根性次第、諦めたら負け

281:名称未設定
12/09/23 18:06:43.59 L1ayzhIM0
VBだと簡単にできたからapplescriptでも簡単にできないかと思ったが、根性しだいか。

282:名称未設定
12/09/23 18:07:23.71 COMXLM9w0
UIスクリプティングでがんばるかバックグラウンドで自動処理できるクライアントを探す

283:名称未設定
12/09/23 18:08:46.37 COMXLM9w0
VBではどういう手法を使ったの?

284:名称未設定
12/09/23 18:33:52.24 L1ayzhIM0
VB Gmail で検索
これとは違う方法でもスクリプト組めたよ、昔。

285:名称未設定
12/09/23 18:47:02.65 /YbK3wMl0
VBとか、特に最近の.NetFrameworkを使ってる物は、
アプリケーション自体を作成出来るようにして有る、
というかライブラリでフォローしてるので、色々出来る。
AppleScriptは、基本的にアプリケーション間の連携の為に存在しているので、
それ単体で何かしようとするのは割りと難しい。
do shell scriptとかOSAXとかScriptingBridgeとか何らかのアプリを呼ぶとか、
そういう方向で頑張りましょう。

286:名称未設定
12/09/23 18:54:51.93 sIlyJ1Vb0
AppleScriptは話し言葉の文法が逆に障壁になるw
一見初心者に向いてそうに見えるが、ちょっと思い通りのものを作ろうとすると、
結局内部のコンピュータ動作の仕様を意識をせざるを得ない。
今だったらJavaScriptの文法でやってくれた方が、ずっとフレンドリーだね。

287:名称未設定
12/09/23 21:19:16.49 Mq5nRKqe0
URLリンク(docs.komagata.org)
Gmail に sendmail してる記事を発見。
これができれば、あとは簡単かと

288:名称未設定
12/09/23 21:31:55.34 L1ayzhIM0
>>287
そういう情報待ってました! 面白そう! ありがとう!
できそうだね。いやー、すげー嬉しい。

289:名称未設定
12/09/25 22:11:38.53 jFqlnjA50
どなたかファイルの入っているフォルダをゴミ箱を経由することなく完全に消去する方法を
ご存知ないでしょうか。RAMディスク上で作業をしているのですが、しょぼいマシンなので
RAMディスクの容量を稼げません。毎度毎度ゴミ箱を確実に削除するのは面倒です。
なにかいい方法はないでしょうか。

290:名称未設定
12/09/25 22:37:36.04 kI+ZEOgl0
まずどうやってRAMディスクをつくってるのかな?
やりたいのはRAMディスク上の任意フォルダを一発で削除したいってこと?
RAMディスク作り直しでの一括クリアじゃダメってことなんだよね?

291:名称未設定
12/09/25 22:45:37.46 jFqlnjA50
>>290
RAMディスク作り直しがゴミ箱を空にするのと同じくらい面倒なような、、、、。
使っているのは適当に調べたEsperance DV for Macです。

292:名称未設定
12/09/25 23:46:25.12 kI+ZEOgl0
それならターミナルで
$ rm -R hogeFolder
でできるから、あとはAppleScriptからdo shell scriptなりなんなりでどうとでもなるよ
注意としてはrmは強力なコマンドなので変な入力をしないように気をつけること

あとはがんばってね
何かあれば>>1のとおり質問して

293:名称未設定
12/09/26 00:06:58.70 PzOszXZe0
別の階層に消したいフォルダと同じ名前の空フォルダ作って、
それをドラッグしてきて上書きしちゃうとかは?

294:名称未設定
12/09/26 08:46:59.30 XaAyAJlI0
URLリンク(forums.macrumors.com) の下の方に即時削除のスクリプトあるから試せば

295:名称未設定
12/09/26 11:10:22.36 XcMU52VV0
RAMディスク内の.Trashsのアクセス権をどうにかする

296:名称未設定
12/09/26 22:42:58.16 fMb9tbRb0
>>292
あまりグダグタ書いてもあれかと思い書かなかったが、当然それはやった。
でも、「フォルダ」は削除できないことがある。
で、やはり、>>294に近いスクリプトになったが、ただフォルダ(とその中身)を
消すだけにたいそうなスクリプト書くのもどうなのかと。
aFolderがフォルダーと仮定して

tell application "Finder"
set aFolder to selection as alias
do shell script "rm -rf " & quoted form of POSIX path of aFolder
end tell

で消えるフォルダもあれば消えないフォルダもある。
削除できない理由が知りたい、という話なんだけど。
実際にフォルダーを消してみて、百発百中完全削除できてるの?

297:名称未設定
12/09/26 22:49:22.35 fMb9tbRb0
スマン。追加。
たとえば上記のようなスクリプトをスクリプトエディタ上から実行すると削除できる。
上記のスクリプトを含むドロップレットを作成し、ドラッグアンドドロップすると削除できる。
そのドロップレットにドラッグアンドドロップするようなスクリプトを作って実行するとエラーを吐く。
Xcodeで作ったプログラム内に>>296のスクリプトを直接組み込んでも、ドロップレットを
作ってそこにドラッグアンドドロップするように組んでもエラーを吐く。

これ、どういうことなのかと。

298:名称未設定
12/09/26 23:01:56.47 cbaDsA900
とりあえずエラー番号とメッセージくらい貼ろうぜ
そのスクリプトだとselectionが空だったり複数だったりするとエラーになるだろうがそれのことじゃないよな?
あとドロップレットならできてるようだがそれではダメな理由は?

299:名称未設定
12/09/27 00:33:31.32 VMRCu/PO0
>>296
フォルダが消せなかった時に、それをターミナルから rm -r するとどうなりますか?
消せないならどういうエラーが出ますか?

アクセス権的な問題なら sudo を噛ませるってことになりそうだけど、それはやりましたか?


300:名称未設定
12/09/27 13:22:48.25 pTZ8qoWnP
フォルダアクション内でリピート処理をしているのですが、
最初の1ファイルを処理したところで止まってしまいます。
ここでよくわからないのは、適当なところにdisplay dialogを入れてやると問題なく動作することです。
何らかの処理に時間がかかっているためかと思い、delay 1や do shell script "sleep 1"
を挟んでみたのですが、改善せず。時間を増やしてみてもやはり止まります。
他方、display dialog giving up after 1だと動きます。
このようなケースで考えられる原因は何かありますか?

301:300
12/09/27 15:53:24.64 pTZ8qoWnP
補足です。
「最初の1ファイル」とは、
複数ファイルを同時に入力した場合や短時間に複数ファイルを入力した場合に
最初の1ファイルを処理したところで止まってしまうということです。

302:名称未設定
12/09/27 20:49:06.32 1JcDJY+kP
>>301
実際のスクリプトがないし、そのフォルダアクションをどう使ってるのかわからないので
答えようがないけど、可能性としてはなにかの処理をして多数のファイルを一度に
フォルダアクションのついているフォルダに突っ込むことになり処理が追いついていない
んじゃないかなあ。いずれにしてももっと具体的に質問とコードを晒さないと答えられない
と思う。フォルダアクションじゃないとだめなのか? 普通はそういう場合ドロップレットに
ドラッグアンドドロップだと思うのだが。状況がわからん。それからコードは100行くらいは
書いているのか? それとも単純な20行くらいのものなの?

303:名称未設定
12/09/27 21:07:41.17 8Ztx9h270
うん答えようがないな
フォルダアクションは10.6のころに多少改善されたがそれでも単純な通知とか以外の目的で使うのはあんまり勧められない

304:名称未設定
12/09/27 21:21:32.91 8fBA9LyR0
なんかマルチスレッド周りが原因なのかねぇ?
1つずつファイルを投入すれば、普通に処理されるけど、
複数だと、多重に処理が走って、デッドロック的な何かで処理が止まるとか。
でも、DisplayDialogという形でGUIスレッドを挟むと、
多重処理がGUIスレッドでブロックされてDisplayDialogを抜けると、
複数のファイルをリストか何かで纏めて貰えるから、処理が出来る、とか。
フォルダアクション使った事ないから、思いっきり推測だけど。

305:名称未設定
12/09/27 21:49:38.91 1JcDJY+kP
>>300
どういう環境で実行してるの?
アプリにして実行しているのか、
単純にフォルダアクション設定したフォルダにドロップしてるだけなのか
それとも他のアプリを使って処理の一連でフォルダアクションしてるのか
それともXcodeでapplescriptアプリケーション作ってその中でフォルダアクション
をかませてるのか。

その「処理」は何をしてるのか
他の汎用アプリをapplescriptからコントロールしているのか
applescript、もしくはファインダーくらいでコピーとか名前の処理とかするくらいなのか
考えられることがありすぎて答えられんな。

306:名称未設定
12/09/27 22:03:49.35 1JcDJY+kP
もしくは、display dialogしてるアプリケーションがactivateなりtellなりされてないとタメ、とか。

307:300
12/09/28 14:48:26.04 wa2Fn6GzP
みなさんありがとうございます。
Script自体は結構な長文な上、原因の見当がつかないためベタ張りになってしまうので、
抽象的な質問になるのを承知で控えました。
録画ファイルの自動エンコードやフォルダ分け処理をしています。
基本的には完全放置でフォルダを監視したいのでドロップレットではイマイチです。
途中にやや怪しい箇所があったので書き換えたところ最初の1ファイルで止まることはなくなりましたが、
やはり多数のファイルが入力されると途中で止まってしまうようです。
全体をくくったtry on errorにもひっかからないので、
止まった場合、そもそも処理に突入していない感じがします。

そこで
on adding folder items to this_folder after receiving input_items

on open input_items
tell application "Finder"
set this_folder to (parent of (path to me) as text) as alias
end tell
としてドロップレットに書き換え試してみたところ、こちらは問題なし。
display dialogを挟むとなぜ動作するのかという疑問は残りますが、
フォルダアクション自体に問題があるのかもしれません。

もっとも、多数のファイルが実際に入力されることはまずあり得ないので、
とりあえずはこのままでいこうと思います。

308:名称未設定
12/09/28 19:29:23.38 CKaBPbc00
>>307
だから~スクリプト全体の流れというか概要を書かないと誰にも分からないんだよ。言葉で説明できないからちゃんと動くスクリプトが書けないんじゃないの?

309:名称未設定
12/09/28 20:10:08.98 vDKH28m/0
本人がもういいって言ってるんだからさー

310:名称未設定
12/09/28 20:48:53.01 Rz0yv2bZ0
Safariに表示してるWebページのボタンとかテキストフィールドをいじるのってJavaScript使わないと無理ですよね?

311:名称未設定
12/09/28 21:46:15.54 zYD/SRbg0
>>307
おれも>>308-309に同感だがひとつ
ドロップレットなら動くということであればフォルダアクションでドロップレットを呼び出したら?
フォルダアクションがファイル書き込み終了までちゃんと待ってるって前提だが
フォルダアクション→スクリプトを起動→フォルダアクションとは独立して指定フォルダの内容を取得して処理

>>310
無理じゃない
具体的にはUI Scriptingを使う方法と、Safariから少し離れてもいいならdo shell scriptでcurlを呼び出す方法が使える
何をしたいかにもよるが

312:名称未設定
12/09/29 10:18:37.81 /qWr+BlA0
>>307
なるほど。
taskenc.vbsとか参考になるような気が。
処理が重ならないようロックするファイルでも作って処理待ちすればいいよ。
Applescriptがそれだけわかる人なら
簡単なvbsも仕組みくらいはわかる。
仕組みだけパクればいい。
ちなみに録画システムはどんな感じ?
そっちのほうが興味津々。
よく知らないけどrecpt1とかたたく?

313:310
12/09/29 11:07:52.01 GFCtI0SI0
>>311
あーなるほど。ボタン等の要素を指定するんじゃなくて、キーボードの操作をエミュレートしてtabやenter等を使っていくんですね。
Webページの要素の位置が分かるわけじゃないからマウスを使うのは厳しそうですし。

たしかにとりあえず使えそうです。JavaScriptはまだ勉強していないのでこれで行こうと思うます。
ありがとうございました。

314:名称未設定
12/09/29 18:27:23.59 CVZS/X/I0
>>313
「ボタン等の要素を指定」もできるよ
Accessibility Inspector.appで検索

315:名称未設定
12/09/29 21:59:16.26 FjrT2X960
>>307
フォルダアクションは多重起動しないんじゃないかな?
何か追加された時点で起動するから、
スクリプト起動後input_itemsに入らなかったものは
無視される気がする。

316:名称未設定
12/09/29 22:12:04.60 7g4OoFWr0
>>315
Folder Actionはフォルダ変更検知をトリガーにフォルダ内容から差分アルゴリズムで
パラメータを生成してるから、元々input_itemsに信頼性は無いよ。
数百項目をフォルダにドロップしてみれば判るけど、メッセージが分割されたり、
遅れたり、一部が欠けたりってのがランダムに起こる。

317:310
12/09/30 08:43:07.75 Dfn5Npr10
>>314
うわ、Xcodeにこんなの入ってたんですね!
もっと早く知りたかった・・・。

めちゃくちゃ便利です。ありがとうございます。
もっと早く知りたかった。

318:名称未設定
12/10/01 07:09:05.76 nqp4Hwkn0
プログラマーに必要な資質
それは、根気、意地、捨て身

319:名称未設定
12/10/01 10:16:28.40 4kxHjqYR0
馬力

320:名称未設定
12/10/03 01:41:13.55 ytnFlbFs0
ボタンを叩く力

321:名称未設定
12/10/05 08:51:38.42 UMJg8vzN0
いろいろありファイルをグローバル変数に持つときはかならずPOSIXのテキストで
持つことにした。
使うときだけエイリアスにもどす。
do shell scriptの時はそのまま使う。
1000行超えるスクリプトをいくつも行ったり来たりするそれなりのものを作る人
にはおすすめ。

322:名称未設定
12/10/06 03:34:54.25 YlWOEjJo0
ってそれ普通じゃね?
エイリアスとは簡単に相互変換できるんで、その辺は好みの問題だけども

323:名称未設定
12/10/06 08:20:01.55 /rvC5gYd0
applescriptの変数は自動で適切な形に変換してくれて
便利だけど、きちんとasなどで整えないと
思わぬところでエラーになる。
たとえばファイル関係の変数のリストとかを型を意識しないでrepeat with inで
選別処理したリストから取り出した変数をこれまた適当に扱うとエラーになる。
最初、エラーメッセージを見てもコードを見直してもエラーの理由が
分からず、とても苦労した。

324:名称未設定
12/10/07 06:13:37.05 Cra8Rfm30
ボタンを押す力が足りねぇんだよ

325:名称未設定
12/10/08 02:04:26.10 MLAYOg3s0
>>323
それ変数じゃない

326:名称未設定
12/10/09 07:00:10.46 X72EZmDP0
AppleScriptに詳しい方いますか!?
至急のお願いがあります!

327:名称未設定
12/10/09 09:30:03.79 YOJsW3Hf0
もう10時間pcの前で待っているんだが。

328:名称未設定
12/10/09 09:33:43.15 YOJsW3Hf0
俺からも相談するけどCDイジェクトを強制実行
する方法を教えてくれ。

329:名称未設定
12/10/09 10:05:32.90 VaEbKy970
>>328
つ 事務クリップ

330:名称未設定
12/10/09 16:47:41.83 /t6vPy+c0
強制実行ってどういう意味?

tell application "Finder" to eject (disks whose its ejectable is true)

じゃダメなのかな。

331:名称未設定
12/10/09 21:28:46.98 ZXqNfbYJ0
>>330
そんなようなことしてるんだけど、イジェクトできなかったり、1分とか異常に時間がかかったりするんだよ。
なんでなんだか理由が分からない。

>>329
display dialog "CD出てきません。クリップで突っついてね”

これはかなり使える。メモメモ。

332:名称未設定
12/10/09 22:13:04.89 yf7g5seR0
>>277
確かにSystem Eventsじゃ無理だな。rubyじゃないと。
tell application "Finder" to activate
right_cllick(100, 100)
selectMenu(1)
on right_cllick(x, y)
do shell script "/usr/bin/ruby -e 'require '¥¥''osx/cocoa'¥¥''; event=OSX::CGEventCreateMouseEvent(nil, 3, OSX::CGPointMake(" & x & "," & y & "), 0); OSX::CGEventPost(0,event);'"
do shell script "/usr/bin/ruby -e 'require '¥¥''osx/cocoa'¥¥''; event=OSX::CGEventCreateMouseEvent(nil, 4, OSX::CGPointMake(" & x & "," & y & "), 0); OSX::CGEventPost(0,event);'"
end right_cllick
on selectMenu(n)
tell application "System Events"
repeat n times
keystroke (key code 125)
end repeat
keystroke space
end tell
end selectMenu

333:名称未設定
12/10/09 22:19:52.20 yf7g5seR0
>>332
¥は半角の\に変えてくれさい。

334:名称未設定
12/10/09 23:13:45.08 a3ZLzfRg0
>>333
ruby -r osx/cocoa -e ... とするとバックスラッシュを使わなくて済む

335:名称未設定
12/10/10 03:56:36.54 VVcVJv9E0
後はquoted form ofを使うとか
そもそもrubyだったら囲み表現が色々あるしな

336:名称未設定
12/10/10 14:15:31.30 T1hE9/Av0
>>334-335
ありがとー。参考になる。というか、お前らそこまで詳しいなら>>277に教えてやれよw
あいつコンテキストメニューが出せないって泣いてたぞ。

337:名称未設定
12/10/10 15:09:08.25 t3t1aVNq0
頭のおかしい人がいると聞いて

338:名称未設定
12/10/10 16:23:36.22 /x0l2izR0
>>327=>>331=>>336かなw

339:名称未設定
12/10/10 16:47:04.36 uBPQgQX20
弱体脂肪肝が小手先の理屈こねてもダメダメなんだよ
グランド10周 !

340:名称未設定
12/10/11 00:28:59.32 fqsiK4Hk0
>>336
RubyCocoa使う方法はちょっとググりゃ出て来るからなー
追加質問でもあれば誘導するつもりはあったけど、無かったので流れただけ

341:名称未設定
12/10/11 12:12:32.88 rv1rRGFD0
276だけどなぜいまさら槍玉に挙がったのか理解できん
この程度の質問をしてくる人になんで上から目線で物言われなきゃならんのか……

あのときはSystem Eventsでやる方法や自分の見落としがあれば知りたかったがなさそうだったので277で自己完結してしまった
その後レスしなかったのはすまない。確認させてくれた>>278に感謝
結局代替手法を自分で実装しました

342:名称未設定
12/10/11 12:26:59.70 qzhp0FB40
>>341
>>336はユルいんだよ。>>327-328,331を見れば分かるでしょ。
>>337も何か言ってるじゃん。
でも、ユルい人はそれなりに気を使ってるんだと思うよ?たぶん。

343:名称未設定
12/10/11 20:17:33.32 hkMHF4R80
>>341
問題ってのは目の前のそれが解決してはい終わりじゃないんだよ。

自分が思った疑問なり問題なりを結果報告するなり、コードで示すなりして形に残し、
後に他の誰かが同じような問題にぶつかった時、助けになるようにしておくんだよ。
そして、その誰かは将来、別人となった自分かもしれない。

いくら技術力や知識があっても、そういう意識が欠如していたらプログラマーとして
恥ずかしいと思って欲しい。

俺の書き込みの意図はそういうところにあるんだけど、ここまで反発されるとは思わなんだ。

344:名称未設定
12/10/11 21:10:25.52 asqFgytR0
>>343
あなたの書き込みがどれかは知らんが少なくともそういう意識は持ってるつもり
結局おれ自身はここでSystem Eventsでは右クリやその後の操作ができないということを確認したにすぎないが
>>332なんかが後の人のためになりそうなコードを書いてくれてるし、それでいいんじゃないのか?
自分は使わなかったけれども
あとここでは晒したことはないがAppleScript関係のサイトやってるから情報共有はだいぶやってるよ

取り立てて336を責めたいわけではないのでなんか申し訳ないが、ググればわかる疑問を書かれてもなというのが正直なところ

345:名称未設定
12/10/11 21:13:24.18 fqsiK4Hk0
>>341
質問しといて聞きっぱなしかよって(>>343みたいな)状況がたまにあるのも確かだけど、
>>276-278の流れがそうだとは思わない
問題点は見えてた様なのでシンプルに回答してその後の>>340という感じで、
自力でどうにかしたんだろうなと思っていた
だから気にしなくていいよ

>>332がなんで今更拾ったのかは知らんが、別に槍玉に挙がったってのとは違うんじゃない?
>>336が余計な事言ったというだけの事

>>343
だったら泣いてたぞ、とかわけわからん事書かなきゃいいのに

346:名称未設定
12/10/11 21:18:01.19 asqFgytR0
>>345
あーありがとうなんか救われたわ
泣いてたのはおれだけどw、343も悪気があったわけじゃなかろうし
こんなつまらん話引っ張っても顰蹙買うと思うのでこの話はここまでということでいいかな

そういうわけで次の質問ある方どうぞ……

347:名称未設定
12/10/11 21:21:22.71 asqFgytR0
申し訳ない s/343/336

348:名称未設定
12/10/12 11:42:02.18 eBWPGq9O0
test

349:名称未設定
12/10/12 19:55:59.15 y2s65ODD0
少林寺みたいに、指先を鍛えないとな

350:名称未設定
12/10/18 23:21:51.08 IaXfW8pO0
どうしてもわからないので教えてください。
AppleScriptをXcode3.2でプログラミングしているのですが、
自宅のマシンと会社のマシン両方でコーディングしています。
自宅がライオンで会社が雪豹。AppleScriptで操作するプログラムが
微妙にバージョンや名前が違っていてうまく両方で動かせません。
こういう場合、どうすればいいんでしょう。
使われるアプリケーションのバージョンによってもパネルの配置が
変わっていたりしてGUIスクリプティングとかもバージョンに
よって変えたいんですが……。


351:名称未設定
12/10/18 23:36:00.95 9NoaaAZ80
>>350
両方でコーディングしかつ両方で使うということかな?

アプリのバージョンはpropertyなどで取得できるので、if文で挙動を変えればOK
自動で判定するのが面倒だったり自信がなかったらスクリプトの最初にdialogで分岐させればよい
GUI Scriptingと書いてるのでわかってるとは思うけどある程度はだだ書きせざるをえないけどしょうがないね
この辺のキーワードでググってわからなかったらまたどうぞ~

352:名称未設定
12/10/19 00:01:20.61 wGn3ji8+0
どのレベルかよくわからんので一応補足しとくと
if (会社の環境) then
--会社での処理
else
--自宅での処理
end
というようなことだからね
この書き方でも共通の部分はユーザ定義ハンドラにしておけば無駄は省ける
全体を丸ごとifで囲むか処理ごとに判定させるかは目的による
あと>>1を読んでくれ

353:名称未設定
12/10/19 07:53:48.93 HE60EVbW0
>>351->>352
ありがとうございます。
>>351
そうです。現在は主に10.4で動かしていて、コーディングは10.5でやってます。
今度、10.8が会社に導入されるので、当然エラーが予測され、それを少しでも
避けるために、自宅にある10.7で動作チェックをしている状態です。
10.7以降でafpの挙動が変わるということだったのでビクビクしていましたが、
自作アプリ自体は10.7でも動き、ほっとしています。

やることはだいたいわかりましたが、コーディングしたあと、
Xcodeならコマンド-Kとか、スクリプトエディタならコンパイルすると
今、コーディングしている環境にないアプリがコード中でtellされていると
「○○○はどこにありますか?」と聞かれたりして困ってしまいます。
あれはどう対処すればいいんでしょうか?
同じアプリなのにライオンバージョンと雪豹バージョンで名前も
GUIも違い、10.8もまたアプリ名が違っている可能性もあり(~Premiumみたいな)、
困ってます。具体的なアプリ名はご勘弁を。

354:名称未設定
12/10/19 13:28:03.39 LxaM7ETv0
OSのバージョンごとにスクリプトを別ファイルにして、
実行する時にOSのバージョンチェックでスクリプトをロードすればいいじゃん?

355:名称未設定
12/10/19 17:08:03.41 84FiH7oE0
>>353
どんな命令が実装されてるかとかはアプリケーションによって違うので、
実際にインストールされてない環境ではコンパイルも通らないのでそういう表示が出るんだけど、
tell application ~ のところが違うとアプリケーションが特定できないわけだね

構成がまるっきり違うなら>>354みたいに分けた方が早いけど、
アプリケーション名は違うけどパスは一緒みたいな場合はパスで指定したりとかもできるよ

356:名称未設定
12/10/20 01:26:57.84 Ic2DAvUn0
強くボタン押せばいいんだよ

357:名称未設定
12/10/20 01:33:49.97 rIYrm+/Q0
>>356
いいかげんにしろ

358:名称未設定
12/10/22 07:32:23.29 EvJQ8ABw0
画面を殴れ!

359:名称未設定
12/10/22 09:59:13.64 0Emgdlz00
つまらん

360:名称未設定
12/10/23 01:32:49.23 +e0m/KFD0
質問です。ファイルメーカーで投資信託の管理をしていてヤフーのサイトからその時点での基準価額を引っ張ってくるのに
ファイルメーカー内のスクリプトからアップルスクリプトを呼び出して使っていました。そのスクリプトは昔ここで親切な方が教えてくださったものです。
そのアップルスクリプトの参照先のヤフーのアドレスやソースが変わってしまったので参照できなくなり、
書き換えようと思ったのですが私にはできませんでした。もとのスクリプトは

set theCode to the clipboard
set theNumber to count theCode
set theURL to "URLリンク(quote.yahoo.co.jp)" & theCode
set theCurl to "curl -s " & quoted form of theURL
set theIconv to " iconv -c -f euc-jp -t utf-8 "
if "=" is in theCode then
set thePerl to "perl -ne 'if( m{<td nowrap align=center>[0-9]+:[0-9]+</td><td nowrap><b>(.*?)</b>} ){ print qq{$1} } '"
else if theNumber = 8 then
set thePerl to "perl -ne 'if( m{<td nowrap align=center>[0-9]+/[0-9]+</td><td nowrap><b>(.*?)</b>} ){ print qq{$1} } '"
else
set thePerl to "perl -ne 'if( m{<td nowrap align=center>[0-9]+:[0-9]+</td><td nowrap><b>(.*?)</b>} ){ print qq{$1} } '"
end if
set theText to do shell script theCurl & " | " & theIconv & " | " & thePerl
以下略(theTextをファイルメーカーに引き渡す)

でした。現在のヤフーの参照先は、たとえばtheCode=998405.Tのときは URLリンク(stocks.finance.yahoo.co.jp)
で、そのソース内の <td class="stoksPrice">753.72</td> の部分の数字だけを取ってきたいです(この数字が時間によって変化する)。
このアドレスとソースの変化を元に、書き換えたらよさげなところを書き換えてみましたが、私の能力ではtheTextがからっぽになってしまいます。
どこをどうなおしたらよいか、なにかヒントをいただけたらありがたいです。

361:名称未設定
12/10/23 03:54:13.88 xyY8mmAb0
curl -s url | perl -pe 'm{<td class="stoksPrice">(.*?)</td>};$_=$1'
こんなのでいけるんじゃないかな。あと、iconvは不要でしょ。

362:360
12/10/23 10:15:25.02 jbdjydpf0
>>361
ありがとうございます。perlの部分は全然わからないまま
言われた通りにしてただけなので、不要かどうかとかよくわからないのですが
家に帰ってから調べつつやってみます。


363:360
12/10/23 20:42:43.91 +e0m/KFD0
>>361
家に戻ったのでやってみたらちゃんと動きました。ありがとうございました。
perlの初心者向けサイトを読んでいたら、意味も何となく分かりました。
ちょっとだけperlってプログラム言語というだけでビビっていましたが、
正規表現がある程度分かるならそんなに敷居が高いわけじゃないような気がしました。
スレ違いの質問だったかもしれませんが勉強になりました。ありがとうございました。

364:名称未設定
12/10/25 07:21:43.86 0ZDfVi860
キーボードに熱いコーヒー掛けてみろ

365:名称未設定
12/10/26 21:56:10.58 vb135nHm0
うちのNASが本当に糞でapplescriptのduplicateとかmoveを受け付けない。
しょうがないのでdo shell script "cp ~"みたいなことしてるんだけど、
そうするとプログレスバーが出ないから、でかいコピーをしていると
コピーできてるんだかどうだかわかりゃしない。なんかいい方法ないかね。

366:名称未設定
12/10/26 22:53:25.02 BP1JI0BK0
ターミナルを開いてそこで cp -v や rsync --progress を実行するようにする

367:名称未設定
12/10/26 23:12:32.68 vb135nHm0
>>366
vオプションなるものを初めて知ったアホです。そんな土素人にヒントをあとひとつ。





キーを叩くように打てとかそういうのはナシで。

368:名称未設定
12/10/27 00:26:59.39 zheXSE0L0


do shell script "cp ~"
のとこを
tell application "Terminal"
activate
do script "cp ~"
end tell
に置き換えるくらいでいけるんじゃ?と思って書いたけど...

369:名称未設定
12/10/27 00:28:09.49 zheXSE0L0
なんか動転して -v 入れ忘れたw

370:名称未設定
12/10/27 10:30:36.41 9ZG0syRX0
>>368
はじめてターミナルapplescriptから触ったけど、面白いね。
今後は do shell script と tell application "Terminal" to do script を使い分けるぜ!
感謝!!
しかし、こんな楽しい言語をアップルはなきものにしようとしてるんだもんなー。いけすかない。
この前、ふとエラーメッセージ見てて思ったけど、エラーメッセージも本当に
自然言語に近いよな。きちんと変数とか書いておけば素人でも意味が分かる。
さあWIN8先生と8350でも買いに行くかな。

371:名称未設定
12/10/28 09:31:14.68 XKhBrrhn0
うちはまだ10.8にはしてないが
10.8のスクリプトエディタって未コンパイル状態で保存できる
というのを今日知った
ちょっとうらやましい

372:名称未設定
12/10/29 23:56:52.12 7FD2YGjA0
AppleScript
もっと高速にならない?

373:名称未設定
12/10/30 00:07:45.01 X0+lKgUl0
なりません
ちゃんとアルゴリズムは最適化してるんだろうな
AppleScriptの特徴や特有の手法も踏まえて

374:名称未設定
12/10/30 10:00:42.73 wKE6IXyVP
>>372
あんたのmacが遅いんじゃない?

それはそうと最近whoseフィルターにはまってる。
たとえばwindow内にtab viewがひとつしかないとき
item 1 of (every tab view of window 1)
というような指定ができる。
これのいいところは同じ構造をもっているものについては
名前で指定しているわけではないので
簡単にスクリプトが流用できる。
tab viewの中に同じ構造のtab view item
があるようなときとても便利。
異論はおおいに認める。

375:名称未設定
12/10/30 11:13:33.27 Vo53HExy0
アップルスクリプト
オートメータ
アドビ系のアクション
MS オフィス系のマクロ

全部連動させたい

376:名称未設定
12/10/30 12:46:01.70 qpVuTotY0
>>375
できるやん

377:名称未設定
12/10/31 10:17:52.26 eiKDe4IW0
>>374
whoseでフィルタ参照するのは至極基本的な話だけど、挙げてる例がよくわからん

>item 1 of (every tab view of window 1)
whose使ってないし、これじゃ「tab view 1 of window 1」と同じじゃね?

whoseの使い所は単純な名前または順番による参照ではなく、
その他の属性やそれらを組み合わせた条件で参照を特定できるところでしょ

378:名称未設定
12/11/01 07:44:16.81 MJzSGcKW0
item 1 of ((every tab view of window 1) whose...
と書こうと思って忘れたんだろ

379:名称未設定
12/11/02 05:56:43.96 P/h0onbd0
>>376
簡単にできるのない?

380:名称未設定
12/11/02 15:17:34.04 zJ9dhKE40
>>379
ググれカスおよび>>1

381:名称未設定
12/11/03 04:36:12.74 jkc2LB270
あるよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch