AppleScript アップルスクリプト 質問、発表 6at MAC
AppleScript アップルスクリプト 質問、発表 6 - 暇つぶし2ch2:名称未設定
13/12/22 05:43:56.73 5PKBbx/h0.net
('仄')パイパイ

3:名称未設定
13/12/22 22:55:07.58 +aPbluVJ0.net
ここ数年まったく書いてないなAS

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

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

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

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

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

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

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

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

8:名称未設定
13/12/31 10:06:45.81 w3RedxCD0.net
>>7
レスありがとう。

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

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

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

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

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

12:名称未設定
14/01/02 10:31:11.84 sFgAgMLA0.net
script初めだ

display dialg "Happy New Year!!!"

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

13:名称未設定
14/01/02 10:33:47.47 sFgAgMLA0.net
× dialg
○ dialog

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

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

15:名称未設定
14/01/06 19:04:31.61 7CI/xVnp0.net
今年もよろしくお願いします。
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:名称未設定
14/01/06 23:03:17.53 OUsnDFhy0.net
>>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:名称未設定
14/01/06 23:49:20.98 7CI/xVnp0.net
>>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:名称未設定
14/01/07 00:25:10.25 WILu6W1O0.net
>>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:名称未設定
14/01/07 03:56:23.30 A9XxL9bQ0.net
あけましておめでとうございます。
早速質問なんですが。
変数名を出力する事は可能でしょうか?

例えばこうすると、
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:名称未設定
14/01/07 04:19:36.79 A9XxL9bQ0.net
失礼 アンパサンドの文字参照がダメなようで全角で
log tmp1 & "_" & tmp2 as text

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

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

22:名称未設定
14/01/07 12:37:03.68 EjQxpbCu0.net
>>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:名称未設定
14/01/07 12:38:02.99 EjQxpbCu0.net
>>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:名称未設定
14/01/07 13:21:10.16 EjQxpbCu0.net
>23
自己解決しました。すみません m(_ _)m

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

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

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

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

26:名称未設定
14/01/08 20:23:55.36 99yykXTN0.net
>>25
変数には名前はないよ。

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

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

最初の行に
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:名称未設定
14/01/11 01:25:24.03 bFFRZv4H0.net
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:名称未設定
14/01/11 10:18:55.69 kmKDcWFPP.net
初心者にイラレほかアドビの主戦級ってけっこう厳しいと思うですの。本当に必要性があれば書くけれど、
私の戦場ではいまだにその需要がない。たぶんイラレで自由自在にスクリプト書ければ黒帯でしょう。

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

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

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

31:名称未設定
14/01/11 17:47:10.22 kmKDcWFPP.net
>>30
ハンドラ

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

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

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

32:名称未設定
14/01/11 19:29:50.94 QDclpEY40.net
>31
励ましていただき感謝です。

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

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

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

たけうちとおるさんのハンドラを利用してオーバーフローしたテキストに行間を計算させて
必要なテキストボックスのオーバーフローの分を自動計算させる事にこぎ着けました。
まだ改善の余地はありますがなんとか思惑通りになりほっとしています。
今のところ別textframeの行間も�


34:齒盾ノ動いているようなので指定したtext frameだけの行間を調整できるようにしたいと思います。 アドバイスありがとうございました。引き続きご教授賜りますようお願いいたします。



35:名称未設定
14/01/11 23:13:33.10 QDclpEY40.net
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

36:名称未設定
14/01/11 23:14:36.55 QDclpEY40.net
ハンドラはたけうちとおるさんのを参照しています
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

37:名称未設定
14/01/11 23:27:23.61 bFFRZv4H0.net
とりあえずユーザー定義ハンドラの使い方の例

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

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

38:名称未設定
14/01/11 23:30:57.28 bFFRZv4H0.net
>>34
>if my overflow(tFrame) then
の後の
>tell every text frame

>tell tFrame
で良いよ

39:名称未設定
14/01/11 23:33:03.24 QDclpEY40.net
追伸
tell text frame 1~18ぐらいの範囲でtext frameが指定できるようです。

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

40:名称未設定
14/01/11 23:34:54.02 QDclpEY40.net
>34
>>tell tFrame
>で良いよ

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

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

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

42:名称未設定
14/01/11 23:39:53.28 bFFRZv4H0.net
>>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

43:名称未設定
14/01/11 23:54:58.99 QDclpEY40.net
>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

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

44:名称未設定
14/01/11 23:59:00.58 QDclpEY40.net
ちなみに環境は
osx 10.9.1
Applescript 2.6
illustrator CC
です

45:名称未設定
14/01/12 00:04:37.80 4upz722c0.net
>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

46:名称未設定
14/01/12 00:23:03.89 yPrbZhDQ0.net
>>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

