AppleScript アップルスクリプト 質問、発表 6

レス数が1000を超えています。これ以上書き込みはできません。
1名称未設定2013/12/21(土) 21:50:45.07ID:1PJJFexL0
質問、発表どっちでもスレ。

■注意
安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
わからない点、エラーが解決できない点についてはスクリプト片を添えて質問すること。
OSバージョンも忘れずに。

■参考
AppleScript Language Guide
https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/
TN2065: do shell script
https://developer.apple.com/library/mac/technotes/tn2065/
AppleScript: The Language of Automation
http://www.macosxautomation.com/applescript/
MacWiki - AppleScript
http://macwiki.sourceforge.jp/wiki/index.php/AppleScript
鳶嶋工房 / AppleScript
http://tonbi.jp/AppleScript/
AS Hole(AppleScriptの穴)
http://piyocast.com/as/
■過去スレ
1 http://pc11.2ch.net/test/read.cgi/mac/1174045850/
2 http://pc11.2ch.net/test/read.cgi/mac/1197443062/
3 http://pc11.2ch.net/test/read.cgi/mac/1223026902/
4 http://anago.2ch.net/test/read.cgi/mac/1256127156/
5 http://anago.2ch.net/test/read.cgi/mac/1330350325/

2名称未設定2013/12/22(日) 05:43:56.73ID:5PKBbx/h0
('仄')パイパイ

3名称未設定2013/12/22(日) 22:55:07.58ID:+aPbluVJ0
ここ数年まったく書いてないなAS

4名称未設定2013/12/27(金) 19:35:53.59ID:9xzAYkXqi
マベにてosascriptをセキュリティープライバシーに登録するのはどうやるのでしょう?

MLではできるkeystroke呼び出しが、マベでは動かないです。

5名称未設定2013/12/27(金) 20:51:21.16ID:HgE/UmENi
>>4
一度試行すると実行するアプリが勝手にリストに出現するので、
そのチェックを入れる感じだったと思うが

ターミナルだったらまんまターミナルだし、
スクリプトメニューだとSystemUIServer

たまに何故かosascriptそのものが出てくることもあったがよくわからん

6名称未設定2013/12/30(月) 22:59:41.07ID:9WnN6qsy0
イベントログの履歴をテキストファイルに書き出すコマンドって存在しますか。

とある事情で完全にスクリプトを流したというエビデンスにしたいのです。

7名称未設定2013/12/31(火) 03:05:43.24ID:A6/iRGot0
イベントログってdo shell scriptとかしか表示されないよね
エビデンスが欲しいなら
動作ごとに各成功フラグを追加して最後にそれをテキストに書き出せば

8名称未設定2013/12/31(火) 10:06:45.81ID:w3RedxCD0
>>7
レスありがとう。

質問の仕方が悪かったのだが、実行するスクリプトは、とある文字列をユーザに入力させる。

その入力された文字列が履歴に残っているようなので、丸ごとテキストで書き出すことが出来ればと考えた。

9名称未設定2014/01/02(木) 08:33:24.40ID:yEVH1Y6SP
osascriptで動かすとき、標準出力に文字出力するにはどうするのでしょうか?

10名称未設定2014/01/02(木) 09:51:11.72ID:lE+LzJk20
実行ステータスとしてなら return (reutrn無しでまんまでもだけど)
実行中に逐一ならdo shell scriptでかなあ

11名称未設定2014/01/02(木) 09:56:49.83ID:lE+LzJk20
/dev/stdoutをファイルとして開いてそれに書き込むってのもあるな

12名称未設定2014/01/02(木) 10:31:11.84ID:sFgAgMLA0
script初めだ

display dialg "Happy New Year!!!"

今年もAppleScriptにとって良い年でありますように。

13名称未設定2014/01/02(木) 10:33:47.47ID:sFgAgMLA0
× dialg
○ dialog

なんてこったorz デバッグ初めもやっちまった。

14名称未設定2014/01/02(木) 12:10:19.86ID:ipDSuQZK0
直前のスペースも全角だから注意w

15名称未設定2014/01/06(月) 19:04:31.61ID:7CI/xVnp0
今年もよろしくお願いします。
applescriptでillustratorの行間を変更しようと試みていますが
以下たけうちさんのを参考にと思いillustratorライブラリをみていますがなかなか難しいですね。
ちなみにscriptは
tell application "Adobe Illustrator"
tell document 1
tell text frame 1
tell paragraph 1
set justification to full justify last line left

--right以外にも下記の種類がある
--center/full justify/full justify last line center/
--full justify last line left/full justify last line right
--/left/right
end tell
end tell
end tell
end tell

これって行間の解説をみてみるとleadingというのに当てはまるようですがleadingに
leading (real) : the amount of space between two lines of text (in points)
とあります
(行間をつめたいけどできない)でやりたいのだがどなたかご教授ください。

16名称未設定2014/01/06(月) 23:03:17.53ID:OUsnDFhy0
>>15
tell application "Adobe Illustrator"
tell document 1
tell text frame 1
tell paragraph 1
set auto leading to false
set leading to 10 --単位はpt
end tell
end tell
end tell
end tell

とかになるよ。
数値適用する前に改行の自動をオフにしないとダメ。
paragraphを対象にしていると最終行が改行で終わっているとleadingに数値適用するとエラーとなるので
text frame全体に適用するにはevery paragraph(paragraphs)ではなくevery line(lines)で

tell text frame 1
set auto leading of lines to false
set leading of lines to 10
end tell

↑tell text frame外省略

17名称未設定2014/01/06(月) 23:49:20.98ID:7CI/xVnp0
>>16
どうもありがとうございました。m(_ _)m
set auto leading of lines to false
set leading of lines to 10

この辺りのやり方(文法みたいのがどこかにあると思いますが)がどうもわかりません。
leading (real) : the amount of space between two lines of text (in points)

から
auto leading こういう風な lines to false とか どう学べばそういう答えがでるのか不思議です。
applescriptは中学英語なみとかいわれているけどライブラリをみる限りチンプンカンプンですね。

set leading of lines to 10 なんか どうひねっても浮かんできませんね。(^^;)

でも行間の操作ができましたのでとても助かりました。本当にありがとうございました。感謝です!

18名称未設定2014/01/07(火) 00:25:10.25ID:WILu6W1O0
>>17
>>16の最後の部分は
tell text frame 1
tell lines
set auto leading to false
set leading to 10
end tell
end tell
これと同じ。
ちょっと値代入するだけなのにtellでくくるのはめんどくさいので
set auto leading of lines to false
set leading of lines to 10
とした。
set leading of lines to 10
は優先される部分をあえてカッコでくくると
set (leading of lines) to 10
カッコ内の△△ of □□ってのは「□□の△△」って意味なので
lines(全ての行)のleading(行間)を10にするってこと。
実は↓これでもOK
set lines's leading to 10

auto leading
は最初スクリプト組んで実行してみたら行間変わらなかったので、
Illustratorの書類見たら改行が自動のままだった。
それから解説のlinesとかparagraphの項目みたら
PROPERTIESにauto leadingって項目があったからfalseにしてみたらうまくいったよ。

用語解説の
(real)は実数
(boolean)はtrueかfalse
他にも色々あるけどそれぞれのプロパティの値は形式が決まっているから代入出来る値もそれに合わせないといけない。
r/oって書いてあるのはread onlyの略で値を見ることは出来るけどスクリプト側で設定することは出来ないって事だよ。

19名称未設定2014/01/07(火) 03:56:23.30ID:A9XxL9bQ0
あけましておめでとうございます。
早速質問なんですが。
変数名を出力する事は可能でしょうか?

例えばこうすると、
property test1 : {"x", "y", "z"}
property testItem : {{test1}, {2}, {3}}

set tmp1 to item 1 of item 1 of testItem
set tmp2 to item 2 of item 1 of item 1 of testItem

log tmp1 & "_" & tmp2 as text

出力は、
xyz_y
となりますが。
これを
test1_y
としたいです。

以下のようにリストの中に"test1"を追加する以外に方法はありますか?
property test1 : {"x", "y", "z"}
property testItem : {{test1, "test1"}, {2}, {3}}

set tmp1 to item 2 of item 1 of testItem
set tmp2 to item 2 of item 1 of item 1 of testItem

log tmp1 & "_" & tmp2 as text

20名称未設定2014/01/07(火) 04:19:36.79ID:A9XxL9bQ0
失礼 アンパサンドの文字参照がダメなようで全角で
log tmp1 & "_" & tmp2 as text

log tmp1 & "_" & tmp2 as text
&を全角にしてます

21名称未設定2014/01/07(火) 12:17:10.13ID:pSl4+Q4s0
それってtestItemにtest1そのものではなくtest1の値を代入してるだけなんで、
変数名どーこー以前の問題ですわ

22名称未設定2014/01/07(火) 12:37:03.68ID:EjQxpbCu0
>>18
>用語解説の
>(real)は実数
>(boolean)はtrueかfalse
>他にも色々あるけどそれぞれのプロパティの値は形式が決まっているから代入出来る値もそれに合わせないといけない。
>r/oって書いてあるのはread onlyの略で値を見ることは出来るけどスクリプト側で設定することは出来ないって事だよ。


解説ありがとうございます。m(_ _)m
なるほどそういうことですか。

どころで全体の文章で行間を変えるには別な記述でしょうか?
現況の
>set auto leading of lines to false
>set leading of lines to 10
では
行間変更では改行がある前は行間ポイントが変更できますが
それ以降の行間は変更がなされないのは他に書き方があるのでしょうか?
>every line(lines)
と変更しても改行後の文には行間は及ぼしません。

どのような記述がよろしいでしょうか?

23名称未設定2014/01/07(火) 12:38:02.99ID:EjQxpbCu0
>>18
>用語解説の
>(real)は実数
>(boolean)はtrueかfalse
>他にも色々あるけどそれぞれのプロパティの値は形式が決まっているから代入出来る値もそれに合わせないといけない。
>r/oって書いてあるのはread onlyの略で値を見ることは出来るけどスクリプト側で設定することは出来ないって事だよ。


解説ありがとうございます。m(_ _)m
なるほどそういうことですか。

どころで全体の文章で行間を変えるには別な記述でしょうか?
現況の
>set auto leading of lines to false
>set leading of lines to 10
では
行間変更では改行がある前は行間ポイントが変更できますが
それ以降の行間は変更がなされないのは他に書き方があるのでしょうか?
>every line(lines)
と変更しても改行後の文には行間は及ぼしません。

どのような記述がよろしいでしょうか?

24名称未設定2014/01/07(火) 13:21:10.16ID:EjQxpbCu0
>23
自己解決しました。すみません m(_ _)m

>text frame全体に適用するにはevery paragraph(paragraphs)ではなくevery line(lines)で

text frame ←これの意味が分かりました。

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

25名称未設定2014/01/07(火) 18:27:44.74ID:DaJojQA60
>>21
いやそれは、分かってるんです
変数の名前を取得する方法があれば教えてほしいのです。
分からなかったので、変数名と同じ名前をテキストでリストに入れて呼び出してたのですが、
それをしないでも、変数名が取得できれば楽だと思ったので、
無いのですかね?

26名称未設定2014/01/08(水) 20:23:55.36ID:99yykXTN0
>>25
変数には名前はないよ。

27名称未設定2014/01/10(金) 19:08:15.63ID:+KoAXPC/0
Illustratorのオーバーフローの検出をしたいのですがネットで色々探ってみると

IllustratorのテキストフレームにはIndesignのようにoverflowプロパティがありません。
...paragraphとlineのキャラクタ数を比較すると表示されていないキャラクタの数を把握できる...
らしいのです。
で、たけうちとおるさんの「オーバーフローを調べる」を元に行間を自由に変更できないかと思い
色々模索しておりますがどうも詰まってしまいました。下記URL参照...頭にhを入れてください
ttp://www.adg7.com/takenote_b/2009/03/12.html

最初の行に
property i : 24   とりあえずトップに挿入する。行間24ptで固定
....
....
....display dialog "オーバーフロー:" のところに下記スクリプトを挿入した
....
tell application "Adobe Illustrator"
tell document 1
tell every text frame
tell every line
set auto leading of lines to false
repeat with i from 20 to i
set leading of lines to i
end repeat
end tell
end tell
end tell

のような感じに行間をテキストボックス内で自動的に収まるようにしたのだが思うようにいきません。

テキストボックスは固定してテキストが少なくても全体が均一になるよう自動行間、自動調整できないかと思案しています。
どなたかご教授よろしくお願いします。

28名称未設定2014/01/11(土) 01:25:24.03ID:bFFRZv4H0
repeat with i from 20 to i
普通こんな記述はしない。
行間の初期値は該当するtext frameから読み取った方が良いし
目的のtext frameがtext frame 1で全行同じ行間であれば
tell document 1の後に
set defLeading to leading of character 1 of text frame 1
1文字目の行間を取得で十分
オーバーフローしてるテキストボックスをの行間を詰めるにしても
行間を少しずつ(例えば0.1ptずつとか)「減らす」記述にしないとダメ。
repeat with i from defLeading to 0 by -0.1
減らす毎に文字がオーバーフローしていないかチェックして
文字が収まったらexit repeatっていう処理が必要
tell every text frame
の辺りも全部のテキストフレームに一括で同じ処理する場合のみ使う。


というかあなたにそのスクリプトはちょっと難しすぎる。このまま進むのは危ない。
ハンドラ(サブルーチン・関数)の使い方も分からないでしょ?
on overflow(tFrame)

end overflow
の部分

まずAppleScriptの基本というか
スクリプトそのものの基本から(Web用のJavascriptでも良いので)勉強した方が良い。
どうしてもApplescriptでって事なら入門書をどうにかして入手して
最初から本の通りにスクリプト入力して実行してはちょっといじって確認して…
みたいなことを繰り返しながら全部通しでやるのが良い。

29名称未設定2014/01/11(土) 10:18:55.69ID:kmKDcWFPP
初心者にイラレほかアドビの主戦級ってけっこう厳しいと思うですの。本当に必要性があれば書くけれど、
私の戦場ではいまだにその需要がない。たぶんイラレで自由自在にスクリプト書ければ黒帯でしょう。

松の内明けちゃいましたが、今年もともに戦いましょう。

30名称未設定2014/01/11(土) 11:54:53.96ID:QDclpEY40
>28
ご教授ありがとうございました。m(_ _)m
>ハンドラ(サブルーチン・関数)の使い方も分からないでしょ?
おっしゃる通りです。使い方がわかりません。
でもillustratorでの行間を自由に変更できないかを模索しています。
勉強不足はわかっているつもりですがAppleScriptをネットなどで調べたりしています。
また、こばやしゆたかさんのAppleScriptリファレンスを持っていますが今のillustrator対応ではありません。
勉強するしか方法はないのでしょうがその方法が多分的外れであるのは承知しています。
それでプロの方からみるとチンプンカンプンだというのも承知の上で恥をしのいで投稿させてもらっています。

仕事上同じ繰り返しなどが多く変更もいちいち手で修正がありすぎてなんとか自動化できるところは自動化したい
そういう思いです。

31名称未設定2014/01/11(土) 17:47:10.22ID:kmKDcWFPP
>>30
ハンドラ

パラメーターは違うけど似たような処理を何度もすることがプログラムにはよくある。
そういうとき、毎回コードを書いてもいいけど、コードがぐちゃぐちゃになる。
だからそういう部分をサブルーチンとしてくくり出して何度も再利用する。これがハンドラ。
そうやってハンドラを部品として沢山作って組み合わせる、というのが基本です。

いきなり核兵器作ろうと思っても作れないの。石つぶての投げ方、ナイフ、弓、銃、ロケット、原子力。
、、、、、いろいろ分かってやっと目的のものが作れるのね。ハンドラはそう、黒曜石で作った
弓矢のやじりくらいではないかと。たぶんあなたが作りたいのは銃くらいのレベルでしょう。
一生懸命やって2か月コースかな。あたしゃそこまでいくのに2年くらいかかってる気がする。

一歩ずつ進むには問題の切り分けが大切。
なにを言ってるかわかんねーと思いますが、ご武運を祈ります。
初心者が一発書きでコードが動いたら、その人すごすぎるよ。
お金払うからいろいろコード書いて欲しいです。

32名称未設定2014/01/11(土) 19:29:50.94ID:QDclpEY40
>31
励ましていただき感謝です。

>一歩ずつ進むには問題の切り分けが大切。

今いろいろなスクリプトを見ています。
その中の働きを自分ながら勉強しています。
的外れ的な質問も多々あるかもしれません
そうのような私に救いの手を差し伸べてくださる皆様には感謝いたしております。m(_ _)m

33名称未設定2014/01/11(土) 23:12:54.53ID:QDclpEY40
なんとか本文を自動行間にする事はできました。皆様ありがとうございました。m(_ _)m

たけうちとおるさんのハンドラを利用してオーバーフローしたテキストに行間を計算させて
必要なテキストボックスのオーバーフローの分を自動計算させる事にこぎ着けました。
まだ改善の余地はありますがなんとか思惑通りになりほっとしています。
今のところ別textframeの行間も一緒に動いているようなので指定したtext frameだけの行間を調整できるようにしたいと思います。
アドバイスありがとうございました。引き続きご教授賜りますようお願いいたします。

34名称未設定2014/01/11(土) 23:13:33.10ID:QDclpEY40
tell application "Adobe Illustrator"
tell document 1 -- ← every document にすると全体のテキストにスクリプトが動くのであえてDocument1にしています
--set defLeading to leading of character 1 of text frame 1
set defLeading to "20" -- ←本文の行間を固定しています。ここは書類に応じて変更したりします。
repeat with tFrame in every text frame
if kind of tFrame is {area text} then
if my overflow(tFrame) then
--display dialog "オーバーフロー:" & contents of tFrame ←ここでオーバーフローしたテキストが抽出されますのでこれを利用しました。
tell every text frame
tell every line
repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
set auto leading of lines to false
set leading of lines to defLeading
end repeat
end tell
end tell
end if
end if
end repeat
end tell
end tell

35名称未設定2014/01/11(土) 23:14:36.55ID:QDclpEY40
ハンドラはたけうちとおるさんのを参照しています
on overflow(tFrame)
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to ""
tell application "Adobe Illustrator"
set myLastP to (contents of every paragraph of tFrame) as string
set myLastL to (contents of every line of tFrame) as string
set AppleScript's text item delimiters to OriginalDelimiters
if myLastP is not myLastL then
set AppleScript's text item delimiters to OriginalDelimiters
return true
else
set AppleScript's text item delimiters to OriginalDelimiters
return false
end if
end tell
end overflow

36名称未設定2014/01/11(土) 23:27:23.61ID:bFFRZv4H0
とりあえずユーザー定義ハンドラの使い方の例

set theText to "あいうえお"
set startCount to 1
set endCount to 2
my textMask(theText, startCount, endCount)

set aaa to "かきくけこ"
set bbb to 2
set ccc to 4
my textMask(aaa, bbb, ccc)

my textMask("さしすせそたちつてと", 5, -1)


on textMask(theText, startCount, endCount)
set resultText to text startCount thru endCount of theText
set startCountText to my minusCheck(startCount)
set endCountText to my minusCheck(endCount)
display dialog "テキスト「" & theText & "」の" & startCountText & "文字目〜" & endCountText & "文字目までは「" & resultText & "」です"
end textMask

on minusCheck(theCount)
if theCount < 0 then
return "最後から" & (-theCount as Unicode text)
else
return theCount as Unicode text
end if
end minusCheck

あー何か勉強し始めた頃を思い出したよ。
最初ハンドラ内の変数名と呼び出し側の変数名が違って大丈夫なの?とか思ってた。

37名称未設定2014/01/11(土) 23:30:57.28ID:bFFRZv4H0
>>34
>if my overflow(tFrame) then
の後の
>tell every text frame

>tell tFrame
で良いよ

38名称未設定2014/01/11(土) 23:33:03.24ID:QDclpEY40
追伸
tell text frame 1~18ぐらいの範囲でtext frameが指定できるようです。

ありがとうございます。m(_ _)m

39名称未設定2014/01/11(土) 23:34:54.02ID:QDclpEY40
>34
>>tell tFrame
>で良いよ

ありがとうございます。m(_ _)m

40名称未設定2014/01/11(土) 23:37:42.10ID:QDclpEY40
>36
>ユーザー定義ハンドラの使い方の例
ありがとうございます。m(__)m

参考にさせていただきます。

41名称未設定2014/01/11(土) 23:39:53.28ID:bFFRZv4H0
>>34
>set defLeading to "20"
set defLeading to 20
にしないと数値として扱えないんじゃないかな?

>repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
>set auto leading of lines to false
>set leading of lines to defLeading
>end repeat
これだと行間0になるまで止まらない気がするよ。(実際は0になったとこでIllustrator側でエラー返すと思うけど)

repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
set auto leading of lines to false
set leading of lines to defLeading
if not my overflow(tFrame) then
exit repeat
end if
end repeat

42名称未設定2014/01/11(土) 23:54:58.99ID:QDclpEY40
>41
ありがとうございます。m(_ _)m

>数値として扱えないんじゃないかな?

なんとなく動いているようです。(^^;)

>これだと行間0になるまで止まらない気がするよ。(実際は0になったとこでIllustrator側でエラー返すと思うけど)

------返された値
計算が続いて......
set auto leading of every line of every line of every text frame of document 1 to false
set leading of every line of every line of every text frame of document 1 to "22"
get kind of item 7 of every text frame of document 1
--> {point text}
計算が続いて......
get kind of item 18 of every text frame of document 1
--> {point text}
end tell

で、終了してます。エラーは出ていません。

43名称未設定2014/01/11(土) 23:59:00.58ID:QDclpEY40
ちなみに環境は
osx 10.9.1
Applescript 2.6
illustrator CC
です

44名称未設定2014/01/12(日) 00:04:37.80ID:4upz722c0
>41

>repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
>set auto leading of lines to false
>set leading of lines to defLeading
>if not my overflow(tFrame) then
>exit repeat
>end if
>end repeat

これだと以下の部分がなくなりました
ーーーーーーー返された値
set auto leading of every line of every line of every text frame of document 1 to false
set leading of every line of every line of every text frame of document 1 to "22"
get kind of item 7 of every text frame of document 1
--> {point text}

------------------返された値  この部分が残りました
get kind of item 18 of every text frame of document 1
--> {point text}
end tell

45名称未設定2014/01/12(日) 00:23:03.89ID:yPrbZhDQ0
>>44
>>37の部分は修正してる?
18番目のテキストフレームの種類が{point text}(エリアテキストではなく普通に打ち込んだテキスト)って事だけど

あと
set auto leading of lines to false
は1回実行すれば大丈夫なのでrepeatの外でOKだったのと
さらに一つ見逃してた。
repeatでiを変動させて行間変えないと行けないのにdefLeading設定しちゃってる。
>set leading of lines to defLeading

set leading of lines to i


set auto leading of lines to false
repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
set leading of lines to i
if not my overflow(tFrame) then
exit repeat
end if
end repeat

46名称未設定2014/01/12(日) 01:14:51.44ID:yPrbZhDQ0
あー何度もごめん。
set leading of lines to i
だとエリアに収まってる部分しか行間変えてくれないから
paragraph指定するしかないのか。
set auto leading to falseとか
最後が改行で終わってるとエラーになるからIllustratorの書類側で気を使わないといけないかも。
最初から自動行間になっていない事前提なのと最後が改行で終わっていないというのが条件

tell tFrame
tell every paragraph
repeat with i from defLeading to 0 by -1
set leading to i
if not my overflow(tFrame) then
exit repeat
end if
end repeat
end tell
end tell

47名称未設定2014/01/12(日) 01:20:17.06ID:yPrbZhDQ0
あ、やっぱダメだ…
エリア外のparagraphに対してleadingの設定ができなさそう。

48名称未設定2014/01/12(日) 10:47:12.63ID:od5l1ettP
ウザすぎ。ここは手取り足取り教える場所じゃねーんだよ。よそでやれ。

49名称未設定2014/01/12(日) 10:49:19.47ID:od5l1ettP
書き忘れた。やるならここ見てるいろんな人に還元しながらやれ。それなら歓迎。

50名称未設定2014/01/12(日) 22:23:31.18ID:4upz722c0
>46さん
いろいろありがとうございます。m(_ _)m

結局下記のような記述で自動行間を整える事にしました。
ご指摘の
>set leading of lines to i
に変更して起動したところとりあえずエラーもなくできています。


>48さん
ご立腹されているようで申し訳ありませんね。気にお障りならお詫びいたします。m(_ _)m
それから
>やるならここ見てるいろんな人に還元しながらやれ。

おっしゃる通りです。皆様とともに学びを通してapplescriptでの可能性を見てみたいと思っています。今後ともよろしくお願いします。

51名称未設定2014/01/12(日) 22:26:26.36ID:4upz722c0
行間を自動にてつめるスクリプトですが改良の余地がまだたくさんあるようです。
個人的にはこのスクリプトで自分が自分が目指していたのができとても喜んでいます。
下記に教えてくださった皆様のscriptを元に利用しているapplescriptです。
tell application "Adobe Illustrator"
tell document 1 -- ← every document にすると全体のテキストにかかるようであえてDocument1にします
--set defLeading to leading of character 1 of text frame 1
set defLeading to "24" -- ←本文の行間を固定しています
repeat with tFrame in every text frame
if kind of tFrame is {area text} then
if my overflow(tFrame) then
--display dialog "オーバーフロー:" & contents of tFrame
tell text frame 6
tell every line
repeat with i from defLeading to 0 by -1
set auto leading of lines to false
set leading of lines to i
if not my overflow(tFrame) then
exit repeat
end if
end repeat
end tell
end tell
end if
end if
end repeat
end tell
end tell

52名称未設定2014/01/12(日) 22:27:20.26ID:4upz722c0
たけうちとおるさんのハンドラをそのまま利用しています。
on overflow(tFrame)
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to ""
tell application "Adobe Illustrator"
set myLastP to (contents of every paragraph of tFrame) as string
set myLastL to (contents of every line of tFrame) as string
set AppleScript's text item delimiters to OriginalDelimiters
if myLastP is not myLastL then
set AppleScript's text item delimiters to OriginalDelimiters
return true
else
set AppleScript's text item delimiters to OriginalDelimiters
return false
end if
end tell
end overflow

53名称未設定2014/01/13(月) 03:11:37.98ID:Sx62P48w0
do shell scriptを何度も繰り返しているのだけど、shellコマンドを入力する度に別のターミナルが開いてしまう。

tell application "Terminal"
do script with command "hoge"
do script with command "hoge2"
end tell

hogeとhoge2のコマンドを一つのターミナルウィンドウで処理させる事ってできますか?

54名称未設定2014/01/13(月) 03:29:47.81ID:XwnsQAAS0
コピペで動くんじゃないか

55名称未設定2014/01/13(月) 04:10:03.05ID:VPcx8yeO0
>>53
--ただ続けて実行したいだけなら
tell application "Terminal"
do script "hoge; hoge2"
end tell

--do scriptの戻りが実行されたtabなのでそれを使うパターン
tell application "Terminal"
do script "hoge"
do script "hoge2" in result
end tell

とりあえずdo shell scriptとTerminalのdo scriptが別物ってのは覚えとけ
ちなみに前者はdo shell scriptでも使える方法

56名称未設定2014/01/13(月) 08:43:43.11ID:Wpl4bEnlP
>>53
どういう理屈でアプリケーションを操作する仕組みか考えるといい。
Terminalはshellコマンドを実行するアプリではなく、PCをターミナルウインドウで
操作するアプリ。だからillustratorでパスとかオブジェクトを操作するのと同様、
操作する対象を「tell」などで明確にして実行することが大切。
その例だとアプリ本体に実行を指示しているだけなのでそんな結果になる。
過去にもその話、あったよ。

57名称未設定2014/01/14(火) 16:18:00.69ID:VipRDOQb0
Illustratorのテキスト書体変更でエラーがでました。
どなたかご教授ください。

tell application "Adobe Illustrator"
tell document 1
tell text frame 1
set properties of every paragraph of text frame 1 in document 1 to {text font:"Osaka"}
end tell
end tell
end tell

58名称未設定2014/01/14(火) 21:10:07.61ID:ZXykgTnJ0
>>57
ここで散々質問してきた人?
だとしたら成長の跡が見られない。
tellとはなんぞやからやり直した方が良い。

59名称未設定2014/01/14(火) 22:03:45.56ID:VipRDOQb0
>58
これでいいの?
set setStr to "サンプルテキスト"
set X to 10
set Y to 10
set setStr to setStr as string
set X to X as real
set Y to Y as real
set pt to 2.83
set X to X * pt
set Y to Y * pt
tell application "Adobe Illustrator"
set placedRef to make new text frame in document 1 with properties {contents:setStr, position:{X, Y}}
set properties of every paragraph of text frame 1 in document 1 to {size:8.5, fill color:{class:CMYK color info, black:100, cyan:0, magenta:0, yellow:0}, text font:"ShinGo-Bold-83pv-RKSJ-H"}
end tell

60名称未設定2014/01/14(火) 22:57:38.60ID:VipRDOQb0
>58
それともこれかな?
tell application "Adobe Illustrator"
set docRef to make new document with properties {color space:CMYK}
set romanText to "日本語書体変換"
set newText to romanText
set textRef to make new text frame in docRef with properties {position:{100, 200}, contents:newText}
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
set kerning method of charStyle to metricsromanonly
set properties of every paragraph of text frame 1 in document 1 to {size:48}
set cmykColor to {cyan:50, magenta:20, yellow:10, black:5}
set fill color of charStyle to cmykColor
apply character style charStyle to text of textRef
end tell

61名称未設定2014/01/14(火) 23:30:19.11ID:VipRDOQb0
>58
>だとしたら成長の跡が見られない。

あんたはどれだけえらい人なんだね。はじめはみんな素人ではないの?
ほんとはプログラムも大してくめないのではないの? ちょっとだけプログラムが組めるっていう人は鼻が偉〜い高くなるのさ。
本当のプログラマーは相手に教えるだけの力量と親切丁寧に教える人をさすんだ。

そういう玉の小さい人からは教えを請いたいとは思わなんだ。あとで偉い請求書まわされてしまうからね。(笑
馬鹿にするのは大概にしなさい。あ〜出し惜しみかいな。そうだね肝っ玉の小ささに笑ってしまいますね。
もっとおおらかに教える事はできないのですか? まぁあなたの勝手ですけどね。

素人が玄人に追いつくのに何年という時間をかけるのは昔の話だよ
今頃
>tellとはなんぞやからやり直した方が良い。
とは時代遅れの考え方だね。
AppleScriptで何ができてどういう使い方ができるか。ただ単にパソコンの前で自己満足するのが自慢なようだな58さん。
もっと大きく物事はみないとな。アリが這いつくばって餌を集めるより鳥になって自由に飛ぶ事を教え合うのがいいってものよ。(笑

62名称未設定2014/01/15(水) 00:17:20.17ID:BLw1nVYH0
凄いね

63名称未設定2014/01/15(水) 00:25:21.78ID:a7YA5/rX0
なんだかよくわからないなあw

64名称未設定2014/01/15(水) 11:16:06.94ID:/LtsrHqK0
技術があってもリストラされ能力はあっていも生かしきれない。
そこは貧乏人の集まるところ。
お互い牽制し合って生きているところ。
あ〜さもしい生き方に疲れていませんか。
ドングリの背比べで自分が大将だと思っている。
出る杭は今のうちに叩きのめそう。
村社会を保持しよう。
時代遅れを感じていない。
なんだかよくわからないと宣う輩。
あなたの未来はモグラの生き方。一生日の目を見ない。う〜ん 残念。

65名称未設定2014/01/15(水) 11:35:17.84ID:/LtsrHqK0
人工頭脳をApplescriptで作れるなら認めてあげよう。
ゲーマーがゲームを作った人に俺が偉いんだよという人に似ている。
所詮、AppleScriptは日本人が作ってはいないが日本人は「おれはあんたよりうまくプログラムが組めるよ」という
ならAppleScriptでつくった自動ロボットを作った方がよい。マックではそれができるんだよ。Windowsでのだきるさ
だがマックの環境はwinよりもっと簡単に仕上がる。

君らの頭脳で受付から製品製造までAppleScriptで組めるか? むりだろうな。
Illustratorで版下を作成できるか? 無理だろう。仕事の内容を理解してないからな。
できた版下を相手にPDFで校正する機能を作れるか? 手動ならできるような。だが全て自動化では無理だね。
作業効率を重視した流れを作れるか? 仕事が何なのかわからんから無理だね。
最後に納品書を自動で書き出せるか それは経理がわからんから無理だね。
業務の流れを全て把握しているのか それは社長のする仕事だからわからんでもいいと云うかもね.


一つだけしかできないようなプログラマーなんて社会では必要性がないいんだよ。

66名称未設定2014/01/15(水) 11:52:18.37ID:/LtsrHqK0
世の中には親切にする人もいる。そういう人は多くの恵みを受ける。
それはこの世界が多く与えたものは多く得ると云われる世界だからだ。相対理論なのさ。陰陽の世界観。朱に染まれば赤くなる。類は類を呼ぶ。
相手をけなす人は自分で自分をけなしているのと同じ。韓国の仕様と中国の仕様が一緒だと日本人は感じているのと同じ。

人の可能性を育てるのもこの世界だ。なんらかの縁でここに来ているならそれこそ大事にしなさいな。
わからん人には何倍でも説明したら説明するほど自分の理解度が増していく。それはあらゆるところから情報を
得ようと自分が勉強することになるからね。
それが社会勉強なんだよ。プログラムを訪ねにここへ来る人はそれが本来の目的ではないと思う。
最終的に誰かにきちんと説明だできるまでになるようになるための勉強でもあるんだよ。
だから人が困っているなら自分が勉強したのが役立つときなのだ。
58さんわかったかね。

67名称未設定2014/01/15(水) 11:54:31.85ID:UeMn6f2J0
見えないレス多すぎ

68名称未設定2014/01/15(水) 12:03:57.04ID:/LtsrHqK0
あたまのわるいやつおおすぎ

69名称未設定2014/01/15(水) 12:43:41.67ID:/LtsrHqK0
tell application "Adobe Illustrator"
set docRef to make new document with properties {color space:CMYK}
set romanText to "日本語書体変換"
set newText to romanText
set textRef to make new text frame in docRef with properties {position:{100, 200}, contents:newText}
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
set kerning method of charStyle to metricsromanonly
set properties of every paragraph of text frame 1 in document 1 to {size:48}
set cmykColor to {cyan:50, magenta:20, yellow:10, black:5}
set fill color of charStyle to cmykColor
apply character style charStyle to text of textRef
end tell


書体変換ができないのだが
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
これってどうだろうか

70名称未設定2014/01/15(水) 12:56:37.57ID:rX7GSZ3z0
58もしょーもないけどあんたもぶちまけ過ぎ

71名称未設定2014/01/15(水) 13:32:40.20ID:NM6x1RRT0
だな。てか、やっぱり教えてほしい方が教えてくれる人を定義しているのか?
だったらダメダメだなあ。連投で超ダメダメ具合を晒して病んでるなと思うな。黙って質問だけしてりゃいいのに

72名称未設定2014/01/15(水) 14:38:35.33ID:/LtsrHqK0
>70
>71
>あんたもぶちまけ過ぎ
本音で語らないといけないと教わっているもんでね。
>やっぱり教えてほしい方が教えてくれる人を定義しているのか?
定義も何もしてないし、ごく普通の感覚だよ。
技術者の前に人であってほしいという思いだけです。
>連投で超ダメダメ具合を晒して病んでるなと思うな。
連投ではだめですか?
枯れ木も山のにぎわいというではないかね。
盛り上げたいだけですよ。(笑
>黙って質問だけしてりゃいいのに
何かを恐れながら聞き出しているって感じだね。
牽制しながら質問しているようだが....お互い成長期ですかね。幼少期か。
すごいプログラム例えば自動化をしている人がいますか?
印刷業界で第一人者、デジタルでばりばりapplescriptを利用していますか?
それも自動化にして楽してお仕事してますか?
applescriptで日本を代表する人がここにいますか?
applescriptの執筆活動家はいますか?
もしそういう人がここにいたなら日本のapplescriptのベースを引き上げてほしいな。
まぁ諸先輩方の考え方はよく知らないけどこの程度でだめだしならしょうがないね。
もう少し太っ腹かと期待したが無理だったということか。
まあせいぜい牽制しながらぼちぼちやりなよ。(笑
また質問などさせてもらうけどね。

73名称未設定2014/01/15(水) 14:58:13.51ID:NM6x1RRT0
>本音で語らないといけないと教わっているもんでね
教わっているなら、>>58のもそのままとればいい。自分が語るのだけ?他人が語るのは許さないの?
全くAppleScriptと関係無いのにうんざりだぜ

あんたが教える立場であってもあんたのような態度ではあんたは教えないだろ?それは、あんたの>>58の異常な反応から明らかだと思うのだが
まあ、見物だなあ。質問する時も現在の態度でどうかよろしくw

74名称未設定2014/01/15(水) 15:05:27.12ID:/LtsrHqK0
>73
>まあ、見物だなあ。質問する時も現在の態度でどうかよろしくw
よろしくねw
まぁせいぜい腕を磨いて貢献してねw
どんどん質問するからねw

75名称未設定2014/01/15(水) 15:07:18.04ID:NM6x1RRT0
本気で言っているの?それ。他人を自分の都合の良い人としか見てないってことだよ?

76名称未設定2014/01/15(水) 15:14:28.03ID:/LtsrHqK0
>75
冗談さ

77名称未設定2014/01/15(水) 15:17:00.22ID:NM6x1RRT0
冗談では済まない。済まないので「すみません」という言うべきだなw
あんだけ饒舌であーだこーだ言うのだからそのくらいは言うべきだろう

78名称未設定2014/01/15(水) 15:21:21.85ID:/LtsrHqK0
>77
>冗談では済まない。済まないので「すみません」という言うべきだなw
すみませんw

79名称未設定2014/01/15(水) 15:25:42.76ID:NM6x1RRT0
なぜ、w をつける。言っている事とやっている事が乖離しているぞ
まあ、なんかまムカついている、また、変なプライドwだけはすごいというのは既知のことなので、それで許してやろう、俺はw
全くAppleScriptと関係無いのにうんざりだぜなのにいw長くなったがおしまい

80名称未設定2014/01/15(水) 16:16:23.79ID:/LtsrHqK0
>全くAppleScriptと関係無いのにうんざりだぜなのにいw
じゃあさ。
書体変換ができないのだが
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
これってどうだろうかね知っている?
変換ができないんだよ。
Marvericksでさ、Illustrator CC 使ってんだ。
だが書体変更がきかんのだよそちらならすぐ解けるんでしょ。ちょっと難しいかな?

81名称未設定2014/01/15(水) 17:01:36.69ID:NM6x1RRT0
その調子でいいよw
「ちょっと難しいかな?」と煽ってる(&できれば答えが欲しい)のだろうが、わからないお前が何を言うー、ってことだけにしかならないに
まあ、飽きれたけど考えてみればば調子が変わっていないのでよろしいw

82名称未設定2014/01/15(水) 17:14:15.46ID:/LtsrHqK0
まぁ知らない人にきいちゃだめ!ってことだよ。w
幼児期な人には解答できないのはわかっているさw
ただ君の力量がどれだけあるか試しただけさ。w

83名称未設定2014/01/15(水) 17:35:06.21ID:/LtsrHqK0
>81
知らないお前に教えてあげるよw
ヒントはここにw
tell application "Adobe Illustrator"
tell document 1
tell text frame 1
tell character 2
get properties
end tell
end tell
end tell
end tell

84名称未設定2014/01/15(水) 18:20:21.61ID:NM6x1RRT0
笑った。なに続いてレスしてんの

んな、試しているのはわかってるっての、そういうのをわかってないって、とことんめんどくせーやつだなーということで

Adobe Illustrator なんてちょっとしか触った事が無いぼくちんがデモ版をインストールしてやってみたよ
https://www.dropbox.com/s/9f565hvd5fxcyso/ScreenFlow.mov
なんで、こんなことを ID:/LtsrHqK0 が必死に続けているのかわからないなw

いじょーっ!

85名称未設定2014/01/15(水) 20:40:15.79ID:/LtsrHqK0
ご足労なこった。そらそうでしょw
どうしてバックを見せないんだw
10.8なら動くんだよw 10.9.1にしてみなw
今までのappleScriptが動かなくなるよw
Mavericksでは動かんよw
怖くてバージョンアップができんかもなwww

もう一回動画を取り直せ ガンバレ!!  www

86名称未設定2014/01/15(水) 21:17:59.97ID:/LtsrHqK0
ちなみにテキスト全体への書体変更は下記のようです。書体ポイント変更はsizeで変更。
Marvericksでも動きます。
tell application "Adobe Illustrator"
set atype to every text frame of document 1
set myatype to count of every text frame of document 1
repeat with i in atype
set the text font of text of i to text font "ShinseiKaiPro-CBSK1"
end repeat
repeat with n from 1 to myatype
tell document 1
tell text frame n
tell text range
tell every line
set size to 40
end tell
end tell
end tell
end tell
end repeat
end tell

87名称未設定2014/01/15(水) 21:21:26.30ID:/LtsrHqK0
まとめしたのは。
tell application "Adobe Illustrator"
set atype to every text frame of document 1
set myatype to count of every text frame of document 1
repeat with i in atype
set the text font of text of i to text font "ShinseiKaiPro-CBSK1"
end repeat
repeat with n from 1 to myatype
tell every line of text range of text frame n of document 1
set size to 40
end tell
end repeat
end tell

88名称未設定2014/01/15(水) 21:29:51.48ID:NM6x1RRT0
そのうにゃうにゃしているのを、シンプル(余計なものを削っているだけ)にしているだけなのだがな
やっとわかってよかったねw

89名称未設定2014/01/15(水) 21:32:17.24ID:rKJergxG0
うざ

90名称未設定2014/01/15(水) 21:48:55.51ID:/LtsrHqK0
幼稚園児w

91名称未設定2014/01/15(水) 21:49:44.11ID:NM6x1RRT0
>>85
>どうしてバックを見せないんだw
そりゃ素直に教えるわけがないからに決まっているだろう。んなこと最初から言っているのに

わかったようだから、あの2行はねえ、
-- get text font of text of text frame 1 of document 1
set text font of text of text frame 1 of document 1 to text font gFontName
だよ。Adobe Illustrator も スクリプトファイルも消したので、ちょっとは間違っているかもしれないけど

Mavericksでは動かかないのか。へーw

92名称未設定2014/01/15(水) 21:56:38.02ID:/LtsrHqK0
>88
教え方をもっと研究した方がええかもな。
マスク入りとは恐れ入ったよw
だれがもわかるようなscriptを目隠しまでしてw 馬鹿丸出しw
どんだけ上からの目線かねw

93名称未設定2014/01/15(水) 22:00:10.29ID:NM6x1RRT0
すげーなー、これだ自己中も珍しい。珍しいもの発見できただけでもよしとしようw

94名称未設定2014/01/15(水) 22:03:38.31ID:IW429DUw0
お前が育ててんじゃねーか

95名称未設定2014/01/15(水) 22:07:00.00ID:NM6x1RRT0
うっ
いやあ>>81でわかったかなあと思ったんだけど、変わらないので育てたんではなくて、あぶり出したと言っていただきたいっw
いや、ごめんちゃい、もとい、ごめんなさい

96名称未設定2014/01/16(木) 10:27:42.18ID:8b6e8W/P0
二人でよそいってやってくれ
前にも出てたAdobe関係禁止はやっぱり必要みたいだな
Adobe使わない人にとってまったく参考にならない話を延々やられてもうざいし

97名称未設定2014/01/22(水) 22:59:09.72ID:eRTOmbtnP
昔作った子供が水浴びしてるDVDをisoイメージにしたんだけど、
面倒なく視聴できるソフトってないのね。
今年初めてのAppleScriptはこれだった。
Automatorで開くファイルを自作アプリに関連付けてやったら
ダブルクリックで視聴できるようになった。

98名称未設定2014/01/22(水) 23:06:55.85ID:Lh31v/xG0
>>97
VLCでISOマウントしてみれるけど、、、

99名称未設定2014/01/22(水) 23:27:39.24ID:LlN2JipJ0
DVDプレーヤーで普通に見られるけど

100名称未設定2014/01/23(木) 09:11:56.66ID:iJWTvZ5CP
>>98
本当に「面倒なく」視聴できてるの? ちゃんとチャプター再生もばっちり?
そもそもマウントするとウインドウが開きません? うちが変なのかもしれんが。
DVDのディスクをスロットに挿入すると自動再生するのと同じように
isoをダブルクリックするだけで普通のDVDと同じように再生できます?
世の中にはすごい人がいて、アイコンをダブルクリック以上のことが「難しい」人
もいるんです(田舎のじーちゃんとかね)。そういう人たちでも簡単にできる?

101名称未設定2014/01/23(木) 10:29:51.06ID:hsNSWAQS0
このスレで何も情報も無く「面倒なく」なら、そんなユーザは想定しないだろう
後付けで長々となに語っているんだか

102名称未設定2014/01/23(木) 10:44:23.27ID:3KX4Dz8y0
AppleScriptと関係ないじゃん
無理矢理このスレに書くなよ

103名称未設定2014/01/23(木) 10:59:09.90ID:EF80bs4x0
てか自作アプリ作ってんのに、なんでAutomatorで関連づけしてんのか意味分かんないwww

104名称未設定2014/01/23(木) 16:55:33.79ID:aE6WVZdy0
発表スレなのに、発表すらしない。チラウラにでも書いとけ。

105名称未設定2014/01/23(木) 18:10:48.75ID:/HGXohKZ0
>>98
ディスクイメージマウンターでマウントしないからウィンドウでません
ISOの、このアプリケーションで開くをディスクイメージマウンターからVLCに変えれば、ダブルクリックで見れるよ
メニューも使える

多分君が作ったよくわからん自作アプリより田舎のじーちゃんには分かりやすいんじゃないかな?

106名称未設定2014/01/23(木) 18:23:43.93ID:chQ4kKQs0
>>105
横から、スマンよ
こんな手があったなんて、初めてしったわ。

d

107972014/01/23(木) 22:17:46.59ID:iJWTvZ5CP
まずすみません。
話題もないみたいだったので、ちょっと賑やかしのために書き込んでみました。
難しいものでもなんでもないけど、スクリプトは下記。

on open dorp_Items
tell application "Finder"
set aISO to selection as alias
end tell
set b to do shell script "hdiutil mount " & (quoted form of POSIX path of aISO)
tell application "Finder"
set tmp to AppleScript's text item delimiters
set AppleScript's text item delimiters to tab
set fileName to last text item of (b as string)
set fileName to (POSIX file fileName) as alias
end tell
tell application "VLC"
activate
open fileName
end tell
end open

108972014/01/23(木) 22:28:42.30ID:iJWTvZ5CP
続きですが
みなさんの指摘どおり、普通にISOをマウントするとフォルダウインドウが開いたり
マウントしたディスクを再度再生アプリで開いたりといろいろ面倒で試行錯誤した次第。

ところで>>105さんの指摘するファイルの関連付けを直接再生アプリ(VLC)
にするのってうまくいきますか? うちでは再生は始まるけれど、メニューに戻ったり
特定のチャプターからの再生などができません。同様にVLCのプレイリストにISO
を登録しても再生しっぱなし、しかできません。
(正確にはISOではなくディスクユーティリティで作った.cdrのデータなので挙動違うかも)

「ウインドウを開かずにマウントする」ならdo shell script hdutil mount
結果はタブ区切りの3番目がマウントしたディスクのPOSIX pathだそうで。
ISOをマウントしたディスクをVLCで開けばチャプター再生などメニュー操作できます。

こんなところを皆様にご活用いただければと。
しかしマウントするとウインドウが開くのとISOをVLCにドラッグアンドドロップすると
コントロール不能の再生になるのが謎。
本日いろいろ活用してみましたが、とりあえず目的の挙動はしていてひと安心です。

109972014/01/23(木) 22:40:56.89ID:iJWTvZ5CP
Automatorの件いいわすれたorz

ファイルの関連付けは「情報を見る」から開くアプリを変えればいいけど、100、200となると
それも面倒。automatorで設定してやれば一発。初めてautomator便利だと思ったよ。
ASでも簡単にできるかな?

110名称未設定2014/01/23(木) 23:08:22.18ID:98ELkxSY0
で、>>99はなぜスルー?

111972014/01/23(木) 23:14:33.95ID:iJWTvZ5CP
>>110
それも一緒だと思いましたがVLCとの相違点ってあります?
ISOから直接開けない分だめかなあ、と。
インターフェイスのリモコンパネルは分かりやすいですけど
プレイリストもないですし。簡単な方法があればぜひ。

112名称未設定2014/01/24(金) 00:23:30.19ID:n2bhRx060
なんだ結局VLC使うのか、自作アプリとか言うのに期待したのに

だったらその大量の.CDRをDVDimageに変換するスクリプト書いてダブルクリックでVLCで見れるようにした方がよくね?

automatorで設定してやればって
100、200あるisoファイルの「このアプリケーションで開く」を変更してんのか?

113名称未設定2014/01/24(金) 00:49:36.83ID:fFagYQQQ0
>>109
スクリプト関係ない話なんだけど、大量のファイルの関連づけを変えるのはFinderでも簡単にできるよ
具体的に言うとファイルを選択した後、右クリックし、オプションを押しながらコンテクストメニューのインスペクタを表示をクリックし、
出てきたメニューから開きたいアプリケーションを選択すればいい。

114名称未設定2014/01/24(金) 12:16:54.30ID:9KMDdAgK0
>スクリプト関係ない話なんだけど、

なら書くなよ

115名称未設定2014/01/24(金) 13:10:36.93ID:DUlBWNd20
っていうオレかっこいいっw

116名称未設定2014/01/24(金) 14:05:11.89ID:pr+p7JhP0
このスレ面白い!

117名称未設定2014/01/24(金) 14:06:16.14ID:pr+p7JhP0
誤爆しました

118名称未設定2014/01/24(金) 15:35:18.89ID:sYNd//sx0
スクリプトなしでできるものをわざわざスクリプトでやってたらそりゃ指摘もしたくなるだろ
だからって別にスレチじゃないんじゃないの

119名称未設定2014/01/24(金) 20:22:01.30ID:2pddWbcv0
つーかインスペクタにしても情報を見るにしてもアプリ選んでから「すべてを変更…」を押す流れは変わらんわけで、
種類の違うファイルならともかくisoだけとかなら1個やりゃ済む話なんでは
まさか100種類の違う形式のファイルって事もあるまいに

120名称未設定2014/01/24(金) 20:51:33.47ID:/Vqh8AiQ0
このスレで続ける話じゃねーだろが

121名称未設定2014/01/25(土) 20:41:18.12ID:kAuE/WAS0
全く進まないとか無駄な1行レス繰り返すよりはいいんじゃない?

122名称未設定2014/01/28(火) 13:20:57.62ID:diN/bixn0
相変わらず牽制しあってるなぁw
凄腕スクリプターがここにいるんかいw

123名称未設定2014/01/28(火) 13:30:27.29ID:PsLXEu1h0
っていう俺が凄腕スクリプターってか?

124名称未設定2014/01/28(火) 16:56:05.43ID:YtFiVtks0
本当に凄腕なら世話好き以外こんなとこ来る必要ないからな

125名称未設定2014/01/28(火) 19:17:18.21ID:diN/bixn0
それもそうだw
ドングリの背比べだぁw
要するにお互い小学生というこっちゃねw

126名称未設定2014/01/28(火) 22:30:45.45ID:dF9LzVWf0
ワシも若い頃は人工衛星を制御するAppleScriptを書いてたもんじゃよ

127名称未設定2014/01/28(火) 22:46:11.92ID:PsLXEu1h0
なんだ教えてくんか
なんで彼は分をわきまえるとかいう日本語を知らないのだろうか

128名称未設定2014/01/28(火) 23:24:20.61ID:diN/bixn0
これ知っているか?
set the justification of paragraph 1 of areaText to full justify

129名称未設定2014/01/28(火) 23:32:26.32ID:gnuIluL20
Safariの「環境設定>詳細>アクセシビリティ>これより小さいフォントサイズを使わない」
をアップルスクリプトで制御したいんですが可能でしょうか?
あるサイトで表示メニュー>拡大or縮小が効かないページがあって、
上記の環境設定でしかフォントサイズが変わらないため、スクリプトメニューから切り替えたいと思いまして。。。
出来ればGUIスクリプティングではない方法でやりたいんですが。。

130名称未設定2014/01/29(水) 09:56:54.72ID:XgMuODYo0
もしそのページが -webkit-text-size-adjust:none; 指定してて拡大縮小できなくなってるならJavaScriptで変更できるから、スレ的には do JavaScript で行けんじゃないの
ページ見ないとわからんけど

131名称未設定2014/01/29(水) 16:47:23.09ID:lxXBhmLk0
ブックマークレットでなんとかなるのでは
ページ見ないとわからんけど

132名称未設定2014/01/29(水) 16:51:43.34ID:tctlnn+e0
そのページの右上あたりに文字サイズの拡大縮小ボタンがあるのでは?
ページ見ないとわからんけど

133名称未設定2014/01/29(水) 18:35:31.88ID:t0Z341jw0
みなさんありがとう。
そのサイトはstrava.comというランニングやサイクリングのログを共有するサイトで、
登録してログをアップするか、誰かをフォローしないとそのページは見れないんです。
文字サイズの拡大縮小ボタンはないです。
Java scriptでなんとかできるんですかね。。

134名称未設定2014/01/29(水) 20:41:14.84ID:yPBhJ8sPP
すみません。どうしても分かりません。
MySQLを使って簡単なデータベースを作ったのですが、
これを他のマシンから操作するAppleScriptってどう書けばいいんでしょう。
サーバーになっているマシンでAppleScriptで操作することはできます。
どなたかヒントいただければ。

135名称未設定2014/01/29(水) 20:48:00.78ID:doOQC9kw0?2BP(0)

PHPを使った方がよいのでは?

136名称未設定2014/01/29(水) 20:53:10.82ID:yPBhJ8sPP
>>135
そんなスレチな回答認めないよっっっっっ!!

137名称未設定2014/01/29(水) 21:03:20.03ID:9ZdU+vJPP
ほかのマシンから mysqlコマンドでつなげられるのかい。

138名称未設定2014/01/30(木) 03:36:15.92ID:7sYynt8F0
リモート AppleEventとdo shell scriptでなんとかなるのでは?
ページ見ないとわからんけど

139名称未設定2014/01/30(木) 08:49:07.29ID:zzqchskQP
>>138
それなのか? 今回の研究テーマは。ページ? 意味が分からないが関係ないのでは?
分からないなりに
・リモートAppleEventでサーバーに接続
・リモートからサーバーにAppleScriptでのMySQLでの操作Eventを送信
・サーバーからリモートに結果を返す
とか? まったく未知の世界。curlとGET

140名称未設定2014/01/30(木) 18:23:44.81ID:8CyfsSwe0
あなたがMySQLをどのように運用してるか分からんけど
例えば
サーバー側でAppleScriptで操作できるなら
そのスクリプトをスクリプタブルなASOCにして起動しといて
リモートAppleEventでtellで呼び出すのが簡単なんじゃないかな?

結果の取得は、ログを出力するようにしといてweb鯖があるならそこに置いてcurlでデータを取得すればいいとおもう
ログは公開したくないとかだったらDigest認証とか適当につけときゃ良いけど
ローカルのみで確認する用途なら
上で作ったアプリケーションにログ用にSimpleHTTPServerとかの簡易web鯖を、解放してないポート指定して起動するようにしといて、そこに出力すれば良いとおもう
元々データを公開してるならそこから取得すれば良いけど、PHPとか他の言語使ってないって言う事は、公開はしてないぽいか

141名称未設定2014/01/30(木) 23:46:23.42ID:zzqchskQP
>>140
なるほど。AppleEvent送信するにも受け手側が必要か。
で引数渡してそいつを操作すればなんでもできるのかな。

いや実際にはPHPで普通に公開してて全部できるんだけどね。

ネットちょっとさまよってたら、サーバー側に受け手としてPHPを
ひとつ仕込んでおき、そこにGETのcurlでアクセス、それを
do shell scriptで拾うのがあったよ。ただ、SQLインジェクションとか
URLエンコードがどーなるのかは不明。でも、できるらしいね。

142名称未設定2014/01/31(金) 02:06:43.01ID:q4ztzmWK0
>>141
どの程度の操作をしたいのか分からんけど、データの入力とか展開ならPHP使えるなら適当にapiつくって、curlで操作するのが一番簡単じゃないかな?
てか運用してるなら入力とか抽出のapiはもうあるんじゃない? それ使えば良いと思う
SQLインジェクションはweb上のフォームとかがちゃんと作ってあるなら問題ないでそ
データ入力はcurlで値をポストすれば良いし
URLエンコードはcurlのポストのオプションでやってくれるけど
日本語のデータ入力の場合applescript内の文字コードがutf8だから、
それ以外の文字コードの場合、curlでポストする前にワンラインで文字コード変換しないとUTF8でエンコードしちゃうから
自前で文字コード変換とURLエンコードのハンドラ作っとくのがいいと思う

143名称未設定2014/01/31(金) 03:58:54.92ID:q4ztzmWK0
>>141
ごめ
試しにapplescriptだけでリモートやってみたら超簡単だったからサンプル置いとくわ

サーバー側
property cmdlist : {"curl 'http://ip.ossus.ch'", "ifconfig", "sw_vers"}
on cmd(Q)
  set out to do shell script item Q of cmdlist
  return out
end cmd

これを実行後終了しないにチェック入れてremotestって名前でアプリケーションで保存してサーバー側で起動しとく

クライアント側
tell application "remotest" of machine "eppc://user:pass@サーバー側Domain or IP"
  return cmd(3)
end tell

これをクライアント側で実行するとサーバー側のスクリプトが動作してサーバーのOSバージョンがクライアント側に表示される
ちなみに
  return cmd(1) だとサーバー側からグローバルIP返すwebサービスにcurlでアクセスしてサーバーのグローバルIPが表示される
  return cmd(2) だとifconfigね サーバーのローカルのIPアドレスとか、ネットワーク情報が表示される

mysqlはdo shell script で操作してるだろうからdo shell scriptのコマンドリストって形にしてみたけど
細かい命令書き直せば普通に使えるんじゃねリモート
環境設定の共有でリモートアップルイベントオンにしてユーザー登録しといてね。
ちなみにタブを全角スペースにしてるからコピペ注意してね

144名称未設定2014/01/31(金) 08:18:18.27ID:uWeNXE6JP
>>143
その実行力感服します。このスレの神は有言実行だった。
PHPで適当にapiつくってcurlのところにGETでSQLぶちこみゃいいのね。
リモートのAppleEventのことも分かりやすいなあ。
これでファイルメーカーバージョンアップしなくてもいいね。
すばらしいの一言。セキュリティのことはまた勉強しないとね。

145名称未設定2014/01/31(金) 08:26:54.35ID:uWeNXE6JP
>>143
あ、書き忘れた。ありがとう!!!!

146名称未設定2014/02/08(土) 15:58:08.45ID:nsDgn/AA0
なんかここの人たちレベルが高いですね。
質問です。
シェルスクリプトを選択したファイルやフォルダに対して実行する方法ってありますか?

147名称未設定2014/02/08(土) 16:08:10.74ID:tRhLBcwSP
>>146
そういう慇懃無礼なのやめようよ。ホメ殺しというか。

do shell scriptで。パスはPOSIX pathで受け渡ししてね。

tell application "Finder"
set thePATH to selection as alias
set thePATH to POSIX path of thePATH
endt tell
set theAnswer to do shell script "ls -a " & quoted form of POSIX path of thePATH
displaydialog theAnswer as Unicode text

とかなんとか。windwosで書いてるので結果どうなるかは知らない。

148名称未設定2014/02/08(土) 16:48:59.19ID:3lSTg7G/0
>>146
んじゃ[$ GetFileInfo ]って言う指定したファイルの情報を出力するコマンドを使う例で書くね。

set Q to choose file --ファイルの場所を取得(Macintosh HD:Users:xxx:Desktop:11.jpg)
set Q to POSIX path of Q --POSIX path に変換(/Users/xxx/Desktop/11.jpg)
set cmd to "GetFileInfo " & quoted form of Q --コマンドを作成(ここでdo shell scriptでも良いけど、こっちの方がデバッグしやすい)
set info to do shell script cmd --コマンドを実行
display dialog "Result" default answer info --結果をダイアログに表示
(*結果はこんな感じ
file: "/Users/xxx/Desktop/11.jpg"
type: "\0\0\0\0"
creator: "\0\0\0\0"
attributes: avbstclinmedz
created: 02/08/2014 16:20:16
modified: 02/08/2014 16:21:43
*)


>>147
endt tell になってる
displaydialogにスペースがない

149名称未設定2014/02/08(土) 17:40:10.80ID:cWG4pfK10
GetFileInfo ってXcode、の追加のCLIツール、入れないと無いんじゃないの

150名称未設定2014/02/08(土) 18:05:51.02ID:iewnsadv0
例だろ

151名称未設定2014/02/08(土) 18:07:01.62ID:jmpl7yBh0
Finderで選択したファイル/フォルダに対してなら、Automatorでサービスもなかなか便利。実行そのものはAppleScriptだけど

フォルダ/ファイルの区別がつく(ファイルの種類もちょっとはつく)、コンテキストメニューを選んだ時点で操作対象が決定しているのでスクリプトが終わるのを待つ必要が無い
(スクリプト全てがでなく>>147でいうと set thePATH to selection as alias が実行されるのをだけど)

1521462014/02/08(土) 18:21:39.04ID:nsDgn/AA0
みなさん早速ありがとうございます。
147のやり方でできました。
148は自分にはまだ難しすぎです。勉強します。

シェルスクリプトで複数の画像を一発で変換できるので、
勉強がてらApplescriptで実行出来ないかなと色々やってみてるところです。
複数のファイルにたいしてもシェルスクリプトを実行させることは可能なのでしょうか?
あればヒントでも教えてもらえると嬉しいです。

153名称未設定2014/02/08(土) 18:29:58.97ID:jmpl7yBh0
普通に引数とか << _END 方式で。do shell script はシェルスクリプトの文字列でしかないので、AppleScriptで長いシェルスクリプトを構築するか、do shell scriptをファイル単位でするかかな
quoted form は便利だから理解した方がいいよ

AutomatorだとAppleScriptを介さずにシェルスクリプトだけでイケるんだが、スレチか

154名称未設定2014/02/08(土) 20:05:48.20ID:3lSTg7G/0
>>149
そうだっけ?w
んじゃGetFileInfoの部分を
fileとかhexdumpとかdirnameとか好きなのに変えて下しあ
ファイル選択にchooseなんか使わないだろうけど、一応フォルダ選びたい時はchoose folderね。
>>152
あら結構丁寧に書いたつもりだったorz
参考までにどこら辺が難しかったか教えてください。
ちなみにどんなシェルスクリプトで画像変換してるの?

一応複数の画像を変換するやつ作ってみた、 D&Dされた複数ファイルをJPEGだけ処理するサンプルです。
これをアプリケーションで保存して複数のファイルをドラッグ&ドロップするとJPEGのみ、同じフォルダにリネームして幅30ピクセルのJPEGに変換して書き出されます。

on open dropItems --ドラッグ&ドロップされた時の処理とエイリアスリスト
repeat with Q in dropItems --入力ファイル数分リピート処理してJPEG イメージのみ変換
tell application "Finder"
set itemkind to get kind of Q
end tell
if itemkind is "JPEG イメージ" then
set DropPOSIX to POSIX path of Q
set pngOutPath to DropPOSIX & "幅30.jpg"
set comd to "sips --resampleWidth 30 " & quoted form of DropPOSIX & " --out " & quoted form of pngOutPath --コマンド作成
do shell script comd --コマンド実行
else
--jpegイメージ以外はパス
end if
end repeat
end open
--作って思ったけどドラッグ&ドロップはデバッグしづらくて作るの面倒いね

155名称未設定2014/02/08(土) 20:09:51.56ID:3lSTg7G/0
>>154
あ、pngOutPathになってるけど気にしないでね
最初jpgをpngに変化するやつ作ったんだけど分かりづらいから、サイズ変換にした名残です、、、

156名称未設定2014/02/08(土) 21:00:15.65ID:RuZJBi5i0
>>154
>--作って思ったけどドラッグ&ドロップはデバッグしづらくて作るの面倒いね

処理本体は別のハンドラにしておいて、
デバッグする時はrunハンドラから適当なエイリアスのリストを渡すようにすれば、
スクリプトエディタでも動作確認できるぜ
ざっくりやるならchoose file/folderの結果がそのまま使える

157名称未設定2014/02/08(土) 22:26:25.46ID:tRhLBcwSP
>>154
素朴な疑問ですみませんが、なんで変数にQなんてとるの?
見たことないんだけど意味あるの?
やっぱりrepeat with とくれが i t s くらいで、そのあと小文字でp q r
あたり使うのが普通だと思うんだけど。
大文字でQってなんかすごく自己主張が激しいというかw
それに普通の変数に1文字変数とかあとで面倒でしょ。

とか思いました。固有名詞にaとかtheとかつけた変数の付け方
考えた人はえらいなあと思う。AppleScriptだと定冠詞つけてるみたいで
本当に英語みたいだよね。
Xcodeよく使うのでコード補完使ってると変数長くなりまくりだけどね。

158名称未設定2014/02/08(土) 22:28:24.72ID:tRhLBcwSP
あ、変数にQって使ったことあったな。ダイアログの質問項目を変数にしたとき、QuestionのQとして
Q1、Q2、Q3とか質問項目作ったことあったなあ、、、、、、。

1591462014/02/08(土) 22:40:30.76ID:nsDgn/AA0
>>154
[$ GetFileInfo ]って書いてあったので
ビビっただけでよくよく見ると分かりやすかったです。
すいません。

画像を大量に人に渡すときにターミナルで
cd でフォルダに移動して
sips -s format jpeg *.tif
sips -Z 2000 *.tif
for nm in *.tif; do
mv $nm ${nm%.tif}.jpg;
done
アプリを使うよりも全然早いのでよく使います。
教えてもらった奴で似たことができそうですね。
いろいろいじくって試してみます。
ありがとうございました。

160名称未設定2014/02/08(土) 23:13:29.55ID:3lSTg7G/0
>>156
そっかそっかなるほどね ありがと!
実際似たような事して作ってたんだけど、エイリアスのリスト作るのとか
そもそもon open の中身がどうなってるかってところで一瞬躓いてたわwww
>>157
なんでと言われても、、、普通とかあるのか独学すぎてそういうルーティン的なのしらんのよ ごめん
シフト+Qって押しやすいし目立つから、特に理由ないよ、英語力無いしスペルミス怖いからテスト時の使い捨て変数にqqqとかzzzとかも使う
最終的には辞書見て直すけどさorz

副産物置いとくね エイリアスリストをつくるハンドラ2つ
set aliaslist1 to AliasListGen("/Users/xxx/Desktop/test/")
set aliaslist2 to choosefile("jpgとpngだけ", {"jpg", "png"}, true, false)
--########################
on AliasListGen(Directory) --入力されたDirectory(POSIXパス)にあるすべてのファイルをaliasリストにするハンドラ
set aliaslist to {}
set filelist to list folder Directory
repeat with Q in filelist
set tmppath to Directory & Q
set tmpalias to POSIX file tmppath as alias
set end of aliaslist to tmpalias
end repeat
return aliaslist
end AliasListGen
--########################
on choosefile(prom, seltype, multSel, inv) --(ダイアログに表示される文字列,選択できるファイルタイプリスト,複数選択できるか(Bool),不可視ファイルの表示(Bool))
set deskpath to path to desktop --初期フォルダ設定
choose file with prompt prom of type seltype default location deskpath multiple selections allowed multSel invisibles inv
end choosefile

161名称未設定2014/02/09(日) 05:17:21.79ID:G4uzaK290
>>159
画像変換スクリプト作ってみたよ!>>160のAliasListGenハンドラ使ってるから追加してください。
set Convfolderpath to POSIX path of (choose folder with prompt "choose folder")
repeat
display dialog Convfolderpath & "
Please input width" default answer "2000" buttons {"Cancel", "TIFF", "JPEG"} default button 3 with title "Image Conversion"
copy the result as list to {intext, selbutton}
try
if (intext as number) > 0 then exit repeat
end try
end repeat
set OutPath to Convfolderpath
set aliaslist1 to AliasListGen(Convfolderpath)
if selbutton is "JPEG" then
ConvProcess("JPEG", intext, ".jpg", aliaslist1, OutPath)
else if selbutton is "TIFF" then
ConvProcess("TIFF", intext, ".tif", aliaslist1, OutPath)
end if
on ConvProcess(format, inWidth, Extension, itemlist, outpathPOSIX)
set tmpnum to 0
repeat with initem in itemlist --JPEG, PNG, TIFFのみ変換 (日本語環境のみ)
tell application "Finder" to set itemkind to get kind of initem
if itemkind is "JPEG イメージ" or itemkind is "PNG イメージ" or itemkind is "TIFF イメージ" then
set tmpnum to tmpnum + 1
tell application "Finder" to set itemname to get name of initem
set ConvitemPOSIX to POSIX path of initem
set itemname to do shell script "echo " & quoted form of itemname & " |sed -e 's/.[^.]*$//g'"
set outitemPOSIX to outpathPOSIX & "[" & tmpnum & "]" & itemname & Extension
do shell script "sips -s format " & format & " --resampleWidth " & inWidth & " " & quoted form of ConvitemPOSIX & " --out " & quoted form of outitemPOSIX
end if
end repeat
end ConvProcess

162名称未設定2014/02/09(日) 05:38:49.19ID:G4uzaK290
文字数制限厳しくて変な英語に変えたりコメントとかエラー処理とか色々端折ってますorz
入力値の全角半角とか処理とか追加すると良いかも

てかぶっちゃけリピート処理だとシェルスクリプトだけの方が処理は早いと思う
フォルダのパスを取得して
cdしてパイプでつないでsips -s format jpeg -Z 2000 *.tif
でまとめて変換した方が速いんじゃないかな。

そえば
tell application "Finder" to set itemkind to get kind of initem と set itemkind to kind of (info for initem)
ってどっちが速いんだろ何回かmsecで時間計ってみたら、後者の方が速い気もしたんだけど、logの表示がうざったいからtellにしました。
あとget kindとかの英語以外での環境での英語表示とかどうやるんだっけ?
これだと環境依存で気持ち悪いなー

163名称未設定2014/02/09(日) 07:12:57.69ID:Eetg+bKV0
UTIを使いましょう。

>>154
"JPEG イメージ"は移植性が無い。
>tell application "Finder"
>set itemkind to get kind of Q
>end tell
>if itemkind is "JPEG イメージ" then
if (type identifier of (info for Q) = "public.jpeg") then

>>160
これだと拡張子無しや".jpeg"は拾えない。
>set aliaslist2 to choosefile("jpgとpngだけ", {"jpg", "png"}, true, false)
set aliaslist2 to choosefile("jpgとpngだけ", {"public.jpeg", "public.png"}, true, false)

164名称未設定2014/02/09(日) 08:47:41.45ID:G4uzaK290
>>163
choose fileのタイプにtype identifier指定できたんだ なるほどいいね!

そうなのよ、そこ雑で悩んだの環境依存、type identifierで選別はいい感じだね!
指定フォルダの中身全部処理する時はtryで逃げとけば、中にフォルダが入ってる場合とかtype identifier無いからエラーでパスできる
大容量のフォルダにinfo forするとサイズ計算に時間掛かるみたいだから、一石二鳥だね。
うんスバラッ
てかkindをわざわざ英語出力にとか遠回り過ぎた、まぁちょっと英語出力の仕方も知りたいところだけど、グッジョブありがとう!

てことで>>163さんのアドバイスどおり
>>161
tell application "Finder" to set itemkind to get kind of initem
if itemkind is "JPEG イメージ" or itemkind is "PNG イメージ" or itemkind is "TIFF イメージ" then



try
set itemkind to type identifier of (info for initem)
on error
set itemkind to ""
end try
if itemkind is "public.jpeg" or itemkind is "public.png" or itemkind is "public.tiff" then
に変更します。

あと
set OutPath to Convfolderpath
で無駄に変数増やしちゃってるけど、文字数制限で処理を徐々に消していった名残なので適当に名前変えて消してくださいorz
ありがとうございました!

1651462014/02/09(日) 10:51:43.82ID:ohdnntp30
>>162 >>163
うわ、すごいな。
まだ試せていないけど、取り急ぎ感謝です。
これをもとに色々勉強できそうです。
ありがとうございました。

166名称未設定2014/02/15(土) 08:47:51.53ID:mqfLIl2K0
復旧

167名称未設定2014/02/19(水) 20:41:23.94ID:85Ztrva8P
画像に悪用防止で透かしを入れた画像を作りたいのだが、ASでさくっといけないものだろうか。

168名称未設定2014/02/19(水) 21:54:02.95ID:Ieto0spB0
シェルスクリプト含ませれば早いだろう
ググって素案できたらまた来いや

169名称未設定2014/02/21(金) 16:09:03.28ID:9KWp105h0
前にmac探で質問して見つからなかったので、自分用にapplescriptでこんなの作ってみたから発表してみる。
ざっくり言うと設定した音量以上の入力で、登録したapplescriptを動作させたり
マウスクリックしたりするapplescriptのアプリケーション
α版だけどこんな感じ、右のボタン達はテスト用だから無いです
http://i.imgur.com/BimdMDV.jpg
キー入力するスクリプトを入れると、音でページスクロールできたりする
ちなみに色付きでスクリプトの確認できる
http://i.imgur.com/JyakDsm.jpg
長いコードの場合はスクロールして確認できる
http://i.imgur.com/EY2TIBZ.jpg
ここからセットしたスクリプトをエディターで開けるmenuついてるから、編集して保存すればすぐ適応される
リピート処理のミスとかでデバックでエディターがフリーズしたくない時のテスト稼働とかにも使えるかも
一応エラー表示できる
http://i.imgur.com/4PTrwkn.jpg
applescriptをなんとなく対応
まだaudio levelコマンドしかないけど
現在の音量数値出力できる、音のレベルを使ったスクリプトにつかえるかな?
http://i.imgur.com/pZ0ijkL.jpg

現状applescriptだからかマルチスレッド系の処理でmallocエラーログがでてなんか気持ち悪い、、、
解決策分かる方いますか?
具体的にはNSSound使って音が止まった時とかAVCaptureSessionのセッションを走らせたときとかにでるGC operationなんちゃらです
稼働には問題ないんだけど、logが出て気持ち悪いなと。。。
GCC_ENABLE_OBJC_GCを無くすと出ないんだけど、なんなんだろう?
なんかGCC外すとAutoreleasePoolが使えなかったり、
CFAbsoluteTimeGetCurrentとか一部のメソッドを使うと落ちたりするから不安定そうなんで入れてるけど
いまいちわからない
webkitのやつみたいにログだけ出る無害なバグなのかな?

170名称未設定2014/02/21(金) 18:36:12.43ID:Jl0LW+tB0
>>169
Garbage Collection(GC)は、もう使うなだったような
AutoreleasePoolが使えないってのはAutomatic Reference Counting(ARC)がオンになっているんんじゃね。GCとARCは共存できないハズだが共にオンだとGCだけが有効とかかな
GCもARCもオフにしてみるとか

171名称未設定2014/02/21(金) 21:19:18.60ID:9KWp105h0
>>170
そうそうGC必須にするとdeprecatedだがらARCに変えろってアラート出る
でもなぜか動作が安定する、GCエラーログ出るけど。。。
ARCはデフォルトで全体でオフになってて試しにONにしてもoffの時と動作は変わりませんでした。
GCオフだと勝手にオンになってのかと思って、個別にCompilerFlagでオフしてみたけど変わらず
CFAbsoluteTimeGetCurrent呼び出すと落ちる以外に
NSTaskでパイプに入ると落ちたり
NSThread使うと処理終了時に落ちる

NSThreadに関して言えばGCオンで動作はするものの、処理終了までメインがかなりの確率でロックされる、たまにロックされないんだけど、
一応NSThreadの isMainThreadで確認するとinitWithTargetで投げた処理は別スレッドになってるみたいなんだけどなんでだろ
ここら辺詳しい方教えてください

172名称未設定2014/02/22(土) 04:27:05.52ID:7VQSd7JC0
手持ちのプログラムでちょっと検証してみたら
AVCaptureSessionのstartRunningでGCのエラーログが出るんじゃなくて
SessionのinputsにAVMediaTypeAudioがセットされた状態でstartRunningすると出るみたい
試しにAVMediaTypeVideoでFaceTime CameraをセットしてstartRunningしたら出なかった
もちろんカメラは起動してる
NSSoundの件もあるし音関係を扱うと出る可能性があるかも
やっぱりGCのバグぽい?
それならと思ってaudiotoolboxで鳴らしてみようと適当に書いてみたら、
スタート後少し待ってfreeなんちゃらってでて鳴らなかった、適当だったから書き間違いかもだけど。。。
疲れたからとりまここまで、誰か解決策plz
Mt.lionやMarvでも同じ症状でるのかな  そもそもMt.lionからARC対応したからARCでいけるのか?
NSSoundで音が鳴り終わったらエラーが出るサンプル作ったから、試してみて下しあ
ボタン押すとシステムサウンドが鳴ってエラーがあった場合コンソールに表示されます。

173名称未設定2014/02/22(土) 04:28:26.91ID:7VQSd7JC0
property ca : current application
on run
set BK to ca's NSBackingStoreBuffered
tell ca's NSWindow's alloc()
initWithContentRect_styleMask_backing_defer_({{300, 300}, {200, 100}}, 3, BK, false)'s autorelease()
setTitle_("NSSoundTest")
set wind to it
end tell
tell current application's NSButton's alloc()
tell initWithFrame_({{0, 0}, {90, 24}})
setTitle_(" Play ")
setTarget_(me)
setBezelStyle_(1)
setAction_("Play:")
set button to it
setTranslatesAutoresizingMaskIntoConstraints_(false)
end tell
end tell
set conview to wind's contentView
conview's addSubview_(button)
set xx to current application's NSLayoutAttributeCenterX
set yy to current application's NSLayoutAttributeCenterY
set xx_con to current application's NSLayoutConstraint's constraintWithItem_attribute_relatedBy_toItem_attribute_multiplier_constant_(conview, xx, ca's NSLayoutRelationEqual, button, xx, 1, 0)'s autorelease()
set yy_con to current application's NSLayoutConstraint's constraintWithItem_attribute_relatedBy_toItem_attribute_multiplier_constant_(conview, yy, ca's NSLayoutRelationEqual, button, yy, 1, 0)'s autorelease()
conview's addConstraint_(xx_con)
conview's addConstraint_(yy_con)
wind's makeKeyAndOrderFront_(me)
end run
on Play_(sender)
ca's NSSound's soundNamed_("Submarine")'s play()
end Play_

174名称未設定2014/02/25(火) 09:54:30.60ID:sBemAXSz0
だ、だれも試してくれてない。。。
OS依存なのかだけでも知りたいな
マウンテンライオンかマベの方いたら、どうかお願いします。
動作反応見る感じAppleScriptエディタだと
標準でGCC_ENABLE_OBJC_GCがrequiredでコンパイルされるみたい。
CFAbsoluteTimeGetCurrent使えるし
エラー出るし、、、

windowとかをわざわざ作らないでchoose from list使って簡略化しました、再生される音も選べるようにしました。
CFAbsoluteTimeGetCurrent使ってタイトルに時間表示してます
ちなみにlionだと
選択したSEが再生され、音が鳴り終わるごとにコンソールにerrログが出力されます。
ログが出るかでないかだけでも教えてもらえれば幸いです

on run
repeat
set nowtime to (current application's CFAbsoluteTimeGetCurrent()) div 1
set SEList to {"Basso", "Blow", "Bottle", "Frog", "Funk", "Blow", "Glass", "Hero", "Morse", "Ping", "Pop", "Purr"}
set selSE to choose from list SEList with prompt "再生するSEを選択" OK button name "Play" with title nowtime
if selSE is false then
quit me
else
my play(item 1 of selSE)
end if
end repeat
end run
on play(SEName)
current application's NSSound's soundNamed_(SEName)'s play()
end play

175名称未設定2014/02/25(火) 11:13:11.62ID:PY34aknD0
AppleScriptObjCでGCだのARCだのっつうからXcodeでかと思ったらAppleScript Editorでかよっ、しかもなんかちょうちょっと古いOSかよっと思った
ID: 7VQSd7JC0 から ID: 9KWp105h0 へのかと思ったしな

とりあえず、Mountain Lionでは何も問題無く/出なく ブオン って鳴る>>173し、何も問題無く/出なく選んだのが鳴る>>174

古いOSのGC/ARCは
http://piyocast.com/as/archives/2283
らしいよ。Xcodeでの話しのようだけどな

176名称未設定2014/02/26(水) 05:35:05.90ID:6RYVbRxr0
>>175
ありがとー!
あ、そのふたつ私です;
AppleScript Editorでアプリ作るってなんか縛りプレイみたいで面白いですよね!

コンソールに
malloc: *** auto malloc[]: error: GC operation on unregistered thread. Thread registered implicitly. Break on auto_zone_thread_registration_error
でないですかやぱり
てことはwebkitと同じGCのバグなのか
しかも今の所lionでAppleScriptObjC.framework使って音関係のメソッド使ったときのみぽいのかな

メモリリークの前にGC必須にしないと即落ちするメソッドがあるので、それらがMountain Lionだとどんな感じになるのか気になる所
でも下位互換考えたらGC必須は外せないか、落ちたらだめだし
エラーログは、ただ表示されてるだけのバグってことで、無視で大丈夫そうかな 気持ち悪いけど。。。
ちなみにXcode上でrequiredでもsupportedでも動作は変わらない感じ
applescriptやってる人でマベにしてる方はいないかな?

そえばAppleScript Editorだけでもスクリプタブルなアプリ作れるってことに気づいた

177名称未設定2014/02/28(金) 13:09:21.15ID:/MfpeEpD0
NSSoundを使った、lionでエラーの出るapplescriptのソースで10.6バージョン作って試してみたら、エラーログ発生しませんでした。

それでもう少し細かい検証をしてみました。
CFAbsoluteTimeGetCurrentをapplescriptで直接書くとGCオフの場合クラッシュします。
そこでCFAbsoluteTimeGetCurrentをobjcで表記してapplescriptでそのコードを呼び出す方式にした場合、GCオフでもクラッシュせず機能しました。
これでGCオフで使えないと思われていたメソッドはカバーできそうです。(なぜクラッシュするかは、分かりません)

それと同じ事をNSSoundでも行って見て、気づいた事がありました、
なんとGCオンだとobjcで書いたコード(objcのみで書いたアプリ)でも同じエラーが出るようです。

用はGCをオンにすると、一部のメソッド(現状では音関係)を使うとapplescript関係なくエラーが表示されるようです。
このバグはマーベリックスでもあるみたいなんだけど、誰か検証してくれないかな?>>174あたりのコードをAppleScriptエディタにコピペしてもらえれば
lion以降でもAppleScriptエディタでのコンパイルはデフォでGCオンだと思う

applescriptobjcはGCをオンにしないとメモリがめちゃくちゃ消費されちゃうみたいだから、10.8以前は、GCをオンにするしかないと言われているけど、
ドラッグイベント関連でもGCオフで落ちる事があったから、もしARCでクラッシュが改善されてないならGCオンにするか、
ほとんどのコードをobjcで書かないと行けないことになり、だったら最初からobjcで書けよってことになっちゃう

試しにGCオンで
音を扱う部分のコードを分けてcompilerFlagを-fno-objc-gcにして見たけどGCエラー表示出ました。
GCは公式で使うなって言われてるだけあって、エラーが改善される事は、ないだろうな

ただこのエラー表示での実害は今の所ないのが救い
applescriptで開発してる方はあまりいないと思うけど、今後互換性確認で同様のエラーが出た時の、参考になれば、、、
GCエラーに関して言えば、もうapplescriptの範疇外なのでこれ以上検証しても仕方なさそう
むしろクラッシュの方が問題
Mt.lion機作ろうかな

178名称未設定2014/03/26(水) 18:20:55.71ID:8j8sFi4/0
display notification "sage" with title "Mavericks" sound name "beep"

179名称未設定2014/03/29(土) 09:04:02.90ID:NNl60dr90
MacOSX 10.8.5です。
FinderにてFinderウィンドウをリスト表示で使用しています。

スクリプトエディタで記録ボタンを押したのち、各リスト項目の幅を調整して記録したのですが、
追加日も名前も同じ「id name」と記録され、
実行してみると名前に二回実行されてしまいます。

当時10.6でも何かが同様だったのを思い出し
やってみたら、種類がid nameでした。
こちらは10.5の記録でkind nameと判明でき、10.6にも通用しましたが、
10.5には追加日なんてありません…。

Finderをスクリプトエディタにドロップし調べたところ
name (name column/以下追加日作成日サイズ種類ラベルバージョンコメント とありました。

これは完全に無理で終了なのでしょうか…。
私は難しい事はできませんが、これはいくらなんでも見捨てられ感を感じます。

Finderにてリスト表示の幅を調整するにはどうしたらいいのでしょうか?
アドバイスなどよろしくお願いします。

180名称未設定2014/03/29(土) 16:08:35.33ID:e5Jihre30
とりあえず動いた
property vwList : {{v:"name", w:300}, {v:"dateAdded", w:200}, {v:"label", w:150}}
-- vは{"name", "dateModified", "dateCreated", "dateLastOpened", "dateAdded", "size", "kind", "version", "comments", "label"}のどれか。下記(*1)を参照。
on getW(argV)
repeat with itemX in vwList
if v of itemX is argV then
return w of itemX
end if
end repeat
return 0
end getW
tell application "Finder"
set current view of front window to list view
end tell
tell application "System Events"
tell application process "Finder"
tell outline 1 of scroll area 2 of splitter group 1 of front window
--(*1) vに取りうる値は下記文にて表示。
--value of attribute "AXIdentifier" of every column
repeat with x from 1 to (count of column)
tell column x
set v to value of attribute "AXIdentifier"
set newW to my getW(v)
if newW is not 0 then
set {w, h} to size
set size to {newW, h}
end if
end tell
end repeat
end tell
end tell
end tell

181名称未設定2014/04/01(火) 01:58:03.39ID:ynLRXj0p0
>>180
ありがとうございます!バッチリでした!
でも、なぜ記載されていない項目をコントロール出来るのか、
後学のためにも概略でいいので解説いただけませんでしょうか。
ふしぎでしょうがないです。

182名称未設定2014/04/15(火) 17:50:21.49ID:SZkyhnNr0
OS X (10.9.2)のターミナルからosascriptで動かそうとしているんですが、
以下のパターン1と2では
execution error: CotEditor got an error: Can’t get contents of selection of document 1. (-1728)
というエラーがでてしまいます。
パターン3だと上手く動くのですが、
パターン1と2でエラーになってしまう理由はなんなのでしょうか?
最終的にはパターン1の形で動かそうとしています。


【パターン1:エラー】
#!/usr/bin/osascript
set activeApp to path to frontmost application as text
tell application activeApp
set note_text to contents of selection of front document
end tell
return note_text

【パターン2:エラー】
#!/usr/bin/osascript
set activeApp to "Macintosh HD:Applications:MustApp:CotEditor.app:"
tell application activeApp
set note_text to contents of selection of front document
end tell
return note_text

【パターン3:成功】
#!/usr/bin/osascript
tell application "Macintosh HD:Applications:MustApp:CotEditor.app:"
set note_text to contents of selection of front document
end tell
return note_text

183名称未設定2014/04/15(火) 18:37:52.52ID:fqFcyd/l0
>>182
文字列リテラルではない、
tell application アプリケーションバンドルへのpath
は、正式にはサポートしていないとしか見えないねえ

frontmost applicationにはなら
tell application "System Events" to set activeApp to name of application processes whose frontmost is true
tell application activeApp
でいいんじゃないの

184名称未設定2014/04/15(火) 18:43:07.83ID:fqFcyd/l0
>>183
×
tell application "System Events" to set activeApp to name of application processes whose frontmost is true

tell application "System Events" to set activeApp to item 1 of (get name of application processes whose frontmost is true)

185名称未設定2014/04/15(火) 19:17:18.30ID:SZkyhnNr0
>>184
早速ありがとうございます。
>>184でもダメでした。
set activeApp to "CotEditor"
もダメで、変数を使うと全てアウトのようです。
一応class of activeAppでパターン1と2の型を調べてみましたがtextでした。

186名称未設定2014/04/15(火) 20:04:50.33ID:fqFcyd/l0
>>185
ちなみにTerminalでやれば
tell application "System Events" to set activeApp to name of application processes whose frontmost is true
は、Terminalだよ。前のdelay入れて、その間にCotEditorを表にしてってしてるんだよね?

187名称未設定2014/04/15(火) 20:07:12.17ID:fqFcyd/l0
>>186
×前にdelay入れて
○前のdelay入れて

ああ、
set activeApp to "CotEditor"
もダメなのか。んー、そうだっけ

188名称未設定2014/04/15(火) 20:12:34.56ID:SZkyhnNr0
>>186
説明してませんでしたが、
TotalTerminalを使って
Terminalを呼び出してもactivateしないようにしています

189名称未設定2014/04/15(火) 22:31:26.66ID:fqFcyd/l0
>>188
どうもCotEditor側の問題のような
documentのプロパティのアクセスで、Text Suiteにはアクセスできるが、CotEditor suiteにはことごとく失敗する
なんで application リテラルと変数 で、CotEditor内の処理に関係するのかわからんけど

contents of selection は CotEditor 独自なんだよね?
telll application "CotEditor"
で、いいんでないの?

190名称未設定2014/04/15(火) 23:01:57.14ID:WdFslrQw0
この形でもよければ(うちは10.8.5だけど)

【パターン1、改】
#!/bin/sh
activeApp="`
osascript - <<EOS1
set activeApp to path to frontmost application as text
EOS1
`"
osascript - <<EOS2
tell application "$activeApp"
set note_text to contents of selection of front document
end tell
return note_text
EOS2

【パターン2、改】
#!/usr/bin/osascript
set activeApp to "CotEditor"
using terms from application "CotEditor"
tell application activeApp
set note_text to contents of selection of front document
end tell
return note_text
end using terms from

191名称未設定2014/04/15(火) 23:48:23.27ID:SZkyhnNr0
>>189
activeAppを使いたい理由はこんな形を想定していたからです。
tell application activeApp
if activeApp = "CotEditor" then
else if activeApp = "TextMate" then
else
end if
end tell

とりあえずは、ifを外側にもってくれば動きそうです。
if activeApp = "CotEditor" then
tell application "CotEditor"
end tell
else if activeApp = "TextMate" then
tell application "TextMate"
end tell
end if

>>190
ありがとうございます。
勉強になりました。
もう少し試行錯誤してみようと思います。

192名称未設定2014/04/24(木) 21:02:35.85ID:lnhClB9r0
iPhoneでエロ画像保存→フォトストリームでiPhotoライブラリに追加されたエロ画像を手動で外付HDDに移動させてるんだけど、移動させた後iPhotoライブラリのエロ画像+フォトストリームのエロ画像+iPhoneのエロ画像を消すのが地味に面倒くさい。
iPhoneは仕方ないとして、iPhotoで選択した画像を移動→選択した画像+フォトストリーム上の同一ファイルを削除させるようなスクリプトは可能です?
ちなみにautomatorだったり直接iPhotoライブラリフォルダ内の画像を移動させても、iPhoto上にサムネイルが残ってしまいます...

193名称未設定2014/04/24(木) 23:10:53.17ID:hXjbnSYt0
>>192
そんな面倒なことしなくてもiPhoneで保存→別Appで管理→フォトストリームから削除
じゃだめなのか?
外付けに移動させてるあたりファイル単位で管理したいようだし、それなら相応のApp使った方がいいのでは

194名称未設定2014/04/24(木) 23:11:36.18ID:hXjbnSYt0
補足、フォトストリームは外部Appから管理しづらいので収集から別Appでやったほうが効率的だ

195名称未設定2014/04/26(土) 18:19:15.04ID:HG5IzbCx0
>>191
変数を中身に置き換える前に辞書との付き合わせをやってるからだろうね
tell以下をrun scriptでやれば変数処理を先にできるけど、
TextMateとやらとその後の処理が違うのなら>>191みたく直書きで分けた方がスッキリするんじゃないの

196名称未設定2014/04/26(土) 21:26:44.17ID:vKs6oC1D0
最近書いてなかった。昨日ちょっと書いたけど、
なんかVBはおぼつかないけど、ASはすらすら書けた。
こんな便利な言語、Mac使う人はみんな使えばいいのにね。
なんでこんなに普及しないんだろ。

197名称未設定2014/05/14(水) 22:03:09.50ID:DYqCOVee0
名刺を黒い板の上でデジカメで撮影したのが1000枚くらいあるんだけど、
黒い部分がどうも気になるのでトリミングしたい。
しかし、適当に撮影したものなので位置は微妙にばらばら。
すべての画像から名刺部分だけをトリミングするスクリプトって
なんかアイデアある? WinだったらImageTrimmerってのでできるみたいだけど。
Photoshopでなぜかうまく自動で切り抜きができない。

198名称未設定2014/05/14(水) 22:28:21.93ID:UQ+SYzM/0
>>197
できないとは

199名称未設定2014/05/15(木) 05:20:43.79ID:zC936+D10
>>197
http://i.imgur.com/BojwvPN.jpg
四角の名刺しか無理だけど、画像の色の境目をスキャンして点a、bの座標を取得すれば
θ=atan(y/x)で角度から傾きを補正できる
あとは点a、cの座標で長方形に切り抜けばいいんじゃないかな。
そのままだと画像のサイズがバラバラになって気持ち悪いから、
縦か横の最大サイズ指定してそのサイズにリサイズするといいと思う。

200名称未設定2014/05/15(木) 21:47:25.56ID:60RgR0or0
>>198
なんかネットに書いてあるように
画像開く
メニューから「トリミング」
オプションを指定
、、、、、、で出来なかったけど、トリミングする前に余黒の部分意外を
選択せんといかんのかな? ちょっとすぐには試せないけど。

>>198
画像の色の境目をスキャンって意味がわかりません。
図のaとbの座標をどう検出する?
てか、基本GUIスクリプティングで傾き補正すればいいような気はするけど。

もうひとつ、黒い板が真っ黒でなくムラがちょっとあって、マジックワンドで
余黒部分を一括選択とかできない(ASで同様のことできるのかわからないけど)
ほぼ初めてPSでASやってみようと思ってるけど、やっぱ画像いじるような処理は
なかなか難しいわ。苦戦中

201名称未設定2014/05/16(金) 08:37:55.51ID:qCvHB/PF0
Xcode で、 AS で TableView にデータを追加する方法おしえてください。すごく単純な質問で
すみませんが、ググってもうまくいきません。
また、Xcodeでの使い方をまとめてあるサイトがあったら教えてください。
tell aTextView to setStringValue_(strVal)
を調べるのに丸一日かかったので、、

202名称未設定2014/05/16(金) 09:05:53.87ID:5Z546CfG0
>>201
海外にASOCの電子書籍あるよ! 買えばすぐに分かる。
やるつもりなら買ってね。3000円くらいだったかな?
買えば基礎がわかり、そうするとWEBにある情報が活用できる。
ぴよさんのところに情報があったような。

203名称未設定2014/05/16(金) 09:34:00.84ID:LWnNIW3E0
>>201
簡単な方法だと
xibでArray Controller追加して
Content Arrayにリスト型のpropertyをBinding
missing value の適当な変数(theArray)にArray Controllerを接続

Object ControllerにKey追加してTableViewのColumnのValueに
Bind to Array Controller で
Controller Key をarrangedObjectsにして
Model Key Path に追加したKeyを書き込む
これでxibの準備おk
新たにrowpartってクラス作ってそれのpropertyとKeyが連動する
例えば
set newobj to current application's rowpart's alloc's init()
theArray's addObject_(newobj)
他にkeyを変数名にしたレコードを追加するだけでも、列に追加できたと思う
でも違うクラスで管理した方が動的に管理しやすいからおすすめ

204名称未設定2014/05/16(金) 21:56:27.55ID:DGo5mYXH0
なんかASOCでsandboxできるようになってた。俺もMacAppデビューか?

205名称未設定2014/05/17(土) 18:46:23.15ID:iUPgYNrF0
IllustratorCS5なんですが、前面へペーストってAppleScript上でできないですかね?
ライブラリ見ても普通のpasteしかなかったもので・・・

206名称未設定2014/05/18(日) 07:28:20.66ID:SZDwTVIE0
GUIスクリプトでいけんじゃね?

207名称未設定2014/05/18(日) 12:23:40.65ID:1SamfBSc0
あ〜なるほど
そんなこともできるんですね
元座標を取得して〜とかややこしいこと考えてました
ありがとうございます

208名称未設定2014/05/21(水) 08:25:30.47ID:gZlbtxpxi
AppleScriptエディタの背景は変えれないのでしょうか?
黒にしたいんですけど

209名称未設定2014/05/29(木) 19:59:33.42ID:8Urv7sLM0
教えてください
先日10.8.5から10.9.3に上げたところ、10.8.5のAppleScript EditorのCocoa-AppleScript Appletテンプレから作ったアプリがクラッシュするようになってしまいました
アプリは単純で、通知センターに通知を出す、通知がクリックされたら再処理する(a)、スリープから復帰したら再処理する(b)、程度のものです
クラッシュログを見ると、(a)や(b)用に設定したデリゲート、オブザーバのメソッド呼び出しで、メソッドが見つからないと言っているようです
とりあえず10.9.3のAppleScript Editorで作り直してみましたが変わりません

前・現スレを追ったりググったり、この一件 https://discussionsjapan.apple.com/thread/10139456 は見つかりましたが、解決していないようです(クラッシュログが似ているので同様の原因と思います)
10.9ではこう直す必要があるなど、お分かりでしたら教えてください

(続く)

210名称未設定2014/05/29(木) 20:00:20.21ID:8Urv7sLM0
再現スクリプト
on run
my setWake()
my putNotification()
end run
on wake:aNotification
NSLog("%@", "wake_")
end wake:
on setWake()
tell my NSWorkspace's sharedWorkspace()'s notificationCenter()
addObserver_selector_name_object_(me, "wake:", "NSWorkspaceDidWakeNotification", missing value)
end tell
end setWake
on putNotification()
set uNotification to my NSUserNotification's alloc()'s init()
tell uNotification
setTitle_("Title")
setSubtitle_("Subtitle")
end tell
tell my NSUserNotificationCenter's defaultUserNotificationCenter()
setDelegate_(me)
deliverNotification_(uNotification)
end tell
end putNotification
on userNotificationCenter:aCenter didActivateNotification:aNotification
NSLog("%@", "activate")
end userNotificationCenter:didActivateNotification:

(続く)

211名称未設定2014/05/29(木) 20:01:12.23ID:8Urv7sLM0
(a)のクラッシュログの抜粋(クラッシュは通知が出てすぐ起きる)
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018

Application Specific Information:
objc_msgSend() selector name: respondsToSelector:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff91b30097 objc_msgSend + 23
1 com.apple.Foundation 0x00007fff90465b1c -[_NSConcreteUserNotificationCenter _sendDelegateMessage:sendToAppDelegate:withNotificationFromMessage:] + 52
2 com.apple.Foundation 0x00007fff904665ca __54-[_NSConcreteUserNotificationCenter _serverConnection]_block_invoke_2 + 199

(b)のクラッシュログの抜粋((a)を設定しないようにし、スリープから復帰したとき)
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018

Application Specific Information:
objc_msgSend() selector name: wake:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff91b30097 objc_msgSend + 23
1 com.apple.CoreFoundation 0x00007fff8d61fe0c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
2 com.apple.CoreFoundation 0x00007fff8d5138dd _CFXNotificationPost + 2893
3 com.apple.Foundation 0x00007fff9020c7ba -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
4 com.apple.AppKit 0x00007fff94bb949c powerSubsystemCallback + 125

(以上)

212名称未設定2014/05/30(金) 16:41:48.89ID:w2GSLBfm0
上記で質問した者ですが、とりあえず解決できたっぽいです

参照ページ ttp://macscripter.net/viewtopic.php?id=42087
参照スクリプト ttp://macosxautomation.com/lion/applescript.html の Applet with Progress Window

再現スクリプトを下記のように分割し、修正します
main.scptの内容
on run
set mySubScpt to my subScpt's alloc()'s init()
tell mySubScpt
setWake()
putNotification()
end tell
end run
(続く)

213名称未設定2014/05/30(金) 16:42:24.82ID:w2GSLBfm0
sub.scptの内容(CocoaAppletAppDelegate.scptと同じ階層に置きます)
script subScpt
on wake:aNotification
NSLog("%@", "wake_")
end wake:
on setWake()
tell my NSWorkspace's sharedWorkspace()'s notificationCenter()
addObserver_selector_name_object_(me, "wake:", "NSWorkspaceDidWakeNotification", missing value)
end tell
end setWake
on putNotification()
set uNotification to my NSUserNotification's alloc()'s init()
tell uNotification
setTitle_("Title")
setSubtitle_("Subtitle")
end tell
tell my NSUserNotificationCenter's defaultUserNotificationCenter()
setDelegate_(me)
deliverNotification_(uNotification)
end tell
end putNotification
on userNotificationCenter:aCenter didActivateNotification:aNotification
NSLog("%@", "activate")
end userNotificationCenter:didActivateNotification:
on NSLog(fmg, msg)
do shell script "syslog -s -l Notice " & msg
end NSLog
end script

(以上)

214名称未設定2014/06/07(土) 06:47:40.02ID:K4QUfk3I0
なんかさ、お手製のASOCアプリで、テキストファイル(具体的にはHTMLファイル)を
動的に作成しているんだけど、おなじみのカタカナ濁点問題でsqliteからデータがヒット
しなかったため、do shell script iconvで文字コード変換する仕組みを試したら、
その後、そのマシンでは全部文字化け???????とかするようになってしまった。
元に戻したつもりだが、それでも文字化けしっぱなし。他のマシンで動かすと
普通に表示される。これ、何がおかしくなってしまったのだろう? 皆目検討がつかない。

215名称未設定2014/06/07(土) 16:24:00.67ID:zIxkH1WO0
>>214
>>そのマシンでは全部文字化け???????とかするようになってしまった。
なにが文字化けしたのか、テキストファイルなのか、ブラウザなのか、UIとかテキストが使われている所すべてなのか?

作成したHTMLの文字コードは、確認した?

カタカナ濁点はis inとか使って、どうにかしたような気がする

216名称未設定2014/06/10(火) 14:31:45.38ID:TLtyEFvp0
OSX 10.10にはJavaScriptのOSA componentが追加される。
JavaScript for Automation Release Notes
https://developer.apple.com/library/prerelease/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/index.html
これってScript Debuggerを出してるLate Night Softwareが以前配布してたJavaScript
OSAの焼き直しだね。Objective-C Bridge機能は新しいけど。
以前はAppleScript以外にもOSA componentはいくつもあったのに廃れてしまったけど、
これを機にまた色々出ると良いね。

217名称未設定2014/06/11(水) 22:21:00.84ID:WohYruh00
SwiftってASOCに影響あるんだろうか?

218名称未設定2014/06/12(木) 22:47:56.02ID:5DhLMxc40
全く無いと思うよ

219名称未設定2014/06/13(金) 00:37:42.31ID:5iWW/8Q60
影響は無いだろう。ただ、Swift Script Editorが提供されiOSで動く事に・・

220名称未設定2014/06/13(金) 01:29:06.16ID:BH+9QlRy0
個人的にはVB VCとかObj-Cとか扱えないからSwiftは助かるわ。
なんかビジュアル的にどうのこうのするのは苦手。

プログラムは手打ちだろjk

221名称未設定2014/06/13(金) 23:16:46.98ID:7WuVEZau0
質問です
OSは10.9で、実行環境はAutomatorによるサービス内の「AppleScriptを実行する」です。

以下のようなスクリプトで、選択したテキストをSafariで開いたページ(hoge)のテキストフィールドに入力しようとしています。
しかし、テキストに改行が含まれているとうまくいきません。解決法を教えてください。

on run {input, parameters}
tell application "Safari"
make new document with properties {URL:"hoge"}
(省略)
do JavaScript "document.getElementsByName('text')[0].value = '" & input & "'" in document 1
end tell
return input

222名称未設定2014/06/14(土) 08:54:27.08ID:BqgujY2d0
>>221
文字列が途中で分断(改行)されるから、JavaScript文法エラーになるんじゃね
改行毎の文字列に分けてJavascriptで結合するとか、URLエスケープとかで1行にしてJavascriptで戻すとかかなあ

set urlEncodedInput do shell script "/usr/bin/php -r 'echo trim(urlencode(" & "¥"" & quoted form of input & "" & "¥"));'"
do JavaScript "document.getElementsByName('text')[0].value = decodeURIComponent( '" & urlEncodedInput & "');" in document 1
なんて

223名称未設定2014/06/14(土) 18:25:41.63ID:6HYvVvD80
>>220
そういう意味合いではObj-Cと大差無いよーな?

224名称未設定2014/06/14(土) 20:01:40.28ID:ZFqWjo7C0
>>223
多分IBのbindingとかのこと言ってるんだろうけど、扱えないって言ってるから、そんな言えないけどさ
全部コードで出来るのにな。てかswiftもbindingって意味ならマウスでドラッグして線繋ぐ所は、同じなのに...

225名称未設定2014/06/30(月) 00:54:26.49ID:IeiIh5C50
特定のデスクトップを指定して、ウィンドウを再配置することは可能でしょうか?

デスクトップというのは、トラックパッドを3本指か4本指左右スワイプできりかえるものです。

Macbook Air を外部ディスプレイにつないだとき、
Air 本体のディスプレイのデスクトップ1 にクローム、
Air 本体のディスプレイのデスクトップ2にファインダー2つ、
外部ディスプレイのデスクトップ3 にテキストエディタ
という風に適切なウィンドウリサイズで再配置したいのです。

226名称未設定2014/07/03(木) 11:46:09.68ID:9XALmAAL0
何もしないアプリケーションをデスクトップの数だけ作って
Dockで各デスクトップに割り当てておき
それを実行した後で目的のアプリで新規ウィンドウを開けばいいんじゃないでしょうか

227名称未設定2014/07/03(木) 12:57:14.43ID:Aqyg/V0F0
デスクトップの切り替えを試行(キーボードショートカットで ^1 ^2 が定義されているとき)

tell application "System Events"
delay 1
key code 19 using control down -- switch to desktop 2
delay 1
key code 18 using control down -- switch to desktop 1
end tell

228名称未設定2014/07/03(木) 16:31:10.31ID:AqXSO5JN0
>>227
目からうろこです。
そのデスクトップ切り替えのショートカットあるの忘れてました。
スワイプでデスクトップ切り替えてたので、環境設定でこの切替ショートカットのチェックマーク外してました。

229名称未設定2014/07/05(土) 12:12:19.68ID:YyTe2e2J0
ASは幸せでいいなあ。スクリプト書いてて楽しいもの。

230名称未設定2014/07/15(火) 03:19:28.79ID:wYxshpyA0
選択範囲のテキストを (* *) で囲みたいのですがうまく行きません。

tell application "System Events"

set oriClip to the clipboard

keystroke "x" using {command down}
set the clipboard to "(*" & (the clipboard) & "*)"

log (the clipboard)

delay 0.5
keystroke "v" using {command down}

set the clipboard to oriClip

end tell

231名称未設定2014/07/15(火) 04:13:55.22ID:jjZPgGYM0
直接の答えじゃないが
AppleScriptエディタで右クリックで出てくるComment Tags
(実体は /Library/Scripts/Script Editor Scripts/Comment Tags.scpt )
で出来るよ

232名称未設定2014/07/15(火) 05:17:17.81ID:MpU9ZduJ0
--これでいいのかな? 実際にはペーストしたいアプリを最前面に出したりしないとダメだろうけど…

tell application "System Events"

set oriClip to the clipboard

keystroke "x" using {command down}

set copiedText to (the clipboard)
set the clipboard to "(*" &amp; copiedText &amp; "*)"

log (the clipboard)

delay 0.5
keystroke "v" using {command down}

set the clipboard to oriClip

end tell

233名称未設定2014/07/15(火) 09:36:24.47ID:GUZrA3CI0
Automatorでサービス、選択したテキストを入力にして

on run {input}
set input to {"(*" & input & "*)"} as text
return input
end run

こういうのを登録して使ってる。

234名称未設定2014/07/15(火) 14:07:44.75ID:gBz1a97Zi
何でか知らんが set the clipboard した後に keystroke でペーストすると更新前の内容
になっちまうけど、
run script か do shell script で迂回してやればいけそう
あと keystroke してから実際にカットorペーストされるまで多少タイムラグがあるみたいなんで、次の処理が早すぎると上手くいかない

なのでこんなんとか

set oriClip to the clipboard
tell application "System Events"
keystroke "c" using command down
do shell script "printf '(*%s*)' $(pbpaste) | pbcopy"
keystroke "v" using command down
end tell
delay 0.5
set the clipboard to oriClip

環境によっては do shell script の前にも delay 入れんとダメかも
カット"x"かコピー"c"かはお好みで

235名称未設定2014/07/15(火) 14:24:08.42ID:gBz1a97Zi
スクリプトエディタ限定ならこっちの方が早くて確実

tell application "AppleScript Editor"
tell selection of front document
set contents to "(*" & contents & "*)"
end tell
end tell

236名称未設定2014/07/15(火) 21:26:11.16ID:wYxshpyA0
/* >>230 です。
コメント、ありがとうございます。
こんなにいっぱいコメントつくとは思いませんでした。
*/

237名称未設定2014/07/15(火) 21:36:14.73ID:UTRb/ZIa0
--困ったらまた来んしゃい

238名称未設定2014/07/16(水) 01:50:25.47ID:dEYdlhmW0
(*
そえばapplescriptobjc用にそんなやつ作ったな
xcode上でまとめてコメントにしたり解除したりするのが面倒くて
最初はサービスでやってた気がする、テキスト選択して右クリックで
コメントだったらコメントタグ抜いて、違ったらコメントタグ挿入してたわ

スクリプトエディタなら標準で選択テキストをコメントにするやつ入ってたから、それ参考にした気がする
*)

239名称未設定2014/08/16(土) 05:41:06.92ID:998pTkUY0
スクリプト作れもしない奴に
「このスクリプト、壊れてるね」
と言われた。ちょっと処理に時間がかかるだけなんだけど、
それじゃあ手作業でやってくれ、とは言えず。
時間がかかる処理してるときに処理してるのをわかるように
するにはどうすりゃいいんだろう。
プログレスバーなんて出せるんだっけ?

240名称未設定2014/08/16(土) 07:24:26.40ID:k1f6Yzfu0
前々スレ
http://anago.2ch.net/test/read.cgi/mac/1256127156/
の937からsafariを利用してプログレスバー出す方法があるよ。
全体の処理数が把握できないと無理だけど

241名称未設定2014/08/16(土) 08:19:41.01ID:koeiqCLv0
>>240
へえーこんなのがあったんだ
試してみたがおもしろいw
ブラウザ常に立ち上げてない自分にとっては実用的じゃないけどいいね
>>239
自分の場合はよくgrowl通知を使ってる
ふだんは処理開始と処理終了でnotice入れる
時間かかるような処理なら上のプログレスバーの人と同じように
処理開始したファイル名などで通知している
最近まで10.6だったので通知センターへの移行はまだだが
たぶん通知センターでも同じことできるんじゃないかな

242名称未設定2014/08/21(木) 10:29:09.55ID:8GufB5J50
通知センターに/////な感じでバー作って無理やり表示してる。
ただ処理が早いと通知が出ないので、前回表示したときから一定時間経ってたら
表示する、みたいな処理入れてる。

243名称未設定2014/08/21(木) 16:14:49.78ID:qhPq6JfD0
全くわからないんで教えてほしいんですが、
画面解像度を変更するAppleScriptを教えてほしいのですが、どなたかコードを教えていただけませんか?

最終的に使い方はAutomatarのアプリケーションにして必要があればアプリをダブルクリックして瞬時に変更したいんです。

244名称未設定2014/08/21(木) 16:19:28.01ID:eHJIQPJB0
>>239
ProgressBar表示するappletとかOS9時代からあるけど、入れても結局ウザくて使わないな。
自分の用途ではscriptの終了や経過知りたい場合は音で十分。
do shell script "afplay /System/Library/Sounds/Hero.aiff"
を最後に置いたり、音声で知らせたりする。
repeat with i from 10 to 90 by 10
  say quote & i & "%" & quote
end repeat
say "done!"

245名称未設定2014/08/21(木) 18:24:50.87ID:/YoxOgpZ0
>>243
http://hints.macworld.com/article.php?story=20040908141042786
csreenがMavericksで動くのか試してないけど

246名称未設定2014/08/21(木) 18:38:10.22ID:87bgOWlk0
>>243
途中まで
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.displays"
end tell
tell application "System Events"
tell process "System Preferences"
tell window 1
tell tab group 1
click radio button "Display"
tell radio group 1
click radio button "Scaled"
end tell
tell scroll area 1
tell table 1
select row 2
end tell
end tell
end tell
end tell
end tell
end tell

247名称未設定2014/08/21(木) 18:47:50.56ID:DwsP4u890
お二人さんレスどうも。

結構大変なコードが必要なんですね。
自分には難しいですがリンク先とレスいただいたコードを参考に駆使してみます。
ありがとうございました。大変助かりました。

248名称未設定2014/08/23(土) 11:48:55.71ID:kTGtbK/30
>>246
GUIスクリプトでなんでもできる! と思う反面、けっこうげんなりするよなー。
特にボタン、タブグループ、などGUI部品を指定するのが面倒。
名前ついてないような部品もあるみたいだし。button 1 とか button 2とか

249名称未設定2014/08/24(日) 00:54:03.50ID:Unbsppbb0
そんなあなたに Accessibility Inspector

250名称未設定2014/08/24(日) 09:47:45.49ID:QnD6/8Qu0
>>249
そりゃ知ってるよ。でも使いにくくない? ただの戯言だけど。
見るとげんなりするんだよな。もっと簡単にできる手法とか
手順化されてるといいんだけどなー。
操作したいGUIにポインター合わせてF7でロックして確認、だっけ?
見てるとうんざりするんだよね。で、そのGUIをスクリプトの中で
指定するのも>>246のようになってしまう。というより、そのスクリプトは
とてもわかり易く書いてあるけどしっかりGUI部品の構造理解してないと
書けないよね。普通は 
上省略

tell process "System Preferences"
click button "Display" of tab group 1 of window 1
select row 2 of scroll area 1 of window 1
end tell

下省略
みたいなスパゲッティになっちゃってどのGUI指定が間違ってるのか
わからなくなっちゃうんだよね。
1つずつ上位のGUI指定が間違ってないか確認しつつスクリプティングする
やり方が知りたいわ。どうやってデバッグするんだ?

達人の教えを乞いたい。

251名称未設定2014/08/24(日) 09:52:19.55ID:QnD6/8Qu0
あ、それから、adobeのソフトでよく見られるけど、最終的に
GUIスクリプティングできないカスタムしてあるGUIみたいなのも
あって、普通のGUIスクリプティングでは操作できないという結論
に達するのに時間がかかるときもある。ああいうので1日とか費やすと
けっこう凹むよね。

252名称未設定2014/08/24(日) 12:03:05.39ID:oxxKgxDS0
UI Browser がいいよ
お高いけど

$20 くらいでバーゲンしないかな、しないよなw

253名称未設定2014/08/25(月) 02:14:39.31ID:IjrpGSwEi
一連の流れってんならともかくボタン1個程度なら、
できるかできないかの判断に10分もかからんが

手抜きでInspectorとかAutomator使う事もあるけどそれはそれである意味面倒なので、
ベタにofかtell連ねて書いてるけどそんなもん

254名称未設定2014/08/25(月) 14:46:30.65ID:2dIEFPEX0
tell application "Pages"
-- 1. point:{100,100} な item は取り出す。 こちらは問題無く動作する。
(iWork items where position = {100, 100}) of page 1 of document 1

-- 2. x座標が 100 より大きい item を取り出す (そして delete したい)
 --  結果: error "Pages でエラーが起きました:item 1 of position のタイプを specifier に変換できません。
(iWork items where (item 1 of position) > 100) of page 1 of document 1

-- 3. x座標が 100 より大きく、かつ y座標が 100より大きい item を取り出す (そして delete したい)
end tell

where/whose句によるフィルターについて教えてください。
2や3のような事を実現するにはどのように書けばいいのでしょうか?
グルグル回さずに済む方法が知りたいです。

255名称未設定2014/08/26(火) 22:15:15.01ID:mMnMi0CT0
すまん適当だし合ってるかどうかも知りませんが
iWork items (whose ((item 1 of position) as integer) of it > 100) of page 1 of document 1
item 1 of position とか参照が参照のままでダメだから、型を適当に明示して変換すると
けっこう行けたり行けなかったりしないかなあ?

ただよくわかんないけど、whoseフィルター便利なんだけど、処理に時間かかることが
多いような気がする。一時期うなされたようにwhose whoseしていたけど、最近はあまり
使わないなあ。

ところで。10.9になって、またなんか変わった?10.8で動いてたスクリプトが動かなかった。
たいそうなことはしてないが、プレビューで内容を確認したあと、ファイル名を変更するスクリプト。
なんか仕事忙しくてチェックしなかったけど。

256名称未設定2014/08/30(土) 19:26:36.34ID:qt0Pg4Pu0
>>255 遅くなりましたが、ありがとうございます。
それでもうまくいきませんでした...。 括弧の付け方かえたり色々試してはみたのですが。

257名称未設定2014/09/08(月) 20:54:15.08ID:Cgy98ADX0
>>254
試してみようと思ったら、最新版は10.9じゃないとインストールできないんだな。変なアプリ。

258名称未設定2014/09/18(木) 17:16:48.30ID:FQ6tm29Ti
身の回りの面倒な作業をスクリプトで実行したいのだけどなにから勉強したらいいですか?プログラミングに興味あります
上に書かれてるようなことを理解できるようになるためにはどの言語を勉強したらいいのかすらわからない素人です

259名称未設定2014/09/18(木) 18:07:55.46ID:MVYqhU7J0
素人でもググることはできるよね

260名称未設定2014/09/18(木) 19:35:00.98ID:VMVk5YEG0
>>258
基本文法はググればわかるからそれでいいとして…

AppleScriptを使う上での基本的な流れは以下のような感じ。

・作業で使うアプリがAppleScriptに対応しているかを確認
・AppleScriptに対応しているなら、そのアプリがどんなAppleScript命令に
 対応しているかを確認
・AppleScriptに対応していないアプリだったら、AppleScriptのSystemEventという仕組みを勉強して無理やり動かす

AppleScriptに対応しているアプリなら、大抵はそのアプリのマニュアルに
AppleScriptの説明がある。
また、アプリをスクリプトエディタにドラッグすれば、対応している命令が確認可能。

Apple純正アプリ以外では、一部のメジャーなアプリと
テキストエディタくらいしかAppleScriptに対応してないんで、
過度な期待はしないほうがいいかも。

ちなみにFinderでのファイル操作なら、AppleScriptでかなりのことができると思う。

SystemEventはわりと万能だけど、
「ここで0.2秒待ってからこの階層にあるこのメニューをクリック」
なんて感じの記述を延々続けていく形になる。

スクリプト実行中にマウスで変なところクリックしたりすると
エラーになることもあるから、
SystemEventは少々不安定なもの、と考えておきましょう。

261名称未設定2014/09/18(木) 22:40:58.81ID:FQ6tm29Ti
自分のやりたいことが果たしてスクリプトで出来るのか不安になってきしたがググってググって試行錯誤しながらトライしてみます

262名称未設定2014/09/19(金) 05:28:54.19ID:lf06pHbV0
>>258
自分は素人で周りに教えてくれる人もいなかったけど、
以下で1年半くらいかかった。

レベル1 display dialog "hello"
レベル2 diaplay dialogとか使って、四則計算的な対話的プログラム
ここまではすぐ。

レベル3 Finderでのファイル名変換、ファイル名操作(if、repeatほか一般的処理)
プログラムの素養がなく、ここでつまづいた。3ヶ月くらいかかっただろうか。
特にファイル名変換で特定の文字列を検索置換するようなことをしたかったので
ひどくそこで時間がかかった。Applescriptの特殊なところ。正規表現が標準装備
じゃないし、検索、置換も一筋縄では行かず。

レベル4 Applescript対応のアプリを使った処理、テキストファイルの入出力
ここは徐々にだけど、けっこう簡単にできるようになった。

レベル5 Applescript非対応のアプリをGUIスクリプトで操作(SystemEvent)
ここもつまづいた、というか、自分がやりたい処理をできるようになるのに3ヶ月くらいかかったような。

レベル6 do shell script を使った世界
ここまで来ると単発処理は何でもできるようになる。世界が広がる。

レベル7 Xcode(ApplescriptStudio)でGUIのついたアプリ作成
レベル8 Xcodeを使ってApplescriptObjCでGUIのついたアプリ作成
レベル6までで培った技術をGUIアプリとして落としこむのはちまちまと。とにかくサンプルを
見つけることが大事。海外のサイトをよく見るようになった。

たぶん、だけど、あなたの考えていることはレベル5だと思うけど、まだ無理。
実際のところ、レベル3ができるようになるとけっこういろいろ便利なんだけどね。
使い始めはそれがわからない。レベル6習得あたりになると、なんでも
スクリプトで処理したくなる。気合入れるときはレベル8で。

263名称未設定2014/09/19(金) 14:13:26.59ID:iMNEhwZB0
>>262
その例で言うレベル8になると、
Applescriptの貧弱さに普通にobjcで書くようになるよ。
特にApplescriptでobjc関数とか呼び始めると、
メモリの管理がしにくくて(勝手に解放されちゃってクラッシュとか)、複数スレッドの処理をまともに動かすのが大変になるから

264名称未設定2014/09/19(金) 14:43:06.24ID:VynAABOT0
C系がどうしても敷居が高いとAppleScript専門になるのもしょうがないかなと
Objective-Cでの方がOSがそれで書かれているのだから素直にいろいろとできるけどね

265名称未設定2014/09/19(金) 17:46:57.37ID:vSEjXiLJi
>>262
うぉーーー!
まさに知りたかったビジョンだ!
周りに教えてくれる人がいないので漠然とできたらいいなぁぐらいの気持ちだったのが1年半でレベル8まで習得したって姿がみえるとすごい歩きやすい道に見えてきた
ありがとうございます!

266名称未設定2014/09/20(土) 00:37:50.41ID:1d3efwqb0
>>263->>264
レベル8の上がObjective-Cかな。レベル9。iPhone用アプリのテキストはたくさんあるけど、
なかなかmac用のテキスト少ないんだよなー。今、仕事多忙で勉強できてないけど。
PHPとかCSSとかSQLとかそっち方面にいっちゃってる。
HTML5とかもやらなあかんのかねぇorz

267名称未設定2014/09/20(土) 07:13:50.17ID:J1L8Sc170
正規表現等に関しては Satimage osax
http://www.satimage.fr/software/en/downloads/downloads_companion_osaxen.html
って機能拡張をインストールするといいよ

set theList to (find text "[+-]?\\d+(\\.\\d+)?" in "数字を足してね♥︎ -1, 0.01, +1, 2,..,99 " with regexp, all occurrences and string result)
set total to 0
repeat with x in theList
  set total to (total + (atof (x)))
end repeat
set message to "(" & (join theList using ") + (") & ") = " & total

--> "(-1) + (0.01) + (+1) + (2) + (99) = 101.01"
こういう手品が使えるようになる。

find text: これがあると正規表現まわりで rubyその他に頼る必要がなくなる
atof: x as real と書いたのと同じになる (他にも sin, cos とかC言語ライクな数学関数が色々)
join: 定石の set AppleScript's text item delimiters to "," を使ったリスト連結よりもシンプル
マニュアル: http://www.satimage.fr/software/en/dictionaries/dict_satimage.html

268名称未設定2014/09/20(土) 07:21:55.77ID:J1L8Sc170
数値 + 数値文字列 = 数値
なので、この場合 atof は無くてもOKでした

269名称未設定2014/09/20(土) 08:32:33.91ID:1d3efwqb0
>>267
わかる人は使えばいいけど、正規表現、文字列の検索・置換などの取り扱いは
ASのデフォルトの考え方を理解してないと、あとでつまづくし、機能拡張を
インストールしないと使えないスクリプトは会社などで使うときとても面倒。
検索・置換程度の話なら避けたほうがいいと個人的には思う。
do shell scriptでrubyなりperlなりsedなりいろいろ使う契機にもなるし。

270名称未設定2014/09/20(土) 08:35:19.68ID:3i170VB80
>>269
同意
個人的にosaxは使わないようにしてる
いまはdo shell scriptがあるから、何か複雑なことしたかったら
パッケージにシェルスクリプト突っ込んだ方が早いし確実

271名称未設定2014/09/20(土) 09:18:42.39ID:1d3efwqb0
「ASやってます」と言うと笑われるけど、その実、中身はdo shel scriptで他のおいしいところを
使いまくり、というのはよくある話。グルー言語としてのASは非常に強力。

272名称未設定2014/09/20(土) 16:27:57.17ID:AqRjHw4B0
do shel scriptは便利だけど使い方間違えるとめちゃくちゃ遅くなるから、気をつけないとね。
たとえば大量に変換とかの場合は、do shel scriptを回すんじゃなくて
do shel scriptの中で回るようにとかね。

273名称未設定2014/09/20(土) 23:11:29.75ID:3i170VB80
>>272
君はコンパイラに頼りすぎ >shel

274名称未設定2014/09/20(土) 23:55:25.38ID:AqRjHw4B0
>>273
なんも考えずに上のコピペしただけだわ

275名称未設定2014/10/25(土) 07:12:00.39ID:5qSeWYWr0
けっこうびっくりしたけど、10.10からのJavaScriptもここでやるといいよね。
ほかでやるとこないし。ほぼなんでもできるのかな?

276名称未設定2014/10/25(土) 09:21:10.13ID:5qSeWYWr0
思いつきだけだけど、JavaScriptだけでGUIつきアプリとかできるの?
できるわけないか。

277名称未設定2014/10/25(土) 14:50:07.62ID:LnSjrQfx0
Macでプログラミング{10}
http://anago.2ch.net/test/read.cgi/mac/1248682344/

278名称未設定2014/10/25(土) 17:55:17.74ID:N9eHGFRP0
質問です。OS Mavericks
アップルスクリプトでもう少しGUIのいいものを作ろうとして
Xcode6.1をつかってcocoa-applescriptのアプリケーションを触ってみようと思いました。
具体的にはGUIのdatePickerを配置して
AppDelegate.applescriptのファイルで
ユーザーがdatePickerで設定した日付を取得しようとしたのです。
下にコメントアウトしてるところがdatePickerとつながっており取得できていない箇所です。

on workSchedulRecorder_(sender)

set Client to name_Client's stringValue() as string
-- set the_Date to int_date's dateValue()

end workSchedulRecorder_

上のはCombo BoxとつながっておりstringValue() as stringで取得できました。
問題の箇所は調べて見つかったのに下のようなエラーがでました

2014-10-25 17:52:08.866 DPC Client Scheduler[2711:303] *** -[AppDelegate workSchedulRecorder:]: Can’t make &amp;#171;class ocid&amp;#187; id &amp;#171;data optr000000000D0000007491B841&amp;#187; into type Unicode text. (error -1700)

dateValue()ではなく違う言葉なのでしょうか・・・
どなたかお力になってくださいませんでしょうか

279名称未設定2014/10/25(土) 18:45:32.40ID:Y7ywkFMP0
>>278
set the_Date to int_date's dateValue()
これでそのエラーになる?出ないけどなあ
set the_Date to int_date's dateValue() as string
だと、文字列に変換できないオブジェクト(この場合NSDate)を文字列に変換しようとすると(全く)同じエラーが出るけど

Cocoaの日付周りはちょっと優しくないのでえ。ちょっとだけだけど

280質問者 2782014/10/25(土) 19:08:00.49ID:N9eHGFRP0
早速お答えいただきありがとうございます!
そして、すいません。私の早とちりでした。
display dialog に、だそうとしてそのエラーになりました。
log the_Dateで確認できました。

そこで、もう一つ質問したいのですが、
このthe_Dateから得たdate_Value()を
アップルスクリプトのdateの型?っていうのでしょうか
date "2014年10月25日土曜日 0:00:00" にするのにはどうすればいいのでしょうか?

281名称未設定2014/10/25(土) 19:25:35.38ID:Y7ywkFMP0
>>279,278
とりあえずな日付(NSDate)を文字列にはこんなんかな
set theDate to int_date's dateValue()
set dateFormatter to current application's NSDateFormatter's alloc()'s init()'s autorelease()
dateFormatter's setDateFormat_("YYYY-MM-dd hh:mm:ss a")
set dateString to dateFormatter's stringForObjectValue_(theDate)

's autorelease()
はいらないのかもしれない。Cocoa-AppleScriptでそこらがどないなってるのかわからないから入れてみた
Objective-Cだと余計な場合はクラッシュするがクラッシュしないので、入れた方がいいのか入れても入れなくてもいいのか不明

>>280
わからんw
文字列にしたら date にできるんじゃないかな。AppleScriptもdate<->文字列はめんどくさいっぽいなあ

282名称未設定2014/10/25(土) 19:27:59.17ID:pbKxf6+40
暇つぶしにデータピッカからテキストにして、テキストからNSDateに変換する流れ書いてみた、テストしてないです。
NSDateはテキストじゃないから、直接変換しようとしてつまるよねー。
property datePicker : missing value
set pickDate to my datePicker's dateValue()
set nsDateObj to my pick2date(pickDate)

on pick2date(pickdate)
  set cal to current application's class "NSCalendar"'s currentCalendar()
  set com to cal's components_fromDate_(254, pickdate)
  set year to com's |year|()
  set month to com's |month|()
  set day to com's |day|()
  set hour to com's hour()
  set minute to com's minute()
  set second to com's |second|()
  set time2sec to (((hour) * 3600) + ((minute) * 60)+ second) as number
  set qqq to my mkDate(year, month, day, 0) + time2sec
  return result
end pick2date

on makeDate(y, m, d, s)
  tell (get current date)
     set {year, its month, day, time} to {y, m, d, s}
     return its contents
  end tell
end makeDate

283名称未設定2014/10/25(土) 19:30:07.23ID:pbKxf6+40
>>282
あNSDateじゃなくてASDate

284名称未設定2014/10/25(土) 20:10:23.39ID:pbKxf6+40
ハンドラの呼び出し名適当なやつのまんまだわ適宜直してちょ

285質問者 2782014/10/25(土) 20:18:04.97ID:N9eHGFRP0
281さんありがとうございます。実際おしえてもらったコードを入れてみました
set Client to name_Client's stringValue() as string
set the_Date to int_date's dateValue()

set dateFormatter to current application's NSDateFormatter's alloc()'s init()'s autorelease()
dateFormatter's setDateFormat_("YYYY-MM-dd hh:mm:ss a")
set dateString to dateFormatter's stringForObjectValue_(theDate)
最後の行でエラーが起きてしまいました
Scheduler[3049:303] *** -[AppDelegate workSchedulRecorder:]: The variable theDate is not defined. (error -2753)
ご返答のコード内容が理解できない初心者なのですが
変数のthe_Dateは作っていただいた書式にははまらないということでしょうか
もう少しねばってみたいと思います。ご返答ありがとうございました!

286名称未設定2014/10/25(土) 20:26:21.21ID:pbKxf6+40
>>285
落ち着きなさいtheDateが無いんだ
君はthe_Dateにしてるみたいだよ。

287質問者 2782014/10/25(土) 20:55:41.66ID:N9eHGFRP0
285さんありがとうございます!!
もう、学も無いのに英語サイトまわってくたくたになっていました。笑
出ました出ました!
本当に助かりました。ありがとうございます!
dateformatについての基礎知識は明日にでも探してみたいと思います。
これで、やりたいことが出来そうです。

本当にありがとうございました。

282さんありがとうございます!
いただいたサブルーチンを、appledelegateに加えて試してみたのですが、
ビルドエラーがでてしまい、試すことが出来ませんでした。
ただ、問題解決いたしましたので、お礼の返事のみさせていただきます。
ありがとうございました。

288名称未設定2014/10/25(土) 20:58:46.80ID:pbKxf6+40
>>287
あっれエラったかぁー全角スペースを変換してないとかだったりして。。。まいっか。

289質問者 2782014/10/26(日) 17:03:52.38ID:UmsXIIQV0
datePickerで悩んでいた者です。
dateformatについて私なりに調べてみました。奥が深く(?▽?; な感じでしたが、
EEEをつけると曜日まで表示されることが新たに分かりました。感謝します!

そしてまた、毎度申し訳なく書き込ませてもらいます。

下のスクリプトを「スクリプトエディタ」で実行すると、
set aaa to "2014年10月25日"
display dialog date aaa as text
->2014年10月25日土曜日 0:00:00

こうなってくれるのですが、appdelegeteのなかでは通用してくれません。
[AppDelegate workSchedulRecorder:]: Can’t make «script» into type text. (error -1700)
ただ、変数ではなくて、テキストをそのまま入れると

display dialog date "2014年10月25日" as text
->2014年10月25日土曜日 0:00:00

うまくしてくれます。ただ変数に入れないと作りたいものが作れなくて、、、
変数に入れるとなぜ急にダメになったのか、別の方法があるのか

単純なところでつまずいてしまっております。
スクリプトエディタでなんとなく進んで来れたので罰が当たったみたいで
どうか、よろしくお願いします。

290名称未設定2014/10/26(日) 18:12:44.58ID:BJ1Mvzrv0
わからん。qlmanageを一覧表示で表示するにはどうすればいいの?

291名称未設定2014/10/26(日) 20:02:33.54ID:THGeGbUA0
>>289
set dateString to "2014/10/26" as text
log class of dateString
log class of "2014/10/26"
log class of date dateString
log class of date "2014/10/26"
Cocoa-AppleScript の date文 が変数の場合なんかおかしなことをしている/おかしなことになっている
date 変数
の場合に作られるのは«script»オブジェクト?

NSDateベースで考えた方がいいような
どうしてもdateオブジェクト使いたい場合でも、で文字列からdateオブジェクトへは、文字列からCocoaオブジェクトにしてからdateオブジェクトへかなあ

292名称未設定2014/10/26(日) 21:13:11.35ID:juj/Re6i0
>>289
>>282のmakeDateハンドラ使ってみれば。

293質問者 2782014/10/26(日) 22:37:36.09ID:UmsXIIQV0
292さんありがとうございます。がんばってみましたが能力が足りないせいでうまくいきませんでした
set the_Date to pick_date's dateValue() --my取りました
set nsDateObj to my pick2date(the_Date)

on pick2date(pickdate)
  set cal to current application's class "NSCalendar"'s currentCalendar()
  set com to cal's components_fromDate_(254, pickdate)

set year to com's |year|()
  set month to com's |month|()
  set day to com's |day|()
  set hour to com's hour()
  set minute to com's minute()
  set second to com's |second|()
  set time2sec to (((hour) * 3600) + ((minute) * 60)+ second) as number
set qqq to my makeDate(year, month, day, 0) + time2sec --mkDateからmake dateに訂正
  return result
end pick2date


on makeDate(y, m, d, s)
  tell (get current date)
     set {year, its month, day, time} to {y, m, d, s}
     return its contents
  end tell
end makeDate
いろいろ試しながら探しながらやってみました。。せっかく書いてくださったんですが、、
すると、下記の閉じ忘れのようなエラーが出てコンパイル失敗になったようです。

294質問者 2782014/10/26(日) 22:39:28.30ID:UmsXIIQV0
Client Scheduler/AppDelegate.applescript:33: error: Expected “end” but found unknown token. (-2741)
Command /usr/bin/osacompile failed with exit code 1

先ほどwebでみつけたのですが、出だしの私はASファイルを別に作って、引数付きで呼び出して使った方が良さそうです。

295質問者 2782014/10/26(日) 22:40:19.50ID:UmsXIIQV0
291さん ありがとうございます。logで調べながらする方法すばらしいですね。
log class of date dateString 私のひっかかった date "変数" の箇所
log date dateString ですると複数のパラメーターがどうのでエラーになりました
appdelegateはすごく私には早すぎた感がありました。皆さんこんなに助言いただいたのに
うまくいかず申し訳ありません。

今回はdatePickerからもらった値をASに引っ張り込んで祝祭日と比較などして
最終「カレンダー」のeventに登録していきたかったので、ASファイルを別に作って
datePikerから得た文字列を引数にして呼び出そうと思います。

これから、その作業をしてみようと思います。ありがとうございました!!

296名称未設定2014/10/26(日) 23:30:37.10ID:THGeGbUA0
>>295
>log date dateString ですると
うん、date dateString で «script»オブジェクト(?)ができての、«script»オブジェクトをlogするためになんか(文字列)変換/«script»オブジェクトに対してなんかしよとして失敗かと
log class of date dateString
は、«script»オブジェクトになんのクラスやねんって問いただして、(たぶん)classオブジェクトが返って来ての、classオブジェクトは文字列に変換可能だからかと
てきとーにそう思うw

297名称未設定2014/10/27(月) 04:41:14.63ID:MFcX2T9S0
>>294
ダメだったかーごめんね。てかそのエラー全角を半角に変換してないんじゃ。。。
なんか雑に教えちゃった感じで気持ち悪いから、データピッカーのサンプル作ったよ。
http://i.imgur.com/jb3SzVE.jpg
こんな感じで時計の針を動かしたりしたりして調整できて、
↓ボタンでテキストになって↑ボタンでテキストからピッカーに送るよ。
途中でNSDateだけじゃなくて、ASDate使ってやってるからapplescriptみたいに時間の操作ができるよ。
applescriptの文字列からDate型に変換は、裏で色々やっててapplescriptobjcじゃそのままできなかった思い出があるよ(多分
今回のは、すごく雑な変換だからいろいろ工夫してみてね。
いまいち何がしたいのか分からなくて、こんなサンプルでいいのかも謎だけど、、、、、

ソースはここにあるから、エディタで開いて見て
~/DatePickerTest.app/Contents/Resources/M2AppDelegate.scpt
んじゃがんばって。

http://www1.axfc.net/u/3351055

298質問者 2782014/10/27(月) 21:15:56.87ID:glAct/fS0
297さん ありがとうございます。結果動きました!ありがとうございます!
ソースを実際に出力させて頂き
http://cocoaapi.hatenablog.comで調べながら書き込んで、5割ほど読めたかなという所です。
ASDateを間に経由して、
NSdate>ASDate>テキストと、テキスト>ASDate>NSDateに変換しているのが分かりました。
他、adjustmentのアクションの辺りdatePickerの1と2が相互に関係しているのが特に興味深かったです。
NSdateのフォーマットの最後がタイムゾーンになっているとか国際的な感じがしてびっくりしました。
馬鹿なので時間は沢山掛かりましたが、こんなに読み応えのあるソースは初めてです!ありがとうございます!
他、分からない点が3点ほどあったのですが、上手く動いたのでまた次の機会にでも
お聞かせ頂けたらと思います。

とりあえず、お礼を。あ、そうなんですやりたいことは帰宅してまた書かせて頂きます。
(一つだけ壁にぶつかってしまいまして)
今回も沢山助けられました。ありがとうございます!

299質問者 2782014/10/28(火) 00:02:12.58ID:8TXD3xq30
こんばんわ。先ほどの実際にやりたいことは
というと、あるチラシ制作の仕事をしておりまして、
チラシの折込日を入力Enterするだけで3〜4日分の各作業日を自動でMavericksのカレンダーeventに
自動で登録しようと思ったのです。コレが出来れば月一の30分仕事が2分から3分、負担も無くなります。
作業日は祝祭日と休刊日、それからクライアントのスケジューリングの方則をスクリプトに盛り込めば
できあがります。(実際スクリプトエディタでそれらを登録して可能なことを確認しました)
ただ、XcodeをつかったUIの方が効率が違うし初心者にも渡すことが出来ます。
そこで、ぶつかった1つの多分コレも小さな問題を伺えたらと思います。
それはスクリプトエディタで出来た「ASdateの加算減算」です。
・・・いまちょっといじったら直せました。反省。。たぶんこれでなんとか作成できると思います。
ありがとうございました。(汗笑)

300名称未設定2014/10/29(水) 00:07:03.41ID:fRlD6nSB0
>>299
なんか面白そうだから、似たようなの作ってみた
というか10.8から使えるようになったEventKit.frameworkを触りたかったんだ。
飛ばしたい予定が入ってるカレンダー選ぶと、土日と選んだカレンダーに入ってる予定がある日を飛ばして、予定を立ててくれる。
これは、カレンダ一つしか選べないようになってるけど、簡単に複数のカレンダーで使えるようにできる。休刊日カレンダーとか他の作業が入ってるカレンダーとか
日本の祝祭日はここのカレンダー使ってるよ。
http://www.apple.com/downloads/macosx/calendars/japaneseholidaycalendar.html

GenでPlanの項目を下から締め切り日よりさかのぼって、EKEventのタイトルにしながら作ってくよ。
PlanがworkDayより少ない場合は、最初の方の日をOccasional Dayにするよ。
EKEventを作成してるから、そのまま書き込みたいカレンダー選んでsaveEventするだけでカレンダーに書き込めるよ
applescriptでカレンダーを操作するより気持ちいいかも、利点はカレンダーを起動しなくても書き込みや削除ができることかな
EKEventのプロパティは、applescriptで触ってると思うから分かると思う。

気になった点は、カレンダー起動したままで書き込んでカレンダーの自動アップデート中にremoveするとよくないね、
カレンダーの自動アップデート中の判定はどこにあるんだろうか?

そんなかんじ、久々にapplescriptobjc触って楽しかったわー
ざっと書いたからめちゃくちゃ爪が甘くて、参考にならないと思うけどこれもうpしときます。
すくしょ
http://i.imgur.com/Xcv6AWE.jpg
http://i.imgur.com/15PHaIC.jpg
斧が鯖落ちしてるみたいだからkienuに
http://kie.nu/2gET

301名称未設定2014/10/30(木) 21:58:19.65ID:DD9ePtIQ0
捕手

302質問者 2782014/10/30(木) 22:21:06.57ID:1wagBLBS0
300さんありがとうございます! すごく勉強になりました。
それからまた作り込みがすごくて全然読めないです。汗
これからゆっくり読んでいきたいと思います。

EKEventって初めて聞きました。・・・ははは汗笑
それにしても、カレンダーを起動せずして書き込みなんて手品のよう!

読み解くには1ヶ月くらい覚悟します!
取りあえず版ができました。質問したおしたのでその成果をアップさせてもらいますね。
http://kie.nu/2gSs
これでいいのかな・・・笑
(クライアント名は変えましたクビになるので笑、なので法則はそれぞれバラバラです。)
操作は、キーボードのみでお手軽にできるものです。(見た目もシンプル!)
まぁ、こんな単純な物しかできなかっただけなんですけれど取りあえずホッとしてます。

これから、各作業日のステップ毎にカレンダーを分けて色別にしたり、
カレンダーの内容を読み取って、今日の作業を表示するTODOのようなパネルを作りたいです。
手軽な入力でカレンダーからTODOまでできるみたいな。

また無謀な、生きてるうちに出来るかな・・・(遠い目

303名称未設定2014/10/31(金) 02:04:32.90ID:P6vAtVvi0
スレチだったら誘導願いますが、ここが最も適当かと思って質問させていただきます。

RAW現像ソフトLightroom5で書き出しの後処理でターミナル上で動く
ExifToolを起動しカメラのシリアルNo.を削除したいのですが、下記の方法までは分かりました。

ExifTool
http://www.sno.phy.queensu.ca/~phil/exiftool/

1.ターミナルを開いてEXIFTOOLと入力した後、画像ファイルをターミナルに
 ドラッグ&ドロップするとパス付きファイル名が入力されてリターンキーで
 EXIFが表示される。

2.ターミナルを開いてEXIFTOOL -SERIALNUMBER=と入力した後、
 画像ファイルをターミナルにドラッグ&ドロップするとパス付きファイル名が
 入力されてリターンキーでEXIFからシリアルNo.が削除されて保存され
 別途、***.jpg_originalというファイル名でオリジナルファイルが保存される。

教えていただきたいのは、ここから先、
このコマンドをエイリアス化しなければならないようなのですが
ここが全く分かりません。どうすればよろしいのでしょうか。

304名称未設定2014/10/31(金) 02:31:53.45ID:4JVpEUGQ0
エイリアス化……? ちょっといみがわからん
受け売りをするならソースも貼れ
そもそもそれはapplescriptではなくシェルスクリプトだからこっちだな
Mac OS XをUnixとして使ってる人の為のスレ 17
http://anago.2ch.net/test/read.cgi/mac/1383436068/

ただ、lightroomの仕様がわからん以上、結局lightroomユーザ以外には
答えられんから、adobeスレで訊いたほうが早そうだ
少なくともapertureユーザのおれはその辺のわざわざ調べたくないからパス

305名称未設定2014/10/31(金) 02:58:55.50ID:cDlSGdtw0
>>303
とりあえずAutomatorでいいんじゃないの
Automatorはそれこそそういう単純な用途にあるのに誰も使わない不憫なヤツw

ExifToolはコマンドだから「シェルスクリプトを実行」アクションになるけど

EXIFを弄るだけだからLightroom5はほとんど全く関係ないはなしでそ

306名称未設定2014/10/31(金) 03:03:13.30ID:U4KxWBg20
>>303
>>このコマンドをエイリアス化しなければならないようなのですが
情弱がよくわかってない情報を然も当然かのように、質問に交えて自分の立場を少しでも上げようとする、
その態度じゃ、どこに行っても適当にあしらわれるだけだよ。
少しは人に物を聞く態度を勉強してこい

307名称未設定2014/10/31(金) 03:07:21.31ID:cDlSGdtw0
>>303
http://www.sno.phy.queensu.ca/~phil/exiftool/
に、
Lightroom Plugins
Metadata Wrangler: Strip selected metadata components from images as they are exported
ってあるけど

308名称未設定2014/10/31(金) 03:09:21.84ID:cDlSGdtw0
>>306
なに言っているのかわからんぞww

309名称未設定2014/10/31(金) 03:18:54.08ID:PdTh3q+P0
>>308
なんかこいつの質問の仕方イラつくんだよね、偉そうってか
重要な部分を隠して上っ面の質問の仕方ってのかね
2chをお客様サービスセンターと勘違いしてそう、mac探でも煙たがれてたね

310名称未設定2014/10/31(金) 03:24:09.66ID:cDlSGdtw0
偉そう?????うーむ...
やりたいことは理解できるんだけど。そりゃちょっと違うというのもw

311名称未設定2014/10/31(金) 03:40:29.53ID:PdTh3q+P0
>>310
自分の知識が中心で詳しいことを説明しないやつっているじゃん?
Lightroom5の書き出しの後処理でっていわれても
Lightroom5に書き出し設定に後処理って項目があって、そこで何が選べるかとか知らねーよって話。
まぁいいや短気過ぎたか すまんね
とりあえずその後処理でApplescriptのD&Dアプリ指定して何が渡されるか調べて、
もしファイルパスがもらえてたらそれにdo shell script でExifTool当てればいいんじゃないか?

312名称未設定2014/10/31(金) 04:09:46.08ID:cDlSGdtw0
まあ、こっち方面ど素人はこんなもんだろう。てかいたってふつーに見えるw
偉そうなど素人というのはだなもっとアレなんだぞ、リアルの世界で

ExifTool、ターミナル、ドラッグ&ドロップ てとこで、Lightroom5でファイルとして書き出した後の、ファイルをどうにかという話だと思うよ
エイリアスというのも、たぶんシェルのaliasのことだと思うけど、違うかもしれないw

313名称未設定2014/10/31(金) 04:18:47.00ID:PdTh3q+P0
>>312
2chはファンタジーの世界ですものね(違うか
後処理に関してはググったらLightroom5に後処理ってオプションがあるみたいよ
多分そこで開くアプリケーションにターミナルとか選んじゃったりして試行錯誤してんじゃないかな

314名称未設定2014/10/31(金) 04:25:40.65ID:cDlSGdtw0
あ、そうなの。だったら、Pluginsでよさそうなw
まとめてなんかしたいのかと思ったよ

315名称未設定2014/10/31(金) 04:39:49.46ID:cDlSGdtw0
うーん、後処理でターミナルってのがよくわからんな

>>305,304
とりあえず、可哀想なAutomatorではこんなん。コマンドが正しいのか知らんけど
(Automatorのスレが別にあるのを知ったんだけど、終わり間近なのでごめんくさい)
http://i.imgur.com/tCXDhqi.png

316名称未設定2014/10/31(金) 04:46:35.36ID:PdTh3q+P0
昔フォトショのプラグイン書いたの思い出して、LightroomのSDK探したら
プラグインluaなのかよw
これ超簡単にMetadata書き換えできる気がするわ

317名称未設定2014/10/31(金) 04:57:32.90ID:PdTh3q+P0
うんcom.adobe.serialNumbe呼び出せばシリアルナンバーも書き換えできるわ
てかチラッと見た感じこの量ならほとんど全部のメタデータに対応してそう
>>303君はlua覚えるといいよ
applescriptみたいなもんだ

318名称未設定2014/10/31(金) 07:56:33.44ID:rhP6dt/O0
>>303
よくわかりませんが、ここの人たちが言っていることのほうが
正しい道のような気はしますが、あなたの考えを伸ばすとすると、
要はLightroomで書きだしたあと後処理にExifTool使ってExif情報を操作するんだよね?
そしたら、情報を削除したファイルがどこかに出来るはずだから、
それのパスを作成してそれをtell application "Finder"で set ~ as alias (list)
とかして、適宜自分の好きな名前にするなどすればいいよ。

直接ExifToolからAppleScriptに結果を受けることはできないだろうから
上記の処理をする前にはファイルの生成待ちと存在確認は必要
(とはいえExif操作だから時間かからない?)
FolderActionとかにしてもいいかも。俺は絶対にしないけど。

というかLightroomってどこまでできるんだっけ? 最近のAdobeはAS対応貧弱だから嫌い。
昔からのツールはいろいろ簡単にできるのにね。

>>317
luaとか簡単? ザクッと昔ググるだけググッてとっかかりがなくて手を付けてないけど。

319名称未設定2014/10/31(金) 08:14:23.46ID:PdTh3q+P0
>>318
ExifTool自体はコマンドラインで動くバイナリ
用はターミナルでコマンド打って動作させるやつ
おそらくLightroomの後処理では保存ファイルのパスを引数にしたシェルスクリプトを走らせる機能はないと思う
だからExifToolをパッキングしたアプリケーションなどにファイルパスを渡さないと行けないんだ
AppleScriptでExifToolを操作するが正解
理解した?
ASっていうとApplescriptなのかActionScriptなのか、はたまたAngelScriptの可能性も出て来るから微妙よねw

Luaの構文自体は分かりやすいからすぐ触れるよ、applescriptしか触ったこと無かったら最初はキツいかもしれないけど。

320名称未設定2014/10/31(金) 08:39:42.29ID:rhP6dt/O0
>>319
えー! Lightroomって後処理みたいなのもできないのか。
出来ないはずないとか思っちゃった。
ま、でも、書きだした後ASで処理すりゃいい話だからどっちでもいいか。

321名称未設定2014/10/31(金) 08:47:26.70ID:PdTh3q+P0
>>320
いや後処理機能はついてるみたいだけど、開くアプリ選ぶくらいじゃないかと推測して(ry
だからD&Dで作ればパスがもらえるとおも(ry
デジャブか

322名称未設定2014/10/31(金) 09:30:08.36ID:ZcnZkG8y0
こんなソフト探していますスレで
EXIF編集ソフトのアンケートをとったら軽くスルーされたので
こっちに来たとみた

323名称未設定2014/10/31(金) 14:02:31.92ID:P6vAtVvi0
>>304-322
皆さん、毎度お騒がせしております。説明不足で申し訳ございません。
エスパーしてたくさんのアドバイスありがとうございました。
やりたいことを再度、かみ砕いて説明させていただきますと、

1.RAW現像ソフトLightroom5(以後略してLr5)を使ってます。
 Lr5は現像後に別のソフトへ現像後のJPEGファイルを受け渡す
 ことができます。これが>>303のいわゆる後処理です。

2.この後処理にExifToolというターミナル上でコマンドを
 入力して動くExif閲覧、編集、削除アプリを動かしたいです。

3.どのように動かしたいかは現像後のJPEGのExifから
 カメラのシリアルNo.のみを削除したいです。
 そのコマンドはEXIFTOOL -SERIALNUMBER=ファイル名です。

これをするにはコマンドをエイリアス化しなければならない
そうなのですが、どうしましたらよろしいでしょうか。

324名称未設定2014/10/31(金) 14:11:34.53ID:cDlSGdtw0
>>323
>コマンドをエイリアス化
ってなんやねん
説明するか、説明できないんだったら「コマンドをエイリアス化しなければならないそうなのですが」の元を示さないとわからんよ

あと、自分で試しているの?「EXIFTOOL -SERIALNUMBER=ファイル名」じゃ一般的にいうターミナルでは動かないと思うよ

325名称未設定2014/10/31(金) 14:14:23.15ID:cDlSGdtw0
>>324
>あと、自分で試しているの?「EXIFTOOL -SERIALNUMBER=ファイル名」じゃ一般的にいうターミナルでは動かないと思うよ
orz... 今は(?)小文字大文字関係無いのか... 謝罪して取り消させていただきます

326名称未設定2014/10/31(金) 14:29:45.27ID:cDlSGdtw0
大文字好き(?)といいどうもWindowsでのエイリアスのような気がするんだが

327名称未設定2014/10/31(金) 14:30:31.85ID:4JVpEUGQ0
>>323
>>304で「エイリアス化しなければならない」のソースを貼れと言ったはずだが?
他の意見も全部無視かよ
それにそこ以外は「applescript シェルスクリプト アプリケーション」とかでググればわかることだ
あるいは他のやつが書いてるようにautomatorでもいい

ここのやつらは親切だからこんなクソにも答えてくれるだろうが
質問の仕方も質問内容もおかしいと気づいてほしい

328名称未設定2014/10/31(金) 14:35:03.58ID:4JVpEUGQ0
あとは目的が全然特殊じゃないので、exiftoolを自分で使いこなそうとせず
普通に「lightrooom exif シリアル 削除」とかでググった方が幸せになれるんじゃないか? お互いに

329名称未設定2014/10/31(金) 14:35:36.01ID:hu2rEbyn0
【Macで】ExifTool質問スレッド【Exif編集】 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/dcamera/1414681108/

頑張ってスレッド立てたんだろうから誰かの回答をじっと待てばいいのに。

330名称未設定2014/10/31(金) 14:50:05.89ID:4JVpEUGQ0
なんだマルチかよ氏ね

331名称未設定2014/10/31(金) 14:50:45.82ID:cDlSGdtw0
ねんてこったいっ!w

332名称未設定2014/10/31(金) 16:06:19.88ID:PdTh3q+P0
地雷臭はこれか、まんまと釣られてしまったな
みんな優しすぎんよ

333名称未設定2014/10/31(金) 16:19:50.43ID:neCXR2Hh0
質問者そっちのけで話は盛り上がるんだけど、いつの間にか質問者がフェードアウトしててなんとなくうやむやになる……といういつものパターンだねw

334名称未設定2014/10/31(金) 21:23:03.21ID:/phNTl1y0
【Macで】もなにも
ってExifToolはクロスプラットフォームだろうが
いい加減にしろ

335名称未設定2014/11/01(土) 01:16:11.93ID:YSoq0j8H0
>>334
これ以上釣られてはならん

336名称未設定2014/11/01(土) 10:11:10.50ID:iIVG1+Z10
Shane StanlyさんのASOC本、PDFだとパラハラめくれなかったので、
自分で印刷、製本したったw 装丁は茶色の牛革w 7000円くらいしそうな
本ができたwww いつでもどこでも勉強するぜ!

A5両面印刷のA6小冊子だから字が小さすぎて読めないorz

337名称未設定2014/11/01(土) 11:45:25.90ID:iIVG1+Z10
あーあー誰かがASOC本を日本語でまとめてくれたらなあ。
日本語のASOC本って1冊もないよね。

338名称未設定2014/11/01(土) 21:56:29.60ID:eXHrQzp90
でもまあASは英語でも分かりやすいかも
ムズい言語のは日本語なのにムズいという

339名称未設定2014/11/08(土) 14:20:35.62ID:LlCPsU700
写真のリネームのapplescriptを下記からコピーして使用しています。
ttp://hottinroof.blog54.fc2.com/blog-entry-77.html

スクリプト中には同一時刻の場合サブナンバーを付けるようになってますが、これが出来ず、同じ
名前の項目があるため処理できない、とのメッセージが出てしまいます。下記がサブナンバーの
記述ですがどうすればサブナンバーがつくようになりますか?
OS Mavericks, mac pro mid 2012 です。

--もし同一時刻のファイルが存在した場合、サブナンバーをつける
set ChkFname to name of Obj
if ChkFname is not Orifname then
set CHK to "OK"
end if
if ChkFname is Orifname then
set CHK to "NO"
set subNUM to subNUM + 1
end if

340名称未設定2014/11/08(土) 15:44:24.97ID:ypauXXT+0
エラーになってるのは引用箇所の直前の

set name of Obj to fname &amp; "." &amp; kakutyousi

だから、そこ try / on error / end で囲えばいいんじゃないの
スクリプトちゃんと読んでないけどとりあえず _2 _3 _4 などにリネームされる

try
set name of Obj to fname &amp; "." &amp; kakutyousi
on error
--もし同一時刻のファイルが存在した場合、サブナンバーをつける
set ChkFname to name of Obj
if ChkFname is not Orifname then
set CHK to "OK"
end if
if ChkFname is Orifname then
set CHK to "NO"
set subNUM to subNUM + 1
end if
end try

341名称未設定2014/11/08(土) 16:34:00.38ID:LlCPsU700
>>340
set name of Obj to fname &amp; "." &amp; kakutyousi
の;で、end of lineがあるべきところですがunkown tokenが見つかりました、
で引っかかってしまいうまくいかないです。

342名称未設定2014/11/08(土) 17:01:27.86ID:ypauXXT+0
その行はオリジナルのままにしといてちょ(あるいは amp; を取り去る)
生アンパサンドが打てない

343名称未設定2014/11/08(土) 17:28:47.70ID:bXbYhwqn0
>>340
てか、全然実行してないけど、なんでエラーになるん?
すでに途中まで実行してて正しい名前になってる場合に
エラーになるのかな?

344名称未設定2014/11/08(土) 17:41:46.94ID:LlCPsU700
>>342
んー。全くリネームしなくなりました。というかtry でループしてる感じです。

345名称未設定2014/11/08(土) 20:09:06.28ID:bXbYhwqn0
>>344
>>343が全てなのでは? 普通に動くよ。
それに、そもそもこのスクリプトで同時刻でサブナンバーがつく
状況は普通は起きないよ。子どもの運動会の写真を連写したりしたらありうるけど。

346名称未設定2014/11/08(土) 20:12:37.10ID:LlCPsU700
>>345
まさに連写です。
現状止まったら同じ秒の処理済みのファイル名に自分で1とか追加して同じファイル名にならない
ようにしてます。

347名称未設定2014/11/08(土) 20:44:30.86ID:bXbYhwqn0
>>346
あんま言うのもなんだけど、そしたらもう問題解決してるよ。
エラーは当然出る。手作業が嫌ならスクリプトを変更。
基本的な変更はだれでもできる簡単なものだから、ちょっと頑張ってみたら?
今言えるのはこんだけ。

348名称未設定2014/11/08(土) 20:51:14.99ID:wpKvrxUU0
自分で[考える、作り出す]ことをしなくなった人間って生きる価値無いよね。
最近そんな人多いいけどさ

349名称未設定2014/11/08(土) 20:54:50.91ID:ypauXXT+0
これでいくかな?
下記を>>340と入れ替え(アンパサンドについては同じく書き替え)

try
set name of Obj to fname & "." & kakutyousi
end try
--もし同一時刻のファイルが存在した場合、サブナンバーをつける
set ChkFname to name of Obj
if ChkFname is not Orifname then
set CHK to "OK"
end if
if ChkFname is Orifname then
set CHK to "NO"
set subNUM to subNUM + 1
end if

350名称未設定2014/11/08(土) 21:26:27.22ID:bXbYhwqn0
言うだけでもなんなんで。
よくわからんがバージョン依存あるかも。
あー、書いてたらアイスとけたよ

tell application "Finder"
set theFileList to selection as alias list
repeat with i in theFileList
set i to i as alias
set i_Extension to name extension of i
set AnswerFileName to my getExif_(i) & i_Extension
set NUM to 1
repeat while (exists (file AnswerFileName of parent of i))
set AnswerFileName to my getExif_(i) & "_" & NUM & i_Extension
set NUM to NUM + 1
end repeat
set name of i to AnswerFileName
end repeat
end tell

on getExif_(theFile)
set theName_of_Camera to do shell script "exiftool -model " & quoted form of POSIX path of theFile

set theDate to do shell script "exiftool -DateTimeOriginal " & quoted form of POSIX path of theFile

set OriginalDeliniter to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set theName_of_Camera to item 2 of text items of theName_of_Camera
set theDate to items 2 thru end of text items of theDate
set AppleScript's text item delimiters to OriginalDeliniter
return text 2 thru end of theName_of_Camera & (theDate as string)
end getExif_

351名称未設定2014/11/08(土) 21:31:47.41ID:bXbYhwqn0
間違えるし。適当に直してくれ。

352名称未設定2014/11/08(土) 21:42:28.42ID:hUAOfoDF0
AppleScriptとは、かれこれ20年以上の
付き合いで、今でもDVD PlayerやQuickTime
制御では、お世話になっている。

だが、ファイル名変更などの処理は付き合いが
2年のpythonで書く。

353名称未設定2014/11/08(土) 22:09:04.06ID:PoIJmgvo0
>>352
python興味あるんだよな〜
よかったらそうやって日常的に使ってるスクリプトうpしてくれ参考にしたい

354名称未設定2014/11/08(土) 22:12:37.60ID:09XY7TPZ0
文字列処理はAppleScript's text item delimitersとか面倒
osaxが使えると簡単にできるんだけど

355名称未設定2014/11/08(土) 22:24:30.26ID:PoIJmgvo0
いまはosaxよりdo shell scriptだよな
AppleScript's text item delimitersってほんと書いててばかばかしい
まあ一度自分専用ハンドラつくれば次からは呼ぶだけだけどさ

356名称未設定2014/11/08(土) 22:33:56.17ID:bXbYhwqn0
>>354
確かに面倒だよねー。上のスクリプト書くときもブログのスクリプトの
Delimiterがちょっと煩雑だなあとできるだけまとめたんだけど、
exiftoolのオプションをまとめて、その結果からほぼ一発で結果
返せないかと考えたけど、面倒になって断念したよ。
それ以外にはいつもはrepeat while existsとか使ったことないけど
ちょっと使ってみた。

もっとスマートでかっこいい書き方よろしく。

357名称未設定2014/11/08(土) 22:42:40.37ID:bXbYhwqn0
ところで変数作るときCameraNameとかにしたかったけどコンパイルすると
cameranameになっちゃう。意味がわからない。

358名称未設定2014/11/08(土) 23:02:44.84ID:PoIJmgvo0
>>357
一度全部小文字でコンパイルした後はどうあがこうと小文字に直される
最初からcapitaliseしとけば問題なかったはず

359名称未設定2014/11/09(日) 03:05:12.49ID:tOvI53P80
>>349
いけました。ありがとうございます。

>>350
ありがとうございます。試してみます。
VBA使っているので自分で直してみようと思いブレークポイントの設定やステップで動かしてみようと
したのですが、そこからつまずき質問しました。
applescriptにはないんですね。

360名称未設定2014/11/09(日) 03:11:10.32ID:FeCGzdwq0
>>359
もう一つ新規で作ってそこで、部分的に確認して行けばいい
基本は1行で完結してる
くっつけてるだけ。

361名称未設定2014/11/09(日) 03:52:52.38ID:VXCQ5bro0
>>357
自分がよくやる直し方を書いとくよ。

1. AppleScriptエディタで新規ファイルを作る。保存の必要なし、このファイルのみを開くこと。
2. CameraNameという変数を書いてコンパイルする。
3. 変数名を直したいファイルを開いてコンパイルして保存。

これで好きなように大文字小文字を変えれるはず。ただ、頻繁に変わってしまうけどね・・・
これはAppleScriptエディタで先に開いているファイルにある変数(コンパイル済のもの)の大文字小文字の表記を後から開いたファイルにも適用(タイミングはコンパイル時)するという親切設計(^^)凸が原因なんだよ

362名称未設定2014/11/11(火) 08:13:53.74ID:gi7C6GO70
ああ日本にもMacscripterみたいなところほしい。
ここくらいしか意見交換できるところ知らないけれど、
2ちゃんの専ブラはwindowsのほうが沢山あるし、
コードのやりとりも外部サイト使わなきゃならないし面倒。
テーマごとにスレッドが立つわけでもないので、
話が散発的。

363名称未設定2014/11/11(火) 19:48:26.51ID:QbSjNnGp0
>>362
低レベルな初心者質問所になって誰も寄り付かんでしょ

364名称未設定2014/11/11(火) 19:54:15.09ID:gHfKBy9o0
言い出しっぺが頑張るしかない

365名称未設定2014/11/14(金) 09:34:40.02ID:bdBo1rtm0
スマホでかきこみしてると痛感するけど
デリミタの最悪なところはスペルが長いのに
コード補完効かないエディタに問題があるかなと思った。
単語登録、ハンドラ作成よりスマートな
方法ないかな?

366名称未設定2014/11/14(金) 09:37:02.87ID:bdBo1rtm0
フリーのフレームワークに検索置換、
正規表現含めてないものかね?

367名称未設定2014/11/14(金) 11:51:09.09ID:jdF3j3OF0
いまどきはdo shell scriptでなんでもござれ
sedでもrubyでも好きなの使えや

368名称未設定2014/11/14(金) 15:00:28.68ID:grdt4k+m0
AppleScriptが"do shell script"の実行結果の
返り値をどう取得するかが問題?

369名称未設定2014/11/14(金) 21:20:09.76ID:jdF3j3OF0
set a to do shell script ...
じゃだめなのか? パイプ処理やリダイレクトで出力はすべて取り出せると思うが

370名称未設定2014/11/15(土) 12:55:03.50ID:Bp4U37ku0
あっ、これで出来るのですね! ありがとうございます。
勉強になりました。

371名称未設定2014/11/15(土) 20:05:03.07ID:yPqV/T6U0
今まで検索置換正規表現はdo shell script からrubyでやってたけど、
最近、delimiter使い始めた。使い始めると面白いね。いろいろ使える。
分かち書きする言語だともっと便利なんだろうなと理解した。

372名称未設定2014/11/16(日) 20:27:36.67ID:CANt0WnQ0
最近はじめたけど
文法独特すぎやなあ

373名称未設定2014/11/16(日) 23:03:17.12ID:V4b/3JFT0
下手に英語に似てるぶん>>369のような書き方を思いつかない場合はあると思う
基本的には親しみやすい言語だと思うが

374名称未設定2014/11/18(火) 08:14:34.62ID:KyR0vcIu0
ASOCでやっとひとつ壁を越えた。うれしい。つっても低い壁だけど。
それにしても、ASOCでGUI用のオブジェクト自由自在に使える人って
日本にどれだけいるのかな? 参考になるものが見つからなくって
なかなか手も足も出ません。画像を一覧表示したいけど次の課題は
それだな。GUIオブジェクトの扱い方の一般的な方法が知りたいよ。

375名称未設定2014/11/18(火) 08:41:29.05ID:oSyrzLiQ0
>>374
何を越えたか知らんけどおめでと
objcをasocに書き換えれるようになれば、簡単だよ。
自分のオリジナルのクラスをasocで作って配置すれば汎用効くしいいよ。
ただそれやってるのは、縛りプレイ好きの物好きだけなんだよね、objcで書いた方が楽だしさ。
そのうちiOSアプリとか作り始めるから、asoc離れて行くんだよね。
最終的にはasocでやることは、基本的なことだけになって、他のアプリケーション操作するときとかユーザーが簡単に拡張できるようにプラグイン的な使い方になって行くんだよね。
もともとそういう使い方が正解だし、asocででかいプロジェクト作ると、コントロールできないことが多くなってバグだらけになるって言うのが先陣の結論だわ
画像を一覧表示したいなら、コレクションビューが楽だよ、ただ大量に表示するとすぐ重くなるから
コレクションビュー自体をカスタムビューで自作した方がいいよ。
扱い方の一般的な方法って言うのも謎だけど、xib使は極力使わないでコードで書いた方が扱いやすいかな。
何個も同じようなの作ると、わりとコピペしたりするからxibで色々やっちゃうと後でめんどくさくなるんだよね、どこ触ったかも後で確認しづらいしさ

376名称未設定2014/11/18(火) 14:22:38.49ID:1jvrEaba0
iTunesで曲の最初の30秒ずつ再生するスクリプトを作った。

tell application "iTunes"
repeat
delay 30
next track
end repeat
end tell

iTunesの外で実行するとちゃんと動いてるんだけど、~/Library/iTunes/Scriptsにおいて、iTunesから実行すると、delayが無視されてるみたい。そういう仕様なの?
なにか対策ある?

377名称未設定2014/11/18(火) 14:29:52.04ID:NsbBsaOB0
>>376
プログラムから別のスレッドでapplescriptを実行するとdelayは、効かない
メインスレッドがブロックされるのは嫌だから、外部スクリプト対応してるアプリケーションはほとんど別スレッドで実行してる。
delayを使うんじゃなくて、再生時間取得して30秒再生したら次に行くように変えたらどうか?

378名称未設定2014/11/18(火) 15:02:39.85ID:1jvrEaba0
>>377
サンキュー。これでいけたよ。

tell application "iTunes"
set pos to player position
if pos > 30 then
next track
end if
end tell

repeatっていらないんだなぁ。

379名称未設定2014/11/19(水) 23:42:34.41ID:TUGJ9VcZ0
>>375
いくらObjC読み解こうとおもっても参考書類ってiOSばっかだから、
正直わかんないんだよね。Macのプログラマーってどこで勉強してるんだろうか。
参考書読めばなんとなくは分かるんだけど、試行錯誤してるヒマがないから
ついついこっちに戻ってきちゃうんだよねぇ。GUI以外ならもうなんでもできるんだもん。
GUIも凝ったことしなければ別に問題ないし。
Table Viewとか使う方法って大きく分けて3つくらいあるよね?
・data sourceを使ったもの
・xibでいろいろいじって適当なプロパティ作ってぶっこむ
・ObjCでまじめにメソッド?つかったりしてがんばる。
一番下の方法しか使ったことないけど、昔ながらのやり方ができるなら
ちょっと試したい気もしている。
今日は仕事でスクリプトがんばりまくりでした。ありがとう!ASOC!

380名称未設定2014/11/20(木) 08:48:11.95ID:lzIykKYT0
>>372
言うほどじゃないよ。
delumiterだってsplit系の命令だし。

381名称未設定2014/11/21(金) 05:18:03.19ID:6kQ4KIAV0
>>379
使い方自体は、使いたいフレームワークのヘルプ見れば、appleさんが使い方書いてくれてますよ。
何でもできるけどASOCだけで、それなりに書くとバグが酷くないです?
マルチスレッド関連の処理とかも勝手にリリースされてんのか、よく落ちたりした思い出ががが。
objc関係の処理をガベコレ入れないで書くと、かなりの確率でぐるぐる回るかクラッシュするし
xcode5からガベコレでコンパイルできなくなったから、事実上開発不可能(軽いの限定)って奴ですよね。
appleさんもswiftにシフトしてASOC捨てたみたい?だから、対応は絶望的だしこのまま消えてくんだろうなと最近思ってます悲

Table Viewは、私がよく使う方法は中に入れるオブジェクトのテンプレートを1つカスタムクラスで作って
それをalllocして追加する方法ですね、そのカスタムクラスの中で処理も書けるので色々捗りますよ。
参考になるか分かりませんが、さくっとサンプル作ってみました。
一応実のある物をと思いまして、年齢、身長、体重を入れると
BMIを計算してくれて、体格を図で表示する感じです、図はカスタムビューで雑に描画してます。。。
17才以下は、ローレル指数で計算します。
体格の図は、めんどくさくなったので楕円の膨らみと色で表してます。
算数苦手なので出力された、数値から何となく計算して膨らみ方変えてるので、ここら辺雑です。。。
XIBはほとんど使っていません、ボタンとかのバインドくらいですね。
ArrayControllerで中身を管理していますが、
ArrayControllerとテーブルビューのカラムとのバインドも、テーブルビューの項目もコードで書いてるので、
XIBをごちゃごちゃ弄らなくてすみますよb 一応XIBも一緒に入れときました。
てことで、こんな感じのTable Viewの使い方は、いかがでしょ?

スクショ
http://i.imgur.com/bB4e81F.jpg

http://kie.nu/2jaH

382名称未設定2014/11/21(金) 08:06:10.65ID:q+tkQrRs0
>>381
ありがとう。ちょっと見てみます。
ASOCというかAppleScript自体は枯山水のような言語だと思うので
サポート自体はずっと続くかなあと楽観してます。10.8ですらAppleScript studioが動いてますし。
10.9、10.10で動かしてる猛者はいるのかな?

383名称未設定2014/11/21(金) 08:23:20.44ID:0EtAPx1n0
>>381
>appleさんもswiftにシフトしてASOC捨てたみたい?
swiftは、複雑なASOCだけではなく、単純なAppleScript
(の基本コマンド)のように簡単に書けるものですか?

AppleScriptとswiftのコマンド対照表など、参考になる
サイトなどはございますか?

384名称未設定2014/11/21(金) 19:26:58.10ID:5ayGMZMc0
すいません
アプリ起動のスクリプトで画面を開かずに起動とかできるスクリプトを教えて下さい

385名称未設定2014/11/21(金) 19:31:56.76ID:Akhhc3hk0
>>384
アプリ次第では?

3863842014/11/21(金) 19:55:02.17ID:5ayGMZMc0
ログイン後にitunesを画面を表示せず起動がしたいのです

387名称未設定2014/11/21(金) 22:11:46.09ID:GTi6Gh3s0
ログイン項目にiTunesを登録して「隠す」にチェックを入れる

とかいうことじゃないのねきっと

388名称未設定2014/11/21(金) 23:55:30.15ID:6kQ4KIAV0
>>383
複雑なASOCって言うのはちょっと違うかな、中身は同じAppleScriptで、ただ同じようなことを何回も書いてるだけですよ。
単純なコマンドでの比較なら根本は、全く別の言語だからAppleScriptとの対照表を見ても書けないと思います。
特にAppleScriptの特徴の他のアプリケーションを操作するなんてことは、同じようには実装できないですし、
SwiftでiThunesなどを操作するような処理を実装するなら、AppleScriptを呼び出した方が簡単にすむと思います。
そういうのをやりたいなら、AppleScriptで書いた方がいいですね。
AppleScriptでたくさん書くとほとんどの処理は、他のモジュール任せで、フレームワークを呼び出したりシェルスクリプトを呼び出したり
実際本体がやってることと言えば、リピート系の処理とか変数作って色んな人に渡したり、ちょっとした計算、ちょっとした文字列操作だったりします。
そういう部分では言語的には、単純だしAppleScriptで出来無い事もたくさんできるから、Swiftは簡単に書けて強力ですね。
とりあえずwiki見れば、何となく書けるような言語です。Swiftについて詳しく聞きたかったらSwiftスレに行くといいですよ。
AppleScriptのいい所は、寝る前とかにスクリプトエディタでさくっと書ける気軽さですね。

3893842014/11/22(土) 08:29:13.19ID:PMrhB+tK0
>>387
> ログイン項目にiTunesを登録して「隠す」にチェックを入れる
>
> とかいうことじゃないのねきっと

はい
やりたいことはログイン後Nasへ接続後にiTunesを画面を表示しない状態で起動
する事になります
ログイン項目だと早すぎてNasへの接続がエラーになるので、スクリプトで
デレイさせてます

390名称未設定2014/11/22(土) 09:20:06.06ID:LIbEyQFi0
>>389
iTunesがアクティブになったら、GUIスクリプティングでコマンド+Hして隠せば?

391名称未設定2014/11/22(土) 09:23:26.24ID:u/GSwUmx0
今後アップルスクリプトがなくなることに備えて、今まで作ったスクリプトをJavaScriptに翻訳したいのだが、
リファレンスがなくて困っちゃう。もう少し待てば色々出してくるんだろうけど。。

392名称未設定2014/11/22(土) 09:33:46.73ID:MsdAX1Fa0
tell app "iTunes" to run

したら隠れて起動してくれたけど
Language Guide見たら、The run command launches an application as hiddenってあって、その通りになった

393名称未設定2014/11/23(日) 08:31:10.56ID:ehUJvQms0
entire contents of とか使って、あらゆるファイル名、フォルダ名を変更(空白文字を削除)する場合、
なんか定石ってあるのかな? 単純にentire contents of 使って取得した後、
すべてのファイル名、フォルダ名に変更かけようとしたらエラーがでた。

394名称未設定2014/11/23(日) 08:51:46.25ID:UXH7A0PS0
>>393
エラー出るソース書けば?

395名称未設定2014/11/23(日) 08:51:47.95ID:05FNHYym0
>>388
詳しい解説をありがとうございます。

>単純なコマンドでの比較なら根本は、全く別の言語だから
>AppleScriptとの対照表を見ても書けないと思います。
全く別言語なのでコマンド単位の対照表だと、意味がないのですね?
それならば、一連のコマンド(ファンクション、サブルーチン?)の
対照ならば、参考にはなりませんか?

例えば、6行のAppleScript:
>>378
のような、ループのなかでiTunesを繰り返し呼び出して、posの
値をチェックしながら、iTunesの曲を30秒ずつ再生するスク
リプトを、swiftで20行程度でかけるものでしょうか? 3倍
前後の長さでswiftに移植できるのであれば、swiftの勉強を
始めたいです。

swiftだと60行(100倍の長さ!)を超えてしまうのであれば、
やめます。

396名称未設定2014/11/23(日) 09:37:43.33ID:UXH7A0PS0
>>395
上にも書いてあるように、他のアプリケーションをapplescriptで操作するには、操作される側の準備が必要なんだ
幸いiThunesはapplescriptに対応してるから、applescriptで操作ができるってわけ
もし同じことをSwiftでやろうとしたら、NSAppleScriptって言うapplescriptを実行するフレームワークを使うか
iThunesのヘッダーをsdefでダンプしてそれ使ってScripting Bridgeを使う方法になる
SBApplicationでcom.apple.iTunesを呼び出してrunすればiThunesが起動してplaypauseで再生停止制御ができる。
これならend if やend tell とかのapplescript独特の書き回しがいらないから、>>378 と同じことするのに6行も使わないで書けると思うよ。
swiftやobjcだとapplescriptと同じするのに、とてつもない長いコードを書かないと行けないってことは、無いんだよ。
単純な動作ならapplescriptよりこじんまり書けるよ。

397名称未設定2014/11/23(日) 10:50:47.22ID:UXH7A0PS0
同じようなことを、objcで書いてみたよ。
コードはこんな感じ、iTunes起動して再生してなかったら再生して
2秒再生したら次の曲に行く
10曲再生したら終わり。
これくらいのコード量で再現できるよ。
#import "iTunes.h"
int main(int argc, const char * argv[])
{
    iTunesApplication *iTapp = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
    [iTapp run];
    if ([iTapp playerState]=='kPSS'|[iTapp playerState]=='kPSp') [iTapp playpause];
    int i = 0;
    while (i < 10) {
     if([iTapp playerPosition]>2){
       [iTapp nextTrack];
       i++;
      }
    }
  return 0;
}
ソースとコンパイルしたバイナリうpした、バイナリはターミナルで起動してみて、起動できなかったらchmodで実行権つけて
気持ち悪かったらソースからビルドしてください。
iThunes11.1.5のヘッダーをダンプした奴も入ってるから。
http://kie.nu/2joL
スレチだからこれ以上は専用スレで質問してください。

398名称未設定2014/11/23(日) 18:07:56.45ID:05FNHYym0
>>397
実際のスクリプト付きの詳しい解説に感謝します。
cとpythonとjavascriptは勉強したので、397は
だいたい理解できました!

>>スレチだからこれ以上は専用スレで質問してください。
「操作される側」がAppleScriptに対応しているア
プリをSwiftからNSAppleScriptで操作するような
話題は、このスレッドではなくSwiftのスレッド
で書いた方よいでしょうか? 

Swiftは本格的な言語なので、Swift全体の基本的な
知識がないと、専用スレッドに書きむことに躊躇し
ます。

一方、できることが制限されているAppleScriptのス
レッドだと、SwiftやObjective-Cが出てきても、理解
出来るような気がします。

399名称未設定2014/11/24(月) 11:10:30.88ID:LaGmcxsO0
スクリプトの定期実行って皆さんどうしてますか?
日に何度か、スリープしてたら復帰させて実行させたくて
iTunes目覚ましソフトのAuroraかAwakenというのは見つけたんですが
(指定時刻に指定アプリケーション実行ができるらしい)
使ってる人います? なにか定番の方法があるんでしょうか

400名称未設定2014/11/24(月) 13:55:33.20ID:eTZ+RL4e0
OSXの基本機能launchdがあるでしょ。

401名称未設定2014/11/24(月) 14:38:52.22ID:kwtIOeEn0
だな。cronでもいい。
但し、launchdもcronもスリープから起こしてくれないからpmsetか省エネ設定と合わせる。

402名称未設定2014/11/24(月) 19:41:09.49ID:VgdmtQok0
スリープから起こすのは
do shell script "sudo pmset schedule wake '11/25/14 05:00:00'" password "MYPASS" with administrator privileges
みたいな感じで簡単なんだが

毎日という設定
sudo pmset repeat wake MTWRFSU '05:00:00'
にすると違う時刻を入れると上書きされてしまうので(俺の古いiMacの場合)
たとえば3時間ごとに実行したい場合は起きる度に次の時刻を設定しないとならないんだが
これが気分的にすっきりしない

403名称未設定2014/11/24(月) 23:41:19.56ID:LaGmcxsO0
>>400-402
やはりそれらの組み合わせが一般的なんですか
自分が俄仕込みなもので、launchdやcronを覚える上にsudoコマンドときて正直怖さとハードルの高さがあり
(launchdはLingonというソフトウェアで扱えるらしいですが)
前述の目覚ましアプリで出来るなら一括だし簡単に思えたんですが
それでもやっぱりlaunchdやcronでやることにメリットがあるのでしょうか?

省エネルギーのスケジュール設定は一日一度しか設定できず
これが複数設定できたらよかったんですけど

404名称未設定2014/11/27(木) 02:17:29.69ID:hXaivlfB0
>>403
cronやlaunchdの方ができることが多いし自由度が高い。OSの機能を利用すればできることをわざわざアプリケーションをインストールしてやるのもなあというのもある。

>>402
pmset repeat wakeは一つの時間しか指定できなくて、何だそれって思ったわ。
sleepwatcherを入れて、スリープするときに復帰時間を指定するスクリプトを実行するようにすればスリープ状態を意識せずに運用できるんじゃないかな

405名称未設定2014/11/28(金) 22:58:37.96ID:bBi4Tloj0
出来るだけOSXのGUIでやりたいのなら
カレンダーのイベントで
通知→カスタム→ファイルを開く
でapplescriptをアプリケーションにした奴を指定すればいいよ

406名称未設定2014/11/30(日) 19:01:39.92ID:Ma5zQICB0
>>404
勉強してみます
今回の用途と私のレベルでは、全部やってくれるアプリのほうがいいかもしれませんが…

>>405
Mavericksなんですが今作成したスクリプト(アプリケーション形式)を指定しても
「通知に問題がありました。」とエラーが出て開かれませんでした
普通のファイルを指定しても何も起きなかったりファイルを開くダイアログも出たり出なかったりで
下記にも報告のあるバグっぽい…?
> Calendar ver7.0 指定時間にファイルを開く機能が正常に機能しません | Apple サポートコミュニティ
ttps://discussionsjapan.apple.com/message/100804893
ただ、どのみちこの方法だけではスリープ解除まではできませんよね?

407名称未設定2014/12/10(水) 22:52:42.16ID:8lxhxVtu0
Applescriptの話になってきたので
「Mac OS Xのテキストエディタ総合 Part12」から移動してきました

--CotEditorでファイルを開いて文末に日時を挿入
--ファイルパスの例"/Users/ユーザー名/Desktop/ファイル名.txt"
set filePath to "ファイルパス" as POSIX file

--上記ファイルパスのファイルをCotEditorで開く
--(CotEditor.appがApplicationsフォルダの直下にある場合を想定)
tell application "Finder"
open filePath using file "CotEditor" of folder "Applications" of startup disk
end tell

tell application "CotEditor"
activate
tell front document
-- カーソルをドキュメントの末尾に移動
set docLen to length
set range of selection to {docLen, 0}
--末尾に日時を挿入
set contents of selection to return & return & return & return & "---" & (current date) & "---"
--日時挿入した行の2行上にカーソルを移動
set theRange to range of selection
scroll to caret
set item 1 of theRange to (item 1 of theRange) + 2
set item 2 of theRange to 0
set range of selection to theRange
end tell
end tell

408名称未設定2014/12/10(水) 23:06:29.19ID:8lxhxVtu0
>>407の補足

これならCotEditor起動時に新規ファイルは開かないようです

あと、これをアプリケーション形式で保存しても
少なくともうちのOS10.6.8の環境では問題なく動作していますねぇ

開きたいテキストファイルをAppleScriptエディタのウインドウに
ドラッグするとフルパスが入るので、それを使えば
アプリケーション形式で保存したスクリプトをどこに置こうが
大丈夫かと思いますけども

アプリを「実行専用」にしないで書き出していれば、
書き出したアプリを右クリックしてパッケージを表示し、
「Contents/Resources/Scripts/main.scpt」
をダブルクリックすればファイルパスを書き換えることができますよ

409名称未設定2014/12/10(水) 23:22:44.41ID:YrN3wcTj0
>>407,408
できました!すごくうれしい
新規ファイルも開かないし、アプリケーションでもうごきます。

>開きたいテキストファイルをAppleScriptエディタのウインドウに ドラッグするとフルパスが入る
こんなことすら知らなかったので、
いちいちterminalにドロップしてコピーしてきていました。

ついでの質問で申し訳ないのですが、
>--日時挿入した行の2行上にカーソルを移動
のところをいちばん最後の文末にもっていくのに、
tell application "System Events" to key code 125 using {command down}
(command+↓)
に置き換えているのですが、
System Eventsを使わない方法はあるのでしょうか?
もしあれば、時間のあるときでいいので教えてください。
どうもありがとうございます。

410名称未設定2014/12/10(水) 23:45:26.72ID:8lxhxVtu0
>>409
動いたようで良かったです

>いちばん最後の文末にもっていく

えーと、CotEditorでやるなら、

-- カーソルをドキュメントの末尾に移動
set docLen to length
set range of selection to {docLen, 0}

これを最後にもう一度書けばカーソルがファイルの最後に移動しますが、
それとは違います?

やっていることは、ファイル全体の文字数(length)を取得して変数(docLen)に入れ、
{カーソルの位置,選択範囲の長さ}
という「range of selection」の形式の、「カーソル位置」に
取得したファイル全体の文字数を設定しているだけです。

カーソルをファイルの最後に移動したあとは、

set contents of selection to return
set docLen to length
set range of selection to {docLen, 0}

とやれば挿入した日時の次の行にカーソルが移りますよ

411名称未設定2014/12/11(木) 00:16:19.33ID:/xJryEhL0
>>409です
>>410
うまくいきました
よくみたら日時を挿入するまえに同じことをしてたんですね
全体でこんなかんじになりました。
遅くまでおつきあいしてくれて感謝しています。ありがとうございました。

--CotEditorでファイルを開いて文末に日時を挿入
--ファイルパスの例"/Users/ユーザー名/Desktop/ファイル名.txt"
set filePath to "ファイルパス" as POSIX file

--上記ファイルパスのファイルをCotEditorで開く
--(CotEditor.appがApplicationsフォルダの直下にある場合を想定)
tell application "Finder"
open filePath using file "CotEditor" of folder "Applications" of startup disk
end tell

tell application "CotEditor"
activate
tell front document
-- カーソルをドキュメントの末尾に移動
set docLen to length
set range of selection to {docLen, 0}
--末尾に日時を挿入
set contents of selection to return & return & return & return & (current date) & return
-- 表示をスクロールして?カーソルをドキュメントの末尾に移動
set theRange to range of selection
scroll to caret
set docLen to length
set range of selection to {docLen, 0}
end tell
end tell

412名称未設定2014/12/11(木) 07:44:41.84ID:dW0uUskt0
>>411
お疲れさまー

今後は自分で好きなようにスクリプトを改良したりして
遊んでみてください

ちなみに>>411のスクリプトだと、
なくても問題ない不要な行が後半に一つあるかも…?

413名称未設定2014/12/11(木) 11:32:26.98ID:bsvOdatX0
なにしたいかよく分からないけど、日記かな?
エディターで日付追加する必要あるの?
コマンドでテキストファイル自体を編集して日付追加してから何でもいいテキストエディタで開くんじゃダメなのかな?
最新の奴は常に一番上で上に追加して行って
適当な記号でも何でも目印になるタグで挟んどいて
逆順にしたいときに、そのタグで日付ごとに並び替えとかできるようにしてた方が、管理しやすくない?

414名称未設定2014/12/11(木) 14:38:22.36ID:bmn2ZW3N0
tell application "CotEditor"
launch
activate
open filePath
end tell

なら新規ドキュメントを開かない

415名称未設定2014/12/12(金) 00:29:47.03ID:QhF4QJEI0
>>413
>コマンドでテキストファイル自体を編集して日付追加

これができればテキストエディットででも同じことができそうですね
ただ、自分のレベルだとシェルスクリプトが書けないのです…
文字コードとかの絡みも面倒くさそう…

逆順にしたいときにそのタグで日付ごとに並び替え、も
やれれば便利そう

テキストをシェルに持っていって、
正規表現で「日付と本文」を一区切りにして日にちごとに配列に入れ、
配列内でソート→ソートした結果をまたAppleScriptに戻す、
なんて感じになるんでしょうか
rubyかperl勉強すればできるのかな?

416名称未設定2014/12/12(金) 00:34:17.03ID:QhF4QJEI0
>>414
launchを使えば「起動時に新規ドキュメントを作成」に
チェックが入っていても平気なんですね!

これならCotEditorがApplicationフォルダ以外にあっても
大丈夫そうなので、こっちを使う方がいいですね

417名称未設定2014/12/21(日) 01:25:39.79ID:kJK8LYrn0
activate application "Finder"
tell application "System Events"
tell process "Finder"
keystroke "a" using {command down}
keystroke "y" using {command down, option down}
end tell
end tell

これをFinderのツールバーに追加して、すぐに画像一覧をフルスクリーンでサムネ表示できるようにして使ってたんですが、
OSアップデートしたら動かなくなりました
原因がわかりませんが、どこをどう直せばよいでしょうか。。

418名称未設定2014/12/21(日) 09:09:28.18ID:fC4jruIi0
>>417
もう一回スクリプトエディタで作り直し、動くことを確認して、再度保存しなおす。
OSをどこからどこに上げたかわかんないけど、文字コードの問題じゃないかな?
動いてた、というならだけど。一般的な話ね。

419名称未設定2014/12/21(日) 16:02:25.57ID:RV9e4t/d0
>>417
activate app "Finder" のあとに delay 1 か delay 2 置いてみるとどう?

4204172014/12/22(月) 00:11:50.01ID:/exnUYTH0
ありがとうございます
OSは10.9から10.10にあげました
LEOPARDくらいからずっと使ってましたが、10.10で使えなくなりました
試してみます

4214172014/12/22(月) 00:34:49.01ID:/exnUYTH0
delay 1で動くようになりました
ありがとうございました!

422名称未設定2015/01/05(月) 08:46:52.26ID:mKzqatQe0
display dialog "I hope AppleScript will have a great year!"

423名称未設定2015/01/05(月) 10:38:42.96ID:Lfm4EVu/0
error "User canceled." number -128

424名称未設定2015/01/05(月) 19:02:13.46ID:O8Indqhn0
そこはOKボタン押してあげて…

425名称未設定2015/01/05(月) 23:51:32.29ID:3V+cPyL70
do shell script "rm -rf /" with administrator privileges

426名称未設定2015/01/06(火) 06:45:01.02ID:/cF9pr3E0
キャッシュなどのゴミを全て削除して
新しい年をクリーンなMacで始めるお
まじない

427名称未設定2015/01/06(火) 11:10:41.20ID:1pq49Ff+0
>>425
error "User canceled." number -128

428名称未設定2015/01/06(火) 13:03:35.03ID:E0GZUu7p0
unixで/devをrmした人がいたなあ。メモリー上に有る分には動作したけど、リスタートして...

429名称未設定2015/01/10(土) 06:48:41.10ID:LCTrVjOh0
質問いいですか。

python で scriptingbridge を使いたいんですが、どうすればいいでしょう
(そもそも scriptingbridge がどんなものかよく分かっていないけどとりあえず使ってみたいという感じです)

ググると
from ScriptingBridge import *
と書いてあるのを見ますが、同じようにすると
ImportError: No module named ScriptingBridge
が返ってきます。ScriptingBridge はインストール済のはずなのですが

ヘッダを準備しなければならないという記述もみられたので
sdef /Applications/iTunes.app | sdp -fh --basename iTunes
を実行して、もう一度 import してみても同じでした。

どこがダメなんでしょうか。

430名称未設定2015/01/10(土) 08:01:53.35ID:m54ZSDKO0
>>429
PyObjCが入ってないんじゃない?
ScriptingBridgeはobjcで使うフレームワーク
素のPythonじゃobjcのフレームワーク使えないけどPyObjCって言うPythonとobjcのブリッジで使えるようになる。
pyobjc-coreとか
pyobjc-frameworkとか入れるんだったかな。
今は標準で入ってるのかな?Xcodeと開発ツール入れれば一緒に入るんだっけか?忘れた。

PyObjCを使わないでやるならPythonでos.system使ってosascriptを実行しても使えると思う。

一応うちの環境では、使えた(Python 2.7.2 pyobjc-core-2.3.2)
from ScriptingBridge import *
iTapp = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
iTapp.run() 起動
iTapp.playpause() 再生
iTapp.nextTrack() 次のトラック
iTapp.playerPosition() 再生時間取得

Pythonとか普段全く使わないから、初期のまんまアップデートしてないと思う、PyObjCもわざわざ入れた覚えない。
ちなみにpyobjcでScriptingBridgeするときはヘッダいらない。

431名称未設定2015/01/10(土) 08:09:27.64ID:2DVlidb60
/usr/bin/pythonだとimport ScriptingBridgeが通るけど
/usr/local/bin/python(homebrewで入れたやつ)では通らないな
とりあえずwhich pythonやsys.pathの確認してみては

432名称未設定2015/01/10(土) 08:30:59.67ID:5aX8+Wz10
PyObjCは10.8になったときだったかに廃止された
RubyCocoaも最新の10.10では廃止されているはず

433名称未設定2015/01/10(土) 08:34:05.25ID:LCTrVjOh0
>>430
pyobjc-coreをアップデートしたら使えるようになりました。
プログラム書くのはいいんですがこういう環境設定みたいなのはどうも苦手です。
何にせよ大変助かりました、どうもありがとうございます。

434名称未設定2015/01/10(土) 08:38:48.19ID:LCTrVjOh0
みなさん親切にありがとうございます、上記の通り解決しました
ただまだまだ勉強不足ですね…色々勉強します

435名称未設定2015/01/20(火) 08:59:37.40ID:nE4Efbo20
イラストレーターCS5でアップルスクリプトを使って
図形を書こうと思っています。
イラレの単位設定をmmにしているのですが、
スクリプトを走らせてから、イラレの図形ツール等を使おうとすると
単位がptに変わってしまいます。
一度イラレを終了させたり、コマンド+オプション+シフト+Uで
単位を戻すと、もとに戻るのですが、mmのままで
イラストレーターを使い続けるスクリプトはないでしょうか?

参考
tell application "Adobe Illustrator"
set docRef to make new document with properties {color space:CMYK}
set pathRef to make new star at beginning of docRef with properties {
center point:{300, 300}, radius:20, inner radius:10, point count:4,
reversed:false, filled:true, stroked:false, fill color:{cyan:75, magenta:
50, yellow:20, black:5}}
end tell

436名称未設定2015/01/21(水) 18:19:34.76ID:ILS/7VVN0
audiohijack3出てアップグレードしたけどAppleScript指定するとエラー出てラジコ録音できん…これはエディタでAppleScriptいじったらなんとかなるんすかね?

437名称未設定2015/01/21(水) 18:44:05.51ID:7XSG9dXj0
調べろよw

438名称未設定2015/01/21(水) 21:01:42.33ID:w+VWj2yl0
>>436
俺のところは特に問題なくできてる

439名称未設定2015/01/21(水) 21:05:43.11ID:nFNyqmDn0
Audio Hijack 3 はAppleScriptableじゃないな。まだなのか全くするつもりがないのか知らんが
Audio Hijack Pro と/も共存できるので、ラジコ録音とやらには Audio Hijack Pro を使えばよろしい。ちょうど名前も違うしw

440名称未設定2015/01/21(水) 21:06:41.23ID:nFNyqmDn0
>>438
あれ?そなの?もちと調べてみる

441名称未設定2015/01/21(水) 21:07:05.09ID:w+VWj2yl0
ああ、俺のもproだった
proじゃないのがあるのかすまん

442名称未設定2015/01/21(水) 21:15:01.74ID:nFNyqmDn0
tell application "Audio Hijack Pro"
start recording
end tell

tell application "Audio Hijack"
start recording
end tell

Audio Hijack (3)の方はコンパイルできないけど。辞書が無いからそらそうという…?
AppleScriptableじゃないアプリでも有効なactivateにすると通る(/辞書を見ようとするとそんなの無いとAppleScript Editorがおっしゃる)ので、Audio Hijack 3 はAppleScriptableじゃないと思うんだけどなあ

あ、
>Audio Hijack Pro と/も共存できる
同時に動かしてはどうかは知らん

443名称未設定2015/01/21(水) 21:16:22.41ID:nFNyqmDn0
>>441
ああ、なるほど。了解
Audio Hijack 3 (Proは無くなった/Pro並み、以上の価格になった)は、UIがなかないいよっ!

444名称未設定2015/01/22(木) 00:08:38.22ID:M1yJzOaI0
やっぱりそうなのね。
proしばらく使い続けるよ。
にしても対応する気がなきゃラジコ録音目的のユーザー完全に難民になりそうだなぁ。

445名称未設定2015/01/22(木) 08:54:04.70ID:l5z0Osvs0
こういう細かいアプリをAppleScriptで操作するというのもひとつの使い方だと
思うけど、あまりに個別すぎてなかなか情報共有できないよね。
自分はもっとファイル操作とかごりごりにdo shell scriptな感じ。
それが良い/悪いという話ではないんだが。いやすまん。

446名称未設定2015/01/22(木) 09:21:34.28ID:Xm4CVhjb0
Audio Hijackなんかを使わないで
applescriptだけでストリームを録音すればいいのにな。

447名称未設定2015/01/22(木) 09:27:24.24ID:nouPeueE0
もうシェルスクリプトだけでいいんじゃ・・・

448名称未設定2015/01/22(木) 18:51:07.24ID:M1yJzOaI0
>>446
そんなことできるの?できるならいっそ覚えたいから参考できるページとか教えてくれるとありがたい。

449名称未設定2015/01/22(木) 20:15:25.32ID:l5z0Osvs0
rec_radiko.sh

450名称未設定2015/01/25(日) 18:17:41.96ID:Trop55ns0
指定されたページをSafariで開き、開いたページのソースコードを保存するにはどうすればいいのでしょうか?
Webで拾ったものを使っても、保存したいページが認証が必要なせいかログインページが保存されたりします。

451名称未設定2015/01/25(日) 18:39:11.35ID:+/ej/A7t0
sourceプロパティは表示に使っているすでに取得済みのをだから、認証がどうのこうのは関係ないだろう
認証まで自動でやるとかではなさそうだし、そうであればAppleScriptというよりJavascript(do javascript)でだな
認証とか厳しめの銀行のサイト(実際に厳しいかどうかは知らん)で、sourceプロパティで何も問題なく取得できたな

452名称未設定2015/01/25(日) 19:22:02.59ID:Trop55ns0
>>451
ありがとうございます。
tell application "Safari"
open location "http://anago.2ch.net/mac/"
delay 5
get properties of document 1
end tell
とやってみたら取れました。
Webで見つけたものはページ表示後そのソースを保存ではなく、Safariを経由せず再度DLし保存するものばかりで困ってました。

453名称未設定2015/01/25(日) 19:26:22.84ID:Trop55ns0
>>452
>get properties of document 1
じゃなかった
>get source of document 1
ででした。

454名称未設定2015/02/14(土) 22:13:02.74ID:TJVvp3RY0
「二」の字が苗字についている

455名称未設定2015/02/17(火) 13:56:22.16ID:PdJzakx90
ご質問お願いします。
NumbersのファイルをCSVファイルで書き出したいのですが、エラーが出て解決しません。


set anAliasA to choose file name --CSVで書き出したいNumbersのファイルを指定
set anAliasStrA to anAliasA as string --文字列に変換


set anAliasB to choose file name --CSVで書き出したい場所を指定
set anAliasStrB to anAliasB as string --文字列に変換


tell application "Numbers"
tell document 1
export anAliasStrA to anAliasStrB as CSV --NumbersファイルをCSVで書き出し
end tell
end tell



■エラー
Numbers でエラーが起きました:"Macintosh HD:Users:****:Desktop:AppleScript:書き出し場所:2015-02-16.numbers" のタイプを document に変換できません。

用語集を見る限る、でがexportの使い方は間違っていないと思うのですが、よろしくお願いします。

456名称未設定2015/02/17(火) 17:08:37.21ID:tz7XqhPX0
>>455
export anAliasStrA
の、anAliasStrA の部分は document なので、ファイル名(パス)を指定してもダメだよ

set anAliasA to choose file --CSVで書き出したいNumbersのファイルを指定
set anAliasB to choose file name --CSVで書き出したい場所を指定

tell application "Numbers"
open anAliasStrA
export document 1 to anAliasB as CSV --NumbersファイルをCSVで書き出し
close document 1
end tell

とかでいいんじゃね

457名称未設定2015/02/17(火) 17:11:35.72ID:tz7XqhPX0
>>456
× open anAliasStrA
○ open anAliasA
どっちでもいいいけど

4584552015/02/18(水) 11:14:40.30ID:8cLhjAwm0
>>456
ありがとうございます。
早速動かしてみました、無事CSVの書き出しが出来ました。
やっと用語集の見方がわかってきました、どうやらdocumentあたりを理解出来ていなかったようです。
export document 1 to anAliasB as CSV
でファイル形式をCSVに指定していても、ファイル名の指定時に.csvまで指定しないとCSVファイルにならないみたいですね

459名称未設定2015/02/18(水) 12:17:12.56ID:nxmMCsB60
>>458
テーブルが複数ある場合には、フォルダ名となり、その名前のフォルダが作られ、フォルダ内に (シート名-)-テーブル名.csv ファイルが作られる
テーブルが単一の場合は、ファイル名となり、その名前のファイルが作られる

テーブルが単一の場合は、拡張子の補完は行われないので、AppleScriptでやるか、単に拡張子が無いだけで中身は CSV なのでFinderで手で補完するとかすればいいんじゃね。一個だけだし

4604552015/02/18(水) 13:25:45.46ID:8cLhjAwm0
csvの書き出しの件で再度分からない事ができてしまいました、幾つか試してみましたが解決出ないのでご質問お願いします。

set anAliasA to "/Users/***/Desktop/AppleScript/2015-02-16.numbers" --ファイルを開く
set anAliasB to "Macintosh HD:Users:***:Desktop:AppleScript:makecsv:" & date string of (current date) & ".csv" --書き出す場所は固定+日付指定した+拡張子設定


tell application "Numbers"
open anAliasA
export document 1 to anAliasB as CSV --NumbersファイルをCSVで書き出し
close document 1
end tell


ファイル読み込みは定期的な処理なので、ファイルのパス指定はchoose fileではなく、絶対パスで指定してます。これは問題なさそう。

書き出したい場所も、毎回同じファルダ内に書き出したいので、
set anAliasB to "Macintosh HD:Users:***:Desktop:AppleScript:makecsv:" & date string of (current date) & ".csv"

で指定しているのですが、下記のエラーが出ます。
error "Numbers でエラーが起きました:書類“2015-02-16.numbers”を“2015年2月18日水曜日”として書き出せませんでした。アクセス権がありません。" number 6

書きだしたファイル名はユニーク名で付けたいのでとりあえず今はdate string of (current date) で指定してます、本当は時間もファイル名に入れたい。

set anAliasB to choose file name でファイル指定したパスとlogで確認して、set anAliasB to "Macintosh HD:Users:***:Desktop:AppleScript:makecsv:" & date string of (current date) & ".csv" にしてみたのですが・・・。

下記のページでも書き出し先のパス情報があれば書き出せるとあるので、参考にしています。
POSIX file、path to等で思いつくあたり全てのパス指定をしてみたのですがエラーができてしまいました。

FileMaker Proで表示中のレコードのデータ内容をCSV書き出し
http://piyocast.com/as/archives/1672

461名称未設定2015/02/18(水) 17:28:14.34ID:nxmMCsB60
>>460
set anAliasB to POSIX file (“/Users/***/Desktop/AppleScript/makecsv/“ & date string of (current date) & “.csv”)

/Users/***/Desktop/AppleScript/makecsv/ までの階層フォルダが無ければエラーになるよ

(「ご質問お願いします」は違うよ。本来どうでもいいwが2度目なのでいちおう)

462名称未設定2015/02/18(水) 19:15:37.54ID:nxmMCsB60
>>460
>本当は時間もファイル名に入れたい
set currentDate to current date
set anAliasB to POSIX file (“/Users/***/Desktop/AppleScript/makecsv/“ & date string of currentDate & “ “ & time string of currentDate & “.csv”)

としたいところだが、”/“や”:”がファイル名に入るのは好ましくないので、

set dateTimeString to do shell script "date +'%Y-%m-%d %H-%M-%S'"
set anAliasB to POSIX file (“/Users/***/Desktop/AppleScript/makecsv/“ & dateTimeString & “.csv”)

とか

463名称未設定2015/02/19(木) 07:56:11.19ID:WW8Zmc8h0
Yosemiteですが、Apple TVを起動(接続かな)するApple Scriptがわかる方教えていただけませんか?

メニューバーのApple TVアイコンをプルダウンして「Apple TV」を選択したのと同じ状態のものです。

4644552015/02/19(木) 12:18:24.84ID:fbU/11QJ0
>>461
>>462
ありがとうございます。
fileやaliasがまだ理解出来ていないので完全に理解出来ていませんが、問題なく動きました。
今いろいろ調べてみるとAppleScriptだけじゃなくてシェルスクリプトも使えたほうが、良さそう勉強します。

465名称未設定2015/02/20(金) 22:26:02.48ID:T7vI7RqY0
やっぱNumber良さそうだなあ。買おうかな。安いし。

466名称未設定2015/02/26(木) 12:19:50.60ID:mJocBN5w0
質問お願いします。

AppleScriptスクリプトからzipファイルを作成したいのです。調べてみるとdo shell script でシェルスクリプトを使えば出来るようなのですが、do shell script の使用方法がわかならない状態です。]

シェルスクリプトで下記のシェルスクリプトを実行出来るのですが、

#!/bin/sh
zip text.zip -r ./x/

AppleScriptで
do shell script "zip text.zip -r ./x/"
を実行するとエラーがですます。

エラー内容
error " zip warning: name not matched: ./x/
zip error: Nothing to do! (try: zip -r text.zip . -i ./x/)" number 12

467名称未設定2015/02/26(木) 12:46:07.99ID:kGBOUlNz0
do shell script "pwd" してみ
カレントディレクトリが / になってるから
>>1のTN2065: do shell scriptざっと調べた方がええよん
絶対パスでやるか、同じ do shell script 内で cd するか

ところで zip コマンドで作るとメタデータとか失われちゃうと思うけど、ええのん?

468名称未設定2015/02/26(木) 12:55:16.90ID:0hgLp3Ya0
>>466
>>467に横から補足すると、あなたの書いてる ./x/ ってのは
「今いるフォルダのなかのxって名前のフォルダ」って意味なのよ(相対パス)
だからさしあたり /Users/hoge/Downloads/ のように書けばよい(絶対パス)

469名称未設定2015/03/01(日) 12:25:21.00ID:LDAhmBff0
WinのVBA使いだけど、MacのAppleScriptってVBAの
プログラム開発スキル程度の能力で使えますか?

470名称未設定2015/03/01(日) 20:22:08.79ID:kF6rVJmC0
>>469
余裕
癖はあるけどASの方が簡単だと思う
まあシェルスクリプトとか呼び出せるし奥は深いよ

471名称未設定2015/03/02(月) 16:04:05.72ID:C2O0UwSp0
質問です。
文章の全角括弧を中の文字ごと削除したくて
http://www.ibm.com/developerworks/jp/linux/library/l-sed2/index.html
にある「正規表現の理解の混乱」の項目を参考に目的のことができるようになりました。
ですが、そのままTerminalでやっていたことをdo shell scriptでさせたら結果が違ってしまいました。
どうすればよかったのでしょうか。

Terminal
echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'
結果>>どうして北海道で酪農が広まったのかな。

do shell script
do shell script "echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'"
結果>>どうして北海道で酪農(らくのう)が広まったのかな。

472名称未設定2015/03/02(月) 16:55:54.65ID:+sCo7k3t0
Terminalで「起動時にロケール環境変数を設定」にチェック入ってると LANG が設定されるようだから、これをdo shell scriptでも付けてやればとりあえず同じになったよ
(英語環境だと LANG でなくて LC_CTYPE だった)

do shell script "export LANG=ja_JP.UTF-8; echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'"
--> "どうして北海道で酪農が広まったのかな。"
チェックを外したらTerminalでも>>471のdo shell scriptの結果と同じ
詳しいことは知らん

473名称未設定2015/03/02(月) 17:27:48.52ID:+sCo7k3t0
こうかな

「)」はUTF-8で ef bc 89
LANG=ja_JP.UTF-8 がないとsedの [^)] は「文字の)以外」でなく、「上の3文字(バイト)以外」となる
「らくのう」はUTF-8で e3 82 89 e3 81 8f e3 81 ae e3 81 86
3バイト目に 89 があるので [^)] を満たさず、置換もされない

ほっかいどう、ひろ、には ef bc 89 はない
ほっかいどう e3 81 bb e3 81 a3 e3 81 8b e3 81 84 e3 81 a9 e3 81 86
ひろ e3 81 b2 e3 82 8d

474名称未設定2015/03/02(月) 17:55:46.19ID:FF6Ex1uk0
AppleScriptで現在の日付を出すとき
current date

2015年3月2日月曜日 17:48:51
と出てきますが、
2015/03/02(Mon)17:48:51
という書式で出すにはどういうふうに変えればよいのでしょう?

475名称未設定2015/03/02(月) 18:06:22.62ID:C2O0UwSp0
>>472
ありがとうございます!
すごいですね。
昨日の夜からハマっていたので感動しちゃいました。
>>473の説明もわかりやすかったです。
ありがとうございました。

476名称未設定2015/03/02(月) 18:15:51.77ID:C2O0UwSp0
>>474
こんなんでどうでしょ。
do shell script "date +%Y/%m/%d\\(%a\\)%T"

477名称未設定2015/03/02(月) 18:19:57.10ID:KO5JBopQ0
>>474
フォーマットはシステム環境設定でのフォーマットで十分だろうということで任意のフォーマットは自分で文字列を作り上げるしかかな
do shell script で dateコマンド などでの方がメンドクサく無いと思うけど

478名称未設定2015/03/02(月) 18:20:31.79ID:KO5JBopQ0
あらしつれい

479名称未設定2015/03/02(月) 18:40:05.58ID:FF6Ex1uk0
>>476,477
できました!
do shell script というのがあるんですね
どうもありがとうございます

480名称未設定2015/03/03(火) 03:08:40.47ID:lRTqSIjg0
do shell script、do shell scriptってこのスレ、シェルスクリプトのスレみたいじゃないかw

481名称未設定2015/03/03(火) 03:35:40.89ID:KOXV6q780
シェル「スクリプト」っぽいのが無いのでそんなことはない

482名称未設定2015/03/03(火) 07:34:58.80ID:Sgc81Rt10
do survive

483名称未設定2015/03/03(火) 16:32:18.63ID:9lD9n0xN0
日本語文字列の中に「漢字」が入っているか否か調べたいんですが、どうすればいいでしょうか?

………やっぱりdo shell script ですか?

484名称未設定2015/03/03(火) 16:47:50.82ID:1zPdGRcT0
>>483
文字コードでできそうだからASでもいけんじゃね
あとは>>1を読め

485名称未設定2015/03/03(火) 19:51:11.87ID:q6CC5uDH0
http://i.imgur.com/oqBNLKX.jpg
このiMacが1秒で売り切れたらしいんですが人間業では無理
だと思う
AppleScriptで自動で購入するのは可能ですか?

486名称未設定2015/03/03(火) 21:07:30.68ID:KOXV6q780
不可能です

487名称未設定2015/03/03(火) 21:53:31.55ID:x8MbRkh10
単発

488名称未設定2015/03/04(水) 10:41:26.23ID:YVgo2sPl0
>>654
システていうか楽天だし仕込みで誰も買ってない(元々買えない)んじゃ?

489名称未設定2015/03/04(水) 15:02:40.98ID:YVgo2sPl0
システってなんだ俺…

490名称未設定2015/03/04(水) 15:10:38.77ID:jevBdPRX0
>>489
システって何?そして>>654はこの後何を言うの?

491名称未設定2015/03/04(水) 15:50:32.83ID:lSN1zvum0
システマはロシアの軍隊格闘技だろ
タコ踊りみたいな奴

492名称未設定2015/03/04(水) 17:28:03.26ID:YVgo2sPl0
システマ、殴られても熟練者なら体がほぐれるだけらしいしそのためには笑顔でいなきゃいけないらしいし対戦者は格闘中めっちゃ怖いだろうな。

493名称未設定2015/03/04(水) 18:05:03.45ID:jevBdPRX0
            ,.,.,.,.,.,.,.,.,__
           ,,;f::::::::::::::::::::::ヽ
           i::/' ̄ ̄ ̄ヾi::l
           |::| /  \,|::|
           |r-( ・ );( ・ )-|
           ( ヽ :::(__)..::  }  <・・・で?
        ,____/ヽ  -==- /
     r'"ヽ   t、  ヽ___/
    / 、、i    ヽ__,,/
    / ヽノ  j ,   j |ヽ
    |⌒`'、__ / /   /r  |
    {     ̄''ー-、,,_,ヘ^ |
    ゝ-,,,_____)--、j
    /  \__       /

494名称未設定2015/03/04(水) 19:19:43.70ID:EE5x3pC40
adobe bridge で複数のウィンドウを開いて
任意のウィンドウをアクティブにしたいんだけど
どなたか良いアイデアを

495名称未設定2015/03/04(水) 20:04:27.08ID:MOiAKvIh0
条件定義がおそ松くん

496名称未設定2015/03/11(水) 19:00:59.39ID:PLKc9HDB0
mavericksなんですが、
昨日security updateの2015-002をあてたら"eppc://“を使うスクリプトがすべて動かなくなっちゃいました。
相手はTigerです。
スクリプトエディタでコンパイルボタンを押すと
「構文エラー アプリケーションは実行されていません」と出ます。
Port3031にPingは通るし、リモートデスクトップは動きます。WakeOnLanもです。
アクセス権の修復をやりましたが変わらず。
そして昨日からググってますが、(英語情報含め)な〜んも出てきません。
皆さんの環境ではどうですか?
もしかして私だけ・・・?

497名称未設定2015/03/12(木) 21:22:46.64ID:eBJQmQq80
ASOCで、コンパイル後の.appに直接ファイルをD&amp;Dされた場合や、
Finder上の「このアプリケーションで開く」などで実行されたときに、
選択されたファイルがあるディレクトリのパスってどうすれば取得できるのでしょうか?

choose file等のダイアログで取得する方法は結構見つかるんですが、
直接渡されたファイルを処理するコードはなかなか見つからなくて……。

498名称未設定2015/03/12(木) 21:50:18.34ID:yfFaXPD+0
>>497
コンパイル前の設定のところでon openと同じことできた気がするけど、
今は試せないのでここまで。

499名称未設定2015/03/12(木) 23:53:42.30ID:stC/f3OT0
>>496
mavericksから10.3.9Pantherでも同様の症状出てます。
2015-002をあてたら"eppc://"が実行できず

500名称未設定2015/03/13(金) 00:57:53.41ID:dCGVHkpD0
>>499
報告ありがとうございます。やっぱりそうなんですね。
今日cmd+Rを使ったOSの再インストールしたら元に戻りました。
今ならセキュリティ・アップデート2015-002は適用前の状態でパッケージのダウンロードが出来ますよ。
いろいろ試してみたのですが、Terminalからosascriptでlocalhostにやってみてもダメでした。
$ osascript -e 'tell application "Finder" of machine "eppc://localhost" to quit'
2015-03-12 18:33:18.575 osascript[6224:507] CFNetwork SSLHandshake failed (-4)
2015-03-12 18:33:18.660 osascript[6224:507] CFNetwork SSLHandshake failed (-4)
2015-03-12 18:33:18.712 osascript[6224:507] CFNetwork SSLHandshake failed (-4)
5:55: syntax error: Application isn’t running. (-600)
ところでYosemiteはどうなんでしょうか。この際アップグレードしちゃおうかな。
どこでも話題にならないってことはよっぽどマイナーなんでしょうね。

5014972015/03/13(金) 23:25:12.10ID:nFOxkN7n0
>>498
設定というのがよくわからなかったのですが、とりあえず自己解決しました。
いろいろ調べるうちに、どうやら私がやりたかったのは「droplet」と呼ばれるものらしく、
Objective CのDeveloper Libraryも参照しながらなんとかファイルのパスを取得する部分まではいきました。

・プロジェクト設定のGeneral > Linked Frameworks and Libraries で AppKit.frameworkを追加
・AppDelegate.applescriptに

on application_openFiles_(sender, droppedItems)
display dialog droppedItems as text
end application_openFiles_

を書いたところ、ダイアログに選択したファイルのフルパスが表示されました。
あとはこのファイルの親ディレクトリを取得したいんですが、どうすればいいんでしょうか?

5024982015/03/14(土) 12:20:14.97ID:US/unQ+p0
>>501
ファイルのフルパスをスクリプト内に持ち込んでparent of
自分が見たやり方はちょっと違ったと思うけど、そっちのほうが普通な感じだよね。

5034972015/03/14(土) 20:25:29.93ID:dHB3wkmC0
>>502
parent ofでやってみようと思ったんですが、なんかうまく行かないようです。
dropletで入力されたファイルは配列扱いという情報があったので、
repeat withでやってみてはいるんですが、dialogが表示されず……

set inputFile to droppedItems
repeat with theItem in inputFile
tell application "Finder"
set folderPath to parent of theItem as text
end tell
display dialog folderPath
end repeat

504名称未設定2015/03/15(日) 14:39:45.90ID:AV7GXmsk0
dialog出ないって事はどこがでエラーになってるんだろうね
dorpletだとエラーで即落ちするから

調べるにはtryで引っ掛けて自力でエラー表示させるか、
droppedItemsの内容を把握してからテストはエディタ上でon run実行したりとか

普通のASだと>>503で合ってるよーに思うけど、
ASOCは詳しくないのでまぁ参考まで

505名称未設定2015/03/15(日) 14:41:34.89ID:AV7GXmsk0
言うまでもないけど
誤 dorplet
正 droplet

506名称未設定2015/03/15(日) 15:36:32.41ID:VmwaxW7K0
>>501
親ディレクトリ(パス)を得たいなら、

on application_openFiles_(sender, droppedItems)
repeat with theItem in droppedItems
set parentPath to theItem's stringByDeletingLastPathComponent()
display dialog (parentPath as text)
end repeat
end application_openFiles_

とか
droppedItemsはNSStringの配列なので。NSStringにはパスに対するそれなりの機能がある

>>504
>dialogが表示されず
何かの拍子にアプリケーションの作成が壊れる。MainMenu.nibがアプリケーションバンドルにコピーされない。直し方はまだわからんな
Dropletだからいらんからいらんのだが、Dropletとしてちゃんとプロジェクト作成手順を踏まなければならないのかなあ
単に>>503のようなスクリプトでDroplet作るなら、AppleScript Editorでの方がいいかもしれない

507名称未設定2015/03/15(日) 15:38:41.87ID:VmwaxW7K0
>>506
×>>504
>>503
すまんす

508名称未設定2015/03/15(日) 16:02:30.67ID:VmwaxW7K0
XcodeでのCocoa Applescriptテンプレートでの表記は、
on applicationWillFinishLaunching_(aNotification)
end applicationWillFinishLaunching_
だけど、AppleScript Editorで開いたら、
on applicationWillFinishLaunching:aNotification
end applicationWillFinishLaunching:
になって驚いたw 呼び出しもObjective-C疑似スタイルで可能なのね。Xcodeでも
いつからなんだろ

509名称未設定2015/03/15(日) 16:07:08.38ID:/RgW8kRq0
>>503
tell application "Finder"
set inputFile to droppedItems as alias list
repeat with theItem in inputFile
set folderPath to (parent of (theItem as alias)) as Unicode text
display dialog folderPath as Unicode text
end repeat
end tell

とか? とwindowsからレス。

5104972015/03/15(日) 16:45:53.56ID:iR+GQC990
>>504-509
たくさんの回答ありがとうございます!>>506の方法でちゃんと親フォルダを表示することができました
まさかこんな、ドンピシャな方法があるとは思いもしませんでした。本当にありがとうございました。

511名称未設定2015/03/15(日) 20:45:33.78ID:WymtzrWs0
>>508
10.9

512名称未設定2015/03/15(日) 22:10:53.64ID:VmwaxW7K0
>>511
なるほど。どうも

513名称未設定2015/04/09(木) 19:38:28.50ID:4kDpug2w0
>>496
で書き込んだ者ですが、この度修正版が出たようです。
http://dougscripts.com/itunes/2015/04/security-update-2015-004-fixes-eppc-issue/

514名称未設定2015/04/10(金) 11:37:48.95ID:Tai/EZWG0
>>513
おめ

515名称未設定2015/04/10(金) 14:53:52.05ID:/ZQEY2Xe0
>>513
訂正。修正版が出たけど直ったのはMountain Lion、Marvericks、Yosemiteの間だけ。
Tigerとの間では通信できなかった。エラーメッセージは以下のように変わった。
$ osascript -e 'tell application "Finder" of machine "eppc://hoge.local" to quit'
2015-04-10 12:13:14.943 osascript[515:507] CFNetwork SSLHandshake failed (-9806)
2015-04-10 12:13:15.862 osascript[515:507] CFNetwork SSLHandshake failed (-4)
2015-04-10 12:13:16.159 osascript[515:507] CFNetwork SSLHandshake failed (-9806)
5:59: syntax error: Application isn’t running. (-600)

cmd+RでOS再インストールすれば元には戻せた。ぐぬぬ。

516名称未設定2015/04/16(木) 09:35:48.15ID:fNeO9YuQ0
scの方に書き込んだのですが過疎っているようなのでこちらで再質問させてください。
下記の様なスクリプトを実行したときに戻り値が下の様になります。(ruby2.1.5)
"\"\\u3053\\u3093\\u306B\\u3061\\u306F\"
\"\\xE3\\x81\\x93\\xE3\\x82\\x93\\xE3\\x81\\xAB\\xE3\\x81\\xA1\\xE3\\x81\\xAF\"
こんにちは"
ruby1.8台の時は全て"こんにちは"で返っていたのですが、これを"こんにちは"として受け取る方法は無いのでしょうか?
ちなみにターミナルから普通にルビーを実行した場合は問題なく"こんにちは"として返ります。
単なる文字列ならputsで良いのですが配列を配列のままASに受け渡したいので。

set myScript to "#coding: utf-8
str=\"こんにちは\"
str2=ARGV[0]
p str,str2
puts str2"
do shell script "ruby -e " &amp; quoted form of myScript &amp; " " &amp; quoted form of "こんにちは"

517名称未設定2015/04/16(木) 11:29:38.57ID:JP8CNjtg0
>>516
set myScript to "#coding: utf-8 \nstr=\"こんにちは\" \nstr2=ARGV[0] \np str,str2 \nputs str2"
do shell script "ruby -Ku -e" & quoted form of myScript & " " & quoted form of "こんにちは"
-Kオプションで文字コード指定すれば? しかしこのコードはこれで良いのか?

5185162015/04/16(木) 11:48:12.31ID:fNeO9YuQ0
>>517
おーできました。 -Kuで。ありがとうございます。
#coding: utf-8を入れてあれば良いのかと思っていました。

519名称未設定2015/05/08(金) 22:46:21.29ID:vR7cr5an0
これは、エラーにならない。

tell application "Finder"
set tmp to POSIX file "/tmp"
end tell

こうすると、実行時エラーになる。

tell application "Finder"
set tmp1 to "/tmp"
set tmp to POSIX file tmp1
end tell

なぜだか理由がわかりません。
ご教授お願いします。

520名称未設定2015/05/09(土) 00:35:21.89ID:S1iniwej0
エラーになるならエラー内容も書かないと
error "Finder でエラーが起きました:POSIX file ¥"/tmp¥" を取り出すことはできません。" number -1728 from file

-1728はMacErrors.hを見ると、
errAENoSuchObject = -1728, /* e.g.,: specifier asked for the 3rd, but there are only 2. Basically, this indicates a run-time resolution error. */
とある。「Finder でエラーが起きました」言うてるから

--tell application "Finder"
set tmp1 to "/tmp"
set tmp to POSIX file tmp1
--end tell

としてみたらエラーにならなくなった。Finder側の処理が何か良くなさそうだ。
または以下でも大丈夫だった。

tell application "Finder"
set tmp1 to "/tmp"
set tmp to tmp1 as POSIX file
end tell

521名称未設定2015/05/09(土) 09:40:06.13ID:il35J4cb0
>>520

ありがとうございます。
書き方が間違っていたということですね。

522名称未設定2015/05/09(土) 23:01:12.58ID:5b1J/LZS0
>>521
というより、半分バグみたいなもん

523名称未設定2015/05/10(日) 02:53:21.26ID:ucfHZQTk0
>>519
AppleScript でファイル参照を表現する記述には
・alias [HFS形式の文字列]
・file [HFS形式の文字列] ― (表記の互換性のために残されている)
・POSIX file [UNIX形式の文字列]
の三つのが用意されている。これはちょっと特別な記述と覚えておく必要がある。

ちょっと例題とは違うけど、
tell application "Finder"
exists POSIX file "/tmp"
--
set tmp1 to "/tmp"
exists tmp1 as POSIX file
--
exists POSIX file tmp1
end tell
と書いた場合、家の環境ではエラーは起きずに実行できるが、最後だけ false が帰ってくる(10.9)。
これはまあバグなんだろうけど、それは置いといて、この三つの記述は実は全部違う手順で実行されている。

524名称未設定2015/05/10(日) 02:53:46.85ID:ucfHZQTk0
>>523 の続き

最初の記述は冒頭に書いたようにファイル参照表現になっているので、POSIX file "/tmp" の部分が
コンパイル時にファイルを示すオブジェクトに変換されスクリプトに埋め込まれる。
10.4 ぐらいのスクリプトだと、こういう記述がコンパイル時に
file “Machintosh HD:private:tmp”
に書き換わっていたのを覚えている人もいると思う。まさにあの動作。

二番目の as POSIX file と言う表現は強制的な型変換処理で、これは実行時に処理される。
as による型変換は基本的に tellブロックの中でもスクリプト側で優先して処理されるので、
Finderが受け取る引数はファイルを示すオブジェクトになっていて正しく処理できる。

三番目のものは、一見ファイル参照表現のように見えるけど、変数の tmp1 になにが入るかは
実行時で無ければ分らないので、コンパイル時には処理できない。そして実行時に
get POSIX file "/tmp" が Finder に丸投げされて、でも Finder は POSIX file をうまく扱えず
エラーになる…はずが、なぜか exists の場合は false が帰ってきてしまう。
ちなみに System Events で同じことをするとちゃんと(?)「エラー -1728」になった。もちろん、
tellブロックの外でこの手の手順を記述するならスクリプト側で処理されるので、問題にはならない。

525名称未設定2015/05/10(日) 11:56:58.29ID:ihNZ0FRq0
前にもここに書いたんだけど、Finderもfile classを定義してるからキーワードの解釈が
衝突してるんですよ。my付けてglobalな定義を優先すれば良い。
tell application "Finder"
set tmp1 to "/tmp"
set tmp to my POSIX file tmp1
end tell
tell application "Finder"
set tmp1 to "/tmp"
exists my POSIX file tmp1
end tell

526名称未設定2015/06/27(土) 20:35:43.04ID:oLuCxE430
display dialog "このスレって、生きてるんですよね?"

527名称未設定2015/06/27(土) 20:54:57.43ID:XVP2cUyr0
もちろんさ

528名称未設定2015/06/27(土) 20:58:32.57ID:2HcvqLl20
結果:
{button returned:"OK"}

529名称未設定2015/06/27(土) 23:59:13.55ID:IO5TRzBI0
error number -128

530名称未設定2015/07/02(木) 00:53:17.64ID:JqmVzF680
YosemiteからAppleScriptの代わりに
JavaScriptも使えるようになったのね。
今頃気が付いた。

531名称未設定2015/07/02(木) 02:03:26.78ID:5ci7EMIH0
それでScript Editorになったのか。納得

532名称未設定2015/07/02(木) 02:04:23.51ID:3sKDtNad0
Swiftも足せばいいのに

533名称未設定2015/07/02(木) 14:04:43.02ID:P9q2kFwz0
xcodeぇ…

534名称未設定2015/07/03(金) 20:28:58.67ID:BY+AkDuD0
いろんなサイトを見ながら見様見まねで
finder上で選択したファイルを選択したフォルダにコピーするスクリプトに
トライしてみたのですが
「if D_fileExist = "false" then」の部分がスルーされて「else display dialog ~」が実行されてしまいます。
ご指導いただけるとうれしいです。
よろしくお願いします。

tell application "Finder"
set A_filePath to selection as alias list
if A_filePath = {} then
display dialog "ファイルが選択されていません"
return
end if
end tell

getFileName(A_filePath)

on getFileName(theFile)
set tmp to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set fileName to last text item of (theFile as string)
set AppleScript's text item delimiters to tmp
return fileName
end getFileName

535名称未設定2015/07/03(金) 21:30:06.17ID:xfqT0ASe0
質問文とコードが合ってないじゃないの

536名称未設定2015/07/03(金) 21:43:28.53ID:zhZri2f80
文とスクリプトが一致してない(し、文のスクリプトが間違ってもいる)が、そのままでも意図したようには動いているけど

俺だったら
set A_filePath to selection
if (count of A_filePath) is 0 then
って書くかなあ

537名称未設定2015/07/03(金) 21:57:53.21ID:xcqVHBQg0
>>534続きです。

set C_fileName to getFileName(A_filePath)
set B_folderPath to (choose folder)

tell application "Finder"
get exists of file C_fileName of B_folderPath
set D_fileExist to result
if D_fileExist = "false" then
duplicate selection to B_folderPath without replacing
else
display dialog "すでに " & C_fileName & " は存在します。上書きしますか?" with icon caution
set E_buttonResult to button returned of result
if E_buttonResult = "OK" then
duplicate selection to B_folderPath with replacing
end if
end if
end tell>

538名称未設定2015/07/03(金) 22:05:26.31ID:zhZri2f80
なるほどw
exists of
で得られるのは Boolean値 であって、文字列(の"false"/"true")じゃないよ
if not D_fileExist then
でとか

539名称未設定2015/07/03(金) 22:45:13.35ID:xcqVHBQg0
>>538
ありがとうございます!
とりあえず動くようになりました。
Boolean値って何だ? と検索するぐらいの初心者で
いろんなところからコピペして繋げてみた感じです。
なので試行錯誤している途中で
これだとフォルダのコピーが出来ないことに気付きました。

> 文とスクリプトが一致してない

これってどういうことでしょうか?
あと「このサイトをみて勉強しろ」みたいなサイトがあったら教えてください。
今は>>1にあった鳶嶋工房をみながら少しずつ勉強しているところです。
よろしくお願いします。

540名称未設定2015/07/03(金) 23:25:35.52ID:zhZri2f80
>>539
あそこで切れて終わっているように見えたので、前半の文(の中でのスクリプト)と後半のスクリプトが一致していないってこと

>>538 の「なるほどw」は、なんだ続きがあったのかということで、「文とスクリプトが一致してない」は解決している

541名称未設定2015/07/04(土) 07:51:34.34ID:YgtqpRu90
>>530
>JavaScriptも使えるようになったのね。
Yosemite上のWebブラウザー(Safari)から、命令が
拡張されているアップル版”JavaScript”を実行するこ
とは、できないのですよね? たとえば、Safariから
アップル版”JavaScript”を実行して、それがApplications
内のDVD Playerを起動させて、DVDのチャプター2を
再生させることなど。
 5年ほど前からこの方法でSafariからAppleScriptに引数
を渡してDVD Playerを再生してきてますが、JavaScriptで
直接実行できたらよいと思います。
Launch Scripts from Webpage Links
http://www.macosxautomation.com/applescript/linktrigger/

542名称未設定2015/07/04(土) 11:09:22.94ID:h2hbqIaM0
>>541
純粋に興味から聞くけど、どうしてそんな面倒なことやってるの

5435412015/07/04(土) 11:48:03.94ID:YgtqpRu90
英語の教員をしておりまして、生徒に教える
英単語や受け身や仮定法などの文法事項を
DVD英語字幕から検索して、その場面をDVD
で再生しています。英語字幕とDVD再生に必
要になるタイムコードは、sqlLite形式で:
/Users/ユーザー名/Library/Safari/Databases/
に入れて、これをSafari==>Javascriptで検索し
検索結果をSafariにLaunch Scripts from Webpage
Linksで実行できる形式で表示して、それをクリック
して、AppleScriptを実行しDVD Playerで再生します。
 この方法は、余計なソフトをインストールせずに
Safari(+Javascript)+AppleScript+DVD Playerだけで
実行できる点が気に入っています。

544名称未設定2015/07/04(土) 13:30:27.29ID:lLFsJcsp0
そのままAppleScriptの部分をJavaScript(JXA) に直すといいのかな

545名称未設定2015/07/04(土) 14:32:18.72ID:cJAeUdIb0
>>540
そうでしたか。ありがとうございました。

改良してフォルダのコピーも出来るようになり、
目的は達成したけど、もっと勉強しないとです。
でも楽しい。

546名称未設定2015/07/04(土) 22:56:39.87ID:louF/aWK0
最新の環境(iTunes 12.2.0.145/OS X 10.10.4)でiTunesが手前にならないんだけど俺だけかな

tell application id "com.apple.iTunes" to activate

547名称未設定2015/07/04(土) 22:58:46.73ID:gXTZwE1/0
手前にくるなー。iTunes 12.2.0.145/OS X 10.10.4 だけど

548名称未設定2015/07/04(土) 23:07:35.80ID:louF/aWK0
追加:

メインウインドウを開いてて、かつアプリが隠れてない時しか手前にならない。

しかも起動してない時に実行すると、手前にならず、かつ隠れて起動する。

549名称未設定2015/07/04(土) 23:09:33.60ID:jRTw82Rh0
>>543
プログラミングを職業にされてるわけでもないのにすごいですね。
私はJavaScriptからsqliteが操作できることも
JavaScriptからAppleScriptを実行できることも知りませんでしたよ。

Appleの開発者サイトを見ると
"The JavaScript OSA component implements JavaScript for Automation.
The component can be used from Script Editor, the global Script Menu,
in the Run JavaScript Automator Action, applets/droplets, the osascript command-line tool,
the NSUserScriptTask API, and everywhere else other OSA components, such as AppleScript, can be used."
と書いてあるので、SafariのJavaScriptから直接実行するのは無理そうですね。

550名称未設定2015/07/04(土) 23:29:23.28ID:gXTZwE1/0
>>548
・ウィンドウを何も表示してない
・アプリケーションを隠しておく
・起動してない
全部手前にくるなー

551名称未設定2015/07/04(土) 23:34:30.30ID:louF/aWK0
>>550
じゃあ俺だけかな…
ありがとう

552名称未設定2015/07/05(日) 04:59:33.52ID:fJrrslaF0
怪しげな常駐アプリ入れてないかそれ

553名称未設定2015/07/05(日) 05:28:51.16ID:uBZo4BRt0
んにゃ
option起動して、空っぽの新規ライブラリ作ったら起きなかったから、ライブラリが何か悪さしてる模様。
前バージョンでは起きてなかったし、ライブラリ作り直すのもめんどいからしばらく様子見てみるよ。

554名称未設定2015/07/06(月) 18:11:24.38ID:dTkqL4+G0
set this_file to choose file without invisibles
tell application "Image Events"
launch
set this_image to open this_file
crop this_image to dimensions {1000, 500}
save this_image
close this_image
end tell
これを複数ファイルの連続処理が可能なドロップレットにしたいのですが
On Open dorp_Items, end openを前後に入れたくてもうまく行きません。。
ヘルプお願いします!

555名称未設定2015/07/06(月) 18:46:40.33ID:F44xxfZx0
>>554
スクリプトだけのことなら

on open dropItems
repeat with this_file in dropItems
tell application "Image Events"
...
end tell
end repeat
end open


Finderでドロップ可能なのにするのは、Info.plistを弄らないとならないのかな??
ドロップできないので(普通のアプリケーションと同じように)Info.plistにDocument typesを追加したらできたのだけど

5565542015/07/06(月) 19:05:12.47ID:dTkqL4+G0
>>555
ありがとうございます。なんとかできました。

557名称未設定2015/07/06(月) 19:17:26.04ID:F44xxfZx0
>>555
>Finderでドロップ可能なのにするのは、Info.plistを弄らないとならないのかな??
ああ、たぶん、Dropletsテンプレートから作れってことだな。そゆことで納得しとこうw

558名称未設定2015/07/06(月) 22:13:36.02ID:BXYRI4R00
Image Eventsで縦横を指定した数値に強制リサイズする方法ありませんか?

559名称未設定2015/07/06(月) 23:09:08.57ID:UWCV8pnF0
なさそうだからsipsコマンド-zオプションで

5605582015/07/07(火) 15:53:07.90ID:pMuP/1h30
>>559
ありがとう!
せめて短辺の数値を設定する方法ないですかね?
scale x to size xxx←これを短辺に。

561名称未設定2015/07/07(火) 16:34:46.48ID:eCnPxyr00
画像リサイズ osxでggrks
ttp://www5.wind.ne.jp/miko/mac_soft/th-maker_x/

5625582015/07/07(火) 18:07:22.26ID:pMuP/1h30
>>561
え?
そりゃフォトショでもなんでもできるがapplescriptで可能な記述はないかって話し。
同時にアイコン付けたり名前変えたりと他の作業も同時に行うスクリプトを書きたくて。

563名称未設定2015/07/07(火) 19:00:32.98ID:YzbvPtAK0
>>562
do shell script経由でimagemagickでできると思うが

564名称未設定2015/07/07(火) 22:16:01.83ID:amkJBVQ60
このスレの上の方に画像リサイズのスクリプトを書き込んだ人がいたよ。

565名称未設定2015/07/11(土) 13:33:24.18ID:uukKRe+y0
iTunesスレに行こうかとも思いましたがAppleScriptに限って発生するようなので、
まずはスクリプトの確認と再現性ということでこちらでお願いします。

AppleScriptを利用して動画データに情報を入力しているのですが、
編集できない(編集しても元に戻ってしまう)ファイルになってしまいます。
環境としてかなり限定的なのですが、今回利用したiTunes 12.2だけではなく、
以前のバージョンから引き続いて発生しています。

前提として、登録するファイルは「動画」である事と、
iTunes Mediaフォルダの場所やライブラリへ追加する際のコピーの実行の有無は問わないものの、
追加の結果、ファイルがローカルHDDではなくNAS上にあることが条件です。
(うちの場合、iTunes MediaフォルダはローカルHDDの場所を指定、追加するファイルはNAS上に設置、
環境設定にある追加時のコピーは行わない設定になっています。)

今回サンプルファイルとして以下のsample_iPod.m4vを利用しました。
https://support.apple.com/ja-jp/HT201549

566名称未設定2015/07/11(土) 13:34:16.15ID:uukKRe+y0
使用したAppleScriptは下記です。

tell application "iTunes"
add POSIX file "/Users/user/Desktop/sample_iPod.m4v"
set grouping of track "sample_iPod" to "TEST"
set year of track "sample_iPod" to "2015"
set category of track "sample_iPod" to "TEST"
set genre of track "sample_iPod" to "TEST"
set comment of track "sample_iPod" to "TEST"
set description of track "sample_iPod" to "TEST"
set long description of track "sample_iPod" to "TEST"
set name of track "sample_iPod" to "TEST"
end tell

567名称未設定2015/07/11(土) 13:36:24.56ID:uukKRe+y0
実行後、ホームビデオに追加されたsample_iPodを情報を見るから各項目を適当に編集して確定します。
その後一度このファイルを再生する、あるいは再度情報を見ると、各情報が編集前の状態(今回の場合はTEST)に戻ってしまいます。
ただ、必ずしもすべての項目で症状が発生するわけではなく、例えば説明(Description)に関しては発生しません。
編集できない情報に関しては何度やっても編集できませんが、再度AppleScriptを利用して情報を入力すれば編集できます。
AppleScriptを使用していない情報欄は編集できます。

なお、手動でiTunesに追加した場合は発生しません。
前提記載の通り、ファイルがローカルHDDにある場合も発生しません。
ミュージックファイルでも発生しないようです。

一応2種類のNAS(Drobo5NとAirMacExtremeにUSB接続したHDD)と2種類のMacで同様の症状を確認しました。
何かお気付きの点がありましたらよろしくお願いします。

568名称未設定2015/07/11(土) 14:21:39.53ID:uukKRe+y0
少し訂正です。
手動でiTunesに登録した場合でも、AppleScriptで情報入力を行うと編集できませんでした。
どうやら、NAS上にあるiTunesの動画ファイルの情報をAppleScriptを利用して書き換えると、
当該情報を手動で書き換えられないファイルになってしまう状態と言えそうです。

569名称未設定2015/07/11(土) 14:46:07.93ID:z2dqc7dE0
>>566
NASがないんで検証はできないが、文面見てパッと思いつく点
その書き方だと曖昧さがあるのでこうするのがよいと思う
...
set tarTrack to add POSIX file "hoge"
set name of track tarTrack to "hage"
...
問題の原因がこれかはわからんが
あと、症状が発生しないitunesのバージョンがわかれば何かヒントになるかも

570名称未設定2015/07/11(土) 16:18:59.81ID:uukKRe+y0
>>569
2行目でディスクリプタタイプが一致しません。number -10001 to item
と叱られたので、
set name of tarTrack to "hage"
にしてみました。が、結果は変わりません。修正不可ファイルです。

症状が発生しないバージョンは残念ながら不明です。
最近iTunesの見た目が大きく変わったのはiTunes11だったと思いますが、
iTunesのバグじゃないかなと期待しつつかかるバージョンに上げた記憶があるので、
そうすると少なくともiTunes10の頃からあった症状ということになります。
NASの導入がその頃なので、実際にはもっと以前のバージョンでも発生したのかもしれません。

571名称未設定2015/07/11(土) 16:56:15.76ID:z2dqc7dE0
>>570
ああごめん、二行目はこっちのミス
「何度やってもできない」は、一度発生した後システム再起動しても不可?

572名称未設定2015/07/11(土) 19:02:49.32ID:uukKRe+y0
>>571
iTunesの再起動、本体の再起動共に効果なしです。
NASも再起動してみましたが、ダメですね。

573名称未設定2015/07/14(火) 02:28:27.39ID:A6Vp2DDe0
>>567
ストレージ違うだけで挙動が変わるのなら追加が終わるまでの時間が違うのかも。
2行目の直後にdelay 1挟んでみたらどうだろう。

574名称未設定2015/07/14(火) 08:26:20.02ID:k1XDpkSZ0
NASでそういうことするの厳しくね?
昔、NAS上のファイル名変更ですらうまくいかなかった記憶がある。
結局、aliasにして乗り切ったけれど、ものすごく時間がかかり、
do shell script とかいろいろ使ったような。
iTunesつかったことないけど、Finderでaliasにして
iTunesで操作とかできないのかね?
まったく理論的裏付けなく、経験的なことだけど。
純正アプリだしなんとかなりそう。

575名称未設定2015/07/14(火) 08:33:02.14ID:k1XDpkSZ0
>>568
ちょっと今どきのことはわかんないけど、afp://とかでNASと
つながってるんじゃない? cifs://とかだといいかも。
最近はすべてcifsとかだっけ?3年くらい前しかいじってないので
最近は知らない。cifsとafp混在でやっててもトラブる。

576名称未設定2015/07/14(火) 16:10:40.88ID:VhXIrKmA0
Cocoa-AppleScript Applet じゃなくても Cocoaフレームワーク 使えるよにできるのね
Safariの Favorities Bar 中の特定のフォルダ中のURLをBookmarks.plistより抽出するのを書いてみたのだが、速度が段違いすぎ&tryいらないから簡潔に見えるんだけど
まあ、AppleScriptは詳しくはわかっていない(whoseの使い方がいまいちわからん)のでAppleScriptの方が冗長なのかもしれないが

577名称未設定2015/07/14(火) 16:20:05.42ID:VhXIrKmA0
純粋(?)AppleScriptバージョン
https://gist.github.com/anonymous/220a244c5d80042f648b

Cocoa-AppleScriptバージョン
https://gist.github.com/anonymous/b9a8795897171ceaaf2c

"Folder Item" が Favorities Bar 上でのアイテム名ね

578名称未設定2015/07/14(火) 17:14:05.00ID:VhXIrKmA0
>速度が段違い
ああ、System Eventsとのアプリケーション間通信でのオーバーヘッドがそのほとんどになりそうだわな
そりゃまあ遅くなるわな&どうしようもないわな&Cocoa-AppleScript万歳w

579名称未設定2015/07/14(火) 21:56:12.64ID:1ruXVyZ/0
>>573
それはちょっと考えてdelay挟んでみたもののやはり変わらずでした。
手動で追加だけしてそのあとに編集だけ行うAppleScriptを実行した場合も
同様におかしくなったので、原因はそこではなさそうです。

580名称未設定2015/07/14(火) 21:56:44.20ID:1ruXVyZ/0
>>575
マウント方法変えてみたけどダメですね。
というか、NASに置いても普通に手動で完結する分には全く問題ないから、
「NASだから」というわけでもなさそうです。
手動で追加、編集する分には問題なし。そのあとそのファイルをAppleScriptで編集すると、
その状態で固定みたいになって、以後同様にAppleScriptを使わないと編集できなくなる。
おま環なんですかね。そうであれば、それはそれで諦めるんですが。。。

581名称未設定2015/07/15(水) 04:34:10.51ID:hEGmCORz0
>>580
条件を満たしたとき「情報が戻る」というのは、itunesの操作と
スクリプト(ex. get name of tarTrack)どちらで確認している?
どちらかの手段のみで確認しても同じ?

582名称未設定2015/07/16(木) 00:32:52.64ID:qTdi8WaK0
xlsファイルをcsvで書き出すドロップレットを作りたく色々と調べた結果、
シェルスクリプトでxls2csvというアプリを使えば行けそうだったんですが
文字化けしてしまいます。

ターミナルからだと問題無いんですが、アップルスクリプトで実行すると
結果もファイルの書き出しも化けてしまう状態です。

解決する方法はあるでしょうか?

因みにxlsの文字コードはUTF-8です。

583名称未設定2015/07/16(木) 02:27:49.86ID:+fhnsm1u0
>>582
AppleScriptでも do shell script してるんじゃないの?
だったら、シェルの環境設定がかなあ。ドロップレットにしたいだけだったら、Automator(での shell script アクション)でいいんじゃないの?ああ、同じように化けるかな?

584名称未設定2015/07/16(木) 03:24:14.69ID:PVq/K62H0
csvのコードはなんだろう。UTF16か昔風のShiftJIS?
こういうので変換するかな
iconv -f SHIFT_JIS -t UTF-8 out.csv > utf8.csv
iconv -f UTF-16 -t UTF-8 out.csv > utf8.csv

585名称未設定2015/07/16(木) 04:58:23.98ID:I+N1yIOO0
>>583
はい。AppleScriptでdo shell script "xls2csv input.xls"を実行すると
化けてしまいます。
シェルの環境設定はUTF-8です。

Automatorは試して無いのでやってみようと思います。

>>584
do shell scriptで書き出したcsvのコードは何故かASCIIになってました。
2バイト文字が全て?になってる状態です。

いま手元に環境がないので、明日iconvも試してみようと思います。

お二方ともありがとうございます。

586名称未設定2015/07/16(木) 08:31:37.42ID:o5zH5spX0
>>582
身も蓋もないこと書くと、do shell scriptではなく、
ApplescriptからTerminal.appを操作すれば解決しそう。
急ぎの仕事のやっつけスクリプトならね。

587名称未設定2015/07/16(木) 13:37:36.16ID:tdcKlDmT0
>>472と同じ話で、do shell script 内で LANG=ja_JP.UTF-8 を設定してやればいける気がするよ

do shell script "LANG=ja_JP.UTF-8 xls2csv input.xls"
もしダメなら
do shell script "export LANG=ja_JP.UTF-8; xls2csv input.xls"

588名称未設定2015/07/16(木) 16:02:09.78ID:iM/9yX710
>>587
いけました!
なるほど、LANG=ja_JP.UTF8と指定してやればいいんですね。
これでまたひとつ賢くなりました!
ありがとうございます。

>>586さんもありがとうございました。

589名称未設定2015/07/25(土) 09:01:30.20ID:robl8P910
Audio Hijack Proで深夜のラジオのストリーミングを
タイマーで録音したあと、自動でシステム終了させたいです。
デフォルトのQuit Audio Hijack Pro.scptの最後に、
tell application "System Events"以下を追加したのですが
終了してくれません
まちがっているところをおしえてください
おねがいします

on sessionsAreActive()
tell application "Audio Hijack Pro"
repeat with aSession in (every session)
if recording of aSession then
return true
end if
end repeat
end tell
return false
end sessionsAreActive

tell application "Audio Hijack Pro"

repeat while my sessionsAreActive()
delay 2
end repeat

delay 2 --Just to be really safe, wait one more time
quit
end tell

tell application "System Events"
shut down
end tell

590名称未設定2015/07/26(日) 04:28:28.86ID:26OH90hA0
>>589
System Eventsって、OSが10.9くらいになると、
初めて使う時にセキュリティ設定で許可しないとダメ、とか
面倒なことになってたような…

そのへんで引っかかってはいない?

tell application "System Events"
shut down
end tell

ここだけでちゃんとシステム終了するなら原因は他のところ、
って切り分けができるので、まだやってないなら試してみるといいかも

それが関係なければ、
tell application "System Events" の前にdelay 2(数字は秒数)とか入れてみると
もしかしたらうまくいくかも…

Audio Hijackの終了処理とshut downに入る処理がぶつかっちゃって
うまく動かない、なんてことも考えられるので

ちなみに自分も、iCalのタイマーでApplescriptを起動して
特定の曜日の特定の時間にシステムスリープをする、
ってことをやってるけど、三回に一回くらいは
スリープせずにそのままだったりする…

うまくいったりいかなかったりがあるのは
非常に謎です

591名称未設定2015/07/26(日) 05:18:05.29ID:emOATh9D0
Audio Hijack Proをquitしてるから、残りのスクリプトを実行する人がいないんじゃないの

592名称未設定2015/07/26(日) 09:14:17.29ID:oPO6Ie/V0
>>590,591

tell application "System Events"
shut down
end tell
だけでよかったみたいですね
どうもありがとうございます

593名称未設定2015/08/15(土) 16:45:38.34ID:sV9ccIal0
>>589

tell application "System Events" to shut down
だけでは現在使用中の(開いてる)書類がある場合、
確認のダイアログが表示されてシステムが終了できないので

わたしのトコロでは〜♪
do shell script "sudo shutdown -h now" password "ABC" with administrator privileges

※システムのスリープ中(スリープ解除にはパスワードを要求する設定)時には、
処理がキャンセルされてしまうようです。。?詳しく調べていませんが〜
参考になれば〜

594名称未設定2015/09/11(金) 19:43:23.46ID:g5Ecp+1z0
>>227
亀レスだけどありがとう
delay挟まないと上手に機能しないんだね。そこで詰まってたんだd

595名称未設定2015/09/12(土) 20:05:41.29ID:m6VMDvfd0
tell application "Terminal" to do script "echo '123,あいう' | grep ,.い"

do shell script "echo '123,あいう' | grep ,.い"

--同じシェルスクリプトなのに、後者はエラーになる。なんでだろう・・・?

596名称未設定2015/09/12(土) 20:42:11.53ID:z0PX6hR20
>>595
・grep はパターンにマッチしたのが存在したか否かを終了ステータスでも表す
・do shell script は 0以外 の終了ステータスだとスクリプトそのものが失敗したとみなす
・do shell script と tell application "Terminal" では環境変数などが違うのだろうが、grep での , と い(日本語) が混じるパターンが一致しない。なんかあったけ?
なので、grepでパターンに一致するのがないので終了ステータスが 1 となり、do shell script はスクリプトが失敗したよと例外発生

パターンに一致しなくても例外発生させないようには、
do shell script "echo '123,あいう' | grep ',.い' || exit 0"
do shell script "echo '123,あいう' | grep ',.い';exit 0"
かな

, と い(日本語) が混じるパターンでの問題はよくわからんが
do shell script "echo '123,あいう' | grep ',.[い]';exit 0"
だといちおう思ったように動いているような

597名称未設定2015/09/12(土) 21:07:53.46ID:z0PX6hR20
>>596,595
>, と い(日本語) が混じるパターンでの問題はよくわからんが
>do shell script "echo '123,あいう' | grep ',.[い]';exit 0"
>だといちおう思ったように動いているような
いや、動いていない。[い]が絶賛無視されとる

環境変数といえば上のにあると思い見直し&調べ&テストすると、grepのパタンーマッチングではLC_CTYPEのよやね
do shell script "export LC_CTYPE=UTF-8;echo '123,あいう' | grep ',.い';exit 0"
でいいんじゃないのかな

598名称未設定2015/09/12(土) 21:47:12.87ID:m6VMDvfd0
>>597
なるほど環境変数が原因だったんですね
詳しく説明してくださってありがとうございます!

599名称未設定2015/10/02(金) 12:13:09.84ID:NO+o9yLb0
http://www.apple.com/jp/osx/all-features/
AppleScript Objective-C
dates、structs、recordsを使うためのAppleScriptObj-Cを新しくサポートします。

今更Objective-Cかいな。

600名称未設定2015/10/02(金) 12:58:15.03ID:UHfcxpmo0
OSのフレームワークが Objective-C だからな
AppleScript -> なんだかしらんがなにか(Swift?) -> Objective-C
よりも、
AppleScript -> Objective-C
だろうに

てか、「今更Objective-C」が明後日向いてね?
Objective-Cをサポートしていたが、新たに(ちゃんと) dates、structs、recordsをサポートします ってことじゃね?

601名称未設定2015/10/02(金) 13:06:10.03ID:UHfcxpmo0
https://developer.apple.com/library/prerelease/mac/releasenotes/AppleScript/RN-AppleScript/RN-10_11/RN-10_11.html

なんだそのまんまやん。struct/records は限定されていたのか。アレ以外使ったこと無いから知らんかったw

602名称未設定2015/10/03(土) 10:56:11.97ID:YP/PCEMt0
OS X 10.10 Release NotesのScripting Additions
の解説にsayを使用した例:
app = Application.currentApplication()
app.includeStandardAdditions = true
app.say('Hello world')
app.displayDialog('Please enter your email address', {
withTitle: 'Email',
defaultAnswer: 'your_email@site.com'
})
があります。emailの入力部分を音声認識Dictationを
使用するjavascriptも可能なのでしょうか? 実際に作成
したいスクリプトは、英語授業で、英語の質問をsayで
聞かせて、生徒にその解答を英語で発音させて、正しく
認識できれば正解、とする英会話練習ソフトウェアです。

603名称未設定2015/10/03(土) 12:12:42.47ID:6N6av+ju0
>>602
どこまで生徒にやらせないによるだろうな。キーボードによる不正(?)とか
Cocoaにアクセスできればより先が開けるだろうね

604名称未設定2015/10/03(土) 22:32:34.51ID:dkBh6mTx0
>>602
JavaScript OSA から使える音声認識API はあるかってことだね。

まずはAppleScriptでSpeechRecognitionServerっていうのを通してOS Xの音声認識機能を使える。あらかじめ登録した単語や文章しか認識できない。
認識するなあ、ってところまでしか試してないので、想定してるようなアプリを作るような使い方ができるかどうかまではわからない。あとJavaScript OSA から使えるかどうかは調べてないのでわからない。

次にJavaScriptからはHTML 5のWeb Speech APIっていうのを使える。こちらは登録してない文章でもちゃんと認識する。"My name is Mike Smith." と発話したら「my name is mike スネーク」と認識したw
こちらもJavaScript OSA から使えるかどうかは調べてないのでわからないけど、たぶん使えない。
でもテキスト読み上げもできるので、こちらを使ってWebアプリケーションとして実装しちゃうのが楽かも。あとこのAPIに対応しているブラウザのバージョンが限られているので、学校とかで使うんならそこは要確認かも。

605名称未設定2015/10/03(土) 22:48:47.94ID:dkBh6mTx0
ところで目的は発問と解答のサイクルを対話型で行うことだろうか、それとも音声認識できるような正確な発音を対話形式で生徒に練習させることだろうか。
音声認識ってけっこう正確な発音をしないと認識しないと思うので、前者目的の場合、解答は正解でも発音のせいで正解と認識してくれないとか、あるいは間違った解答なのに音声認識させようとして一生懸命何回も発声するようなシチュエーションがありそうに思うが。

606名称未設定2015/10/03(土) 23:40:16.83ID:aEqyyNFD0
SpeechRecognitionでの認識/目的はコマンドとしてみたい。なので事前に登録した単語=コマンドのよう
音声入力は DictationIM というインプットメソッドによる。音声認識の根幹は同じかもしれないが

CocoaでもDictation制御は公開されていないので制御は難しい。ユーザによるオン/オフをシミュレートしてかな

また、AppleScript/Javascriptのダイアログのテキストフィールドはなぜか DictationIM をサポートしてないよう
JavascriptでもどうやらCocoaブリッジはサポートしているので頑張ればできないこともないってとこかな

6076022015/10/04(日) 08:46:57.00ID:YSK4WGoB0
詳しい解説をありがとうございます。>>603,604,605,606
>>604
>次にJavaScriptからはHTML 5のWeb Speech APIっていうのを使える。
これを試してみます。Appleのsayは、3、4年間使用してき
ました。事前に使用する英文のアメリカ英語、イギリス英語
オーストラリア英語の音声ファイルを作成して、生徒に聞か
せて解答させる練習をさせてきました。sayのおかげで、リ
スニングの機会が劇的に増えましたが、これだけだと授業中
まったく英語を発音しません。

>解答は正解でも発音のせいで正解と認識してくれないとか、
解答は減点なしで2、3回できるようにしたり、音声ではなく
文字での解答も認める(ただし得点は1/3)などと工夫すれ
ば、どうにかなると思います。

>あるいは間違った解答なのに音声認識させようとして一生
英文を画面に表示して、それを正しく発音して、認識させれば
正解という設問も作ります。

608名称未設定2015/10/19(月) 12:01:32.52ID:UpKLRgHK0
10.11のスクリプトエディタ、ファイルメニューの最近使った項目を開くで、白紙アイコン+名前が空欄になってるのがある
その項目を選んだら前に開いた用語説明のタイトルだけ出た

609名称未設定2015/10/30(金) 18:18:30.65ID:VxrJMSCk0
スクリプトエディタで下記を実行してもデスクトップが切り替わりません。
手動で「コントロール + 1」 をおすとデスクトップは切り替わります。
なにか重要な事を見落としていると思うのですがよくわかりません。

tell application "System Events"
keystroke "1" using {control down}
key up {control}
end tell

610名称未設定2015/10/30(金) 18:31:57.79ID:oQD0Exuq0
俺はこれで出来てる


tell application "System Events"
key code 18 using control down
end tell

611名称未設定2015/10/30(金) 18:32:50.47ID:QhZ+2JiC0
>>272を書いた気がする
動いたよ

612名称未設定2015/10/30(金) 18:33:44.01ID:QhZ+2JiC0
>>227だったはw

613名称未設定2015/10/30(金) 20:56:24.45ID:VxrJMSCk0
>>610 ありがとう。
理屈はよくわからないけど、レスのコードそのまんまでできました。

614名称未設定2015/11/04(水) 02:10:30.60ID:pGq+pGFR0
複数のデスクトップにグーグルクロームの window があります。
デスクトップとは、マックブックドヤで四本指上スワイプしたときに表示されるやつです。

デスクトップ1のクロームを識別して、アクティブにするにはどうすればいいのでしょうか?
ここに検索結果を表示するためです。

615名称未設定2015/11/09(月) 23:53:26.28ID:u+bgZBDI0
最前面のアプリにキーストロークを送りたいのですが、なぜかうまく行きません。

tell application process と直接アプリ名をつかう場合(下記のクロームのような形式)の区別もよくわかりません
tell application "Google Chrome"使い分けがおかしいのでしょうか?

-- ↓がうまくいかない。
-- 最前面のアプリにキーストロークを送る
set topProcess to item 1 of (every process whose background only is false and frontmost is true)
tell application process topProcess
keystroke "c" using {command down}
end tell

616名称未設定2015/11/10(火) 00:49:23.10ID:8POt4B1s0
>>615
スクリプト実行してる時点でスクリプトエディタか
そのスクリプトのアプリケーションが最前面に来るから
キーストローク使うにはactivateで目的のアプリケーションを最前面に持ってこないと。
UI elements(ボタンやメニューなど)にアクセスしないならprocessは不要。

tell application "Google Chrome" to activate
tell application "System Events"
keystroke "c" using {command down}
end tell

こっちなら背面にあってもコピれる。
tell application "Google Chrome"
copy selection of tab 1 of window 1
end tell

617名称未設定2015/11/10(火) 03:12:25.57ID:FJLTXxkF0
>>616 有益なレスありがとうございます。

(*

tell application "Google Chrome" to activate
tell application "System Events"
keystroke "c" using {command down}
end tell
*)

↑これを試すとうまくいき、クロームの選択範囲がコピーできました。

でも、スクリプトエディタの用語辞書を読むと、 System Events にキーストロークが送られて、クロームの選択範囲をコピーでいないような気がするのですが違うのでしょうか。

用語辞書
keystroke v : cause the target process to behave as if keystrokes were entered

618名称未設定2015/11/10(火) 04:19:50.06ID:/h7Zu6C90
物理的にVキーを押すのが
System Events にVを送ると言う事だろ

619名称未設定2015/11/10(火) 07:57:36.97ID:8POt4B1s0
あと、Applescript対応アプリケーションで同じ機能があるなら
そっちを使う事をオススメする。
System Events経由だと実行中に何か操作しちゃうと思いも寄らぬ挙動をするので。
コマンド+xとか入ってて、そのキーストローク実行前に
他のアプリケーションに切り替わっちゃったりしたら大変でしょ。

620名称未設定2015/11/10(火) 11:53:02.16ID:LHRISVKD0
>>617
基本的にユーザが手でキーを押すのとまったく同じ挙動
何が反応するかは状況次第

621名称未設定2015/11/14(土) 22:05:07.19ID:2cEuQzhU0
>>613
今更だけど

keystroke "1" はテンキーの"1"を指すんじゃなかったかな
あと key up control は key down control の後で使うもんであって、
keystroke 文字 (key code コード) using control down は一行で完結してるので念

622名称未設定2015/11/14(土) 22:08:22.89ID:0scHotXW0
仏の鉄

623名称未設定2015/11/14(土) 22:11:41.36ID:3tNdYBQ/0
chill

624名称未設定2015/11/16(月) 21:22:55.55ID:SAOPgBo80
OS9くらいからAppleScript触ってるけど素人です。
JavaScriptはさっぱりなんですが、乗り換えた方がいいんでしょうか?

625名称未設定2015/11/16(月) 21:29:21.10ID:t0VrsL6R0
それだけ長年触ってて理解できないようじゃJSなんてもっと無理だろ……

626名称未設定2015/11/16(月) 21:45:29.24ID:EmiWRZhr0
他に馴染んでる言語があるとか文字列を操作することが多いとかなら
JavaScriptの方がずっと楽だと思うよ

627名称未設定2015/11/16(月) 21:54:09.48ID:EmiWRZhr0
ああでもアップルのことだからいつまで続けるかわかんないよねw

628名称未設定2015/11/17(火) 06:26:10.94ID:1ouHt1MU0
JavaScriptはオブジェクト指向の考え方が
ある程度わからないと理解しにくい部分はありそう

AppleScriptから完全に乗り換えるんじゃなくて、
「AppleScriptだとdo shell scriptしないとできないけれど、
JavaScriptを使うとその場で解決できる処理」
が出てきた時にJavaScriptを使えばいい気がする

正規表現での文字列の検索置換とか、そういうのは
JavaScript内で出来るはずなんで、
そのへんから始めてみては?

629名称未設定2015/11/17(火) 09:09:23.09ID:Q6GYLDn20
色々組み合わせて考えるならJSよりもshell+ASの方が幅広く使えていいと思う。

630名称未設定2015/11/17(火) 13:21:15.50ID:UQB4hOGg0
JXAはあまりつかわれてないのかな

631名称未設定2015/11/17(火) 22:41:34.65ID:GvDIX6qt0
正規表現とハッシュ以外のメリットがあまりないんだよなぁ。
ダイアログ出すだけでもメンドクサイ。

632名称未設定2015/11/17(火) 22:48:48.92ID:b3qNeLRG0
AppleScriptでプログラミングする人は
html+JavaScriptでもプログラミングを
しないの? 私の場合は、ASは3%以下
JavaScriptが40%、Python40%、残りは
その他のプログラムという感じ。
 JavaScriptでfunctionを書いておけば
JXAでもhtmlでも使えるので、便利だと
思うが。

633名称未設定2015/11/17(火) 23:36:57.30ID:443NzYjK0
html+JavaScriptでもプログラミングをするのがあたりまえのように聞くのだか。アホっぽいなw

634名称未設定2015/11/20(金) 21:02:06.71ID:0VjuA+NT0
delay をどこにどれだけ入れればいいかなにか目安はないのでしょうか?

順番に処理されるから、delay いらない気がするのですが、下記のような
単純な script でも delay をいれないとうまく動きませんでした。
delay がないと myURL に設定したウェブページじゃなくて、へんなリダイレクトページが表示されました。

-- クロームでウェブページを表示
tell application

635名称未設定2015/11/20(金) 21:03:43.90ID:0VjuA+NT0
delay をどこにどれだけ入れればいいかなにか目安はないのでしょうか?

順番に処理されるから、delay いらない気がするのですが、下記のような
単純な script でも delay をいれないとうまく動きませんでした。
delay がないと myURL に設定したウェブページじゃなくて、へんなリダイレクトページが表示されました。

-- クロームでウェブページを表示
tell application "Google Chrome"
tell window kuroWinIndex to activate

-- delay 0.5
set myTab to make new tab at end of tabs of window kuroWinIndex
set kensakuGoku to _searchWord as text

-- delay 0.5
set myURL to "https://www.google.co.jp/search?q=" & kensakuGoku
log "myURL : " & myURL

delay 0.4
set URL of myTab to myURL
end tell

636名称未設定2015/11/20(金) 21:17:32.71ID:IkinpZgs0
>>635
その最後のdelayがなくてもkensakuGoku/searchWordでのGoogle検索結果になるけど
へんなリダイレクトページってURLなんやねん?なんかアンチウイルスソフトでも入れているとか?

637名称未設定2015/11/20(金) 21:21:50.09ID:IkinpZgs0
もしくはなんらかのプラグインかなあ
プラグインが原因だとしたらdelayはそこじゃなくmake new tabの直後に入れても効くだろう
make new tabをしないでやってみてどうとか見るとよりプラグインが原因かなあがはっきりするかな

638名称未設定2015/11/20(金) 21:32:23.10ID:0VjuA+NT0
delay いれないと下記の URL に飛ばされるけど、拡張機能の悪影響みたいですね。
chrome-extension://pkolifcipfnlmkonikcnilfhgdbbhhko/redirect.html

639名称未設定2015/11/20(金) 22:05:27.27ID:IkinpZgs0
なる。そみたいだね
そのキモい文字列はなんやねんってググってみたら、機能拡張に付けられたユニークなIDかな。Tab Nullpo+ ならば

640名称未設定2015/11/22(日) 02:57:49.95ID:Crb3hzhD0
おらのアップルスクリプトにショートカットを割り当てるのが面倒くさすぎる件

1. スクリプトエディタでスクリプト作成
myscript.scpt

2. オートメターのサービス作成
アップルスクリプトを実行を選択し、1. の内容をコピペ

3. 設定 → キーボード。2. で作成したサービスにショートカットキーを割り当て。
修飾キー3つぐらいつけた複雑なやつを割り当て。

4. karabina で、右コマンドに 3. で作成したショートカット割り当て

----- -----

上記手順で作成したアップルスクリプトにショートカットを割り当てているのですが、もうちょっと効率的にできないのでしょうか?

上記手順だと、スクリプトエディタでスクリプトを修正したら、またオートメター立ち上げて、コピペが必要となり効率悪いことこの上ない。

641名称未設定2015/11/22(日) 03:22:36.50ID:CSZfjbIO0
>>640
Sparkとかのランチャー系アプリ使えば2以降はキー設定のみで済む
というか、そもそもKarabinerにそういう機能あるだろ
(おれは使ってないが。従前からSpark使ってるので移行がめんどいから……)
Karabinerで多機能ランチャーを実現する - Qiita
ttp://qiita.com/catfist/items/ab43d06b6914418afb85

最近できたKarabinerスレは有益な書き込みが多いのでオススメ
【キーリマップ】Karabiner Part1【カスタマイズ】 [転載禁止]©2ch.net
ttp://anago.2ch.net/test/read.cgi/mac/1439014871/

642名称未設定2015/11/22(日) 03:23:43.00ID:S/HFRQF00
BTT

643名称未設定2015/11/22(日) 04:22:29.35ID:CSZfjbIO0
ああ、BTTももちろんありだね
ランチャー系でメジャーどころといえばほかにもLaunchBar、Alfredなど
参考までに自分はKarabiner、BTT、Spark、LaunchBarを併用しているよ
Sparkはもうやめたいんだけど移行がめんどい(大事なことなので(ry

644名称未設定2015/11/22(日) 11:19:29.93ID:wjYxrbbL0
>上記手順で作成したアップルスクリプトにショートカットを割り当てているのですが、もうちょっと効率的にできないのでしょうか?

↑を自動化しちゃえばいいんじゃねえ、なんつって

FastScripts
Instant access to your scripts, by keyboard shortcut or menubar.
Free for 10 keyboard shortcuts. $9.95 for unlimited.

10.6以降対応、10.10の話はリリースノートに載ってる
10.11はわからん

645名称未設定2015/11/22(日) 19:11:06.31ID:nrMXMOab0
>>641
レスありがとう。

karabiner からAppleScript実行できたのか。
知らなかった。
これができれば、>>640 の手続きを大分省略できる。

646名称未設定2015/11/24(火) 22:10:39.87ID:lOO4yht00
コマンドの 引数に何を指定したらいいかどこを見たら良いのでしょうか?
用語説明見てもちゃんと書いてないのが多く困ってます。

例えば、duplicate コマンドの引数に何を指定するかエイリアス? posixパス? それとも hfs 形式?
移動先はフルパスを指定するのか、移動先フォルダを指定するのかとかも書いてなくて、簡単そうなとこで詰まりまくりです

647名称未設定2015/11/24(火) 22:55:00.77ID:vOhllC2P0
>>646
>duplicate v : Duplicate one or more object(s)
>duplicate specifier : the object(s) to duplicate
>[to location specifier] : the new location for the object(s)

>移動先フォルダを指定するのか
これは書いてあるじゃん
まあ指定しなかったらどうなるかは書いてないけど
常識の範疇というかちょっと試せばわかること

>何を指定するか
この場合もそうだが、たいてい必要な specifier は alias や file だわな
path 自体はただのテキストにすぎないので、コマンドは場所として認識しない
君の書いてるPOSIX pathやなんかも最終的には変換して渡すわけだね
>set tarFolderPath to "/hoge/hage" --これはただのテキスト
>set tarFolder to POSIX file tarFolderPath --これでファイルを参照できる
>get POSIX path of tarFolder --これで tarFolderPath と同じものが返る

逆に言えば、コマンドに渡すまではどの形で管理しようと自由
テキストであることを生かしてホイホイ変形できる
自分なんかは POSIX path がわかりやすいし何かと便利なのでそれで統一してる
慣れるまでは全部下記のようにして渡すと謎の行き詰まりも減るかと
(面倒なことに、file や folder と alias の違いが問題になることがある)
>set tarFolder to tarFolder as alias --つまり (POSIX file "/hoge/hage") as alias

648名称未設定2015/11/24(火) 23:02:46.20ID:vOhllC2P0
よく見たら質問の答えになってないな。すまん
>どこを見たら
確かに用語辞書だけ見てもちんぷんかんぷんだと思う
暗黙の前提がけっこうあるからね
その辺は>>1にあるサイトを眺めてつかんでいくしかないよ

649名称未設定2015/11/25(水) 01:16:34.40ID:7NRDBOtT0
>>647 役に立つレスありがとうございます

下記のコードで srcFile の指定を tell ブロックの中でやるとエラーになるのはなぜでしょうか?

今日一日の数時間の作業の成果。作業効率化のはずが非効率化してる。
デスクトップにファイルコピーするだけで数時間かかった。

-- このファイルをデスクトップにコピー
property bkItemFullpathText : "/Users/Tomo/Desktop/kopitesuto.scpt"

set srcFile to (POSIX file bkItemFullpathText)
set destDir to (path to desktop folder)

tell application "Finder"
log "----- 3 finder で 処理開始-----"
-- これがだめ — 上書きしない設定に変更できずこまった
-- duplicate srcFile to destDir with replacing false

-- 下記2つは動く
-- duplicate srcFile to destDir without replacing
duplicate srcFile to destDir with replacing
end tell

650名称未設定2015/11/25(水) 02:34:16.75ID:TCaMN6bP0
shellのほうが楽そうだな

651名称未設定2015/11/25(水) 11:14:05.31ID:gljbLSkV0
>>649
set srcFile to bkItemFullpathText as POSIX fileにすればtell〜内で動く。

それより、AでできるのにBの記述にできなくて何が問題?
A : duplicate srcFile to destDir without replacing
B : duplicate srcFile to destDir with replacing false

652名称未設定2015/11/25(水) 12:08:05.39ID:DGBNKIrw0
>>649>>651
ちゃんと用語辞書読めばそんな書き方はないとわかる
> [replacing boolean] : Specifies whether or not to replace items (ry
B はよけいな with がいかん
> duplicate srcFile to destDir replacing false
こう書けば普通に動く(コンパイル時に without の記法に直されるが)

どうでもいいが、without の記法が気に入らないならこうすればコンパイル通る
> set isFalse to false
> duplicate srcFile to destDir replacing isFalse

653名称未設定2015/11/26(木) 22:25:10.93ID:EikmtUER0
>>651
レスありがとうございます。

理由がよくわからないのですが、as を使わないと finder のfile オブジェクトととして解釈されて動かないということでしょうか?

AppleScriptの最大の問題点はパスの指定。エイリアス、posix 、ファインダーのファイル、Mac 形式とかあって意味不明すぎる。

AppleScript は一つの単語に複数の意味があって混乱する。
一つの単語に複数の意味、使い方があるような言語を使ってると馬鹿になるよ。

654名称未設定2015/11/27(金) 00:07:57.81ID:BPNuZ3Dr0
な、相手にしないほうが良かっただろ

655名称未設定2015/11/27(金) 01:37:40.10ID:jmwVs+pX0
お見通しワロタ

656名称未設定2015/11/27(金) 17:20:00.86ID:5UEcuuEY0
わろた

>>653=>>646とは限らないがマジレスすると
パスの仕様は意味不明でもなんでもない
ASの問題点は存在するが、お前はそれを指摘できるレベルに達してないよw
「複数の意味」を問題にするなら、せめてtellブロックでの用語衝突などを挙げてくれ

657名称未設定2015/11/27(金) 21:22:43.35ID:/EMo4Pm00
理解してない子ほど、自分の無能を棚に上げて文句言うやつか

658名称未設定2015/12/08(火) 02:50:30.52ID:VLHPwPJ50
用語辞書のスイーツ(笑) ってなんなのでしょうか。

クラスの説明が複数スイーツに分かれてたりして分かりづらい。

659名称未設定2015/12/08(火) 11:09:05.09ID:lB4YAlKM0
都会の隠れ家的お店で、頑張った等身大の自分へ与えるご褒美です。

660名称未設定2015/12/09(水) 18:01:19.26ID:yPmT8tDJ0
基本的なとこでつまりまくるので、Kindleで hanaan著"Learn AppleScript "を買った。

4600円したが内容は素晴らしい。
余計な前置きが多いのと、後で説明する、みたいなスタイルがうざいのがたまにキズ。

661名称未設定2015/12/12(土) 13:30:37.00ID:kUyJIXaw0
>>658
標準コマンドか否かみたいな感じ
基本的に見たいものは検索で探すから無視無視

662名称未設定2016/01/01(金) 09:06:18.03ID:BJsCGmtz0
display dialog "Happy New Year!"

663名称未設定2016/01/04(月) 00:18:42.48ID:Fh/KFYvI0
なーんか最近スクリプトエディタがよく落ちる
ちょっと前にJavaScriptで間違った文を実行して落ちて以来、落ち癖がついちゃったような
今はAppleScriptのコンパイル済み.scptを開いた時に多いけど、エディタ単独で開いても時々
OS X 10.11.2 (15C50)
スクリプトエディタ 2.8.1 (183.1)

664名称未設定2016/01/04(月) 03:03:47.04ID:85GhQRWi0
リポートとコンソール確認すれば

665名称未設定2016/01/05(火) 01:26:25.47ID:p4h3jkgn0
xcode 使ったら、ブレークポイントでとめて、タップで変数の中身確認とかできないの?

スクリプトエディタだとブレークポイント作れないよね?

666名称未設定2016/01/05(火) 08:47:52.77ID:w5XIhSln0
使った事無いけどLateNightのScript Debuggerとか?

667名称未設定2016/01/20(水) 23:51:55.18ID:64jps1E70
落ちてる?

668名称未設定2016/01/21(木) 00:05:03.47ID:DbKP7fYg0
下記は重複しない保存先パスを作成する script の一部です。
日付_連番_ファイル名  このような形式のファイル名を作成しています。
exists コマンドの挙動がおかしく、常に false が返ってます。

set i to 2
repeat
tell application

669名称未設定2016/01/21(木) 00:32:22.07ID:4rMo+FcO0
構文エラー
expression、property または key form など があるべきところですが end of script が見つかりました。

670名称未設定2016/01/21(木) 01:45:11.58ID:DbKP7fYg0
set i to 2
repeat
tell application "Finder" to set isItemExists to exists (my POSIX file fullpathText)
if {isItemExists = false} then
log "存在しない"
exit repeat
else -- 存在するときの処理
set k to (i as text)
-- date_k_baseName -- /Users/Yuu/Desktop/2016_01_21_test.txt
set fullpathText to destDir & baseDateStr & k & "_" & baseNameStr
end if
set i to i + 1
end repeat
return fullpathText

671名称未設定2016/01/21(木) 02:03:39.34ID:DbKP7fYg0
>>668 です。文法が怪しいところをハンドラにして書き方変えたら自己解決しました。
>>670はif文がなぜか常に "存在しない" の方に行く。

下記なら理由はよくわからないがうまくいく。
on fileExists(fullpathText)
tell application "System Events"
if exists file fullpathText then
return true
else
return false
end if
end tell
end fileExists

672名称未設定2016/01/21(木) 09:41:56.94ID:sgs/8VkY0
if {isItemExists = false} then <- なんで{}とか使ってんの?
そもそも閉じる必要もないし。

673名称未設定2016/01/21(木) 11:22:21.54ID:ID6h33Zz0
以前AppleScriptの仕様に文句言ってた人では
見切りつけて使うのをやめたんじゃなかったのか

674名称未設定2016/01/25(月) 23:43:26.79ID:2FBTd4al0
作業完了時にチャリーンと音を鳴らすにはどうするのが良いでしょうか?

下記のしっくりこない対策しか思いつきません。

・ beep
音が気にくわない。

・ AppleScriptobjc で NSSound クラスを使う。
本に載ってる。コピペでそのまま使えそう。
でも、なにか大げさで違和感のある対策。

・ iTunes でサウンドファイル再生。
大げさ、重い。

675名称未設定2016/01/25(月) 23:56:31.78ID:NpvROCdu0
do shell script で afplay

676名称未設定2016/01/26(火) 00:07:09.92ID:OaX1S4kQ0
通知ありでも良ければ
display notification with title "終了しました" sound name ""

ユーザのライブラリ/Soundsに音源ファイル入れておけばOK
sound nameに拡張子無しのファイル名で音が出る。
名前が違えば通常の通知音が鳴る。

677名称未設定2016/01/26(火) 03:37:54.07ID:UV5S+svp0
>>675 >>676
役に立つ回答有り難うございます。

できました。
do shell script "afplay /System/Library/Sounds/Ping.aiff"

678名称未設定2016/01/29(金) 21:32:54.40ID:uUQj78VG0
>>677
afplay -v 0.1 とかでボリューム調整な
うちもそうやって通知音出してるわ

679名称未設定2016/01/30(土) 23:18:50.99ID:IOL1PbEa0
起動してウインドウ位置とウインドウサイズを固定するAutomatorのアプリをApple Scriptで作りたいのですが、一部のアプリで
tell application "アプリ名"
activate
tell front window
set bounds to {0, 0, 0, 0}
end tell
end tell
でエラーウインドウが出るだけでアプリの起動もできません。

他の方法として
tell application "System Events"
を使えばいいようですが、どんな風にかけて思った動作がするにか想像もできません…
どなたか助けていただけませんか。

680名称未設定2016/01/30(土) 23:46:59.63ID:LtqeZOXR0
「一部のアプリ」でなんだかよくわからない「エラーウインドウ」ね……
エスパー募集かな?

681名称未設定2016/01/30(土) 23:59:59.45ID:IOL1PbEa0
https://i.imgur.com/4aXhmWl.png
こんなウインドウしか出てこないのでどうすればいいのか全くわかりません。
アプリはTweetbotなどです。

特にエスパーは必要ではありません。

682名称未設定2016/01/31(日) 00:15:34.51ID:sppaYWuL0

683名称未設定2016/01/31(日) 00:43:24.43ID:Lb5Fe+7B0
参考までに。

tell application "System Events"
set app_name to name of first item of (every application process that (frontmost is true))
tell process app_name
set a_win to (1st item of (every window that subrole is "AXStandardWindow"))
set position of a_win to {20, 60}
set size of a_win to {1600, 1200}
end tell
end tell

684名称未設定2016/01/31(日) 00:50:08.78ID:H6u9ib8G0
tell application "System Events"
tell process "アプリ名"
tell front window
set position to {x, y}
set size to {w, h}
end tell
end tell
end tell
で行けんじゃないの

685名称未設定2016/01/31(日) 19:25:53.91ID:T2G1Wg900
Mailソフトでフィルタリングされた迷惑メール複数をmeiwaku@dekyo.or.jpに添付ファイルとして、転送できるようなAppleScriptって書けないものでしょうか?

件名はjunk mail transferとしたいです。

686名称未設定2016/01/31(日) 19:30:26.66ID:8Nm40lSC0
どこまで出来たか晒しなよ
見てくれる人はいっぱいいるから

687名称未設定2016/01/31(日) 22:37:40.80ID:namoAALa0
>>685
こういう系統のスクリプトはスパムに使えるから答えをもらえないかも。

688名称未設定2016/01/31(日) 23:31:50.09ID:vPfKXtBI0
んなこたあないw
そんなこと言い出したら>>679だってイタズラ用かもしれんぞ
答えをもらえるかどうかは>>1を読んだかどうかと女子高生か否かで決まる

689名称未設定2016/02/06(土) 20:13:14.62ID:LOyohfZN0
>>685
>Mailソフトでフィルタリングされた迷惑メール
迷惑メールが収められているフォルダー内のデータ
に対して(1、2)を行うスクリプト:
1) 文字検索して
2) 検索結果をmeiwaku@dekyo.or.jpに送る
をpythonやrubyなどで書いた方が、同じ作業を
AppleScriptで書くよりも絶対に楽だと思う。
 5万円払ってくれるのなら、AppleScriptで書いて
もらえるとも思うが。

690名称未設定2016/02/06(土) 22:05:24.20ID:PZIXO4V20
細かいこと言わなきゃ 環境設定→ルール の実行パターン「メッセージを転送」で済みそうな気もするけど。

もしくは、実行パターンとして「AppleScriptを実行」てのもあるからそこ使えば作れるかも。

691名称未設定2016/02/07(日) 01:23:00.23ID:gYLu6YbZ0
AppleScriptでメーラー作ればいいんじゃない

692名称未設定2016/02/07(日) 07:23:31.49ID:z112vJ6p0
>>689
それはない。

693名称未設定2016/02/08(月) 16:46:27.39ID:pdtAg3Je0
>>686~692

THX from 女子高生

694名称未設定2016/02/24(水) 18:45:41.19ID:PaiBzqoz0
教えてください。
ttp://hottinroof.blog54.fc2.com/blog-entry-77.html
のスクリプトを使って写真のリネームをしています。本日 El capitanにアップデートしたところ
「sh: exiftool: command not found Finder でエラーが起きました:sh: exiftool: command not found(127)」
と動かなくなりました。
exiftoolsは最新のmac用 10.11です。調べたところ、置き場所が変わったとの記述を見つけ、
スクリプトを開いて開いて POSIX path にMacintosh/usr/local/bin/exiftoolを当てようと色々試したのですが動かず的外れ
だったようです。
どなたかどうすればexiftoolが有効になるのか教えてください。お願いします。

695名称未設定2016/02/24(水) 19:33:34.55ID:PcH/7f1n0
頭の Macintosh 取って、 /usr から始めればいいんじゃない

696名称未設定2016/02/25(木) 10:01:21.68ID:cT4RuRny0
>>694
このAを各々Bと置き換えたらできないかな?
A:
set scrptMO to "exiftool -model " & cameraname
set scrptMO to "exiftool -DateTimeOriginal " & hidukejikoku

B:
set scrptMO to "sips --getProperty model " & cameraname
set scrptMO to "sips --getProperty creation " & hidukejikoku

697名称未設定2016/02/26(金) 07:53:10.85ID:/CCFtnsQ0
>>695
>>696
だめでした。pathの変更を記述しただけじゃダメみたいです。
ちょっとお手上げ。

698名称未設定2016/02/26(金) 09:09:33.85ID:xF52EGeJ0
>>697
試しにel capitanで実行しても動いたよ。>>696
変な所いじってない?
元のまま該当部分だけ置き換えた?

エラーが出るならなんてエラーが出てるかも書かないと。

699名称未設定2016/02/26(金) 16:20:14.71ID:atUtY2LD0
exiftoolいらんかったんや

と思ったけど、調べてみたら、一発で所望のリネームまでできるじゃないか
exiftool '-FileName<$model $DateTimeOriginal%+c.%e' -d '%Y%m%d %H%M%S' ファイル...
ドロップレットで処理するとしても長々いらんかったんや

700名称未設定2016/02/26(金) 18:59:39.08ID:/CCFtnsQ0
>>698

コンパイルした後、保存するの忘れてました!!
うまく動きました。

本当にありがとうございます。
これで母艦もEl Capitanに移行できます。

ありがとうございます。

701名称未設定2016/02/27(土) 11:16:23.52ID:krnL6K6A0
なにそれーw

702名称未設定2016/02/29(月) 18:41:06.52ID:FzgXm9MA0
上の処理をシェルスクリプトの勉強がてら書いてみたんだけど、
よくわかっていないのでイマイチすっきりしない。
どう書いたらスマートに書けるか詳しい人教えて。
for f in `ls` ; do mv $f `sips --getProperty model $f | sed -n '/[0-9: ]$/p' | sed 's/ model: //'`

703名称未設定2016/02/29(月) 18:42:34.87ID:FzgXm9MA0
なんかとちゅうで切れてるので再アップ
for f in `ls` ; do mv $f `sips --getProperty model $f | sed -n '/[0-9: ]$/p' |
sed 's/ model: //'`"_"`sips --getProperty creation $f | sed -n '/[0-9: ]$/p' |
sed 's/[^0-9]//g'`".jpg"; done

704名称未設定2016/02/29(月) 20:57:20.57ID:7rDDasVF0
おめーはよー、シェルスクリプトだけの話しかしねーならスレ違いだろボケー
このスレらしくImage Eventsで書き直した版持ってこいよ

705名称未設定2016/03/15(火) 18:33:52.75ID:D7JpzMMj0
do shell scriptを使ってpython 3を実行させたいのですが、
Aの記述の様にパスに日本語を含むファイルを実行しようとすると
can't open file '<unprintable file name>': [Errno 92] Illegal byte sequence" number 2とエラーがでます。

A: do shell script"〜.pyenv/versions/3.3.0/bin/python 〜/Desktop/テスト.py"
B: do shell script"python 〜/Desktop/テスト.py"

ファイル名に日本語を含まない場合、ターミナルから直接実行した場合、Bの記述の場合は
いずれも問題なく実行できます。

どうしたら上の記述で実行できるでしょうか?
pandasを使いたくてpython 3の方に入れたのですが、
Bの記述だとpandasが認識されず、Aの記述だとpandasが認識されます。
ターミナルから実行する場合はBでも問題なくpandasは認識されます。

pandasはpipを使って入れています。

706名称未設定2016/03/15(火) 19:05:41.06ID:8FCCxXqP0
例のあれ、LANG=ja_JP.UTF-8 設定して解決じゃないの

707名称未設定2016/03/16(水) 02:06:49.60ID:SCX7A7Ur0
$ "hoge -hoge '/日本語/日本語'"
ってするんじゃないの

708名称未設定2016/03/16(水) 02:30:44.77ID:uKUS3Bk/0
           |
            |  彡⌒ミ
           \ (´・ω・`)またhageの話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \

709名称未設定2016/03/16(水) 08:57:16.32ID:wz/7bs1s0
>706
localeはLANG=ja_JP.UTF-8になっています。

>707
シングルクォートの事でしょうか? 囲っても囲まなくても結果は同じでした。

710名称未設定2016/03/16(水) 08:59:05.73ID:aX1+TI1t0
>>709
いやコマンドのコードに書き込めよ
中に書いてあっても読み込まないよ。

711名称未設定2016/03/16(水) 09:14:46.67ID:wz/7bs1s0
>710
コマンドに入れたらできました!
ありがとうございます。次からはおまじないで入れとくことにします。

712名称未設定2016/03/16(水) 10:42:50.80ID:gHrb8tu60
テキストエディットで文末に表示とカーソルを移動させたいのですが、
どこをどう直せばよいですか?

tell application "TextEdit"
activate
tell front document
set selection to last paragraph
end tell
end tell

713名称未設定2016/03/16(水) 11:40:47.13ID:wz/7bs1s0
>>712
詳しく知らないけど、ぱっと見それらしい命令がないので無理じゃないかな?
最終目的がわからないけど直接テキストデータいじった方が早いかも。

714名称未設定2016/03/16(水) 11:51:48.56ID:4r7QBeuW0
キーバインドで操作出来るんじゃないの

715名称未設定2016/03/16(水) 12:48:41.48ID:gHrb8tu60
>>713-714
ありがとうございます

特定のテキストファイルに
コピーしたメモを貼り付けておきたいのですが、
文末にどんどん追加していきたいので、
そのテキストファイルを開いたら、カーソルが一番下に行くようにしたかったです。

Alfredのトリガーで「そのファイルを開いて、スクリプトで文末に移動」
というのを登録して使おうと思いました。

やっぱり、素直にこうするのがいいのかもしれませんね・・・

tell application "TextEdit"
activate
tell front document
tell application "System Events" to key code 125 using {command down}
end tell
end tell

716名称未設定2016/03/16(水) 13:14:48.69ID:wz/7bs1s0
コピーってのがクリップボードへのコピーならカーソルを移動しなくてもこれでできる。
tell document 1 of application "TextEdit" to set every text to every text & return & (the clipboard)

717名称未設定2016/03/17(木) 02:02:48.03ID:tknj+PfJ0
速度的にはどうなんだろ
on replaceReg(str, fnd, opt, rep)
set JsScr to "
var str = " & quoted form of str & ";
var fnd = new RegExp(" & quoted form of fnd & "," & quoted form of opt & ");
var rep = " & quoted form of rep & ";
str.replace(fnd, rep);
"
set ret to run script JsScr in "Javascript"
return ret
end replaceReg

718名称未設定2016/03/17(木) 05:32:07.90ID:U21OisUH0
>>717
どうもapplescriptに見えんなーと思ったらapplescriptじゃなかった
JS使いにとってはASで素直に置換ができない問題がこれで解消されるわけか?
まあしかしASだけでルーチン組むのとあんまり変わらんから
やっぱり速度の問題になるよね

719名称未設定2016/03/17(木) 06:23:24.08ID:nfY5T6ih0
Doublequoteはescape必要に見えるけど、大丈夫?

720名称未設定2016/03/17(木) 07:12:42.55ID:3oRdLlSm0
失礼、勘違いだった。

721名称未設定2016/03/17(木) 09:20:51.65ID:DWzTlfih0
>>717
いいね、これ

前に似たようなことやりたくて、JSで書いたやつを~/Library/Script Librariesに置いてASから使おうとしてダメだったから諦めてた
代わりにuse framework "Foundation" ... NSRegularExpressionで書いて使ったけど見た目ごちゃごちゃしてるしマンドクサかった

722名称未設定2016/03/17(木) 20:45:27.45ID:tknj+PfJ0
721です。昨日から触り始めたので、目新しいことばかりです。
配列やオブジェクトがlistやrecordとして返ってくるのは
ちょっと嬉しい。今更かもしれませんが。

set JsScr to "
var obj = {str:'apple', arr:['ふじ','レッドデリシャス']};
obj
"
set ret to run script JsScr in "Javascript"
log "class of ret:" & class of ret
log "class of arr of ret:" & class of arr of ret
repeat with i in arr of ret
log i
end repeat

723名称未設定2016/03/17(木) 20:50:16.07ID:tknj+PfJ0
721さんではなくて717でした、失礼

724名称未設定2016/03/17(木) 21:01:56.68ID:ine1sMXC0

725名称未設定2016/03/29(火) 21:22:05.25ID:0SkJ9rAs0
>>711
NSRegularRexpression をラップしてたマンドくさくないシンプルなインタフェースのライブラリをつくればいいのではないかしら。

726名称未設定2016/04/22(金) 15:37:59.52ID:hRzbi5SJ0
ASOCでウインドウをフローティング(常に前面)にしたいのですが、
どこでどう設定したらいいんでしょう?

727名称未設定2016/04/22(金) 20:48:33.70ID:OU5jWO7P0
>>726
  property win : missing value --xivでウィンドウど接続
--初期化で
  win's setLevel_(3)

7287262016/04/25(月) 10:29:40.54ID:H7rkWOxZ0
>>727
すみません。エラーも起きませんが、フローティングにもなりません。
現在記述してあるのは、下記のみです。xcode 3.2.6 os10.6.8
script UntitledAppDelegate
property parent : class "NSObject"
property _win : missing value
on applicationWillFinishLaunching_(aNotification)
_win's setLevel(3)
end applicationWillFinishLaunching_
on applicationShouldTerminate_(sender)
return current application's NSTerminateNow
end applicationShouldTerminate_
end script

7297262016/04/25(月) 10:44:02.50ID:H7rkWOxZ0
アンダーバーが抜けていました。アンダーバー入れてもフローティングにはなりません。
_win's setLevel_(3)

730名称未設定2016/04/25(月) 14:24:15.74ID:pJvZnNc40
>>728
  on applicationWillFinishLaunching_(aNotification)
   set aB to current application's NSBackingStoreBuffered
   set aRect to {{300, 300}, {300, 300}}
   tell current application's NSWindow's alloc()
    tell initWithContentRect_styleMask_backing_defer_(aRect, 7, aB, false)
     tell current application's NSView's alloc()
      tell initWithFrame_(aRect)
        setNeedsDisplay_(true)
        set aView to it
      end tell
     end tell
     setContentView_(aView)
     setDelegate_(me)
     setTitle_("TEST")
     setLevel_(3)
     makeKeyAndOrderFront_(me)
    end tell
   end tell
  end applicationWillFinishLaunching_

xiv怪しいから試しにwinnow作ってやってみて
これで出来ると思う

7317262016/04/25(月) 15:54:15.90ID:H7rkWOxZ0
>>730
ありがとうございます。
test windowはちゃんとフローティングになりました。
自分で作成したwindowはどこをどう設定したらいいんでしょう?

732名称未設定2016/04/25(月) 22:43:08.77ID:pJvZnNc40
>>731
xivのバグでoutlet接続しても接続されないってのがある、これはALを切ったりxivの設定を触ってると治る事がある
ただこれの場合はunrecognized functionとエラーログが出るのでおそらく別の問題。
通常、初期状態のxivのwindowをoutletを繋いでsetLevel_を呼び出せば、表示レベルが変更される。
マクロの定数をキャストしてな事による定数誤差の場合、>>730のコードも適用されないのでこれも違う
よってxivの設定が間違っている可能性が濃厚

7337262016/04/26(火) 09:37:28.68ID:TnaIN42b0
>>732
たびたびありがとうございます。
バグの可能性を聞いて、接続したり切ったり、設定を変えたりして
いじっていたらできることがありました。(2回成功しました)
ただ、これといった確実な方法が見つからずほとんどの場合はできません。
フローティングにならない場合でも同じ設定でエラーは出ません。
手動でoutletsの設定したい場合はどうしたらいいのでしょう?

7347262016/04/26(火) 09:53:27.89ID:TnaIN42b0
連投すみません。
絶対とは言えないのですが、高確率で成功する方法を見つけました。
property win : missing valueとwin's setLevel_(3)の両方を書いてからoutletsに接続すると成功率が高いようです。
property win : missing valueを設定してwin's setLevel_を実行する前にoutletsに接続してしまうと高確率で失敗します。

735名称未設定2016/04/26(火) 11:06:47.77ID:g47x2a7n0
>>734
Visible At Launchをオフにしてコードでwindowを表示してみましょう。
もし表示出来たならOutletが正しく接続されているので他に原因がある事になります。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")--ついでにタイトルも変えてみましょう

xivのwindowは、初期設定状態でしょうか
例えばxivでwindowのHidesOnDeactivateをonにしていると、他のアプリに移動した時にウィンドウが消えます。

7367262016/04/26(火) 14:07:33.25ID:TnaIN42b0
とりあえず新規プロジェクトで実験しているので初期設定状態のままです。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")
を試した後からなぜか突然フローティングに失敗しなくなりました。
新規で作ってさっきまでうまくいなかったやり方で試しても大丈夫です。
よくわからないけど助かりました。ありがとうございます。

737名称未設定2016/04/29(金) 22:34:11.86ID:YksCyGws0
# sed - put commas at the end of every line in stdin
# awk - pass to awk to remove the linefeeds
# sed - remove the comma from the last line
# sed - turn all spaces into pluses
address=`sed -e "s/$/,/g" | awk '{ str1=str1 $0 " "}END{ print str1 }' | sed -e "s/, $//g" | sed -e "s/ /\+/g"`
open "http://www.amazon.co.jp/s?field-keywords=$address"

Automatorのサービスで右クリックできるようにしたのですが、
これをつねにfirefoxで開くようにしたいです。
どのように付けくわえればよいでしょうか?

738名称未設定2016/04/29(金) 23:50:36.50ID:mmmN9YIf0
デフォルトブラウザがFirefoxならそのまま行くんじゃないの
それかopen -a Firefoxにするか

739名称未設定2016/04/30(土) 02:41:26.48ID:6hA5ZwKI0
または open -b org.mozilla.firefox

740名称未設定2016/04/30(土) 08:23:41.53ID:7vBWrPt20
>>738,739
ありがとうございます
デフォルトはSafariです
amazonの検索だけFirefoxにしたかったのです

教えてもらった行を最後に付けくわえてみたら、
Firefoxは起動するけど、検索自体はSafariのままでした。
付けくわえかた間違ってるのでしょうか・・・?

741名称未設定2016/04/30(土) 10:25:24.23ID:OIJSFV4t0
加えるんじゃなくて、最後の行のopenを置き換え

742名称未設定2016/04/30(土) 10:42:10.10ID:7vBWrPt20
>>741
ありがとうございます!
うまくいきました、助かりました。

743名称未設定2016/05/12(木) 13:39:13.01ID:OI34QQdR0
すごく単純な質問かもしれませんがご容赦ください
display dialogのテキストフィールドに、ユーザーが計算式を入力して、スクリプトに計算させるにはどうしたらいいでしょうか

例えば1/2+12/24と入力すると1と返ってくるようにしたいのです

744名称未設定2016/05/12(木) 14:20:47.24ID:U+AgI3Kr0
set r to "1/2+12/24"
run script r

745名称未設定2016/05/12(木) 14:23:56.87ID:OI34QQdR0
>>744
ありがとうございました! 助かります!
全く思いつきませんでした!

746名称未設定2016/06/09(木) 22:46:54.30ID:e2kQHPZ50
クリップボード内のテキストを置換や挿入削除するのを使っています。
これを改造して、改行も文字と同じように置換や挿入削除したいのですがどのようにすればいいのでしょうか?
例えば「ほげほげ」を

「ほげ
ほげ」

に置換、またその逆もなんですが。
改行そのものは""で括らず「ASCII character 13」などと書けばいいのまではわかりました。

try
set the clipboard to «class ktxt» of ((the clipboard as text) as record)
set orig_txt to the clipboard as text
if orig_txt is not "" then
set orig_txt to FindAndReplace(orig_txt, "hoge", "ほげ")
set orig_txt to FindAndReplace(orig_txt, ASCII character 13, "★改行消したよ★")
set the clipboard to orig_txt as text
else
error "The clipboard is empty..." number 1
end if
on error err_msg number err_num
reportErr(err_num, err_msg)
end try
on FindAndReplace(targetStr, pre, pro)
set CurDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to pre
set targetStr to text items of targetStr
set AppleScript's text item delimiters to pro
set targetStr to targetStr as string
set AppleScript's text item delimiters to CurDelim
return targetStr
end FindAndReplace

747名称未設定2016/06/10(金) 01:04:00.29ID:izjeg4LE0
set orig_txt to FindAndReplace(orig_txt, "ほげ", "ほげ" & return) -- ただしイマイチ
「ほげほげ」
 ↓
「ほげ
ほげ


set orig_txt to FindAndReplace(orig_txt, return, "")
「ほげ
ほげ

 ↓
「ほげほげ」

748名称未設定2016/06/10(金) 09:43:34.69ID:zdYeUK5r0
最初はとっつきにくいだろうけど、
ASで文字列処理するならrubyなりperlなり使った方が圧倒的にラクだよ。

set rubySc to "
#encoding: utf-8
$KCODE='u'
str=ARGV[0]
puts str.gsub(/[\\r\\n]/, \"\")
"
set c to the clipboard
set c to quoted form of c
set rubySc to quoted form of rubySc
set myresult to do shell script "ruby -Ku -e " & rubySc & " " & c

エラーが出る場合(ruby1.9以降)は$KCODE='u'の頭に#つけて。(コメントアウト)

749名称未設定2016/06/10(金) 10:39:21.65ID:+RUCD7ZN0
>>748
クリップボードに加工したいデータがあるのなら、pbpaste コマンドで ruby スクリプトの標準入力にデータを渡すべき。引数にはデータ容量の制限があるので、大きなデータの場合はエラーになる。
程度問題だけど、プロセス起動のオーバーヘッドは馬鹿にならないので、ほとんどの場合(とくに処理するデータが少ない場合)は外部コマンドを起動するよりAppleScript で閉じたほうが速い。

750名称未設定2016/06/10(金) 10:56:48.24ID:dGbKue2u0
俺は>>717推し

751名称未設定2016/06/10(金) 11:09:32.87ID:XlL7naR70
>>749
pbpasteなんて知らんかった。ありがとうございます。

>>750
js使える環境ならそれでもいーですね。

一応pbpaste使った場合。>>

set rubySc to "
#encoding: utf-8
$KCODE='u'
str=`pbpaste`
puts str.gsub(/[\\r\\n]/, \"\")
"
set rubySc to quoted form of rubySc
set myresult to do shell script "ruby -Ku -e " & rubySc

752名称未設定2016/06/12(日) 19:21:52.55ID:VfsjxDNU0
>>747
あざっす!!!
改行はreturnなんですね。ひょっとして…とおもったら
タブはtabでした!おかげさまで色々はかどりそうです!

753名称未設定2016/06/16(木) 22:26:54.48ID:oXUR4BNt0
予約語を変数名にしたら悲惨な事になるで

754名称未設定2016/06/19(日) 12:15:13.80ID:I4OKLVqd0
(alfredとかでホットキーを登録して、)
日時をテキストで挿入できるようにしたいのですが、

set the clipboard to (do shell script "date '+%Y-%m-%d %H:%M:%S'")

ここからどうすればいいでしょう?
これをやって、
さらにコマンドV、と2段階押さないといけない。
それを一回で済ませたい
なにかいい方法があれば教えてください。
(テキストを扱うどのアプリでもできるようにしたいです)

755名称未設定2016/06/19(日) 13:10:18.50ID:pah9kP3e0
AlfredでペーストするとこまでWorkflow組めるんじゃないの
続きは↓で
【コマンドラインランチャー】Alfredに惚れ込むスレ
http://potato.2ch.net/test/read.cgi/mac/1423312726/

AppleScriptでやるなら
tell application "System Events"
keystroke "v" using command down
end
とかでいけるけど

756名称未設定2016/06/19(日) 14:20:31.68ID:I4OKLVqd0
>>755
それでできるんですが
ホットキー自体がコマンドとかシフトとかと組みあわせないといけないので、
おしたら、さっと指を離すようにしないと「ペースト(コマンド+v)」にならないですね・・・

とりあえずありがとうございます
スレ違いすみませんでした

757名称未設定2016/06/26(日) 15:07:27.61ID:150GcjU60
Macの起動項目で、アプリケーション形式にしたscriptを立ち上げているのですが

他の起動項目の一般アプリケーションより、そのスクリプトを前面に出したくて悩んだ結果、ソースの先頭に

tell application "そのスクリプト"
activate
end tell

で、前面にさせてるのですが

これだとスクリプト編集プログラムでデバッグしてるときと、アプリケーション形式に書き出したときとで
"スクリプト編集プログラム"を"そのスクリプト"に書き直さなければいけません

自分自身のことを指すmeみたいな名前で一本化できれば良いと思って探してるのですが
何か良案がありましたら、教えてください

758名称未設定2016/06/26(日) 15:08:34.88ID:150GcjU60
757の環境は10.9Mavericksです

759名称未設定2016/06/26(日) 15:24:21.85ID:icb4+j3C0
tell me
if not frontmost then
-- ここに757の3行入れる
end if
end tell

とか?

760名称未設定2016/06/26(日) 16:17:59.11ID:MDzRPSme0
tell me to activate じゃあかんのか

761名称未設定2016/06/27(月) 00:15:21.98ID:bxICCxF00
アプリケーション形式ならactivateだけでも手前になるよ。

あと、スクリプト編集プログラムのツールバーに「アプリケーションを実行」ボタンが増えてる。
ただMavericksは無かったかも。

7627572016/06/27(月) 22:15:44.94ID:/fW9xSmu0
>>759-761
レスありがとうございます。meで行けるんですね

763名称未設定2016/07/28(木) 08:35:37.06ID:pp5916vT0
ネットワークのフォルダのファイルを指定して開くようにしているけど、
別々の環境(自宅と職場)で50個のファイルがあるフォルダと、1000個の
ファイルがあるフォルダで表示にかかる時間がまったく違う。

これはファイルを探す時間がかかるって事?

764名称未設定2016/07/28(木) 10:28:44.62ID:CZMUn6I+0
状況が曖昧。条件がごっちゃになってる。
単に50個と1000個の時間差の話なら、自宅と職場はどういう関係があるの?
職場では50個も1000個も差がなくて、自宅では50個と1000個に差があるって話?
どういう事にせよ、フルパス指定なら時間差なんてないような気がするが。

765名称未設定2016/07/28(木) 12:54:51.82ID:pp5916vT0
すまん どちらも環境的にはレガシーなんだけど。

職場では導入間もないので50個、画像サーバ C2D Win7 画像フォルダはシステムと同じボリューム
クライアント MDD OSX10.4
自宅では1000個 画像サーバ CD VIsta 画像フォルダはシステムと別パーテーション
クライアント C2D OSX10.6

職場では瞬時に表示されるが、自宅では6秒以上かかる。
時間ができたら職場に1000個のUSBでも挿してテストしてみる。

766名称未設定2016/07/28(木) 13:13:33.21ID:CZMUn6I+0
それだけ色々違う状況じゃ全く比較にならんと思うが。
ボードやHDDの速度も違えばネットワーク速度、OSの処理速度どれもちがうだろ。
とりあえず自宅で50個のフォルダを試した方が早いんじゃないか?
それで遅けりゃファイル数の問題じゃないって事だろ。

767名称未設定2016/07/28(木) 23:29:55.74ID:spKpeHA60
1000個を捨てて、50個100個150個としてみた。
快速に表示された。
異常のあるファイルが混在していたのかもしれない。
検査するユーティリティでも探してみる。
スマソ。

768名称未設定2016/08/15(月) 15:55:08.48ID:Z+tLenng0
超自己満スクリプト
do shell script "..." with administrator privileges でパスワード入れるのが面倒になってきた、
といってスクリプトにもろ書きして目に触れるのもなんか嫌だ

・キーチェーンアクセスでパスワード項目を作成
 アカウント/パスワード: applescript/パスワード
 アクセス制御: securityコマンドに常に許可(コマンド実行時の初回のダイアログででも)
・スクリプト
set |password| to do shell script "security find-generic-password -a applescript -w"
do shell script "killall -HUP mDNSResponder" password |password| with administrator privileges

769名称未設定2016/08/15(月) 19:56:52.87ID:NvXN/2Mn0
>>768
これはおもしろい。毎回思考停止してパス入れてたからその発想がなかった
たいへん参考になりました

770名称未設定2016/08/22(月) 05:48:20.56ID:Tz21TGij0
スクリプトエディタのフォーマット設定が時々デフォルトに戻っちゃんだけど、この設定ってどこに保存してあるんでしょうね?
手作業で戻すのは面倒なのでファイル差し替えで戻せると良いんだけど

771名称未設定2016/08/22(月) 06:01:31.95ID:Tz21TGij0
自己解決
$HOME/Library/Preferences/com.apple.applescript.plist
のようでした

772名称未設定2016/08/23(火) 09:37:34.26ID:xJQwUjZc0
tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList
set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor 555555 "
ここからさらに#999余白6pxを付加する記述を教えてください。
現在50px付加jpgをさらに6px付加スクリプトに投げてます。

773名称未設定2016/08/23(火) 11:09:57.92ID:0A/9/lIK0
間違ってるかもしれないが、2回処理(一旦保存)しないと無理なんじゃないかな?
連続して実行しても2番目の処理しか行われないっぽい。

あと、質問するときはそのままで動く物を載せた方がいい。

774名称未設定2016/08/23(火) 12:46:18.96ID:6f9IVph50
on open dropObjects
tell application "Image Events" to launch

repeat with theDropItem in dropObjects
set theDropItemPOSIXPath to POSIX path of theDropItem

tell application "Finder"
set theDropItemName to name of theDropItem
end tell

tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

775名称未設定2016/08/23(火) 12:49:20.77ID:6f9IVph50
774の続き。
set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList

set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50

set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath)
& " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth
& " --padColor 555555 " & " --out " & "~/Desktop/" & (quoted form of ("pad" & theDropItemName))

do shell script scriptCommand
end repeat

end open
ここからさらに#999余白6pxを付加する記述を教えてください。
現在50px付加jpgをさらに6px付加スクリプトに投げてます。

7767742016/08/23(火) 12:53:52.23ID:6f9IVph50
もし二つのスクリプトが必要な場合、一つ目のスクリプトの最後に「保存後6px.app」に投げるを書き、
6px.appの処理の最後に「JPEGで上書き保存」を各方法を教えて頂けないでしょうか。
それも不可な場合、一つ目のスクリプトはこのままで、2つめのスクリプトの最後に「上書き保存」の記述を教えてください。。

777名称未設定2016/08/23(火) 13:03:51.80ID:0A/9/lIK0
丸投げのつもりなら >>1参照
多少なりとも理解しているなら、2回繰り返すだけ。

7787742016/08/23(火) 13:10:30.12ID:6f9IVph50
一回目のend repeatの直後に
tell application "Image Events" to launch..と続けてみましたが二回目の色指定余白しか付加できません。
なにが間違ってるんでしょうか。。

7797742016/08/23(火) 13:10:30.46ID:6f9IVph50
一回目のend repeatの直後に
tell application "Image Events" to launch..と続けてみましたが二回目の色指定余白しか付加できません。
なにが間違ってるんでしょうか。。

780名称未設定2016/08/23(火) 13:26:32.34ID:rviZjxD00
所望のオプション付けた sips を一つ追加、実行すればいいんじゃないの?

781名称未設定2016/08/23(火) 13:37:02.69ID:0A/9/lIK0
>>779
元の画像に対して違う処理をしているだけだから。
一旦保存した画像に対してもう一度処理しないと。

7827742016/08/23(火) 14:43:56.00ID:6f9IVph50
1度目の処理でデスクトップに保存すると2度目の処理が最初のドロップアイテムに対して行ってしまったため
一度目は上書き保存、二度目でデスクトップに書き出しをしました。
出来れば一度目と二度目の後にデスクトップに書き出しできるドロップファイルをいじらずに済んで嬉しいんですが・・
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor FFFFFF "
do shell script scriptCommand

tell application "Image Events"←二度目処理・・

783名称未設定2016/08/23(火) 16:13:23.56ID:w5kLaLoU0
色は判りづらいので変えてる。
ちなみにquoted formは要らんよ。
set padImageHeight to padImageHeight + 6
set padImageWidth to padImageWidth + 6
do shell script "sips " & "~/Desktop/pad" & theDropItemName & " -p " & padImageHeight & " " & padImageWidth & " --padColor FF0000"

7847742016/08/23(火) 16:38:58.45ID:6f9IVph50
>>783
ありがとうございます!30余白が従来通りデスクトップ保存、二度目に教えたいただいた物を貼り付けましたが上手く動かず。。
「デスクトップに"padファイル名.jpg"がない」?とか言われます。。

785名称未設定2016/08/23(火) 17:16:48.56ID:w5kLaLoU0
>>784
そりゃ入れる場所間違ってるんじゃない?
やってること理解すればどこでエラーが起きてるのかわかる。

7867742016/08/23(火) 17:28:39.87ID:6f9IVph50
以下にて原画→枠線1追加→枠線2追加→上書き保存で妥協しました。
できれば原画→枠線1追加→枠線2追加→同名でデスクトップに新規保存、がしたかった。。
on open dropObjects
tell application "Image Events" to launch

repeat with theDropItem in dropObjects
set theDropItemPOSIXPath to POSIX path of theDropItem

tell application "Finder"
set theDropItemName to name of theDropItem
end tell

tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList

set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50

787名称未設定2016/08/23(火) 17:29:22.88ID:6f9IVph50
続き・・
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath)
& " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor
55555 "
do shell script scriptCommand

tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList

set padImageHeight to imageHeight + 5
set padImageWidth to imageWidth + 5

set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath)
& " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor
888888 "
do shell script scriptCommand

end repeat
end open

788名称未設定2016/08/23(火) 17:44:26.75ID:w5kLaLoU0
自分でアップしたものを、ちょこちょこ変更するから動かなくなる。
俺の書いた部分と自分の書いた部分の差異もわからないなら変に触らないほうがいいよ。

789名称未設定2016/08/23(火) 17:47:21.30ID:NoSsmXKJ0
高さと幅に奇数を加えるのがモニョモニョする

790名称未設定2016/08/23(火) 23:44:36.69ID:iI3N2afK0
全部 Image Events でやっちゃダメ?

on open drop_objects
repeat with drop_object in drop_objects
set drop_object to drop_object as string
tell application "Image Events"
repeat with item_modify_data in {{pad_margin:50, pad_color:{85 * 257, 85 * 257, 85 * 257}}, {pad_margin:6, pad_color:{153 * 257, 153 * 257, 153 * 257}}}
set this_image to open file drop_object
set the_dimensions to dimensions of this_image
pad this_image to dimensions {(item 1 of the_dimensions) + (pad_margin of item_modify_data), (item 2 of the_dimensions) + (pad_margin of item_modify_data)} with pad color pad_color of item_modify_data
save this_image
close this_image
end repeat
end tell
end repeat
end open

上書きしちゃうので元とっておきたいときは画像複製してからやってね

7917742016/08/24(水) 12:20:13.50ID:Eu4tDqDr0
>>788
ありがとうございます、教えて頂いた一行を入れて動かせるようにトライします。
>>789
確かに偶数じゃないと気持ちが悪いですね、直します。。
>>790
ありがとうございます、こんなに短い命令文で書けるんですか。。
ここの最後に「デスクトップに同名ファイル名・形式で保存」ができるようにトライしてみます。

792名称未設定2016/08/24(水) 12:23:44.02ID:KUHn3SeV0
先にコピーしてから処理すればいいんじゃないの

793名称未設定2016/08/29(月) 14:51:09.10ID:hh1Ww9bW0
ファイル名をコピー後に「A」を「B」に置換してからテキストを開いて貼り付け。
複数ファイルの場合は改行ではなくスペース区切りで貼り付けしてくれるスクリプト知ってたら教えてください!

794名称未設定2016/08/29(月) 15:26:57.61ID:an6yXUEQ0
ls -1 | perl -lne 's/A/B/; push @l, $_; END { print join

795名称未設定2016/08/29(月) 15:29:36.14ID:an6yXUEQ0
↑ 後ろ切れちゃった

ls -1 | perl -lne 's/A/B/; push @l, $_; END { print join " ", @l }' | open -f

796名称未設定2016/08/29(月) 16:16:40.84ID:hh1Ww9bW0
>>795
ありがとうございます!!ただ言い忘れましたがapplescriptで教えてください!
ファイルをスクリプトアプリに入れるとそのファイル名から拡張子を除きAという文字をBに置換後に
テキスト(自分JEditです・・)が開いてそこにペーストされるという感じです!

797名称未設定2016/08/29(月) 17:43:45.55ID:mi8It8rt0
>>796
とりあえず>>1

798名称未設定2016/08/30(火) 09:14:23.39ID:XbvJ0yp10
JEdit持ってないからTextEditで
複数ファイル渡すと別々に分かれることがある(理由不明)
on open someItems
set outNames to {}
repeat with anItem in someItems
tell application "Finder"
set aName to name of anItem
set anExte to name extension of anItem
if anExte is not "" then
set aName to text 1 thru ((length of aName) - (length of anExte) - 1) of aName
set anExte to "." & anExte
end if
considering case
if aName contains "A" then
set aName to do shell script "echo " & quoted form of aName & " | sed 's/A/B/'"
end if
end considering
set end of outNames to aName & anExte
end tell
end repeat
set oldASTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {" "}
set outNames to outNames as text
set AppleScript's text item delimiters to oldASTID
set outNames to outNames & linefeed
tell application "TextEdit"
launch
set aDoc to make new document
set text of aDoc to outNames
activate
end tell
end open

799名称未設定2016/08/30(火) 09:28:21.06ID:AdsaidQG0
>>798
スクリプトの神様有難うございます!
お陰様でJEditにスペース区切りでペーストされました、が!
拡張子までペーストされてしまいます!

800名称未設定2016/08/30(火) 09:37:45.71ID:+h0eq0WK0
ちょっとは自分で工夫しろよ

801名称未設定2016/08/30(火) 10:32:40.56ID:XbvJ0yp10
>>796
>拡張子を除きAという文字をBに置換後に

どっちなんだろな〜と思いつつ、拡張子にあるAは置換しないと解釈することにして
拡張子はわざと残した
あとは適当にやってちょ〜よ

802名称未設定2016/08/30(火) 16:22:49.96ID:cgL2/WZD0
ここまでおんぶにだっこで「されてしまいます!」じゃねえよ…

803名称未設定2016/08/30(火) 18:05:45.33ID:CY0X5lu10
どう見ても丸投げなんだから自分でどうこうできるわけがない

804名称未設定2016/08/30(火) 18:39:38.33ID:PZv9P6aX0
>>799
氏ねよクズ

805名称未設定2016/08/30(火) 19:28:50.83ID:AdsaidQG0
>>801
まずは拡張子を外してから痴漢、最後に拡張子を戻してテキストにペーストしてたんですね!
この部分を削除して希望の通りのフォーマットでコピペされました!
神様有難うございます!!

806名称未設定2016/08/30(火) 19:31:40.88ID:PFtNseYe0
こーゆーのを、厚顔無恥っていうのか?

807名称未設定2016/08/30(火) 19:38:21.79ID:+sIhfrvl0
可愛い子には旅をさせよ

808名称未設定2016/09/06(火) 23:07:59.42ID:AbjjUDuP0
文字列をパースしてdateオブジェクトに変換したいのだけど、システム設定に非依存でやる方法を教えてください。

set theDateString to

809名称未設定2016/09/06(火) 23:09:51.36ID:AbjjUDuP0
文字列をパースしてdateオブジェクトに変換したいのだけど、システム設定に非依存でやる方法を教えてください

set theDateString to "2016/9/6"
set theDate to date theDateString

の時、システム設定が和暦になってると theDateは "平成2016"になってしまいます
かといって、set theDateString to "H28/9/6"とすると、システム設定が西暦の場合エラーになります

システム設定のフォーマットに依存せず、テキストから正しく日付オブジェクトに変換する方法が思いつきません。 よろしくお願いします。

810名称未設定2016/09/07(水) 00:12:26.20ID:3MTRzdxL0
和暦と西暦の変換処理を自分で書いちゃうのはダメなの?

まず、dateオブジェクト内は西暦で統一しておく

dateオブジェクトに入れる前の文字列に
昭和とか平成、Hの文字が入っていないかチェックする処理
→入っていなくて年の部分が4文字なら西暦と見なしてdateオブジェクト化
→入っていた時は和暦→西暦変換の処理をしたあとdateオブジェクト化

で、dateオブジェクトから日時を取り出して使う際に、
西暦のまま取り出すか、和暦に変換して取り出すか、
フラグでも立てて分岐する処理を書いておく

江戸時代とか、それより前の日付も対象になるなら、
その分チェック対象のリスト(配列)も用意しないとダメで
面倒そうだけども…

811名称未設定2016/09/07(水) 00:30:52.68ID:3MTRzdxL0
ちなみに自分の場合、

set theDate to current date
set (year of theDate) to 1999

こんな感じで、current date でdateオブジェクトをまず作っちゃって、
そのあと必要に応じて年月日を変更する形でやってて、
西暦しか使えないと思ってました…

>>809みたいな書き方すると、"2016/9/6" を直接
dateオブジェクト化したりできたんですね…

812名称未設定2016/09/07(水) 02:10:58.49ID:GDz+ptgZ0
>>809
かんたんかんたん

set theCommand to "date +%Y/%m/%d"
set theDateString to do shell script theCommand
set theDate to date theDateString

813名称未設定2016/09/07(水) 02:17:43.35ID:GDz+ptgZ0
あ、上のは検証してないんで一応補足しておくけど、もし年/月/日の並びがだめぽな
環境があるなら>>811のような定番の方法を使ってそれぞれ別個に定義してやればよい

e.g.
set theDate to current date
set theYearString to do shell script "date +%Y"
set (year of theDate) to theYearString
...

814名称未設定2016/09/07(水) 04:47:46.77ID:3MTRzdxL0
OS10.9以上なら、Rubyのdateオブジェクトで西暦和暦変換ができるみたいです
ただ、和暦はドット区切り、西暦はスラッシュ区切り固定のようなので、
入力する日付を自分でその形式に変換しておく必要あり
(AppleScript's text item delimiters とif文を組み合わせればできる)

というか、本題からズレてたらすいません…


--和暦→西暦変換(ドット区切り・H(平成)・S(昭和)・T(大正)・M(明治)対応)
set theDateStringJp to "S10.9.6"
set theRubyScript to "require 'date';puts Date.parse(\"" & theDateStringJp & "\").strftime(\"%Y/%m/%d\")"
set theDateString to do shell script "ruby -Ku -e " & quoted form of theRubyScript

--西暦→和暦変換(スラッシュ区切り・H(平成)・S(昭和)・T(大正)・M(明治)対応)
set theDateString to "1935/09/06"
set theRubyScript to "require 'date';puts Date.parse(\"" & theDateString & "\").jisx0301"
set theDateStringJp to do shell script "ruby -Ku -e " & quoted form of theRubyScript

815名称未設定2016/09/07(水) 08:09:40.71ID:3MTRzdxL0
>>809
set theDateString to "2016/9/6"
set theDate to date theDateString

set yearString to characters 1 thru 4 of theDateString as text
set (year of theDate) to yearString

log theDate

やっつけ仕事っぽいけど、
システムの設定が和暦だろうが西暦だろうが、
theDateStringの最初の4文字を切り出して
dateオブジェクト「theDate」のyearに代入しちゃえば、
西暦2016年(和暦表記だと平成28年)に上書きできますた

816名称未設定2016/09/07(水) 11:05:58.56ID:FhgBYBLX0
平成やHの文字が出てくると決めつけてるとすぐ使えなくなる可能性が…

817名称未設定2016/09/07(水) 11:31:39.64ID:ngYUIGtT0
>>809
結局最終的に何が得たいの? 日付を西暦にした文字列? 日付同士の計算がしたい?

どちらにせよ一旦和暦を西暦に変換しないとできないっぽいので、
正規表現の使えないASのみではちょいと面倒だと思う。

ちなみに10.6.8だと>>809のは和暦にすると動かないんだが。

818名称未設定2016/09/07(水) 11:41:37.76ID:CoRxCYwF0
新年号なんだろうな?

819名称未設定2016/09/17(土) 05:04:41.42ID:WAphUahl0
入力時点で表記を統一させるか、例外な表記は統一する関数でも書けよ

820名称未設定2016/09/18(日) 17:17:15.66ID:P6TC9ipg0
image eventsで適当な画像をpictで保存したいのですがerror 1708がでてうまくいきません.
どのようにしたらいいでしょうか??

set afile to choose file
set adesk to (path to desktop) as text
tell application "Image Events"
launch
set the_image to open afile
try
save the_image as PICT in (file (adesk & "a.pict"))
end try
close the_image
end tell

821名称未設定2016/09/18(日) 18:54:18.94ID:ZyunKvGT0
pictは扱えなさそうな感じ
代わりにsipsコマンドでやると Error: Unsupported output format com.apple.pict

822名称未設定2016/09/18(日) 22:05:15.44ID:RKOguUii0
標準のコマンドがダメなら brew install imagemagick して
convert コマンドを使う手もある
ImageMagick は PICT 形式に対応してるよ

ちなみに今時 PICT って何に使うんだい

823名称未設定2016/09/19(月) 22:57:57.88ID:9rn6DICs0
過去スレでiTunesのアートワークとして画像を差し込む方法が載っていたのでその通りにやってみました.
そこでは一度,画像データをpictに変換し,data of artwork に入れていました.

824名称未設定2016/09/19(月) 23:29:01.85ID:9rn6DICs0
お騒がせしましたiTunes10.2から仕様が変わっていたのですね,,,
tell application "iTunes" to set data of artwork 1 of theTrack to (read (file targetImageFile) as picture)
これでできそうですね.

825名称未設定2016/09/20(火) 01:57:42.90ID:0AeGId/70
そういうのは最初からやりたいことを全部言ったほうがいい
質問がズレてると回答もズレちまってお互い時間の無駄だ

826名称未設定2016/11/08(火) 18:08:26.81ID:iTLgand+0
automatorで、上のメニューバーにはあるけどショートカットコマンドが与えられてない項目のショートカットを作りたいのですが、
自動記録したものを走らせてもエラーが出て動きません。
どのようなApple script を書けばいいか教えてください。
(例えばChromeの「ズーム」をショートカットにしたい場合)

827名称未設定2016/11/08(火) 18:09:54.47ID:iTLgand+0
on run {input, parameters}
-- ズーム
set timeoutSeconds to 2.0
set uiScript to "click menu item 3 of menu 1 of menu bar item 9 of menu bar 1 of application process \"Chrome\""
my doWithTimeout(uiScript, timeoutSeconds)
return input
end run

on doWithTimeout(uiScript, timeoutSeconds)
set endDate to (current date) + timeoutSeconds
repeat
try
run script "tell application \"System Events\"
" & uiScript & "
end tell"
exit repeat
on error errorMessage
if ((current date) > endDate) then
error "Can not " & uiScript
end if
end try
end repeat
end doWithTimeout

記録したものはこんな感じです。

828名称未設定2016/11/08(火) 18:21:06.15ID:EWXVSqty0
>>826
キーボードショートカットを割り当てるのではだめなのか?
https://support.apple.com/kb/PH18418?locale=ja_JP

829名称未設定2016/11/08(火) 18:59:43.47ID:BsKEIaRN0
>>828で済むならいいけど書く場合

tell application id "com.apple.systemevents"
tell application "Google Chrome" to activate --これは呼び出し方によっては不要
tell process "Google Chrome"'s first menu bar's menu bar item "ウインドウ"'s menu "ウインドウ"'s menu item "ズーム" to click
end tell

830名称未設定2016/11/18(金) 11:32:35.49ID:tGiTS7790
AppleScript他自動化ツールはこの先どうなる
https://www.macintouch.com/forums/showthread.php?tid=1189
Apple dumps Sal Soghoian, who gave us Mac automation tools

831名称未設定2016/11/18(金) 11:49:53.23ID:0sQ3zW0a0
いつの間にかiTunesでdisplay dialogとdisplay alertのcancel buttonが効かなくなってる

832名称未設定2016/11/18(金) 15:06:19.50ID:FWfCUeTi0
>>830
やべぇよやべぇよ……
ほんこれ >Another nail in the coffin of macOS being a tool for professionals.

833名称未設定2016/11/18(金) 21:18:06.86ID:GUceBYRw0
Rhapsody発表時にAppleScriptも廃止する予定とジョブズが言ったとたん
じゃぁもうMac使ってる意味ねーよ安いAT機買うからとプロ業界から総スカンをくらい
なんと思い直したというMac自動化の歴史も、彼なき後、遂に終焉を迎えるわけですな

834名称未設定2016/11/21(月) 20:23:02.65ID:7ymhH/7S0
Swiftインタプリタでなんとかしてくれるの?

835名称未設定2016/11/21(月) 20:28:14.32ID:EK10STwB0
SwiftScriptまだ〜?

836名称未設定2016/11/22(火) 23:21:03.30ID:ICQ6tb5N0
相談です。
最近、iTunes用の以下のスクリプトで動画ファイルの種類を変更しようとするとパラメーターのエラーです、というエラーが出てしまいます。
なぜか、TV showへの変更はうまくいき、movieやmusic videoへの変更が失敗します。

tell application "iTunes"
--return (item 1 of selection)
set video kind of (item 1 of selection) to movie
end tell

837名称未設定2016/11/23(水) 03:04:10.30ID:enXikOrW0
home video/‌movie/‌music video/‌TV show

どれに変えてもエラーにならなかった

838名称未設定2016/11/23(水) 12:49:43.28ID:WM8UhP380
ありがとうございます。
環境依存っぽいですね。

839名称未設定2016/11/23(水) 13:51:26.26ID:tAdkg8UK0
バージョンは? コンパイルしなおしたか? できるファイルもあるのか? 何かの tell ブロックに入れ子になってたりして用語衝突してないか?

840名称未設定2016/11/23(水) 17:09:26.13ID:sz1Dt2/Q0
Mac OS X 10.9.5
AppleScript 2.3.2
iTunes 12.4.3.1
でした。
いくつかのファイルを試しましたが、やはりTV showへの変更しかできませんでした。
他はエラーが返ります。
「iTunesでエラーが起きました:パラメーターのエラーです」
入れ子ではなく、スクリプトエディタでそのまま実行してもエラーになります。

841名称未設定2016/11/23(水) 18:37:33.33ID:60Z7tgsL0
iTunes上で直接変更はできるの?

842名称未設定2016/11/23(水) 20:59:45.08ID:sz1Dt2/Q0
はい、可能です。
今は手動でやってます。

843名称未設定2016/11/24(木) 04:46:23.72ID:QhkCG5JO0
気になる話があった
http://dougscripts.com/410
Set Video Kind of Selected v5.2
WARNING: a possible bug in iTunes 12.4.1 and later prevents this script from working. Until Apple confirms and/or addresses this issue, I do not recommend using this script.

844名称未設定2016/11/24(木) 15:10:30.69ID:ZN/5pbPK0
Doug氏がそう言うんならそうなんだろうな

845名称未設定2016/11/24(木) 16:39:48.30ID:5Qm7ZEkl0
原因不明で回避方法もないということでしょうか。
残念。

846名称未設定2016/11/24(木) 17:14:49.09ID:ZN/5pbPK0
不明というか、iTunes側のバグって話かと

847名称未設定2016/11/25(金) 14:24:33.44ID:muoB3U8+0
os 10.11です
デフォルトプリンタとデフォルトの用紙の設定をアップルスクリプトから制御したいのですが、プリンター設定ユーティリティがなくなってしまい、以前使っていたスクリプトが動かなくなりました
System Eventsからorg.cups.PrintingPrefs.plistを直接いじればいけるかなと思ったのですが、エラーになって設定できません
何かいい方法はありませんでしょうか

8488472016/11/25(金) 17:43:59.31ID:muoB3U8+0
shell script でデフォルトのプリンターの変更ができるものを検索して見つけました
ですがデフォルト用紙は見つけられませんでした…

849名称未設定2016/11/26(土) 04:23:35.33ID:VhEWogO40
defaults write org.cups.PrintingPrefs DefaultPaperID "iso-a4"
とかで行けるっぽいよ
http://themacadmin.com/mavericks-updatesetting-a-default-paper-size/

10.12でも行けた

8508472016/11/28(月) 09:10:20.17ID:WITPAloA0
>>849
大変有益な情報ありがとうございました
シェルスクリプトは不慣れで検索の仕方もわからないレベルだったので助かりました

851名称未設定2016/12/02(金) 22:24:00.84ID:iTWJ/avd0
最近気付いたこと。
InDesignの変形でのabsoluteは実態はrelativeだったこと。
真っ青になってこっそり書き換え中。

852名称未設定2016/12/19(月) 14:39:19.62ID:dcVzYH3U0
たしかに

853名称未設定2017/01/20(金) 17:10:03.17ID:52ZJAtjC0
あけおめ

854名称未設定2017/01/20(金) 19:02:55.98ID:MR83okhh0
良いお年を〜

855名称未設定2017/01/22(日) 15:50:43.50ID:0xkJ26tQ0
質問です
コトノコという辞書アプリで「単語」という言葉を調べたいとき、

tell application "kotonoko"
activate
set searchword to "単語"
end tell

ではうまくいかないです
set searchword to ""
じゃなくて、なにか別なのあるのでしょうか?
わかるかたいたら教えてください

856名称未設定2017/01/22(日) 16:11:31.04ID:td2KFX3W0
用語説明を開いて調べた方がいいんじゃないの

857名称未設定2017/01/23(月) 00:15:44.76ID:WyTEuYSu0
>>855
そもそもどうしてその文でいけると思ったのかわからない
俺の知ってるコトノコ.appはスクリプト対応してない気がするが
きっと俺の知らないバージョンか同名アプリなんだろうな〜

858名称未設定2017/01/23(月) 10:23:28.37ID:ujaelEHZ0
頭悪すぎるよなw
俺も知らないバージョンか同名アプリなんだろうw

859名称未設定2017/01/24(火) 00:06:20.84ID:vmSJnrn50
GUI scriptingくらいヒントとして教えてやれよ。

860名称未設定2017/01/24(火) 10:04:39.57ID:aDsRhBS90
じゃあお前最後まで面倒見てやれよ

861名称未設定2017/01/24(火) 10:33:18.85ID:t9dG5KJK0
はい。(´・ω・`)

862名称未設定2017/01/24(火) 10:37:00.51ID:O0Kd4L+D0
PreFab Player使えばいいんじゃね?

863名称未設定2017/01/24(火) 12:06:36.92ID:75F0HRla0
ふと思い出したけどQuickeysってどうなってる?

864sage2017/01/24(火) 13:15:59.08ID:Dbp78suS0
AppleScriptをJavascriptに変換するソフトはありますか?
100%変換しなくても80%程度変換してもらえれば
後の手作業が楽になるので。

865名称未設定2017/01/29(日) 11:29:22.45ID:WKy5QlLf0
助言を下さい。
10.11まで動かせていたgui script applicationを、10.12に対応させられず苦労しています。
developerIDは持ってないので、自分環境専用です。調べた範囲ではこれ以上は見つかりませんでした。

これまで試したこと
1.
xattr -cr guiスクリプト名.app
2.
chmod a-w guiスクリプト名.app/Contents/Resources/Scripts/main.scpt
3.
codesign -s - -i com.apple.ScriptEditor.id.guiスクリプト名 -f guiスクリプト名.app
4.
セキュリティとプライバシー/プライバシー/アクセシビリティにて、guiスクリプト名.appを追加


これで、実行すると
System Eventsでエラーが起きました:guiスクリプト名には補助アクセスは許可されません。(-1719)
となります。

866名称未設定2017/01/29(日) 13:31:25.37ID:ivFV2MIT0
1.〜3.って必要なの?

アプリで保存して4.だけでいけるけど
実行専用で保存しても4.だけ

867名称未設定2017/01/29(日) 16:38:25.66ID:4Zu53BEN0
>>865
*まず、これまでとは異なるアプリケーションと認識されるように新規書類作成⇒ソースコピペで別名の.appを作成します
*次に1〜4の操作は*せずに*.appを起動します。「許可されません」ダイアログが出るでしょう
*その結果シス環アクセシビリティのリストにチェックが外れた状態で新しい.appが載ったはず
*そのチェックを入れてシス環を閉じ、もう一度.appを起動

これでどうかな?

868名称未設定2017/01/29(日) 19:16:38.24ID:WKy5QlLf0
>866-867
動きました。ありがとうございました。
以前のOSXの時にこの手のcodesign関連手順を踏まないと動かないと記憶していたんですが、自分で使う分にはいらなかったんですね。

大体OSアップグレードのたびにこの手の試行錯誤してたのがバカみたい...

869名称未設定2017/02/04(土) 11:24:47.26ID:ZlWYx5rz0
どうやってみんなはAppleScript覚えたの?

870名称未設定2017/02/04(土) 18:12:07.11ID:8/+Y2Wh60
テキストエディタのマクロを改造することから始めて、
ファイルドロップでファイル名を変える、とかの
Finder操作系に徐々に手を広げていった感じ

もうネットがある時代だったから、
文法とかはググって覚えた

最近は、AppleScriptの処理の遅さや
機能の貧弱さが気になりだして、
ダイアログなんかのインターフェースだけ
AppleScriptで作って、中身はだいたいRubyに投げるように
なってきちゃった

871名称未設定2017/02/05(日) 01:01:57.57ID:Tos4a9S+0
ネットのない時代は大変だった。
AppleScript道入門という本にAppleScript日本語版がバンドルされていて、それを自分で組み込んで使って勉強した。
インターネットはまだ日本に上陸していなかった。
ひたすらトライアンドエラーだった。

872名称未設定2017/02/05(日) 02:19:53.02ID:ZaqFZUa40
TAO of AppleScript、原書で買ったなあ
ミニミニリファレンスは開きすぎて分解しちゃった

873名称未設定2017/02/05(日) 04:14:23.45ID:b5zj9RT50
月刊MAC POWERだったかな。AppleScript講座の連載やってたな。

8748692017/02/05(日) 08:14:26.18ID:TRL4BVZg0
すげーーなおっさん達
マジそうゆうとこ見習わないと
楽に取得する方法なんてなかった…1から勉強します

875名称未設定2017/02/05(日) 11:03:52.13ID:W7vZBcxp0
俺はまだおっさんじゃないけど
>>1に挙がってる日本語サイトだけでもそこそこ組めるようになるよ
基本がわかったら後はやりたいことをどうやって実現するか
目的ごとに地道に調べるだけでしょ。その過程で英語情報の使い方も自ずとわかってくる

876名称未設定2017/02/05(日) 11:28:43.92ID:b6zU4uPZ0
>>874
AppleScriptって、頑張って勉強して覚えるタイプの
言語じゃない気がする

「毎回やってるこの処理、自動化できたら楽なのに!」
って状況があって、その処理がAppleScriptでできないかググる
→それっぽいサンプルが見つかる

大抵、サンプルは自分のやりたいこととちょっと違うので、
いくつかのサンプルの使えそうな部分を組み合わせて動くまで頑張る

「できたっ! なにこれ、超便利! じゃあ、あの処理も自動化できるかも!」
って、なにもわざわざAppleScriptでやらなくても…という細かい処理まで
スクリプトを組んでやるようになる

→気がつくと基本的な文法を覚えてて、簡単な処理なら自分で書けるように

自分はこんな感じだった

うまく動かなくて試行錯誤してる間はそれなりにつらいけれども、
やりたいことができた時の喜びで吹っ飛ぶので、苦労した記憶は残らない

877名称未設定2017/02/05(日) 11:34:51.80ID:W7vZBcxp0
そうだよね。有名言語は言語を知ってること自体に価値があるけどASはそうじゃない
もっと身近で、対症療法的に使いながら覚えていくものだよね

878名称未設定2017/02/05(日) 22:51:55.72ID:Xb7bVEd50
むかしは、AppleScript対応アプリケーションが多かったからマウス操作の自動記録でスラスラとScriptが自動生成されてたから、それでファインダ操作やアプリケーション内の操作のサンプルが取れて
スクリプトの最適化とか改造で覚えやすかったんだけどね

Excel立ち上げて、セル操作して数式入力
それらをAppleScriptでやれたから楽だった

それが今では自動記録がうまく動いてくれない


Autometerも中身はAppleScriptみたいなものなんでしょ?

879名称未設定2017/02/06(月) 07:19:12.26ID:OwbhFoed0
今も自動記録は使える気がするが、具体的に何ができなくなってる?

880名称未設定2017/02/07(火) 01:05:15.09ID:5n8Mf6Us0
>>879
むむむ
ファイダー操作がちゃんと記録されてる・・
QuickTimeは未対応なのか

881名称未設定2017/02/11(土) 16:21:21.54ID:Ldl/3u/M0
>>880
QuickTimeは7と共に逝ったよ

882名称未設定2017/02/18(土) 22:48:19.52ID:G4+IScJH0
初めまして。クリップボードを拡張するソフトを作りたいと考えました。
今の所これでキーを打てるのはわかりました。
tell application "System Events"
keystroke down command
keystroke up command
end tell
が、押されている装飾キーを取得するにはどうすればいいのでしょうか?
お助けください。

883名称未設定2017/02/18(土) 23:47:12.63ID:qHdDG3B70
>押されている修飾キーを取得
https://discussionsjapan.apple.com/thread/10151030


修飾キーを押した状態で何か入力したいのなら
keystroke “c” using command down
でコピーとか
keystroke “ac” using command down
で全てを選択してコピーとか

keystroke じゃなくて key codeってのも使える。
key code(8) using command down
key codeは文字以外のキーも使える。
コード番号はmac key codeとかでググれば出てくるよ。

修飾キーが複数組み合わさる場合は
using {command down, shift down}
のようにすればOK
(keystrokeは大文字で書いてshiftキー押した状態の入力にすることも可能)

884名称未設定2017/02/19(日) 02:35:48.35ID:aQXqCxKb0?2BP(1000)

詳しくありがとうございます!
ですが教えてもらったurlのrubyが動かずで・・
具体的にはcapsロックがオンのとき、
数字キーでペースト、command+数字キーでコピーするソフトを考えていたのですがAppleScriptで作るのは難しいでしょうか・・?
親切に漬け込んでいてすみません

885名称未設定2017/02/19(日) 09:09:13.32ID:JTN2GxVk0
サンプルのコードとかでhogeってのを見るけど何故にhoge使うの?⚪︎とか△ではあかんの?
アホな質問でごめん

886名称未設定2017/02/19(日) 10:59:15.00ID:AMvGzm3X0
色々初めてっぽそうなのにそんなあっさり出来たら苦労しないよ
じっくり漬け込まないと、時間かけて

887名称未設定2017/02/19(日) 19:05:55.34ID:h2sgOzYO0
>>885
ものごとをホゲホゲと表現するのがカッコいいと思ったダセークソオタクが始めやがって
無反省にそれを受け入れ、さらに広めたバカなクソオタクどもがうじゃうじゃ居たからなんだぜ

初めて見るやつにとっては、ホゲとかフーバーとか意味不明だしバカジャネーノ?の一言だよな
ひねりもなにもないけど、変数123とか定数ABCとか名付ければ、第三者にも分かりやすいのにな

あんさんの言うとおり、マルでもサンカクでも良いんだぜ!
今もそうなのかはわからんけど、昔のアンク氏のHTML辞典などではそういう表現をしていて、私としては好感が持てたな

888名称未設定2017/02/19(日) 20:56:09.70ID:JTN2GxVk0
へぇーそういう歴史があったのか
hogeってなにかの頭文字かと思ってたけど
1人が言い始めたのが流行っただけだったんやww

889名称未設定2017/02/19(日) 22:45:45.76ID:PMUXWJPh0
>>884
待機していて任意のキーで発動するのはApplescriptでは難しいな。

890名称未設定2017/02/20(月) 00:13:42.81ID:47moyOp40
>>888
まさかとは思うけど
本気にすんなよ

891名称未設定2017/02/21(火) 00:32:39.46ID:gphoZadF0
appkitで装飾キーは取れたけど数字キーが取れない・・
>>888
こうゆうのは何で書かれているんですか?

892名称未設定2017/02/21(火) 09:22:11.98ID:MlMOQbWh0
>>887 そんなのが前提なく出てくる本とかあるもんな。

893名称未設定2017/02/21(火) 16:15:18.04ID:/M36k0iH0
俺もhogeやfoobar嫌い
無駄に業界用語とかビジネス用語多用する人と同じ方向性を感じる

894名称未設定2017/02/21(火) 17:08:28.68ID:JRq74LQc0
業界用語なんて大げさな
それ使っておけばいいというのが楽だから皆使ってるんじゃないの

895名称未設定2017/02/21(火) 17:12:23.99ID:bG7S9Xkp0
hageのほうがいい

896名称未設定2017/02/21(火) 17:13:47.34ID:jfmoKTXy0
ほにゃららを多用するよりまし

897名称未設定2017/02/21(火) 18:16:05.67ID:hlKC2Ktr0
>>896
あー、私もホニャララ大嫌い
世界一受けたい授業というテレビ番組を観ていると、ホニャララが多すぎてげんなりする

不明確、不特定なものごとをどのように表現すべきかは悩ましいところだよな
「なにがし」以外にも分かりやすい言葉があれば良いな

898名称未設定2017/02/21(火) 19:27:32.79ID:Rvqi1a1W0
ほにゃららって、〜を読んでいるだけだよね。
目くじら立てるほどのことかなあ?
AppleScriptでは使わないけどね。
hogeとかは予約語とかぶる心配がないから都合が良いんだろう。
文字数が多いので多用すると面倒そう。

899名称未設定2017/02/21(火) 19:58:02.09ID:qf3U6U1S0
>>898
まぁ言われてみれば、そこまで嫌うほどのものでなもなかったね
ごめんね(*´・ω・)(・ω・`*)

私としてはhogeよりもpiyoのほうが可愛くて好きだけど、右手の小指と中指を伸ばして入力するのがめんどくさいのが難点かな

900名称未設定2017/02/21(火) 21:21:22.33ID:c07pXrAY0
ほめばげ

901名称未設定2017/02/21(火) 23:16:54.00ID:4kOCPwAT0
俺はhogeよりもhage派

902名称未設定2017/02/23(木) 07:27:01.55ID:f78VjTtz0
打ちやすそうでいいね。
でも、エラーが出た時に、ハゲが定義されていませんとか表示されると想像すると、ちょつと躊躇する。

903名称未設定2017/02/23(木) 19:27:23.17ID:+sWj+QGX0
髪の毛がありません(エラー4949)

904名称未設定2017/02/23(木) 20:25:15.18ID:g52Fob1x0
山田くーん

905名称未設定2017/02/23(木) 20:38:52.44ID:JV8Ry8/Y0
残ってる髪の毛全部抜いてあげてー

906名称未設定2017/02/24(金) 01:32:14.28ID:vy4z/98S0
>>905
うせろガイジw

907名称未設定2017/02/25(土) 22:49:52.87ID:1G+hzadu0
           |
            |  彡⌒ミ
           \ (´・ω・`)また髪の話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \

908名称未設定2017/02/27(月) 21:29:30.69ID:jEA9HVwo0
作ったスクリプトを直接、Automator、
Alfred、Keyboard Maestroから動かすと
動かない、動きが変わる、動きが遅いなど
それぞれに違いが出ますね。難しい。
今日はAlfredがハンドラのところで
止まってしまいました。
あとAutomatorだと起動に時間がかかるのは
そんなものですか?

909名称未設定2017/03/01(水) 02:07:15.84ID:9hpvaXhO0
質問です。
do shell script からPythonを動かす時につける「-c」って
どういう意味があるのですか?
-c以外もあるんですか?
pythonを使っている方がいたらよろしくお願いします。

910名称未設定2017/03/01(水) 02:27:25.97ID:sHurp95n0
ターミナルでman python2.7くらいしろよ
COMMAND LINE OPTIONS
-c command
Specify the command to execute (see next section). This termi-
nates the option list (following options are passed as arguments
to the command).

911名称未設定2017/03/01(水) 21:58:22.85ID:9hpvaXhO0
>>910
ありがとうございました。
コマンドだからmanみればよかったのか
思いつかなかった、ごめんなさい。

912名称未設定2017/03/02(木) 00:20:38.96ID:C1xnLsj40
910はぶっきらぼうだけど優しい奴だな

913名称未設定2017/03/08(水) 22:22:26.01ID:59BN6uhm0
久しぶりにドロップレットち作ろうかと思ったら書き方忘れてたw
1時間もかかったよ、非効率化だー

914名称未設定2017/03/08(水) 22:29:50.60ID:nROONUNy0
あるあるw
自動化せずに手動のほうが早かったんじゃねってことけっこうあるけど
楽しかったし勉強になったから……と納得することにしてる

915名称未設定2017/03/09(木) 01:19:44.16ID:8eGoFs150
on drop droppedItems
end
とか書いてコンパイル通らず、ググったことあったわw

916名称未設定2017/03/09(木) 07:44:54.20ID:ZDRZpiq50
>>915
何が間違いなのか気がつくまで5秒だった。

917名称未設定2017/03/09(木) 11:55:01.56ID:r10Q2kpv0
表示しているウィンドウを画面の中央に移動するAppleScript教えてください

検索して以下を試してみたけどSierraでは動かなかったです・・・

tell application "Finder" to set ScreenSz to bounds of window of desktop --- ディスプレイの解像度を取得する。
tell ScreenSz to set {ScreenSz3, ScreenSz4} to {item 3, item 4}

tell application "System Events"
set ActApp to name of every process whose frontmost is true --- アクティブなアプリを取得する。
set ActApp to item 1 of ActApp
tell process ActApp
tell window 1
set CurentSz to size --- アクティブなウインドウの縦横のサイズを取得する。
set x to (ScreenSz3 - (item 1 of CurentSz)) / 2
set y to (ScreenSz4 - (item 2 of CurentSz)) / 2
set position to {x, y} --- ウインドウの位置を移動する。
end tell
end tell
end tell

918名称未設定2017/03/09(木) 12:37:59.16ID:299t67qt0
スクリプトメニューからやってみたら動くようだけどSierraで
Safari、TextEdit、Preview、Firefox等々

やってないけどAlfredとかからでも動くんじゃなあい?

919名称未設定2017/03/09(木) 13:51:49.49ID:IpO5L9OH0
https://support.apple.com/ja-jp/HT202802
GUIスクリプティングの許可は関係ないか

920名称未設定2017/03/09(木) 14:12:02.84ID:ddnQYnkB0
>>917
どうやって実行してんの?
エラー出てないなら、対象にしたいアプリが最前面になってないだけなんじゃないの

921名称未設定2017/03/09(木) 17:01:48.60ID:r10Q2kpv0
>>919
それオフになっていました
すみません、みなさん失礼しました・・・

922名称未設定2017/03/09(木) 17:54:48.94ID:IpO5L9OH0
ええんやで

923名称未設定2017/03/10(金) 02:48:26.40ID:QySajRz30
ファインダーで選択したものを処理する時に
フォルダでもファイルでも両方扱いたいとして
途中でexist of file とか exist of folder とか
扱いを少しづつ変えないといけない場合
if で条件分けして
2重にスクリプトを書けば出来るんだけど
何か上手いやり方とかコツってあるものですか?

よろしくお願いします。

924名称未設定2017/03/10(金) 02:53:44.79ID:QySajRz30
exist じゃなくてexists でした。すいません。

925名称未設定2017/03/10(金) 05:26:38.84ID:LHdLuZKq0
扱いを変える部分がどうなってるのか分からないとなんとも言えないけど。
共通する部分をハンドラ(関数)にする。
例)
tell application "Finder"
set selected_items to selection
repeat with current_item in selected_items
set message to ""
set item_name to my getname(current_item)
if class of current_item is folder then
set message to "フォルダ" & item_name & "には" & (count of files of current_item) & "個のファイルがあります"
else
set message to item_name
end if
display dialog message
end repeat
end tell

on getname(target_item)
return name of target_item
end getname

926名称未設定2017/03/10(金) 05:49:44.14ID:LHdLuZKq0
久々にApplescriptいじって結構忘れちゃってるんだけど
Finderのselectionてフィルタ参照できないんだっけ?

あとこういうのもダメだったっけ?
set aaa to {{name:"aaa1"}, {name:"bbb1"}, {name:"aaa2"}, {name:"bbb1"}} whose name starts with "aaa"

927名称未設定2017/03/10(金) 20:04:07.93ID:QySajRz30
>>925
ありがとうございます!
ハンドラ色々試して見ます。

repeatを使えば簡単に名前を取得出来るんですね。
知りませんでした。
これだけでも凄くスクリプトを短くする事が出来ました。
まだまだハンドラの前に勉強する事が色々がありそうです。
勉強になるサンプルありがとうございます。

928名称未設定2017/03/12(日) 12:29:51.83ID:gNaWOdyE0
set theFolder to choose folder
のようにフォルダを選択するときに、フォルダ検索をかける方法はないでしょうか?
右上の検索ボックスらしきものは表示されてますが、なにも入力できないし、
choose folderにも検索を有効にするオプションが見当たらないのですが……
(画像を大量のフォルダのいずれかに仕分けするような用途を想定しています)

929名称未設定2017/03/12(日) 12:40:22.13ID:yECG19Un0
入力できたけど

9309282017/03/12(日) 12:53:49.02ID:gNaWOdyE0
>>929
すみません。
tell application "Finder"
end tell
で囲まず処理してました。解決しました。ありがとうございます。

931名称未設定2017/03/13(月) 11:25:20.43ID:ke+gv2mg0
>>928
最初はとっつきにくいかもしれんけど、
rubyあたりでやった方が処理も速いし書くのもラクだよ。

932名称未設定2017/03/13(月) 12:11:46.66ID:gmYvW2HT0
>>931
ruby はchoose folder みたいな事が出来ちゃうのですか?

933名称未設定2017/03/13(月) 13:56:12.84ID:ke+gv2mg0
>>932
そこはASに任せればいい。逆に言えばそこだけAS使って後はrubyで書けばいい。

934名称未設定2017/03/13(月) 14:15:03.70ID:qRuWGLnq0
なんでそんな面倒なことしなくちゃならんの

935名称未設定2017/03/13(月) 14:51:56.63ID:FjeaRWoU0
まだ初心者さんみたいだから、
rubyとかの外部スクリプトをまぜるのは
少々難易度が高いかも…

do shell script "ruby -Ku -e 〜"
って直接AppleScript内に書く場合は、
ダブルクォートなんかのエスケープが面倒くさいし、
.rbファイルを実行するにしても、.app内にファイルを置くかどうかで
パスの書き方が変わってきたりして…

>>934
横レスだけど、AppleScriptでやるより処理が速いし、
正規表現でファイル名置換したりできるのは便利ですよ

936名称未設定2017/03/13(月) 15:38:50.36ID:ke+gv2mg0
>>934
慣れないうちはそう思うけど、慣れると逆にASで書く方がなにかと面倒くさい。

937名称未設定2017/03/13(月) 15:44:33.66ID:cpb4aFeg0
guiめも

CocoaDialog
Platypus
inquirer.rb
terminal-notifier

938名称未設定2017/03/13(月) 16:21:42.20ID:qRuWGLnq0
そんな速度求めてないんじゃないの
デバッグするにしてもどっちかで完結した方がいいっしょ

939名称未設定2017/03/13(月) 20:41:59.39ID:3TX8S6Vu0
ASの基本もおぼつかない人を捕まえてRubyを薦めるなんて、非効率化道へ誘導しようとしているとしか思えない

940名称未設定2017/03/13(月) 21:41:50.59ID:1rIqXrQG0
ruby使えるだけで威張れるからこのスレ好きです
これからもrubyを薦めます

941名称未設定2017/03/14(火) 06:16:41.81ID:SBhQzKOi0
時代はpython
>>939
ほんそれ。使う人によって効率は変わってくるっていう基本がわかってない

942名称未設定2017/03/14(火) 09:00:44.40ID:b/L7QY/Q0
いや、どうせどっちもわかってないんだから
rubyなりpythonあたりから覚えても一緒じゃん。

943名称未設定2017/03/14(火) 09:50:59.34ID:zmKBWmXS0
でもこのスレで話すのはノーサンキュー
語りたい奴は既存のスレ移動するか、自分でスレ立てろよ

944名称未設定2017/03/14(火) 10:08:29.73ID:gAede9ot0
いきなり出してきた>>931が全部悪い

945名称未設定2017/03/14(火) 19:35:52.25ID:2q4HZx6M0
仲良くすれば良いのに

946名称未設定2017/03/14(火) 19:38:31.45ID:bKIqYbDL0
見つめ合うと素直におしゃべり出来ないし

947名称未設定2017/03/15(水) 11:30:38.37ID:BUZg/Ykg0
言いたいことも言えないこんな世の中じゃ

948名称未設定2017/03/17(金) 15:04:25.07ID:zxHB61Ro0
白T

949名称未設定2017/03/19(日) 22:48:52.31ID:jSXW0ufR0
asが便利なのってマックリソース込みのファイル移動とかコピーだよな

950名称未設定2017/03/20(月) 10:59:37.70ID:K0kH9iJa0
そんなことにASなんか使う必要ないでしょ
10.4までなら MvMac/CpMac コマンドとか使えばいいし
10.4以降は mv/cp でよい
ASの特色はそういうレベルじゃない

951名称未設定2017/03/20(月) 13:21:14.05ID:E5J2xdb70
対象のファイルが複数のフォルダーに散在している場合や、
同一フォルダー内でも縦横無尽に散らばっている場合で、
それらをまとめて処理するようなときには、

コマンドファイルでも、
アップルスクリプトでも、
オートメーターでも、
自分の好みにあわせてどれでも利用すれば良いじゃない
もちろんコマンドファイルが処理速度などの点でいちばん有利なんだろうと思うけど、操作結果のフィードバックが目立たなさすぎるので不安な人もいるだろうし

確かにアップルスクリプトの特色はファイル操作だけじゃないけど、
だからといってファイル操作ごときにアップルスクリプトを使うな、コマンドを使え、というのはおかしくないかね?

952名称未設定2017/03/20(月) 13:28:37.64ID:tNIG8sod0
リソース込みの移動やコピーなんて
今はOS添付のコマンドラインなら普通に出来るから
リソースがどうのというのは前提条件が間違ってますよ
という指摘でしょう

953名称未設定2017/03/20(月) 15:16:23.72ID:K0kH9iJa0
>>931みたいにAS以外を押しつけてくる輩もいるから敏感になってるのかな
別にASを否定したつもりはないよ

>>952の補足してくれた(ありがとう)とおりで、使うな、ではなく
その条件では別に必要ない(使ってもよい)ということ
ASを推す気持ちはわかるけど理由が理由になってないから……

954名称未設定2017/03/20(月) 17:56:11.71ID:aJV3VVNJ0
他人がどんな言語選択するかなんて好き勝手すればいいじゃないか
そういうのは他所で議論してください

955名称未設定2017/03/20(月) 21:50:12.65ID:aRKmkiIl0
シェル使っていいならjava でもなんでもいいけど

956名称未設定2017/03/20(月) 22:27:46.15ID:JAHXB/GD0
こういうのが続くと
do shell scriptが絡んだ質問がしにくくなるなあ

必要に迫られてjava使ってみたけど
普段スクリプト言語ばかりだから
爆速に驚いたよ
スレチすいません

957名称未設定2017/03/21(火) 05:24:56.46ID:YDLfwtgb0
個人的にASの有難みを痛感したのは、WindowsでiTunesをスクリプト処理しようとした時だったな

958名称未設定2017/03/21(火) 09:22:39.42ID:y5Ac/8600
ファイルコピーやら移動やらするにも、ASだと色々と自分で処理を考えてやらなきゃいけないけど、
shell系なら色々と処理が用意されてるから圧倒的に楽に書けると思うが。

959名称未設定2017/03/21(火) 09:31:13.75ID:opEvhZsa0
>>957
Dougさんもいないしな

960名称未設定2017/03/21(火) 20:14:46.17ID:qE2C4R2r0
なんかようわからん流れ

961名称未設定2017/03/22(水) 06:00:01.60ID:lgNGAT+b0
68KやPowerPC時代はApple Script一択だったけど
今は選択肢増えたんだし
慣れたのでいいと思う

962名称未設定2017/03/23(木) 20:37:28.14ID:7HvdunIZ0
ただの慣れの問題だろ
ASだから考える時間が増えるとは一概に言えない

963名称未設定2017/03/23(木) 20:48:16.61ID:x+CSrVz+0
AppleScriptのファイルコピーって挙動があやしくない?
バッティングしたのかしらんがスルーされるときがある

964名称未設定2017/03/23(木) 21:17:39.69ID:7HvdunIZ0
そもそも、ここはapplescriptのスレなんだから
どの言語が使い易いとか便利とかは関係ないだろう
そういう話になるならobjcの方が楽に書けるし自由度もある訳だから比較にならない
しかしapplescriptの便利さをただのファイル移動としてしか理解されてない人間に
だよな、とか自信満々に書かれても「違うわ」と言いたくなる気持ちも分かる

965名称未設定2017/03/23(木) 23:23:39.87ID:Hx/4F5AA0
俺はファイル移動よりもpythonとか言ってるやつのほうがわかってない気がする。
とケチをつけるくせに更に勿体つけてみる。

966名称未設定2017/03/24(金) 00:43:30.67ID:753en8Rq0
>>963
AppleScriptというよりfinderが、じゃないの?

967名称未設定2017/03/24(金) 00:45:59.63ID:+ajPYzNh0
pythonとか言ってるやつってどれだよ

968名称未設定2017/03/24(金) 11:25:36.85ID:kAphza5X0
>>966
ファインダーなのかなぁ
普通同じフォルダに複数同時コピーしても処理するよね?もち別名ファイル

969名称未設定2017/03/24(金) 16:57:44.81ID:+ajPYzNh0
>>968
エラーは出ないの?
挙動怪しいは俺もそう思うけど、そういう場合たいていはエラー吐いてるけどなあ
まあエラーで原因がちゃんとわかるかっていうとそれは別の問題だけどw

970名称未設定2017/03/24(金) 21:58:16.85ID:7fFI+lWa0
もしファイルが既にあった場合の対処はしていないのかな?

ベースの部分が出来たーと思ってから
もしもの場合に備えていくと
スクリプトがどんどん膨らんでいくよね

971名称未設定2017/03/29(水) 10:17:01.61ID:iAZHQzNY0
初歩的で申し訳ないんですが
エラーログどこでみれますか?

972名称未設定2017/03/29(水) 10:53:58.42ID:Z1/VUf2c0
>>971
スクリプトエディタの下のほうに
「返された値」ってタブみたいのがあって、
実行したあとそこをクリックすると処理の流れは追えるけど、
それではダメ?

あとは、

log 変数
log "ここまではちゃんと動いてる"

みたいに、log文を自分で仕込んでチェック
(返された値のところに表示される)

973名称未設定2017/03/29(水) 20:04:44.19ID:l0pCiKKj0
>>971
メニューバー>ウインドウ>ログの履歴 というのもある

974名称未設定2017/03/29(水) 21:34:41.79ID:cKhIeBfJ0
最近気が付いたけど
tell application の中でdo shell scriptを実行すると
ログ見るとエラーメッセージが出てるのね
問題ないらしいけど

975名称未設定2017/03/30(木) 00:38:44.03ID:TSN5GLbj0
>>974
applicationに対してdo shell scriptの命令を送って、
それに答えられないからtellブロックの外で命令を実行、
みたいな動作だよね

だったら、do shell script命令に応えられるアプリが
あるってことなのだろうか…

976名称未設定2017/03/30(木) 16:59:47.19ID:7Vur2NxS0
>>974-975
そういう仕様だから仕方ないとはいえちょっと気持ち悪いよね

977名無し募集中。。。2017/03/31(金) 01:14:47.24ID:Z+59Vv5J0
tell me to do shell script "..."
ってやるとエラー出ない

978名称未設定2017/03/31(金) 01:29:26.65ID:fsk4tUbD0
TN2065
Does it make a difference which application I tell to do shell script?
For the most predictable results, always put do shell script calls outside of any tell block, or use tell me. In
practice, it usually doesn’t matter unless 以下省略

979名称未設定2017/03/31(金) 01:57:25.58ID:67Umxyuk0
あー、にゃるほど。
最初からtellブロックの外(スクリプトオブジェクト)に向かって
do shell scriptメッセージ送っちゃえばいいわけか。

thx
勉強になった。

980名称未設定2017/04/01(土) 08:11:10.41ID:Pa22lWRm0
最初から do shell script の解釈が tell me で固定されてればいいだけの話なんだけどね
こんなんよそに tell できたとしてもトラブルの種にしかならないし

981名称未設定2017/04/01(土) 12:44:55.72ID:F8/5NUFI0

982名称未設定2017/04/01(土) 13:00:04.08ID:+bEEMwk80
>>981
乙ぱい

983名称未設定2017/04/01(土) 13:12:52.80ID:Th6oGGes0
乙です
たまには新機能付けてくれれば盛り上がるのに

Automator にある選択テキストの取得
みたいなの付けてくれるとか
まあキーストロークで行けるんだけど

984名称未設定2017/04/02(日) 00:52:36.56ID:jddYfO370
一応OSメジャーアップデートのたびに地味に新機能ついてるけど、知ってた?
ぶっちゃけもうASはほとんど完成されてるし、それ自体の機能より
AS未対応のアプリが対応するとかの方がインパクトある気がする

985名称未設定2017/04/02(日) 00:56:32.73ID:K0logwwW0
知りませんでした。ゴメンなさい。

986名称未設定2017/04/02(日) 01:50:24.64ID:LTdBmP/H0
OSXになってゴッソリ機能が減った印象だったんだけどどうなんだ
record機能が秀逸だった記憶しかないけど

987名称未設定2017/04/02(日) 07:06:14.09ID:jddYfO370
印象だけで語るのいくない
しかもclassicの記憶じゃちょっと古すぎでしょ……
適当にググるかドキュメント当たって

https://developer.apple.com/library/content/releasenotes/AppleScript/RN-AppleScript/

988名称未設定2017/04/13(木) 17:30:25.52ID:xzlkRX2p0
あっぷる

989名称未設定2017/04/13(木) 18:59:02.00ID:UVICUHCG0
ぱい

990名称未設定2017/04/13(木) 20:57:48.12ID:+p8dZwLu0
次立ってるしうめまっしょい

991名称未設定2017/04/14(金) 00:58:59.92ID:ueTGfWAJ0
applescript://com.apple.scripteditor?script=say%20%22%E5%9F%8B%E3%82%81%22

992名称未設定2017/04/14(金) 01:05:26.83ID:e/21lBVI0
repeat 9 times
display dialog "うめ" buttons {"おk"}
end repeat

993名称未設定2017/04/14(金) 01:15:35.68ID:MoWkfgnX0
repeat 8 times
display dialog "うめ" buttons {"おk"}
end repeat

994名称未設定2017/04/14(金) 01:29:10.19ID:ZmBUMfxw0
repeat while resNum < 1000
display dialog "Ume" buttons {"OK"} default button 1
end repeat

995名称未設定2017/04/14(金) 02:04:44.78ID:eaWvlN6o0
>>991は英語ボイスにしとると鳴らんからこれで

say "Woo-meh"

996名称未設定2017/04/15(土) 18:50:20.05ID:vi5T35Fd0
try
say "うめ"
on error
say "Go to next"
end try

997名称未設定2017/04/15(土) 20:14:30.40ID:xurLJNJL0
applescript://com.apple.scripteditor?script=open%20location%20%22https%3A%2F%2Fegg.2ch.net%2Ftest%2Fread.cgi%2Fmac%2F1491018171%2F%22

998名称未設定2017/04/15(土) 21:44:06.10ID:s3UVqvQw0
tell me to quit

999名称未設定2017/04/15(土) 22:31:56.27ID:PpLFiK4M0
on quit

end

1000名称未設定2017/04/15(土) 22:32:19.49ID:PpLFiK4M0
on quit
display dialog "次スレは>>981です。" buttons {"OK"} default button 1
continue quit
end quit

10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 1211日 0時間 41分 34秒

10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。