47:名称未設定
14/01/12 01:14:51.44 yPrbZhDQ0.net
あー何度もごめん。
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

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

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

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

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

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


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

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

52:名称未設定
14/01/12 22:26:26.36 4upz722c0.net
行間を自動にてつめるスクリプトですが改良の余地がまだたくさんあるようです。
個人的にはこのスクリプトで自分が自分が目指していたのができとても喜んでいます。
下記に教えてくださった皆様の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

53:名称未設定
14/01/12 22:27:20.26 4upz722c0.net
たけうちとおるさんのハンドラをそのまま利用しています。
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

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

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

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

55:名称未設定
14/01/13 03:29:47.81 XwnsQAAS0.net
コピペで動くんじゃないか

56:名称未設定
14/01/13 04:10:03.05 VPcx8yeO0.net
>>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でも使える方法

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

58:名称未設定
14/01/14 16:18:00.69 VipRDOQb0.net
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

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

60:名称未設定
14/01/14 22:03:45.56 VipRDOQb0.net
>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

61:名称未設定
14/01/14 22:57:38.60 VipRDOQb0.net
>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

62:名称未設定
14/01/14 23:30:19.11 VipRDOQb0.net
>58
>だとしたら成長の跡が見られない。

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

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

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

63:名称未設定
14/01/15 00:17:20.17 BLw1nVYH0.net
凄いね

64:名称未設定
14/01/15 00:25:21.78 a7YA5/rX0.net
なんだかよくわからないなあw

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

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

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


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

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

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

68:名称未設定
14/01/15 11:54:31.85 UeMn6f2J0.net
見えないレス多すぎ

69:名称未設定
14/01/15 12:03:57.04 /LtsrHqK0.net
あたまのわるいやつおおすぎ

70:名称未設定
14/01/15 12:43:41.67 /LtsrHqK0.net
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"}
これってどうだろうか

71:名称未設定
14/01/15 12:56:37.57 rX7GSZ3z0.net
58もしょーもないけどあんたもぶちまけ過ぎ

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

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

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

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

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

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

77:名称未設定
14/01/15 15:14:28.03 /LtsrHqK0.net
>75
冗談さ

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

79:名称未設定
14/01/15 15:21:21.85 /LtsrHqK0.net
>77
>冗談では済まない。済まないので「すみません」という言うべきだなw
すみませんw

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

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

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

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

84:名称未設定
14/01/15 17:35:06.21 /LtsrHqK0.net
>81



85:知らないお前に教えてあげるよ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



86:名称未設定
14/01/15 18:20:21.61 NM6x1RRT0.net
笑った。なに続いてレスしてんの

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

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

いじょーっ!

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

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

88:名称未設定
14/01/15 21:17:59.97 /LtsrHqK0.net
ちなみにテキスト全体への書体変更は下記のようです。書体ポイント変更は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

89:名称未設定
14/01/15 21:21:26.30 /LtsrHqK0.net
まとめしたのは。
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

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

91:名称未設定
14/01/15 21:32:17.24 rKJergxG0.net
うざ

92:名称未設定
14/01/15 21:48:55.51 /LtsrHqK0.net
幼稚園児w

93:名称未設定
14/01/15 21:49:44.11 NM6x1RRT0.net
>>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

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

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

96:名称未設定
14/01/15 22:03:38.31 IW429DUw0.net
お前が育ててんじゃねーか

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

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

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

100:名称未設定
14/01/22 23:06:55.85 Lh31v/xG0.net
>>97
VLCでISOマウントしてみれるけど、、、

101:名称未設定
14/01/22 23:27:39.24 LlN2JipJ0.net
DVDプレーヤーで普通に見られるけど

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

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

104:名称未設定
14/01/23 10:44:23.27 3KX4Dz8y0.net
AppleScriptと関係ないじゃん
無理矢理このスレに書くなよ

105:名称未設定
14/01/23 10:59:09.90 EF80bs4x0.net
てか自作アプリ作ってんのに、なんでAutomatorで関連づけしてんのか意味分かんないwww

106:名称未設定
14/01/23 16:55:33.79 aE6WVZdy0.net
発表スレなのに、発表すらしない。チラウラにでも書いとけ。

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

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

108:名称未設定
14/01/23 18:23:43.93 chQ4kKQs0.net
>>105
横から、スマンよ
こんな手があったなんて、初めてしったわ。



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

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

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

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

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

こんなところを皆様にご活用いただければと


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



112:97
14/01/23 22:40:56.89 iJWTvZ5CP.net
Automatorの件いいわすれたorz

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

113:名称未設定
14/01/23 23:08:22.18 98ELkxSY0.net
で、>>99はなぜスルー?

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

115:名称未設定
14/01/24 00:23:30.19 n2bhRx060.net
なんだ結局VLC使うのか、自作アプリとか言うのに期待したのに

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

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

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

117:名称未設定
14/01/24 12:16:54.30 9KMDdAgK0.net
>スクリプト関係ない話なんだけど、

なら書くなよ

118:名称未設定
14/01/24 13:10:36.93 DUlBWNd20.net
っていうオレかっこいいっw

119:名称未設定
14/01/24 14:05:11.89 pr+p7JhP0.net
このスレ面白い!

120:名称未設定
14/01/24 14:06:16.14 pr+p7JhP0.net
誤爆しました

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

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

123:名称未設定
14/01/24 20:51:33.47 /Vqh8AiQ0.net
このスレで続ける話じゃねーだろが

124:名称未設定
14/01/25 20:41:18.12 kAuE/WAS0.net
全く進まないとか無駄な1行レス繰り返すよりはいいんじゃない?

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

126:名称未設定
14/01/28 13:30:27.29 PsLXEu1h0.net
っていう俺が凄腕スクリプターってか?

127:名称未設定
14/01/28 16:56:05.43 YtFiVtks0.net
本当に凄腕なら世話好き以外こんなとこ来る必要ないからな

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

129:名称未設定
14/01/28 22:30:45.45 dF9LzVWf0.net
ワシも若い頃は人工衛星を制御するAppleScriptを書いてたもんじゃよ

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

131:名称未設定
14/01/28 23:24:20.61 diN/bixn0.net
これ知っているか?
set the justification of paragraph 1 of areaText to full justify

132:名称未設定
14/01/28 23:32:26.32 gn


133:uIluL20.net



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

135:名称未設定
14/01/29 16:47:23.09 lxXBhmLk0.net
ブックマークレットでなんとかなるのでは
ページ見ないとわからんけど

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

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

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

139:名称未設定
14/01/29 20:48:00.78 doOQC9kw0.net ?2BP(0)
sssp://img.2ch.net/ico/revo.gif
PHPを使った方がよいのでは?

140:名称未設定
14/01/29 20:53:10.82 yPBhJ8sPP.net
>>135
そんなスレチな回答認めないよっっっっっ!!

141:名称未設定
14/01/29 21:03:20.03 9ZdU+vJPP.net
ほかのマシンから mysqlコマンドでつなげられるのかい。

142:名称未設定
14/01/30 03:36:15.92 7sYynt8F0.net
リモート AppleEventとdo shell scriptでなんとかなるのでは?
ページ見ないとわからんけど

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

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

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

145:名称未設定
14/01/30 23:46:23.42 zzqchskQP.net
>>140
なるほど。AppleEvent送信するにも受け手側が必要か。
で引数渡してそい�


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



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

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

サーバー側
property cmdlist : {"curl 'URLリンク(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のコマンドリストって形にしてみたけど
細かい命令書き直せば普通に使えるんじゃねリモート
環境設定の共有でリモートアップルイベントオンにしてユーザー登録しといてね。
ちなみにタブを全角スペースにしてるからコピペ注意してね

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

150:名称未設定
14/01/31 08:26:54.35 uWeNXE6JP.net
>>143
あ、書き忘れた。ありがとう!!!!

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

152:名称未設定
14/02/08 16:08:10.74 tRhLBcwSP.net
>>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で書いてるので


153:結果どうなるかは知らない。



154:名称未設定
14/02/08 16:48:59.19 3lSTg7G/0.net
>>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にスペースがない

155:名称未設定
14/02/08 17:40:10.80 cWG4pfK10.net
GetFileInfo ってXcode、の追加のCLIツール、入れないと無いんじゃないの

156:名称未設定
14/02/08 18:05:51.02 iewnsadv0.net
例だろ

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

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

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

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

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

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

160:名称未設定
14/02/08 20:05:48.20 3lSTg7G/0.net
>>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 --コマンド


161:実行 else --jpegイメージ以外はパス end if end repeat end open --作って思ったけどドラッグ&ドロップはデバッグしづらくて作るの面倒いね



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

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

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

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

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

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

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

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

167:名称未設定
14/02/08 23:13:29.55 3lSTg7G/0.net
>>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

168:名称未設定
14/02/09 05:17:21.79 G4uzaK290.net
>>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

169:名称未設定
14/02/09 05:38:49.19 G4uzaK290.net
文字数制限厳しくて変な英語に変えたりコメントとかエラー処理とか色々端折ってます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とかの英語以外での環境での英語表示とかどうやるんだっけ?
これだと環境依存で気持ち悪いなー

170:名称未設定
14/02/09 07:12:57.69 Eetg+bKV0.net
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)

171:名称未設定
14/02/09 08:47:41.45 G4uzaK290.net
>>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 ""



172:end try if itemkind is "public.jpeg" or itemkind is "public.png" or itemkind is "public.tiff" then に変更します。 あと set OutPath to Convfolderpath で無駄に変数増やしちゃってるけど、文字数制限で処理を徐々に消していった名残なので適当に名前変えて消してくださいorz ありがとうございました!



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

174:名称未設定
14/02/15 08:47:51.53 mqfLIl2K0.net
復旧

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

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

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

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

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

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

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

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


181:名称未設定
14/02/22 04:28:26.91 7VQSd7JC0.net
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_

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


183:、、、 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



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

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

古いOSのGC/ARCは
URLリンク(piyocast.com)
らしいよ。Xcodeでの話しのようだけどな

185:名称未設定
14/02/26 05:35:05.90 6RYVbRxr0.net
>>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だけでもスクリプタブルなアプリ作れるってことに気づいた

186:名称未設定
14/02/28 13:09:21.15 /MfpeEpD0.net
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をオンにしないとメモリがめちゃく


187:ちゃ消費されちゃうみたいだから、10.8以前は、GCをオンにするしかないと言われているけど、 ドラッグイベント関連でもGCオフで落ちる事があったから、もしARCでクラッシュが改善されてないならGCオンにするか、 ほとんどのコードをobjcで書かないと行けないことになり、だったら最初からobjcで書けよってことになっちゃう 試しにGCオンで 音を扱う部分のコードを分けてcompilerFlagを-fno-objc-gcにして見たけどGCエラー表示出ました。 GCは公式で使うなって言われてるだけあって、エラーが改善される事は、ないだろうな ただこのエラー表示での実害は今の所ないのが救い applescriptで開発してる方はあまりいないと思うけど、今後互換性確認で同様のエラーが出た時の、参考になれば、、、 GCエラーに関して言えば、もうapplescriptの範疇外なのでこれ以上検証しても仕方なさそう むしろクラッシュの方が問題 Mt.lion機作ろうかな



188:名称未設定
14/03/26 18:20:55.71 8j8sFi4/0.net
display notification "sage" with title "Mavericks" sound name "beep"

189:名称未設定
14/03/29 09:04:02.90 NNl60dr90.net
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にてリスト表示の幅を調整するにはどうしたらいいのでしょうか?
アドバイスなどよろしくお願いします。

190:名称未設定
14/03/29 16:08:35.33 e5Jihre30.net
とりあえず動いた
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

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

192:名称未設定
14/04/15 18:37:52.52 fqFcy


193:d/l0.net



194:名称未設定
14/04/15 18:43:07.83 fqFcyd/l0.net
>>182
×
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)

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

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

197:名称未設定
14/04/15 20:07:12.17 fqFcyd/l0.net
>>185
×前にdelay入れて
○前のdelay入れて

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

198:名称未設定
14/04/15 20:12:34.56 SZkyhnNr0.net
>>185
説明してませんでしたが、
TotalTerminalを使って
Terminalを呼び出してもactivateしないようにしています

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

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

200:名称未設定
14/04/15 23:01:57.14 WdFslrQw0.net
この形でもよければ(うちは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

201:名称未設定
14/04/15 23:48:23.27 SZkyhnNr0.net
>>188
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

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

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

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

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

205:名称未設定
14/04/26 18:19:15.04 HG5IzbC


206:x0.net



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

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

209:名称未設定
14/05/14 22:28:21.93 UQ+SYzM/0.net
>>196
できないとは

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

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

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

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

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

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

214:名称未設定
14/05/16 09:34:00.84 LWnNIW3E0.net
>>200
簡単な方法だと
xibでArray Controller追加して
Content Arrayにリスト型のproperty�


215:inding 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を変数名にしたレコードを追加するだけでも、列に追加できたと思う でも違うクラスで管理した方が動的に管理しやすいからおすすめ



216:名称未設定
14/05/16 21:56:27.55 DGo5mYXH0.net
なんかASOCでsandboxできるようになってた。俺もMacAppデビューか?

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

218:名称未設定
14/05/18 07:28:20.66 SZDwTVIE0.net
GUIスクリプトでいけんじゃね?

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

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

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

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

(続く)

222:名称未設定
14/05/29 20:00:20.21 8Urv7sLM0.net
再現スクリプト
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:

(続く)

223:名称未設定
14/05/29 20:01:12.23 8Urv7sLM0.net
(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.mai


224:n-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 (以上)



225:名称未設定
14/05/30 16:41:48.89 w2GSLBfm0.net
上記で質問した者ですが、とりあえず解決できたっぽいです

参照ページ URLリンク(macscripter.net)
参照スクリプト URLリンク(macosxautomation.com) の 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
(続く)


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