5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :名称未設定:2009/10/21(水) 21:12:36 ID:uUZ2pM5W0
質問、発表どっちでもスレ。

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

■参考
AppleScript ヘルプ
help:///Library/Documentation/Help/AppleScript.help
発表まとめ (過去ログなども)
http://members.at.infoseek.co.jp/obto/script/script.html
MacWiki - AppleScript
http://macwiki.sourceforge.jp/wiki/index.php/AppleScript
AppleScript PARK
http://www.tonbi.jp/AppleScript/
AppleScript Lab.
http://www.drycarbon.com/applescript/
TN2065: do shell script
http://developer.apple.com/jp/technotes/tn2065.html
http://developer.apple.com/technotes/tn2002/tn2065.html

■過去スレ
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/

2 :名称未設定:2009/10/21(水) 21:42:06 ID:ocbA/J+e0
1000

3 :名称未設定:2009/10/21(水) 22:34:35 ID:/4hh7cRf0
これも
http://www.macosxautomation.com/applescript/

4 :名称未設定:2009/10/22(木) 12:04:21 ID:MhezUP1i0
これなんかもいいと思います
http://docs.info.apple.com/help/guide.html?path=AppleScript/2.1/jp/

5 :名称未設定:2009/10/22(木) 17:33:50 ID:3Wm19SWL0
>>1のTN2065だけど、日本語訳が更新されてないんだよね

何故かこんな所に最新版があったり
http://edr.euro.apple.com/jp/technotes/tn2002/tn2065.html

6 :名称未設定:2009/10/23(金) 04:20:05 ID:M4Mkl48i0
>>5

ここにもあるよ
http://developer.apple.com/jp/technotes/tn2002/tn2065.html


7 :名称未設定:2009/10/23(金) 18:04:17 ID:ecoOVYt60
ノートとかだと付いてないキーのkey codeをメモ

tell application "System Events"
key code 115 -- Home Key
key code 119 -- End Key

key code 116 -- Page Up Key
key code 121 -- Page Down Key

key code 114 -- Help Key
key code 117 -- Delete Key
end tell

8 :名称未設定:2009/10/23(金) 21:40:21 ID:AdyhbGmJ0
Help以外はfnキーでできるがな

9 :名称未設定:2009/10/23(金) 22:00:00 ID:EXOg9vn20
>>8
おお上下左右でできるのか。知らんかった。情報サンクスです。

あと、もう一個メモ
sayでちょっとした通知をしてる人は
SayKana
http://www.a-quest.com/aquestalk/saykana/
使うと片言の日本語でしゃべってくれるので英語が苦手な人だと
こっちのほうがわかりやすいかも。
do shell script "/usr/local/bin/saykana 'さぎょうがおわりました'"

10 :名称未設定:2009/10/25(日) 17:15:42 ID:9NcU7VJG0
配布するソフト用だと、SayKanaの配布の方法や、スクリプト内部で日英両方のメッセージを使い分ける必要があり、面倒。
標準環境で日本語が話せるようになると事情も変わるのだが。
SayKanaそのものは良いソフトだと思うけどね。

11 :名称未設定:2009/11/04(水) 01:25:19 ID:YebUpt+Y0
スノレパにしたらタイガー時代のスクリプトで動かないのがいくつも出てきた。
めんどくせー

12 :名称未設定:2009/11/04(水) 02:18:38 ID:ZasXH3dx0
そういやスノレパでFinderがCocoa化したから、
下手したらFinderのスクリプト全滅かもと思ってたけど今のところ問題なし。
よくやってくれたと言いたい。

13 :名称未設定:2009/11/07(土) 01:11:12 ID:C+IHFsWh0
Unibody 13" Leopardで、Finderのウィンドウサイズと場所を固定させるのにAppleScriptを使っています。

これに、「Toolbarを出しているときは非表示に、また、閉じているときは表示させる」
の動作を追加したいのですが、どうにも上手くいきません。

どなたか、手助け頂けないでしょうか?

現在のスクリプトは次レスのものです。

14 :名称未設定:2009/11/07(土) 01:12:38 ID:C+IHFsWh0
set display_x_size to 604
set display_y_size to 800

set cur_app to (path to «constant afdregfp» as Unicode text)
if cur_app ends with ":Finder.app:" then
set Finder to true
tell application "Finder"
set tool_vis to toolbar visible of front window
end tell
else
set Finder to false
end if

15 :名称未設定:2009/11/07(土) 01:14:10 ID:C+IHFsWh0
続き
tell application cur_app
tell front window
set {x1, y1, x2, y2} to (get bounds)
if Finder then
-- Finder uses inside of frame for bounds, not counting toolbar
if tool_vis then
set x1 to 4
set y1 to 44
else
set x1 to 4
set y1 to 44
end if
-- Explicit y size of your display
set x2 to display_x_size - 0
set y2 to display_y_size - 0
else
set x1 to 4
set y1 to 22
set x2 to display_x_size
set y2 to display_y_size
end if
set bounds to {x1, y1, x2, y2}
end tell
end tell

16 :名称未設定:2009/11/07(土) 10:56:18 ID:eqlwLIV70
>>13-15

if toolbar visible of front window is true then
set toolbar visible of front window to false
else
set toolbar visible of front window to true
end if

を前半のtell app "Finder"〜end tellの中に入れる。
toolbar visibleはFinderだけしか認識しないので
共通化してる後半に入れるのは無理だろう。

17 :名称未設定:2009/11/07(土) 22:15:30 ID:1PKcoc5B0
書き込みたいのに規制中

18 :名称未設定:2009/11/07(土) 22:19:46 ID:1PKcoc5B0
あ、書けた。

constant afdregfp って初めて見たw
でも Finderをactivateすればいいんじゃないの??

Toolbarと関係なくてすまないです

19 :名称未設定:2009/11/08(日) 00:19:57 ID:2L5a405I0
ファインダー以外のアプリケーションの
ウィンドウサイズを変える意図がよく分からないのだか?

20 :名称未設定:2009/11/08(日) 00:36:50 ID:2L5a405I0
ちょっと書いてみた(自分で分かりやすいようにいくらか要約した)

property x_size : 604
property y_size : 800

--tell application "Finder" to activate
set currentApp to path to frontmost application as text
if currentApp ends with ":Finder.app:" then
try
tell front window of application "Finder"
set toolbarVisible to toolbar visible
if toolbarVisible then
set {x1, y1} to {4, 44}
else
set {x1, y1} to {4, 44}
end if
set toolbar visible to not toolbarVisible
set bounds to {x1, y1, x_size - 0, y_size - 0}
end tell
end try
else
try
tell front window of application currentApp
set {x1, y1} to {4, 22}
set bounds to {x1, y1, x_size, y_size}
end tell
end try
end if

21 :13-15:2009/11/08(日) 01:20:04 ID:oVOUizhY0
>>16
>>19-20
おおっ〜!!ありがとうございます!!!
あれほど苦労して出来なかった事が、一発で出来ました!

実はプログラミング知識ゼロなので、海外サイトで見つけたコードを無理矢理自分用に手直しして
使っていて行き詰まってたんです。さすがココは職人揃いですね!!

ちなみにファインダー以外のウィンドウサイズを変える意図ですが、
右にオンライン辞書、左にテキストエディタを置いて、手元の英文資料を翻訳するとか、
Finder←→別アプリ間のファイル受け渡し作業をするとか、色々使っています。

なので、本当はCarbonとCocoaとJavaアプリ共通で使えるスクリプトがベストなのですが、
ひとまずお二人の回答に大満足です。

22 :名称未設定:2009/11/09(月) 18:36:37 ID:Gm8Slcir0
Illustrator で埋め込まれた画像のプロパティについてなのですが
matrixの概念がよくわかりません

やりたいことは、傾いたり拡大縮小された埋め込み画像を正寸にすることです
リフレクトされたりしている場合の処理が難しくてよくわかりません
sinθやcosθをどうすればいいのやら?

いろいろな所から参照にしたスクリプトを書きましたので以下に記します

23 :名称未設定:2009/11/09(月) 18:46:54 ID:Gm8Slcir0
tell application "Adobe Illustrator"
activate
set myItem to item 1 of selection
if (class of myItem) = raster item then
tell myItem
set theMatrix to matrix of it
set mv_a to mvalue_a of theMatrix
set mv_b to mvalue_b of theMatrix
set mv_c to mvalue_c of theMatrix
set mv_d to mvalue_d of theMatrix

set HScale to ((mv_a) ^ 2 + (mv_b) ^ 2) ^ 0.5
set VScale to ((mv_c) ^ 2 + (mv_d) ^ 2) ^ 0.5

set theAngle to ((do javascript "Math.acos(" & mv_a / (HScale as real) & ");") as real) * 180 / pi

set identitymatrix to concatenate rotation matrix (get rotation matrix) angle theAngle
transform using identitymatrix

set theMatrix to matrix of it
set scalematrix to concatenate scale matrix (get scale matrix) horizontal scale
(1 / (mvalue_a of theMatrix) * 100) vertical scale (1 / (mvalue_d of theMatrix) * 100)
transform using scalematrix
end tell
end if
end tell


24 :名称未設定:2009/11/10(火) 03:53:42 ID:4E5n2lr30
正寸に戻すだけなら難しくないよ
tell application "Adobe Illustrator"
set thePosition to position of selection of document 1
set matrix of selection of document 1 to {mvalue_a:1.0, mvalue_b:0.0, mvalue_c:0.0, mvalue_d:-1.0}
set position of selection of document 1 to {0, 0} --なぜか一回こうしないとうまくいかない
set position of selection of document 1 to thePosition
end tell
ちゃんと検証はしてないけど、こんだけでいけるはず。

最近、といってもちょっと前だったかな
マトリックス関係の検索ワードでオレッチのサイトに来てくれたのは君かな?
たまたま昨日ログを見てて、だれかマトリックス関係で調べものをしてるんだなと思ってた。
もう何年も更新してないような恥ずかしい三日坊主のサイトですが...

25 :名称未設定:2009/11/10(火) 04:00:56 ID:axUjfHrY0
サイトについて言及されてるとき以外は「ログ見た」云々の発言はあまりしないほうがいいよ

26 :名称未設定:2009/11/10(火) 04:31:53 ID:4E5n2lr30
すまん、以後気をつける
あんなんでも誰かの役に立ってるのかな?と思って

普段あんまり実感がないもんだから

27 :名称未設定:2009/11/10(火) 19:08:48 ID:SRWO3Tmh0
>>24
>>22-23 です
それ多分私ですねw
とはいえいろいろ拝見していたのでどのサイトかはわかりませんが…

スクリプトありがとうございます
あれからいろいろ調べて
invert matrix (matrix)で得たマトリックスをtransformで変形させれば
傾きと天地左右の比率が修正されるようなのはわかりました

それにしてもマトリックスは難しいですね
誰が得をするのか、と

28 :名称未設定:2009/11/10(火) 20:13:21 ID:4E5n2lr30
確かに難しい
個々の数値をいじる分には簡単そうだけど、複合すると途端に難しくなる。
おれもマトリックスから現在の座標を割り出す方法が全くわからん。

熱意を持って調べれば、わかるようになるかもしれんけど

29 :名称未設定:2009/11/10(火) 20:57:23 ID:SRWO3Tmh0
たびたびすいません
>>24 のスクリプトですがリンク画像と埋め込み画像では挙動が違いますね?
埋め込み画像だと天地がひっくり返ってしまいます

調べた結果「mvalue_d」を「1.0」にすればいいようです
ということは「mvalue_c」も何かあるかもしれませんが、値がゼロなので未解決です

あと位置がズレてしまう件はtx,tyをうまく使えば解決出来そうですが難しそうですね

ホントに熱意を持って調べないと、わかりませんw

30 :名称未設定:2009/11/21(土) 12:06:01 ID:vHDyoopZ0
<チラ裏>なんか10.6にしてからSystem Eventsのスクリプトの反応が悪くなったなあ</チラ裏>

31 :名称未設定:2009/11/21(土) 20:08:25 ID:YHghLSQ30
なぜ tell チラ裏 to で書かない

32 :名称未設定:2009/11/21(土) 20:20:46 ID:EZeYhHXO0
そういえばなんでも無いプロパティの取得なのに、
2分かかってタイムアウトする事があるなあ

あと一息にコード書くと何故かそんなUI Elementは無いってなエラーが出て、
一旦application processを呼ばないとダメな事があったり

33 :名称未設定:2009/11/22(日) 11:56:56 ID:/6oKZW1g0
やっぱりそうですか、うちもおかしいなと思った。
特にスクリプトメニューから実行すると反応が悪い。

34 :名称未設定:2009/11/26(木) 13:19:03 ID:+a3syn240
AppleScriptによりシェルを起動し、シェル終了後にターミナルを終了させたいのですが、
以下のように書くとシェルの処理終了を待たずにターミナルを閉じようとしてしまいます。

tell application "Terminal"
do script "hoge.sh"
quit
end tell

これをシェルの終了を待ってからターミナルを終了させる良い方法はありませんか?

ちなみにもともとやりたいことはシェルの処理のみなので、
最初はAppleScriptを使用せずに単純にシェルファイルの拡張子を.commandと
変えてダブルクリックでやろうとしたのですが、この場合は処理終了後も
ターミナルが起動したままになってしまいます。
これを回避するためにAppleScriptを利用しようとしたところ、最初の問題がでてきてしまいました。
なので、もしAppleScriptを使用せずとも別の回避方法があれば
教えて頂けると助かります(少しスレ違いになってしまいますが…)。


35 :名称未設定:2009/11/26(木) 14:45:16 ID:dGwWTqsQ0
ターミナルは使わなくてOKです。

do shell script "hoge.sh"
だけ。

注意点その他は
http://developer.apple.com/jp/technotes/tn2002/tn2065.html
を参照

36 :34:2009/11/27(金) 14:41:21 ID:HGPXxef80
>>35
返事遅れましてすいません、できました。ありがとうございました!

37 :名称未設定:2009/11/30(月) 10:55:38 ID:6iWT2mfO0
tell application "iTunes"
open "Macintosh HD:Users:myName:Movies:Test.mov"
end tell

でiTunesで動画を開くスクリプトを書きました。
しかしこれだと動画を開いてiTunesにコピーすると同時に、コピーされたファイルの再生もしてしまい現在再生中の曲が止まってしまいます。
再生せずにiTunesにファイルをコピーするようにするにはどうしたら良いでしょうか?

ちなみにAutomatorで、「ファイルを iTunes に読み込む」というのをやってみましたが、これだとムービーは読み込まれず
「Finder 項目を開く」でiTunesで開くように指定してやると、iTunesにコピーして再生という動作になってしまいました。
また、Finder上で動画を右クリックして「このアプリケションで開く」からiTunesを指定してやってもAutomatorと同じ動作で、コピーして再生という動作になってしまいました。

38 :名称未設定:2009/11/30(月) 20:57:37 ID:GYwRgXW10
>>37
openのかわりにaddで

39 :名称未設定:2009/12/01(火) 23:43:09 ID:S9sqDOT60
>>38
遅ればせながら、、
できました!ありがとうございます
もうちょい研究してプレイリスト指定とかチャレンジしていきたいと思います

40 :名称未設定:2009/12/02(水) 02:35:47 ID:wa0osCVc0
指定フォルダ中のフォルダとファイルを参照するロジックの書き方を教えてください。

41 :名称未設定:2009/12/02(水) 02:44:19 ID:NlSYU/iw0
iTunesで、「#個のアップデートが利用可能」をクリックできなくて
iPhoneのアプリアップデートが上手くいきません。
どうすればいいでしょう??


42 :名称未設定:2009/12/02(水) 20:12:27 ID:2z2gQOKh0
>>40
every item of ふぉるだ

Finderの中でね

43 :名称未設定:2009/12/06(日) 01:11:39 ID:8sdaG6t80
tell application "Terminal"
activate
if Terminal is front window then
close front window
end if
end tell

「ターミナルが前面にある時はターミナルを隠す」 をどう表現するかが
分かりません。どなたかご教授お願いします。


44 :名称未設定:2009/12/06(日) 01:27:49 ID:LZMVrZ1B0
ググったらすぐ出てきた。
前面の意味と隠すの意味が違うかもしれんが。あとご教授はやめろとなん(ry
http://forums.macosxhints.com/archive/index.php/t-58912.html

tell application "System Events"
   set app_name to name of the first process whose frontmost is true
   
   if app_name is equal to "Terminal" then
      set visible of process "Terminal" to false
   end if
end tell

45 :名称未設定:2009/12/06(日) 02:05:34 ID:8sdaG6t80
レスありがとう
でもエラーが出て実行できない…現在調査中

46 :43:2009/12/06(日) 17:53:17 ID:8sdaG6t80
コピペじゃなくて全部手打ちにするとエラーもなく実行することが
できましたが望むような挙動ではありませんでした。自分が望む挙動は
スクリプトを実行するごとに「ターミナルが現れたり消えたりする」
というごく単純なものを作りたいです。

47 :名称未設定:2009/12/06(日) 18:07:47 ID:gNEZmseI0
>>46
これをベースに可視かどうかで分岐処理したら?
ttp://piyocast.com/as/archives/108

48 :名称未設定:2009/12/06(日) 19:04:57 ID:kDbWx1Xt0
>>46
do script [text] : The command to execute.
[in tab, window, or any] : The tab in which to execute the command
→ tab : The tab the command was executed in.

10.6ではこうなってるから、特定のWindowを指定して実行することはできるんだろう
あとは、自力でやってくれ

49 :名称未設定:2009/12/06(日) 19:41:04 ID:3AMaHzqH0
Xcode3.2でAppleScriptにGUIを付ける風なボタン押したらhello worldの
メッセージを出るやつ作ってみたがエラーばっかり
ちょー使えない

50 :名称未設定:2009/12/06(日) 20:39:23 ID:ZF4qaPCZ0
10.6からAppleScriptユーティリティってなくなった?

51 :名称未設定:2009/12/06(日) 20:54:25 ID:gNEZmseI0
>>50
ASエディタの環境設定に機能統合された
/System/Library/CoreServicesに10.5時代の.appがあっても起動しない

52 :名称未設定:2009/12/06(日) 21:02:05 ID:LZMVrZ1B0
>>49見て、Xcodeで初めてAppleScriptいじってみた@10.6.2 Xcode 3.2.1
AppleScriptObjCってのを通して操作するのね。
前少しやってみたPyObjCと同じ感じな記述なんだな。
実質的なメソッドはObjective-Cと同等っていう。

とりあえずボタン押してHello, World!をテキストフィールドに表示は出来た。
勘でいけるだろーとか思ったら、40分もかかってしまった…orz

53 :名称未設定:2009/12/06(日) 21:49:32 ID:FB6/rZ8L0
俺も最近スノレパにして AppleScript Studio が無くなってたんでびっくりした。
AppleScriptObjCのドキュメントが全然無いのにも。

54 :名称未設定:2009/12/06(日) 21:55:25 ID:gNEZmseI0
>>53
前者はいつものdefaults write(ryで復活できる
詳細はググって

言語ブリッジってどうも微妙なんだよな
アップルの態度次第でいつ消えるかわからんし(過去の歴史的に)
Javaとのブリッジとかさ

55 :名称未設定:2009/12/06(日) 22:12:27 ID:FB6/rZ8L0
>>54
でも新規プロジェクトは作れないでしょ?

56 :名称未設定:2009/12/06(日) 23:21:20 ID:3AMaHzqH0
>>52
ほんとに?
Command /usr/bin/osacompile failed with exit code 1 のエラーばっかでるけどな

57 :名称未設定:2009/12/06(日) 23:36:24 ID:LZMVrZ1B0
>>56
AppleScriptObjC使ってる?
最初ググってたら set contents of text field "textField" of 〜みたいな形で
テキストフィールドに値をセットするやり方が出てきたけど、
こういった感じで値をセットしようとしてない?
↓な感じで、Objective-CのsetStringValue呼ばないとダメっぽいよ。
textField's setStringValue_("Hello World")

とりあえずプロジェクトごとうpしたんで参考に。
http://www1.axfc.net/uploader/File/so/35417.zip
※MyObject.applescriptが該当処理

58 :名称未設定:2009/12/06(日) 23:59:12 ID:j0cF3LFq0
>>57
サンクス 参考になった
MainMenu.xibに書き込んでAppleScriptインスペクタから設定するわけじゃないのか
defaults writeの意味ないな


59 :名称未設定:2009/12/07(月) 02:36:47 ID:0b1r1Wr50
コンテクストメニューを表示させる、スクリプトを作るのは可能ですか?

AppleScriptでは、各項目の情報を扱えることはわかったのですが
コンテクストメニューそのものを表示させる方法がわかりませんでした。

またアプリケーションを探しまわったのですが、見つからずです。
なんでwindowsみたいにキーがないのよ〜

情報をお願いします。







60 :名称未設定:2009/12/07(月) 12:19:01 ID:AQPk2Fk/0
日本語でおk

61 :名称未設定:2009/12/07(月) 13:12:50 ID:4F5t5m3c0
コンテクストメニューの出現をスクリプトで制御したいって話かと。
あとでユーティリティを使って特定キーに割り当てるつもりなんでしょう。
Windows用のキーボードには確かにそういうキーがあるね。

62 :名称未設定:2009/12/07(月) 18:58:01 ID:2LltxkBq0
>>57
なるほどー
こういうやり方もあるのか。
俺はメインのコードで

 property theTextField : ""

とした後、IBのBindingsでいろいろ設定して

 set theTextField to "Hello, World!"

てやってた。
参考まで

http://www1.axfc.net/uploader/File/so/35453.zip

63 :62:2009/12/07(月) 19:03:43 ID:2LltxkBq0
訂正。

 set theTextField to "Hello, World!"



 set my theTextField to "Hello, World!"

でした。
あと、メインのコードってのはもちろん "main.m" のことじゃなくて
"なんちゃらAppDelegate.applescript" のことね。
my の後に書くんだから"theTextField"って名前はうまくなかったかな…

64 :名称未設定:2009/12/09(水) 02:07:55 ID:PRO43DAA0
>>59
Finder 限定でよければ、GUI スクリプティングを駆使して作ったことがあります。

http://homepage.mac.com/tkurita/scriptfactory/history/2009/06.xhtml#_20090601T232417

Windows みたいに、どんなアプリケーションでもというのは難しいかも。

65 :名称未設定:2009/12/10(木) 23:42:53 ID:ecKAHfND0
GUI スクリプティングを勉強したいんだが
どうすればいいだろう

66 :名称未設定:2009/12/11(金) 03:30:48 ID:tL/S60kS0
>>65
サンプルコードを読むのが一番

67 :名称未設定:2009/12/11(金) 12:37:43 ID:44jU417k0
>>54
BridgeSupportはCocoa-Javaブリッジと違って仕様が公開されてる上に
たとえサポートがなくなっても後付けで簡単に追加できる。

68 :名称未設定:2009/12/12(土) 00:40:10 ID:LtE25zE90
>>65
tell application "System Events"
tell process "アプリケーション"
get UI elements
end tell
end tell

結果に出てきたUI elementsにtellしてさらにUI elementsをget

tell application "System Events"
tell process "アプリケーション"
tell window "ほにゃらら"
get UI elements
end tell
end tell
end tell

とか

tell application "System Events"
tell process "アプリケーション"
get UI elements of window "ほにゃらら"
end tell
end tell

69 :名称未設定:2009/12/12(土) 02:02:15 ID:3WnTCMQ30
>>65
http://www.macosxautomation.com/applescript/uiscripting/index.html

70 :名称未設定:2009/12/12(土) 12:33:26 ID:b3XgnbNK0
内包するUI elementsを探すには
UI elements of 対象

状態を取得するには
properties of 対象
properties of attributes of 対象

操作するには
click ボタンを押下
pick メニューを実行
select 行を選択
confirm テキストフィールドを編集
perform 定義されたアクションを実行

performで実行出来るアクションを調べるには
actions of 対象

キー入力するなら
keystroke 文字もしくは予約語
key code キーコード

71 :名称未設定:2009/12/12(土) 13:46:17 ID:fY4Th7Gy0
>>65
http://developer.apple.com/mac/library/samplecode/UIElementInspector/index.html
これがあると便利だよ

72 :名称未設定:2009/12/12(土) 14:04:57 ID:U++d7OCD0
勉強してみます
皆様ありがとうございます

73 :名称未設定:2009/12/12(土) 14:33:20 ID:j8+q6ijr0
http://prefabsoftware.com/uibrowser/
あとこれも

74 :名称未設定:2009/12/14(月) 05:04:49 ID:Tfq0mJFZ0
ちょっと教えてください
ファイル名などを指定する時に頭文字数文字だけで指定する事は可能ですか?
例えば「ABC△△△.jpg」の△が分からなくても指定できれば良いのです。
実際にはアプリケーションで使うパラメーターを指定します。
よろしくお願いします。

75 :名称未設定:2009/12/14(月) 07:25:00 ID:S62Zvqc20
>>74

start with

76 :名称未設定:2009/12/14(月) 18:09:47 ID:UNw2F9R70
start"s" with

77 :名称未設定:2009/12/14(月) 18:13:31 ID:UNw2F9R70
ごめん誤爆った。

Java スレと勘違いしてた。

78 :名称未設定:2009/12/14(月) 21:08:52 ID:OPmeiiZo0
>>74
ちょっと状況がよく分からないんだけど、たとえば
tell application "Finder"
set theList to files whose name starts with "ABC"
end tell
でABCではじまるファイルの*リスト*が得られる。
もし1個しかないって決め打っていいなら、続けて
item 1 of theList
で、リストの最初のファイル(1個しかないならそれ)が得られる。

79 :名称未設定:2009/12/14(月) 23:54:12 ID:0R56lHJ70
>>78
おいらだったら document file 1 にするかな

80 :名称未設定:2009/12/15(火) 00:23:42 ID:DfQI4dmZ0
tell application "Finder"
every document file of entire contents of theFolder where name begins with "ABC"
end tell

theFolderはフォルダを変数にいれたもの
entire contentsはサブフォルダの下層も探してくれます

81 :名称未設定:2009/12/15(火) 06:06:03 ID:oFQOije70
>>78
たしかにそのほうがいいですね。
手間なしに確実になる。

82 :名称未設定:2009/12/20(日) 11:39:08 ID:xrDOqtec0
>>80
> entire contents

こんなの前からあったっけ?
これを知ってればもっと楽に……。

83 :名称未設定:2009/12/20(日) 21:40:24 ID:gV8kvIKt0
>>82
> entire contents
わりと昔からあった。でもバギーだったんで使いにくかった。

84 :名称未設定:2009/12/21(月) 00:17:50 ID:HtTeCSuk0
>>82
> entire contents

フォルダの中にフォルダがあったりして、File数が多いと時間がかなりかかりますよ
またファイルサーバ上だと認識しないことがありましたな

楽な部分もありますが、一長一短ですね

85 :名称未設定:2009/12/21(月) 05:47:36 ID:w7U784u00
>>82-83
そうだったのか。
確かに時間かかるしバギーなのは困るな。
今までは下層のフォルダ内まで検索する時は
do shell script で find とか使ってたんだが
そのやり方を知ってる以上は無理して使うこともなさそうだね。

86 :名称未設定:2009/12/21(月) 05:48:22 ID:w7U784u00
レスアンカー間違えた。
>>83-84でした。

87 :名称未設定:2009/12/21(月) 05:58:21 ID:5qSs6Gte0
>>85
Tanaka's osaxつかってたよ。
OS X 版でないかなあ。

88 :名称未設定:2009/12/21(月) 08:26:41 ID:HjODgj+60
おまいら自力で再帰処理書けないの?

89 :名称未設定:2009/12/22(火) 23:56:10 ID:OI/jbtLr0
osaxだと一行で済むからなぁ。
まあ、scriptobjectとか用意すればいいのかもしれんけど。

90 :名称未設定:2009/12/23(水) 09:17:20 ID:8ybX4sLZ0
>>88
実行に時間がかかりすぎるでしょうが

91 :名称未設定:2010/01/05(火) 22:00:04 ID:OlK8wzN70
環境:MacBook MacOS10.6 iCab4.7

iCabで表示したwebページのソースを取り出すのはどうしたらよいですか?
記憶ではOpenURLとGetSourceを使えばできたと思うのですが。

以前はMac mini MacOS10.4 iCab3.0でプログラム作ってたのですが、Mac miniが
壊れてしまい、自分で作ったソースも参考できなくなってしまって。
参考となるサイトを教えてもらえると嬉しいです。

iCabのアイコンをAppleScriptに放り込んで解説を表示してもGetSourceの
記述が見つからなくて悩んでいます。

92 :名称未設定:2010/01/06(水) 01:47:21 ID:FCsk5E+N0
あれ?規制だ。家のアドレスだめだな。いつも止まってるよ。サーバから。

>>91
ソースから何かするだったら curl(過去ログで検索するんだ) を使えば良いと思う。ブラウザ使う必要はないんではないかい?
どうしてもと言うのならダウンロードして見てみても良いかもなのだけど、snowで動くんかな?

私はこれ。誰かお願い。
Image Events1.1.3←snow leopard でImage Events1.1.2では奇麗に(特定のかな?IL)pdf を jpg に奇麗にレンダリング出来てたのが、見た目駄目な時がある。
駄目=文字に関して。アンチエイリアスがかかっていない、レンダリング解像度が低い(文字ががたがた)太る(一日3000kl食べた?)等。
再現はイラストレータCS2,3,4で作成。
テストした。safariで作ったpdfはOK、worksは今から試してみる、ためしてみた大丈夫、TextEditも。
イラストレータですかね。ILのテキストオブジェクト。そしてそのバックに色(平網、グラデーション)写真がないこと。再現する。
白で塗ったオブジェクト敷いてたら大丈夫だ。でも1.1.2とは微妙に違うな。

私の環境が駄目(10.6はこのMBPしかないんだ)もしくはImage Events1.1.3ではそれが普通かを知りたい、教えてほしい。
キャプチャ見せたいけど、アップローダってのがようわからんのだ。適当にテキストを打ったILファイルをつかって以下お願いできるか?

--IL CS2 以降で作った mytest.pdf ってのがデスクトップにある、として以下を10.5と10.6で実行、でjpgファイ作って(目で見て)くれないか?
set desktop_path to path to desktop as Unicode text
tell application "Image Events"
launch
set myImage to open (desktop_path & "mytest.pdf")
save myImage in file (desktop_path & "mytest.jpg") as JPEG
close myImage
end tell

93 :91:2010/01/06(水) 15:46:26 ID:/q8+b69Z0
iCabを4.7から3.0にしたらGetSourceでソースが取れました。
OSやAppleScriptの違いではないみたい。
いないと思うけど、同様の問題解決参考のため結果を書き込み。

>>92
勉強のためcurlも調べます。
いつまでも古いiCabが使えるとも限らないしね。

上の現象はイラストレータを持ってないのでお役に立てないです。

94 :名称未設定:2010/01/06(水) 23:58:29 ID:rWXG9rq30
>>93

>iCabのアイコンをAppleScriptに放り込んで解説を表示

ちゃんと解説を読めば、「document」の要素に「source」があると
気付くと思うのだが…。

tell application "iCab"
get source of document 1
end tell

とりあえず、これで表示中のページのソースは持ってこれた。
環境はMacOS10.6.2 iCab4.7。

95 :91:2010/01/08(金) 11:12:53 ID:pkLgcMe/0
ありがとう、とても助かりました。
おかげさまでiCab4.7で目的が達成できます。

同じiCab4.7でも32bit版と64bit版では違うことがわかりました。
64bit版ではsource要素は解説に出てこず、存在しません。
32bit版ではsource要素が存在します。

32bit版をダウンロードし直して利用しました。
後から読む人の参考のために。

96 :名称未設定:2010/01/14(木) 21:02:28 ID:A+/6HWcm0
tell application "LightWayText"
tell document 1
set contents of selection to "俺用メモ"
end tell
end tell


97 :名称未設定:2010/01/15(金) 12:25:17 ID:7DnxaZOw0
do shell script でperlを使って文字の置換をしようと思い
下記のようにしたのですが、1バイト文字は置換できるのですが
2バイト文字では出来ません
修正点をご教示頂けると幸いです
併せて検索文字が半角スペースで始まっている場合の対処法も
お願いします
OSは10.4.11です

set TextName to "SJISテキストファイル"
set Find to "検索文字"
set Replace to "置換文字"

set Scptcmd to "perl -pi -e \"s/\"" & quoted form of Find & "\"/\"" & quoted form of Replace & "\"/gi\" " & quoted form of TextFile

do shell script Scptcmd

98 :名称未設定:2010/01/16(土) 00:08:04 ID:Cd4ee91l0
>>97
それはSJISのテキストを置換したいと?
そうなるとやっぱ文字コードの問題でしょう。
perl でそのまま扱えるのは多分 UTF-8 だけなんじゃないかな。
コードを変換するやり方があったと思うんだけど
難しくて覚えるのを諦めた……。


それと参考までに聞きたいんだけど、

>set Scptcmd to "perl -pi -e \"s/\"" & quoted form of Find & "\"/\"" & quoted form of Replace & "\"/gi\" " & quoted form of TextFile

この行は

set Scptcmd to "perl -pi -e 's/" & Find & "/" & Replace & "/gi' " & quoted form of TextFile

こうじゃだめなん?

99 :名称未設定:2010/01/16(土) 01:00:58 ID:9c/H+0h90
perlは全く知らないけど文字コード変換ならiconvコマンドとか

100 :名称未設定:2010/01/16(土) 04:24:08 ID:CNdP/93+0
>>97
半角スペースにマッチする文字クラスは ¥s
このレベルのことを聞いてくるなら、Perl の正規表現をもっと勉強してからの方がいいよ

101 :名称未設定:2010/01/16(土) 04:27:40 ID:CNdP/93+0
もう一点、シフトJISは2バイト目に ¥ (0x5f) が入って混乱することがあるので、この手の処理に向かない。

http://digit.que.ne.jp/work/wiki.cgi?Perlメモ%2F日本語の扱い#ptrouble_regex

102 :97:2010/01/16(土) 20:23:10 ID:r3aLyIOc0
>>98
元々の一バイトだけを処理してたものはその形なんです
検索ワードがスペースから始まるものもあったので
quotedした方がいいのかなと……

>>101
そうみたいなので今考えているのが
テキストファイルを書き出す時にunicodeで書き出せるか調べ中
もしくはテキストファイルをreadして
as unicode text で変換してから置換処理してwrite

………
あ、読み込むんだったらそのままデリミタで置換しちゃえばいいのか
変換も必要ないかな?
あとは速度面ですが、明日出社するのでやってみます

103 :名称未設定:2010/01/17(日) 15:54:15 ID:RmdC+Ex20
>>102
nkfでUTF8に変換→perlで置換→nkfでcp932に変換のパターンです。
PantherとLeopardで動いたんでTigerでも大丈夫だと思う。
myPath, TextName, ~/usr/bin/nkf は適当に書き換えてね。

注意点:
nkfをインストールする。
MacJapaneseはnkfではだめなんでpiconvを使う。
cp932とMacJapaneseの自動判別は自分で書く。

-- ここから
set myPath to "~/Desktop/AppleScriptTest/"
set TextName to "001.txt"

set Find to "検索文字"
set Replace to "置換文字"

do shell script ("
cd " & myPath & ";
~/usr/bin/nkf --overwrite -w " & TextName & "
perl -0pi -e 's/" & Find & "/" & Replace & "/g' " & TextName & "
~/usr/bin/nkf --overwrite -s " & TextName & "
")
-- ここまで

104 :名称未設定:2010/01/17(日) 17:44:02 ID:W4BCsgo70
perl 5.8 とか 5.10 なんでしょ?
文字コードの変換なんか、Perl IO レイヤーに任せちゃえば?

use utf8;
binmode STDIN, ":shiftjis");
binmode STDOUT, ":shiftjis");

while(<>) {
...
}

105 :名称未設定:2010/01/18(月) 01:35:00 ID:Kl8DhoQV0
すみません、質問です。
iTunesでコメント追加スクリプトを探していて、iTunesスレでこういったスクリプトを
教えてもらいました。

tell application "iTunes"
set theAddKey to "追加したいキーワード"
set theTrack to current track
set theNowKey to comment of theTrack
if false = theNowKey contains theAddKey then
if theNowKey is "" then
set comment of theTrack to theAddKey
else
set comment of theTrack to theNowKey & " " & theAddKey
end if
end if
end tell

ですが、これだと現在再生選択している曲にしかコメントを書き込めないようです。
current trackを選択している曲に変更すれば良いと思うのですが、なんとすれば
良いのか良くわかりません。
よろしくお願いします。

106 :名称未設定:2010/01/18(月) 01:39:02 ID:SQbsd5na0
\__  _______________/
    \/
     ∧_∧
    ( ´・ω・`)     ∧_∧
    /     \   (    )自力で書く気ないだろ
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽ           \|   (    )せめて少しは調べたのかよ
  |     ヽ           \/     ヽ.  
  |    |ヽ、二⌒)        / .|   | |
  .|    ヽ \∧_∧    (⌒\|__./ /

107 :名称未設定:2010/01/18(月) 01:50:06 ID:u2P0c7fR0
Automatorでワークフローを作成
1. 選択されたiTunesトラックを取得
2. iTunes の曲情報を設定で、コメントのところにチェック

あとは好きに使え。スクリプトなんか書く必要ない

108 :名称未設定:2010/01/18(月) 02:26:10 ID:Kl8DhoQV0
>>106
すみません、もう少し調べます。

>>107
これだと、今まで書いたコメントが全て上書きされてしまうんですよね。


とりあえずスクリプトの基本から調べます。ありがとうございました。

109 :97:2010/01/18(月) 11:57:26 ID:y1ewgr1D0
>>103
nkfですか。こういうのもあるんですね〜
ただ、今回は標準のままいきたいので申し訳ないです……

現在、>>102のやり方で進めてます
最初は成形したテキストの後に未成形のテキストがくっついて
いたので悩みましたがEOFを再設定する事で
考えていたような処理が出来ています

Perlで質問しておいて申し訳ないですが
自分のスキルだとこれがベターかなと……
現在置換リスト作成中

アドバイス下さった方々、ありがとうございました

110 :名称未設定:2010/01/18(月) 13:16:20 ID:YrMhARsI0
>>105
3行目を set theTrack to item 1 of selection に変更だよ。
3行目の下にでも書いてみて、イベントの戻り値を見てみると良いと思う。
selection は現在選択されている item を取る。
1つしか選択してなくても、配列で帰ってくるからその1つ目を theTrack に入れる。

111 :名称未設定:2010/01/21(木) 00:23:26 ID:oa/BEmP40
スノレパのスクリプトエディタからメニューバーに貼付けたスクリプトメニューのことなんだけど、
この中のスクリプトにショートカットをつける方法って、OS標準で存在する?
環境設定の「キーボード」の、メニュー名を書き写すってやつをやったけど、動かないのよ。
て、今気がついたけどwスクリプトをアプリケーションで保存して使う・・・・しかないのかな?

112 :名称未設定:2010/01/21(木) 04:07:32 ID:AWQBQSRK0
だって右のスクリプトメニューメニューバーちゃうし

113 :名称未設定:2010/01/21(木) 04:14:21 ID:F78QZk480
>>111

FastScripts
ttp://www.red-sweater.com/fastscripts/

AppleScriptにショートカットキーを割り当てられるソフト。
$14.95のシェアウェアだけど、いま円高だし、買っとけ。超便利。

114 :名称未設定:2010/01/21(木) 04:43:02 ID:g3Uu98Ox0
Sparkっていうソフトもある。フリーで

115 :名称未設定:2010/01/21(木) 06:01:14 ID:53fQNdDM0
ぬ〜やっぱなんか入れなきゃだめすか。うーん!

116 :名称未設定:2010/01/21(木) 06:06:32 ID:A0nUputy0
>>114
http://www.shadowlab.org/Software/
これは良い。同じ作者のSdef Editorは知ってたのにこっち見てなかった。
常駐daemonが小さいのも良いね。QuicKeysとか大掛かりになり過ぎて、
使う気しなくなっちゃったもんな。

117 :名称未設定:2010/01/21(木) 06:10:33 ID:53fQNdDM0
大掛かり系ではButlerもできるよ!

118 :名称未設定:2010/01/26(火) 16:08:01 ID:n5f3CYXU0
QuickTime Player for Snow Leopard で save コマンドに

[as saveable file format] : The file format to use.

とあるが、いったい何を書けばいいやねん、と。
どんなフォーマットが、どんなキーワードで登録されているか調べる方法が見つからんし。

119 :名称未設定:2010/01/26(火) 18:00:57 ID:IImrM1tF0
そんなもんです。ぐぐってください。

120 :名称未設定:2010/01/27(水) 19:18:24 ID:+B9t+Ex30
>>118
同じような事で悩みました
私はAcrobatからテキスト書出しなのですが

save front document to file aFile using conversion
"com.adobe.acrobat.plain-text" ← ここが書かれてなかった

これで一応書出し出来るのですが
Acrobat 起動後一発目の書出しは手動じゃないと
エラーになっちゃうんですよね……
今ここで悩み中 w

121 :名称未設定:2010/01/27(水) 19:22:31 ID:TlcvnH630
このスレ的にSikuliはどうよ。http://groups.csail.mit.edu/uid/sikuli/
動作がとんでもなく遅いが、GUI Scriptingという点ではかなり強力。
正直、個人的には使いどころがほとんどないように思えるけど。

おかんのパソコンの設定を自動でさせるにはいいかもしれない。
一々電話でスタートメニューのコントロールパネルの…とか疲れるし。

122 :名称未設定:2010/01/27(水) 20:59:51 ID:B8ljfFBY0
>>121
画像のマッチングをしてクリックする仕掛けのようだが
大学でやる研究としてはおもしろいかもしれんが、実用性はどうかな
人に配るとしたら、シェーディングとか、アンチエイリアスとかの設定の影響を受けるかもしれない
メニューバーみたいに、壁紙が透けているのも影響するかもしれん
見た目の部分はカスタマイズしたい人が多いから

123 :名称未設定:2010/01/28(木) 10:33:42 ID:zc10C9r70
>>118
ver.7のplayer辞書を参照。
それよりも書き出せる形式とそうでないものがあるような。
いやたぶん,自分が書き方知らないだけのことだとは思うけど。

124 :名称未設定:2010/01/28(木) 11:32:26 ID:veUdnUm2i
>>122
その辺りの環境差にはSimilarlityの設定次第で対処出来そう
誤検出率を上げてしまう事にもなるので、一長一短ではあるけど

Automatorの記録とは違ったアプローチでなかなか面白い

125 :名称未設定:2010/02/10(水) 15:53:36 ID:G/aBq4KL0
Snow Leopardでデスクトップのアイコン位置がリセットされる現象がよく起こるんですが、
アイコン位置を元に戻すよい方法ってないですかね?

自分はとりあえず、こんな感じで対処してるんですが…。
(1)「DS_StoreBackUp」という名前のフォルダをホームフォルダに作っておき、
  そこへスクリプトを使って、Desktopの.DS_Storeファイルをバックアップ。
(2)アイコン位置がリセットされた場合、復元用スクリプトを実行してログアウト→再ログイン。

●DesktopのDS_Storeをバックアップ
--Desktopの「.DS_Store」を、DS_StoreBackUpフォルダ内に「DS_Store」に改名してコピー
do shell script "cp -p /Users/ユーザー名/Desktop/.DS_Store /Users/ユーザー名/DS_StoreBackUp/DS_Store"
--そのままだと「DS_Store」が不可視ファイルなので、可視ファイルに変更(Finder上でバックアップした日付が分かるようにするため)
do shell script "/Developer/Tools/SetFile -a v /Users/ユーザー名/DS_StoreBackUp/DS_Store"

●Desktopの.DS_Storeをバックアップファイルから復元
do shell script "cp -p /Users/ユーザー名/DS_StoreBackUp/DS_Store /Users/ユーザー名/Desktop/.DS_Store"

126 :名称未設定:2010/02/10(水) 16:09:30 ID:G/aBq4KL0
すいません、ググッてたらもっと良いスクリプト見つけました…
ttp://kimux.org/ukulele/?1012


127 :名称未設定:2010/02/10(水) 17:07:40 ID:CKYDbWpi0
>>125
やっぱり、うちもデスクトップが勝手に整頓されると思ってたわ。
スポットライトコメントが消えるトラブルもこれに関連してるのかなあ。

128 :名称未設定:2010/02/11(木) 20:54:14 ID:HJb9ondn0
アプリを隠して起動する方法を教えてください
ログイン時に開くものがいろいろありすぎて,システム環境設定に任せると同時起動で虹色ぐるぐるになってしまうので。
delayでの時間差起動は問題ないのですが,ウィンドウが大量に開きまくって邪魔です。
シェルスクリプトの "-g"みたいなオプションはないのでしょうか?

129 :名称未設定:2010/02/11(木) 22:50:38 ID:1PkOEI/Z0
>>128
無理やりだけどこういうのは
tell application "Finder"
try
set visible of application "アプリケーションのパス.app" to false
end try
end tell

130 :名称未設定:2010/02/12(金) 00:25:52 ID:wydgRYQq0
>>128
>シェルスクリプトの "-g"みたいな
open -gのことかな。

手前せず起動するのであれば
launch application "TextEdit"

さらに隠すのであれば
tell application "System Events"
tell application process "TextEdit"
set visible to false
end tell
end tell


131 :名称未設定:2010/02/12(金) 06:49:39 ID:CZ6kz0ng0
>>129,130
ありがとうございます。解決しました。
>open -gのことかな
そうです,シェルスクリプトにしたくなかったので。

132 :名称未設定:2010/02/12(金) 16:16:43 ID:4ZY38sx70
open get ?

133 :名称未設定:2010/02/13(土) 22:38:57 ID:p1MamtnZ0
OS 10.6
Finderで操作フォーカス(insertion location)がFinderウィンドウにあるかデスクトップにあるか判別する方法ってないですかね?

if フォーカスがデスクトップ then
 新規Finderウィンドウを作成
end if
手前のFinderウィンドウのtargetを変更

というスクリプトを書きたいのです。

134 :名称未設定:2010/02/13(土) 22:40:30 ID:p1MamtnZ0
補足
insertion locationだと デスクトップ か デスクトップフォルダを表示してるFinderウィンドウ かが分からないんですよね

135 :名称未設定:2010/02/13(土) 22:47:37 ID:qZqNAaoGP
>>121とUIElementInspector.appを見て
ボタンの場所を左上から調べていって見つかったらアクションを実行するのなら
簡単にできそうなんでやってみたらできた。
rubycocoaで調べるのをやりたかったけどできなかったので
調べるのは別アプリになったけど。

例:
SafariでGoogle開いて、"カレーの作り方"を入力、検索して、
検索ツールを表示して期間を設定して、検索ボタンを押すスクリプト。

tell application "Safari"
activate
set URL of document 1 to "http://www.google.co.jp/"
delay 2
end tell

my setValueToTextField("AXHelp", "Google 検索", "カレーの作り方") -- テキストフィールドに入力
try
my clickStaticText("閉じる") --サジェストを閉じる
end try
my clickButton("Google 検索") --検索ボタンを押す
delay 1
my clickStaticText("検索ツールを表示")
delay 0.5
my clickStaticText("特定の期間")
delay 0.5
my setValueToDirectionTextField("AXRole", "AXStaticText", "AXValue", "開始日:", "down", "2010/1/1") -- 開始日に入力
my setValueToDirectionTextField("AXRole", "AXStaticText", "AXValue", "終了日:", "down", "2010/2/13") -- 終了日に入力
delay 0.5
my clickDirectionButton("AXRole", "AXStaticText", "AXValue", "終了日:", "down") -- 終了日の下の検索ボタンを押す

ちゃんと動いたらちょっと感動した。

136 :名称未設定:2010/02/14(日) 02:02:46 ID:RwOO/UnD0
>>134
この判定方法が正しいのかどうかわからんが

tell application "Finder" to activate
tell application "System Events"
tell application process "Finder"
enabled of group 1 of tool bar 1 of window 1
end tell
end tell

137 :136:2010/02/14(日) 02:23:03 ID:RwOO/UnD0
>>136を訂正 tool bar は必ずしもあるとは限らないので、
こうした方がいい。それでも、これでいいかどうかはわからない。

tell application "Finder" to activate
tell application "System Events"
tell application process "Finder"
try
return enabled of scroll area 1 of window 1
end try
try
return enabled of group 1 of tool bar 1 of window 1
end try
end tell
end tell

138 :名称未設定:2010/02/14(日) 15:46:18 ID:Yohs88uO0
>>133
こんな感じでどうかね(10.6.2で確認)

tell application "System Events"
tell application process "Finder"
focused of scroll area 1 is true
value of attribute "AXFocusedWindow" is scroll area 1 --AXMainWindowでも可
end tell
end tell

前者はFinderが前面にある場合のみ有効
後者は別のアプリの後ろにあっても有効

>>135
肝心のハンドラなしに呼ぶ所だけ書いても意味無くね?

139 :名称未設定:2010/02/14(日) 17:47:07 ID:BnHa7zuTP
>>138
ハンドラはボタンを名前で探してアクションを行う外部アプリを
実行しているだけです。

ボタンをSikuliみたいに名前で指定してアクションを実行する方法を自分は知らなくて
できるようになったので、それがわかればいいかなと。

名前だけで指定できるのは楽だけどいまのところ特にやりたいこともなかったりする。
なにか面白いネタが無いかな。
SafariだとページにアクセスできたけどFirefoxだとできなかったのが残念だった。

140 :名称未設定:2010/02/15(月) 19:02:24 ID:ahD1BRZa0
>>139
そんなアプリがあるんだ?
差し支えなければ紹介して欲しいな

ところで、
>ボタンをSikuliみたいに名前で指定してアクションを実行する方法
Sikuliにそんな機能あったっけ?

141 :名称未設定:2010/02/15(月) 20:13:57 ID:SBv7FDeJP
>>140
動画見ただけですがSikuliは画像にしたボタン名で操作対象にしてたようなので
名前で指定と書きました。
Sikuliが画像比較でボタンを探すのに対して
自分のは指定した座標にあるボタンを取得するAPIで画面を端から端まで
調べて希望するボタンを探すようになってます。
画面内を片っ端から探す方法がSikuliと似てると思います。

アプリはここにあります。
http://memogaki.soudesune.net/AppleScript.html#UIElementAction
気になるところをいろいろいじってるところです。

142 :133,134:2010/02/15(月) 23:26:48 ID:S2q0EN5a0
>>137,138
遅くなりましたがありがとうございます。

>>137は残念ながら私の環境ではエラーになります。
やろうとしてることは>>138と同じですかね。
>>138ならいけそうです。

143 :名称未設定:2010/03/02(火) 22:01:34 ID:k2xgFCNd0
2ch復活スレテスト

144 :名称未設定:2010/03/06(土) 21:22:34 ID:TgpbbATx0
レコードに含まれるアイテムで
ラベルが「|hogehoge|」というタイプのやつは
どうやって参照すればいい?

{|hogehoge|: 123}

145 :144:2010/03/06(土) 21:27:25 ID:TgpbbATx0
自己解決。取り出せない原因は別のところにあった。

146 :名称未設定:2010/03/08(月) 16:07:12 ID:SrQDwyB30
超初歩的なんでしょうが・・・

ファイル名の不要な部分を削除したいので、
放り込んだファイルの名称の指定した文字列を削除するにはどのように書けばよいですか?
XX_のページ_1.pdf

XX_1.pdfとしたいのですが。
"_のページ"を削除。

147 :名称未設定:2010/03/08(月) 16:16:37 ID:ARay6Yyj0
>>146
Automatorの「Fider項目の名前を変更」を使えばいい。

148 :名称未設定:2010/03/08(月) 16:31:04 ID:b9WeTvnyi
>>146
http://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as192.html

offset of "文字列" in "全文字列"で何番目から始まるかわかるよ。

149 :名称未設定:2010/03/08(月) 16:31:44 ID:SrQDwyB30
>>147
10.5.8ですがそのような項目がありません・・

150 :名称未設定:2010/03/08(月) 16:44:49 ID:SrQDwyB30
>>147,148
有り難うございます。

151 :名称未設定:2010/03/08(月) 16:57:57 ID:pxRLxJMJ0
>150
別の方法として、
AppleScript's text item delimitersを使うと、任意の文字(列)を文字区切りとして使える。
この場合set AppleScript's text item delimiters to "_のページ" とすれば、
text item 1 of "XX_のページ_1.pdf" は"XX"
text item 2 of "XX_のページ_1.pdf"は"_1.pdf"になる。

152 :名称未設定:2010/03/15(月) 18:05:20 ID:rSZAhhIC0
クリップボードのスタイルつきテキストを、
スタイルなしのテキストにしたいのだけど、

set the clipboard to Unicode text of (the clipboard as record)

とすると、Helvetica 12 pt になってしまう。
Helvetica とか 12 pt って情報も消し去りたいんだけど、
どうしたもんか?
参考にしたのは、ここ。
http://www.macosxhints.com/article.php?story=20040204170653788

153 :名称未設定:2010/03/15(月) 18:19:24 ID:xHBfGwAX0
>>152
これかな。
ttp://www.tonbi.jp/AppleScript/tips/String/StyledText.html

154 :名称未設定:2010/03/15(月) 23:31:00 ID:I3fJQLJL0
>>152の方法も>>153の方法も知らなかったけど、OS 10.5までは、

set textClip to (the clipboard) as Unicode text
set the clipboard to textClip

ってやるだけでスタイル情報が取り除けてたはず。確か。

でも10.6になってからはデフォルトのスタイルとしてHelvetica 12 pt付けちゃうみたいだね。
>>152,153にあるように«class ktxt»を取り出してもダメっぽい。

んで今ちょっと色々試してみたけど、pbpasteの出力をpbcopyに渡すと、スタイル取り除けてる。

set the clipboard to ((the clipboard) as string)
do shell script "pbpaste | pbcopy" --これでスタイルが無くなる


155 :名称未設定:2010/03/16(火) 11:10:47 ID:uYhrrnLc0
>>154
すばらしい。
do shell script "pbpaste | pbcopy" だけでいいみたい?

156 :名称未設定:2010/03/16(火) 12:00:45 ID:9BXKkLMs0
>>155
あ、そう。1行目の
set the clipboard to ((the clipboard) as string)
は意味無しw

157 :名称未設定:2010/03/16(火) 20:55:53 ID:bkAIxsQo0
shell 使わずに済ますならこんな方法もある
do shell scriptを使わない分、処理は若干速い

set the clipboard to {string:the clipboard}

この方法だとscrap stylesが付いてるけど、RTFとuniform stylesさえ取っ払えばスタイル情報は無くなるみたい

set the clipboard to «class ktxt» of ((the clipboard) as record)

敢えて«class ktxt»使うとこんな感じかな
結果は上のと同じ

158 :名称未設定:2010/03/16(火) 21:20:01 ID:MKktIwN00
んー,空のテキストしか返らないよ。@Tiger

159 :名称未設定:2010/03/16(火) 23:09:50 ID:MQT1H8rP0
んー、Helvetica 12 pt付いちゃうよ。@Snow Leopard

160 :名称未設定:2010/03/17(水) 19:26:13 ID:F93d+mWO0
話の流れからSnow Leopardでしか確認してなかったよ
とりあえず2つ目はthe clipboard as stringまたはas string as recordにしないとTigerだとエラーになる
つーかそのまま>>152のリンク先に書かれてたな

んでウチのTigerでは空テキストが返ったりはしないけどthe clipboard as recordすると、
1つ目はUnocode textとut16だけ、上の修正かけた2つ目はstringだけになってるから、
ペーストするアプリに拠っては問題あるのかもしれない

テキストエディットで開いたリッチテキストにコンパイル済スクリプトをスタイル無しでペーストするみたいな事なら出来てるし、
Tiger/Leopard/Snow Leopardの差も無くpbpaste | pbcopyと同じ結果が得られるのだけど、
それじゃ不十分って事かしら?

以上スレ汚し失礼しました

161 :名称未設定:2010/03/19(金) 07:44:08 ID:Y7tTkvDT0
過去ログに同じような質問はあったのですが、答えはなかったので、質問させてもらいます。

iTunesで、選択したファイルについて
・名前からカナや英字を取り除いて数字のみに(例:「音楽ファイル01a」→「01」)
・メディアの種類を「音楽」から「オーディオブック」に変更
・指定した画像をアートワークとして適用
するスクリプトを欲しいと思っています。

どれかひとつでも、やり方がお分かりでしたら、教えていただけませんでしょうか。

162 :161:2010/03/19(金) 07:47:34 ID:Y7tTkvDT0
ちなみに、Automaterで記録して自動化はできませんでした。
連投すみません。

163 :名称未設定:2010/03/19(金) 09:12:47 ID:HlnaZSjA0
>161
>1嫁

164 :名称未設定:2010/03/20(土) 09:56:22 ID:rGx7GDKX0
>>158
do shell script "set CF_USER_TEXT_ENCODING=${__CF_USER_TEXT_ENCODING%%:*}:0x8000100:${__CF_USER_TEXT_ENCODING##*:};pbpaste|pbcopy"
動作確認する環境が無いので未検証なんだけれど、
10.4/10.5 では、こうすれば良かったような気がする。

165 :164:2010/03/20(土) 09:59:24 ID:rGx7GDKX0
>>164 で ”__” が抜けてた

do shell script "set __CF_USER_TEXT_ENCODING=${__CF_USER_TEXT_ENCODING%%:*}:0x8000100:${__CF_USER_TEXT_ENCODING##*:};pbpaste|pbcopy"

166 :名称未設定:2010/03/21(日) 11:37:21 ID:bxyzs8gn0
すみません。Snow Leopard 10.6.2です。(初心者です)
>>152とは逆に、スタイルイキでコピーペーストしたいのですが、
Safariで選択中の箇所を、そのままのスタイルをキープして、さらに
URLとタイトルを付加して、他のエディタにペーストしたく、下記とにらめっこしてます。
どうしても、スタイルなしでしかペーストできないのですが、何か根本的に間違ってますでしょうか。

tell application "Safari"

set theTitle to name of document 1
set theURL to URL of document 1
set theSelection to do JavaScript "unescape(escape(getSelection()));" in document 1


if theSelection is "" then
set theText to "<a href='" & theURL & "'>" & theTitle & "</a>"
else
set theText to theURL & return & theTitle & return & theSelection & return
end if

set the clipboard to theText as Unicode text
end tell

167 :名称未設定:2010/03/21(日) 23:53:15 ID:H6v1SsCV0
>>166
暇だから起きてる間だけ相手してあげる。もう寝て、見てないならごめん。
このスクリプトはURLをとってきて、はっつけてるんだけど。URL欄でサファリはスタイル指定できたっけ?
まずはそこから訊きたい。

168 :167:2010/03/22(月) 00:21:31 ID:FVN1M19+0
すまん、最後までよまずに読んで即レスで気楽に書き始めたが。。。。ちゃんとよんだ。
Safari には selectrion ないんか?JSの実装でスタイルごと取るのも safari では無理みたいだ。
clipboard 経由で足してやれば、いける?今からそれ書いてみる。

169 :167:2010/03/22(月) 01:13:40 ID:FVN1M19+0
見苦しくてすまん。その上見ての通り何のひねりもなくて。selection に該当するもの有るのだろうが、また今度。
tell application "Safari"
activate
tell current tab of window 1
set hoge to name
set hoge to hoge & return & URL & return
set the clipboard to hoge
tell application "TextEdit"
activate
tell document 1
tell application "System Events" to keystroke "v" using {command down}
end tell
end tell
activate
set theTitle to name
set theURL to URL
tell application "System Events" to keystroke "c" using {command down}
tell application "TextEdit"
activate
tell document 1
tell application "System Events" to keystroke "v" using {command down}
end tell
end tell
end tell
end tell

170 :名称未設定:2010/03/23(火) 02:38:43 ID:Iytdhx840
>>166
> 何か根本的に間違ってますでしょうか。

do JavaScriptの結果ってプレーンテキストで返りそうな気がするんだが、スタイルなんか取れるのかな?
それに仮にスタイル取得できたとしても最後の
> set the clipboard to theText as Unicode text
ここでスタイル破棄してるよね

171 :名称未設定:2010/03/23(火) 05:25:15 ID:ucbdnbSx0
>>166
「選択部分を含む新しいテキストエディットウインドウを開く」ってサービスがあるからそれを組み合わせるのが手っ取り早そう。
Safariで何か選択してそれ呼び出すと選択部分がペースト済みのrtf作ってくれる

172 :名称未設定:2010/03/24(水) 11:54:28 ID:ovKbVsiO0
Macmini(early2009) Leopard 10.5.8 で過去スレと同じトラブルにあいました。
------
>35 :名称未設定[sage]:2007/12/18(火) 23:55:34 ID:C6DbmXj60
>サンプルにすら入ってるkey up/downがまともに動かないけど、
>これはバグなんかな
>
>何故か全部"a"に化ける
------
com.apple.systempreferences.plistを削除してからシステム環境設定のキーボードとマウスで修飾キーをデフォルトとは別の設定にして保存(一旦システム環境設定を閉じる)、その後、修飾キーの設定をデフォルトにして、マウスでOSを再起動。
これで直りましたが、しばらく(数ヶ月)すると再発します。その度に、plistの削除と修飾キーの再設定と再起動。
SnowLeopardに移行するか...

173 :166:2010/03/24(水) 12:11:53 ID:JB+P/Sc00
>>167
忙しいなか、ありがとうございました!
目的が果たせる形です!!!
助かります!!!!


174 :名称未設定:2010/04/01(木) 10:19:48 ID:Qg51nzTu0
set file_location to (the location of aTrack)
set AppleScript's text item delimiters to ":"
set file_list to text items of (file_location as string)
set (the item (the count of file_list) of file_list) to "album.txt"
set text_filename to file_list as string
set text_file to (open for access file text_filename)
set lyrics to read text_file
close access text_file

iTunes 7時代はこれでiTunes上で選択した曲の
ローカルフォルダ内にあるalbum.txtを歌詞にペースト。
できてたんですが、iTunes 9にしたら
なぜか初めの英数2文字を逆にペーストするだけなんですが・・

Help meという内容のテキストだと
eH
と・・

175 :名称未設定:2010/04/02(金) 16:32:32 ID:uOQ/YEx60
...

176 :名称未設定:2010/04/07(水) 00:36:27 ID:LXZ9bYvj0
ども。質問です。
スクリプトをアプリケーション形式で配布する予定があるんですが、
試用期限の設定で悩んでます。。
一応、下のやり方でも最低限は可能ですが、日付操作されちゃうと意味ないし。

set honjitsu to current date
if honjitsu < date "yy年mm月dd日" then
tell application "ほにゃらら"
else
quit

(これにset〜を使う意味があるのかも判っていない素人です)

アプリ起動時に毎回current dateを内部に記憶させて、日付操作すると終了させるような機能も追加したい。
社内で配布する予定なんですが、改訂したときに古いヤツを使われるとマズイので。。。
誰か教えてくださーい。

177 :名称未設定:2010/04/07(水) 04:57:52 ID:2/haE76Y0
>>176
実行専用アプリケーションならソースが見れないからそのままでもいいんじゃない

178 :176:2010/04/07(水) 10:44:41 ID:wpgj5z6CO
ん〜。
例えば、自動でサーバへアップロードするスクリプト。
不定期にサーバの場所を変更して、以前のサーバも生きている状態だと、古いスクリプトを使われちゃうとデータが迷子になっちゃいます。
作業者に、サーバ変更とか意識させなくするためには、やはり期限設定が必要です。。
連絡も管理もラクだし。

179 :名称未設定:2010/04/07(水) 10:59:48 ID:OJFpXGy/0
ぴよまるさんのおかえりシリーズにそんな機能がなかったっけ?>使用期限
どう実装してるのかは知らないが...

180 :名称未設定:2010/04/07(水) 17:54:40 ID:RsA+8tWM0
初期設定ファイルを作って起動時に読込ませれば良いんでない?

181 :名称未設定:2010/04/07(水) 22:40:28 ID:tLfHhU7X0
意図的でなくても偶発的に日付が変わってしまうことはあるんじゃない?
サーバ側にステータスを通知するファイルを置いておいて,それを毎回読みにいくというのはどうだろう。
発想を転換してみよう!

182 :名称未設定:2010/04/07(水) 23:50:21 ID:0XfUVHRf0
>>176
そういうのはpropertyでやると思う。アプリ終了しても値を保持できるから。
でも,日付操作に対抗しようとすると複雑になりすぎて疲れちゃうかも。
その気になれば,抜け道無いわけではないし……。

183 :176:2010/04/08(木) 02:47:17 ID:/j8bLR3r0
176です。みなさんアドバイスありがとぅ。

>>180
初期設定、これは起動時に毎回"今日の日付.txt"みたいなのを吐かせてそれを読みに行くってことなのかな?多分理解できてません。。

>>181
偶発的な日付変更、イントラネット内にタイムサーバを置いてるので、オンライン環境であればほぼ大丈夫かと。 
で、そうですね。そのタイムサーバの時間を毎回読みに行かせれば一番手堅い感じっぽいですね!記述わからんけど。
毎回オンライン認証みたいなのは・・・ですが。

>>182
property、なんか使えそうですねぇ。
ただ、ダブルクリック起動で初期設定埋め込み、って方法しか知りませんので多分、遠い道のりです。

目的とは違ったとこで引っかかるなぁ。でも楽しいかもw


184 :名称未設定:2010/04/09(金) 08:13:47 ID:gp+NP4ki0
property使うならこんな具合かな
これを実行専用のアプリとして保存する

property lastTime : current date
property limitTime : date "2010年4月10日土曜日 0:00:00"
set currentTime to current date
if currentTime < lastTime then
display dialog "時間が巻き戻りました"
quit
end if
if limitTime < currentTime then
display dialog "使用期限が過ぎました"
quit
end if
set lastTime to currentTime --起動時刻を記録する場合
--任意の処理--
--set lastTime to current date --終了時刻を記録する場合

まぁこれも抜け道が無いわけではない
propertyはファイル単位で記録されるので、
配布されたアプリを直接実行せず都度複製したファイルを実行するのを繰り返せば、
日付操作対策はスルー出来てしまう

ただ>>176がやりたいのはお試し期間としての試用期限ではなくて、
定期的な更新を促すための使用期限だと思うから、
小細工を弄して使い続けるより素直に更新した方が楽だと思える状況を作る方が大事じゃないかな
当然ながら自動更新出来るのがベスト

185 :名称未設定:2010/04/09(金) 09:06:35 ID:e2bBjc1O0
applescriptとXcodeとの連携に関する情報があるページはありますか?
昔はapple script studioっていうのがあったらしいけど、
http://homepage.mac.com/tuyano/X-AS-Tutor/XASTutor1.html
とかもう今は画面がまったく変ってしまってまったくの初心者としては対応できない。。

186 :名称未設定:2010/04/09(金) 10:21:13 ID:h94BNytRi
>>185
AppleScriptObjCで検索。

187 :名称未設定:2010/04/09(金) 16:43:06 ID:8w2KaRN70
>例えば、自動でサーバへアップロードするスクリプト。
>不定期にサーバの場所を変更して、以前のサーバも生きている状態だと、
>古いスクリプトを使われちゃうとデータが迷子になっちゃいます。

使用期限以前に送信先が変更になったらどうするの?


188 :名称未設定:2010/04/11(日) 06:27:22 ID:xZLxCf4c0
GUI scriptingでoption-クリックを行う方法ってないでしょうか?
用語説明見るとkeystrokeとkey codeにしかないんだ…

189 :名称未設定:2010/04/11(日) 15:55:43 ID:AQeB6Fkn0
>>188
試してないけど、こんな感じでできないかな?

ターミナルコマンドのcliclickをインストールした上で、
1:GUI scriptingでOptionキーを押したままにする
2:do shell script のcliclickで必要な部分をクリック
3:GUI scriptingで押したままになっているOptionキーを解放


190 :名称未設定:2010/04/11(日) 19:56:32 ID:xZLxCf4c0
optionキーを押したままにするってのがGUI scriptingでできます?
自分で調べた限りなさそうなんですが。

何がしたいかというとFinderの表示オプションをデフォルトに戻したいのです。
表示オプションウインドウを表示させるまではメニュー選択でできたのですが
「デフォルトとして使用」ボタンをoption-クリックさせる方法がなさそうなんです。

191 :名称未設定:2010/04/11(日) 20:17:51 ID:5QlF8bSb0
>>190
ググる前にここを検索すればいいのに。 >169


192 :名称未設定:2010/04/11(日) 20:50:55 ID:xZLxCf4c0
>>169のkeystroke 〜 using 〜 のことでしょうか?
これはモディファイアキー付きでキーボードを叩く命令でclickとは異なる命令と思ってますが違いますでしょうか?
Ssytem Eventsの用語説明を見てもclickにはusing〜はないです。

193 :名称未設定:2010/04/11(日) 21:35:19 ID:fb31VwCG0
>>192
こんな感じで書けばおk

tell application "System Events"
key down {command} --コマンドキーを押す
keystroke "n" --コマンドキー+nの動作をする
key up {command}--コマンドキーを離す
end tell

2コ同時押しだとこう。
key down {command, option}
key up {command, option}

key downしたあとupし忘れると悲惨なことになる(全ての動作がコマンド+クリックとかになる)ので注意。
まあ、再起動したら直るけど。

普通はkey upしなくても済む、using {command down}を使うと思う。

194 :名称未設定:2010/04/11(日) 22:21:00 ID:xZLxCf4c0
おお!そげなテクがあったとは!
できました。これでFastScriptsと組み合わせてショートカット一発でデフォルト表示に戻せます!
ありがとうございました。一応スクリプト書いておきます(OS 10.6)。

tell application "Finder" to activate
tell application "System Events"
tell process "Finder"
-----表示オプションウインドウを表示させる(エラーなら表示済みとして無視)
set was_viewoption_displayed to false --元々表示していたか
try
tell front menu bar's menu bar item "表示"'s menu "表示"'s menu item "表示オプションを表示"
click
end tell
set was_viewoption_displayed to true
end try
-----「デフォルトに戻す」ボタンをクリック
--フローティングウインドウをすべてループしてボタンを探す(成功したら抜ける)
set floating_windows to (every window that subrole is "AXSystemFloatingWindow")
repeat with a_window in floating_windows
try
tell a_window
if (enabled of button "デフォルトとして使用") then
try --何かあってもkey up {option}を必ず行うため
key down {option} --optionキーを押す
tell button "デフォルトに戻す" to click
end try
key up {option} --optionキーを離す(これをやらないと押したままになる)
end if


195 :名称未設定:2010/04/11(日) 22:21:11 ID:xZLxCf4c0
--閉じる(元々表示していなければ)
if was_viewoption_displayed then
tell (item 1 of (every button that subrole is "AXCloseButton")) to click
end if
end tell
return 0 --できたので終了
end try
end repeat
beep --何らかの理由で処理できなかった
end tell
end tell

196 :名称未設定:2010/04/12(月) 07:13:34 ID:qvKoW0R70
Photohsopでapplescriptから色相・彩度をコントロールする方法をご存知の人っていますか?
AppleScript リファレンス内にadjust(色調補正)項目に色相・彩度(hue/saturation)が見当たらないので、
調整レイヤーで以下のように試しましたが通りません・・・
tell application "Adobe Photoshop CS4"
tell current document
make new adjust layer with properties {kind:hue saturation layer,hue:100}
end tell
end tell
テキストレイヤーのようにレイヤーを変更することもできません。
考えられる組み合わせも一通り試しましたが、全然通りませんでした。
もし、知っている方がいたら、教えてください。よろしくお願いします。

197 :名称未設定:2010/04/12(月) 18:00:13 ID:t/Gpg8TR0
>>196
アクションを作って呼び出すとかじゃダメですか?

198 :名称未設定:2010/04/13(火) 14:53:27 ID:SmGJ/LFm0
>>197
アクションじゃあダメなんです。
他から値を受け取って動かすので、アクションでは難しいんです。
ヒントでもいいのでお願いします・・・

199 :名称未設定:2010/04/14(水) 17:56:48 ID:jXeB9XGO0
>>194
何だか解決してる様に見えるけど、コード読むと腑に落ちない
clickはkey downの影響を受けないはずなんだが…

200 :名称未設定:2010/04/14(水) 22:15:16 ID:MjOLnu4r0
>>198
Javascript でやってみたら?
Javascriptのリファレンスをざっと調べてみたけど、[色相・彩度…]に直接対応するものは無いみたいなので、ScriptingListener.plugin を使って操作を記録。書き出された Javascriptコードを値を指定できるように
手直しして AppleScript から do javascript で呼び出すようにすれば良い。

ScriptingListener.plugin については CS3 では、付属ドキュメント(PDF)の
[Photoshop CS3 スクリプティングガイド]/sect.4 アクションマネージャー
に記述がある。CS4は知らん。

201 :名称未設定:2010/04/16(金) 02:19:43 ID:Te56YnGD0
>>200
ありがとうございます!
Javascript初めてなので、手こずりましたができました。
これで、今までできないことが結構できるようになりました。
Applescript+Javascript恐るべし

202 :名称未設定:2010/04/24(土) 18:06:59 ID:bF2nNchT0
TigerからSnowleopardに最近バージョンアップしたのですが
クリエータを無視するようになったと知りガクセンとしています。
プレビューで開くJPEGと、Photoshopで開くべきJPEGがあったので不便になりました。
発売当時問題を提起していた方々はいたようですが、それ以降特に進展もないようなのでお聞きしたいのですが、
usroリソースというのはアップルスクリプトでどうにかできる類のものではないのでしょうか?

そもそもプログラムなど組んだことないのですが、Finder上の事なのでスクリプトでなんとかなるんじゃなかろうかと思い、
"Apple script usro"とかでググッったのですがよく分かりませんでした。
「情報を見る」ウィンドウで「このアプリケーションで開く」を変更してみましたが、スクリプトエディタに記録されなかったので対応してないような気もしてます。
一々インスペクタから変更するのも面倒ですし、アプリケーション形式にしたスクリプトにドロップか、
フォルダアクションでなんとか以前のやり方に近づけられないかと思い質問しました。よろしくお願いします。



203 :202:2010/04/25(日) 20:58:24 ID:wxYwaDiv0
いろいろ調べて回ったら無理みたいですね。
代替手段探さないと。
ますますWindowsじみてきた・・・。

204 :名称未設定:2010/04/25(日) 21:29:53 ID:FrpHzdj40
Finderスクリプトでクリエータ情報は取れるからjpgとjpegに使い分けるとか

205 :名称未設定:2010/04/25(日) 21:30:18 ID:IVOcR3cO0
>>202
ほとんど作成依頼に近いから誰もレスしないよね。まあそれはともかく,
ちょっと前に同じことを思っててAutomatorアプリ作ってたので,よければどうぞ。
スレ違いになるので,詳しくはAutomatorスレで。

206 :名称未設定:2010/05/03(月) 10:38:37 ID:gwhduUgJP
VLCでの反転再生スクリプトを
組みたいのですがどうにもできずに困っています。

tell application "VLC"
flip horizontal document 1 of window 1
end tell

あるサイトを見ていたらQTでは可能なようなのですが
コーデック等の問題がありVLCで再生したいと考えています。
ヒントだけでもいただけたらと思います・・・



207 :名称未設定:2010/05/03(月) 10:56:57 ID:xijRfQXS0
>>206
VLCにはflipというアップルスクリプトのコマンドはなく、
同じ機能のコマンドもないので不可能です。

208 :名称未設定:2010/05/03(月) 11:02:39 ID:gwhduUgJP
>>207
レスありがとうございます。
そうなんですね、そのアプリ内に既存であるものしか駄目と。
勉強になりました。

209 :名称未設定:2010/05/04(火) 02:51:00 ID:P4vAUUkC0
質問です。

process名とapplication名が以下のように、同じでないアプリケーションがありますが、
process名からapplication名を取得する方法はありますでしょうか。
「displayed name」では無いようです。

tell process "firefox-bin"
tell application "Firefox"

210 :名称未設定:2010/05/04(火) 06:43:50 ID:Geg/px5y0
こうかな。場合によっては色々な方法がありそう

tell application "System Events"
tell process "firefox-bin"
set bundle_identifier to bundle identifier
end tell
end tell

tell application id bundle_identifier
name
end tell


211 :名称未設定:2010/05/04(火) 12:05:55 ID:P4vAUUkC0
>>210
情報ありがとうございます。

FirefoxもFileMaker Proも取得できました。
application名は異なるのに「bundle identifier」が同じアプリケーション起動しているとき、うまく動きませんでした。OS 10.6.3です。

具体的には「Adobe Illustrator CS3」「Adobe Illustrator CS2」です。

process id でもダメでした。
tell application "System Events"
tell process id 51069105--"Adobe Illustrator CS3"
set bundle_identifier to bundle identifier
end tell
end tell
--> "com.adobe.illustrator"

tell application id bundle_identifier
name
end tell
--> "Adobe Illustrator CS2"

212 :名称未設定:2010/05/05(水) 15:41:55 ID:052BQzD50
10.4.11だけど
Illustratorはスクリプト側からバージョンの指示が出来ない
CS2以降はapplication名が全部"Adobe Illustrator"になってる
例えばCS2以降を起動して

tell application "Adobe Illustrator"
end tell

だけのスクリプトを作って保存して閉じる。
Illustrator 10だけ起動した状態でスクリプト開くと

tell application "Adobe Illustrator 10.0.3"
end tell

こんな風にスクリプト自体が書き換えられちゃう

processのtitleをapplication名として指示すれば
現在起動しているバージョンから優先で勝手に指示されるぽい。

213 :名称未設定:2010/05/06(木) 02:00:16 ID:1CSOgAvo0
Illustratorって謎ですね
ありがとうございました。

214 :名称未設定:2010/05/07(金) 19:41:13 ID:Z0yygs8s0
bundle identifierじゃなくパスで指定すればどうかな?
例えば、

application "Macintosh HD:Applications:hogehoge.app"
application "/Applications/hogehoge.app"

という書き方でもアプリケーションを指定できる
※POSIX形式が使えるのはLeopard以降

System Eventsのapplication processから〜という流れであれば、

tell application "System Events"
tell application process "hogehoge"
set application_path to application file as string
end tell
end tell
tell application application_path
name
end tell

こんな感じ?
Illustrator持ってないので確認はできないけど

215 :212:2010/05/08(土) 01:19:01 ID:6GKyY43Y0
>214
おお!これは自分も勉強になりました。
試したところTigerだと
application processではなくprocessにしないとエラー出ましたけども、

IllustratorはCS2以降Finderで「情報を見る」と
名前と拡張子が全部「Adobe Illustrator.app」になってますが
各バージョン親フォルダ名が別になってるのでパスで指定すれば
バージョン分けて指示できますね。
>209ではないですが、ちょっとApplescriptの用途が広がります。ありがとう。

216 :名称未設定:2010/05/11(火) 20:54:44 ID:d2Rf4N1O0
>>215
>試したところTigerだと
>application processではなくprocessにしないとエラー出ましたけども、

application processは10.4.11の用語辞書にも出てくるし、ウチの環境では問題無いですな
なんでかしら

アプリに拠るとも思えないが

217 :212:2010/05/12(水) 02:21:25 ID:rZKSd8SI0
>>216
説明不足でスンマセン。
process名に"Adobe Illustrator CS4"
といった具合にバージョン名まで入れるとパスが取得できて
複数のバージョンを同時起動していてもバージョン毎の選択が可能になるんだけど
application processでバージョンまで指定すると
「プロセスが見つかりません」ってエラーになる。

218 :名称未設定:2010/05/21(金) 08:38:22 ID:ZExdfL7BP
すいません、アプリケーションの最前面のウィンドウの位置と大きさを
{0,0,800,600}みたいな数字で確認する Applescript ってありますか?

219 :名称未設定:2010/05/21(金) 09:53:54 ID:6l1dk/t40
>>218
tell application "Finder"
set frontBound to bounds of front window
end tell
return frontBound

こんな感じで。

220 :名称未設定:2010/05/21(金) 10:56:34 ID:ZExdfL7BP
>>219
ありがとうございます!

221 :名称未設定:2010/05/24(月) 14:10:29 ID:8c5l8cYB0
menuのtitleを言語に依存しないで指定する方法はありますか?
例えば、
tell menu "表示"
これだと日本語OSの人しか実行できないと思っているのですが、違うのでしょうか?


222 :名称未設定:2010/05/24(月) 16:24:13 ID:WcRpfjfM0
tell menu 1 とか、tell menu 2 って感じで、位置で指定できなかったっけ?


223 :名称未設定:2010/05/24(月) 19:03:59 ID:8c5l8cYB0
なるほど、位置で指定するのですね。
全ロケール共通で使える識別名のようなものが用意されているのかと思っていました。

224 :名称未設定:2010/05/25(火) 21:35:20 ID:YD2fp6bU0
propertiesやattributesで採れる属性を使ってフィルタ参照かけるのが常套手段だけど、
menu bar itemでは名前以外に使えそうなネタは無さそうだね

menuは直上のmenu bar itemかmenu itemと同じ名前だし、
基本的に2つ並ぶ事は無いんで常にmenu 1でOK
とまぁこれは挙げ足取りだけど

225 :名称未設定:2010/05/30(日) 01:20:31 ID:6rK0gcWk0
iTunesでiPhoneまたはiPadだけを個別に同期する方法はありますか?

tell application "iTunes"
repeat with s in sources
if (kind of s is iPod) then update s
end repeat
end tell

でiTunesに繋げている全てのデバイスを同期できましたが、
デバイスの名前によって場合分けとかできるでしょうか?

226 :212:2010/05/30(日) 02:06:07 ID:A7YgVmM70
>>225
set iPodname to "あなたのiPodの名前"
tell application "iTunes"
set targetiPodList to sources whose name is iPodname
if length of targetiPodList > 0 and kind of item 1 of targetiPodList is iPod then
update item 1 of targetiPodList
end if
end tell

こんな感じかな?


227 :名称未設定:2010/05/30(日) 15:12:43 ID:6rK0gcWk0
>>226
ありがとうございます。うまく動きました。
iPod Shuffle / iPhone / iPod Touch / iPad と
全部繋げていても、個別に同期させることができました。

228 :名称未設定:2010/06/05(土) 14:51:46 ID:Mnkj+eG60
クリエータ変更するスクリプトでサクサクっと作業してたのに
10.6にしたらクリエータが変わらなくなったんで
AppleScriptの仕様が変わったのかと思ったらそういうことかよ。

229 :名称未設定:2010/06/07(月) 05:45:15 ID:td9znzXd0
AppleScript Users Group http://www.applescript.jp/
ってなくなったの?


230 :名称未設定:2010/06/13(日) 17:32:10 ID:ygevmGhc0
>>229
〜ADC Premier、Select、Studentメンバーシップに替わって、
新しいMacデベロッパプログラムを導入いたしました。〜ADCメンバーシップより

有料のデベロッパプログラムの会員登録が必要になったのかもですね。

231 :名称未設定:2010/06/13(日) 22:20:52 ID:qs7TOEKB0
AppleScript Users GroupはADCとは関係ない集まりじゃなかったっけ
今どうなってるのかは知らんけど

232 :名称未設定:2010/06/13(日) 23:47:48 ID:ygevmGhc0
>>231
すまん。
ADCの有料化で、アップル公式のリファレンスがみれなくなっていたので、そっちと勘違いしてました。

233 :名称未設定:2010/06/18(金) 06:57:39 ID:M5wzhMfB0
Clip Converterというドロップレットを使わせてもらってるんですが、これをメニューバーから選択したアイテムを変換する形式に変えたいのですが
どうすればいいでしょうか

on open (thefiles)
set desky to (path to desktop) as text
repeat with afile in thefiles
set theText to load resource 256 type "TEXT" from afile
set theText to theText as text
set afile to afile as text
set AppleScript's text item delimiters to ":"
set theName to text item -1 of afile
set AppleScript's text item delimiters to ""
set AppleScript's text item delimiters to "."
set theName to text items 1 thru -2 of theName
set AppleScript's text item delimiters to ""
set theName to theName & ".txt" as text
tell application "Finder"
make new file with properties {name:theName, creator type:"ttxt", file type:"TEXT"} at desktop
tell me
set myfile to desky & theName as text
set openit to open for access myfile with write permission
write theText to openit
close access openit
end tell
end tell
end repeat
end open

234 :名称未設定:2010/06/18(金) 09:11:15 ID:o4gdql6C0
>233
>1

235 :名称未設定:2010/06/18(金) 13:12:03 ID:M5wzhMfB0
>>234
ああ、これはすみません
元ソースの前に
on run
tell application "Finder" to set drop_items to selection
tell me to open drop_items
end run

これを加えてみたんですが、今度はload resourceの行でエラーが出てしまいます
applescriptはOS9以来なので、もうすっかり忘れてるみたいです
よろしくお願いします

236 :名称未設定:2010/06/18(金) 13:24:11 ID:o4gdql6C0
>235
>1

237 :名称未設定:2010/06/18(金) 20:32:57 ID:0DJg3ICw0
>>235
>今度はload resourceの行でエラーが出てしまいます
普通にここがマズいんじゃないの

つーか load resource なんて初めて見たんだけど、
必要なOSAXがインストールされてないとかじゃない?

238 :名称未設定:2010/06/21(月) 21:42:31 ID:Tdg78fpS0
applescriptのリモートイベントで
別のマシンにあるスクリプトを引数(日付と時間)付きで実行したいのですが
どうすればいいのでしょうか?
通常applescriptに引数を渡して実行するにはシェルを用いているようなのですが
リモートイベントだとdo shell script が許可されて無いらしく
ハンドラによって許可されていません とエラーがでます.
環境はApple Script 2.1.2です.


送信側スクリプト
on run
set Cdate to current date
tell application "Finder" of machine "eppc://hogehoge:hogehoge@192.168.1.1"
do shell script "osascript /Users/hogehoge/argTest.scpt " & hours of Cdate & " " & minutes of Cdate
end tell
end run

受信側スクリプト
on run arg
end run

239 :名称未設定:2010/06/22(火) 10:39:22 ID:alt9oRDa0
iTunesの二つのプレイリストに重複する曲を削除するスクリプトを作ろうとしています。

tell application "iTunes"
set theSongs to every track of playlist id 3578004
if (count of theSongs) > 0 then
repeat with x in theSongs
repeat with y in every track of playlist id 141058
if database ID of x is equal to database ID of y then
delete track y of playlist id 141058
end if
end repeat
end repeat
end if
end tell

が、「error "iTunes でエラーが起きました:ディスクリプタタイプが一致しません。" number -10001 to item」
というエラーが出てしまいます。どこが間違っているのでしょう?

240 :名称未設定:2010/06/23(水) 01:58:59 ID:Qv7c7qOw0
これは動く?(プレイリストの名前は目的のプレイリスト名にしてね)

tell application "iTunes"
get playlists whose name is "プレイリスト1の名前"
set PL1 to item 1 of result
set TRACKS1 to database ID of tracks of PL1
get playlists whose name is "プレイリスト2の名前"
set PL2 to item 1 of result
set TRACKS2 to database ID of tracks of PL2
repeat with i in TRACKS1
if i is in TRACKS2 then display dialog "同じのあったよ"
end repeat
end tell


動いたら下から3行目
>if i is in TRACKS2 then display dialog "同じのあったよ"
の部分をいじれば出来そう。

241 :239:2010/06/23(水) 07:35:15 ID:q8PRQPhX0
>>240

ありがとうございます。
結局以下のようにして自己解決しました。

tell application "iTunes"
set dupSongs to every track of playlist id 3578004
if (count of dupSongs) > 0 then
repeat with x in dupSongs
set theSongs to every track of playlist id 141058
repeat with y in theSongs
if database ID of x is equal to database ID of y then
delete y
exit repeat
end if
end repeat
end repeat
end if
end tell


>delete track y of playlist id 141058

>delete y
にすればよかったみたいです。
その他削除後にループをから抜ける処理など追加しています。

教えていただいたサンプルは試していませんが、アップルスクリプトらしい
コードの書き方大変参考になりました。


242 :名称未設定:2010/07/06(火) 01:11:50 ID:Z8knLvSA0
ignoring application responses
tell application “≪application name≫”
-- command here
end tell
end ignoring

tell application “≪application name≫”
with timeout of ≪number≫ seconds
-- protected command here
end timeout
end tell

with timeout of ≪number≫ seconds
tell application “≪application name≫”
-- protected command here
end tell
end timeout

243 :名称未設定:2010/07/07(水) 02:43:18 ID:pL2ZM4+c0
iPhoto上の全動画ファイルのファイル名を「日付」に変更したいと考えています。
Automatorの「Finder 項目名に日付または時刻を追加」で「作成日」を追加するやり方が簡単だったのですが、作成日がカラの物もあり一括処理できません。
(iphoto上では過去に頑張って修正済み)

そこで以下のようにApplescriptを組んでみましたが、うまくいきませんでした。
どこが悪いのか教えていただけますか?

tell application "iPhoto"
set aList to selection
repeat with i in aList
set aa to contents of i
set image filename of aa to (date) as string
end repeat
end tell

結果:
error "«class idat» of application \"iPhoto\" のタイプを string に変換できません。" number -1700 from «class idat» to string

参考にしたサイト
ttp://piyocast.com/as/archives/845

244 :名称未設定:2010/07/07(水) 02:44:53 ID:pL2ZM4+c0
iPhoto上の全動画ファイルのファイル名を「日付」に変更したいと考えています。
Automatorの「Finder 項目名に日付または時刻を追加」で「作成日」を追加するやり方が簡単だったのですが、作成日がカラの物もあり一括処理できません。
(iphoto上では過去に頑張って修正済み)

そこで以下のようにApplescriptを組んでみましたが、うまくいきませんでした。
どこが悪いのか教えていただけますか?

tell application "iPhoto"
set aList to selection
repeat with i in aList
set aa to contents of i
set image filename of aa to (date) as string
end repeat
end tell

結果:
error "«class idat» of application \"iPhoto\" のタイプを string に変換できません。" number -1700 from «class idat» to string

参考にしたサイト
ttp://piyocast.com/as/archives/845

245 :名称未設定:2010/07/07(水) 09:18:45 ID:N5w7YU190
>>244
辞書によればimage filename は変更不可、nameなら変更可

246 :名称未設定:2010/07/07(水) 20:36:49 ID:olVMY3210
やりたい事を考えると、date じゃなくて date of aa じゃないの?

247 :名称未設定:2010/07/13(火) 17:32:09 ID:lXzckkGk0
do shell script "〜"

と記述する時に、""で区切られた中で更に""を使いたい場合はどうすれば良いですか?

248 :名称未設定:2010/07/13(火) 17:38:15 ID:lXzckkGk0
Q: シェルコマンドで二重引用符とバックスラッシュを使う必要があるのですが、AppleScript で実行すると構文エラーになります。
A: AppleScript では、文字列は二重引用符で始まり二重引用符で終わります。文字列の中でリテラルとしての二重引用符を使うには、次のようにバックスラッシュ文字を使って、「エスケープ処理」を行う必要があります。

"a ¥"quote¥" mark"



解決しました。
後世に残す為に書いときますよ。

249 :名称未設定:2010/07/14(水) 00:40:42 ID:oYKnFyE/0
>>248
その内容も含めて>>1
>TN2065: do shell script
http://developer.apple.com/jp/technotes/tn2065.html
http://developer.apple.com/technotes/tn2002/tn2065.html
この辺に色々書いてあるので一緒に読んで置くと良いかと

250 :名称未設定:2010/07/14(水) 00:48:20 ID:oYKnFyE/0
おっと、日本語はこっち>>6の方が新しいか

251 :名称未設定:2010/08/11(水) 23:59:44 ID:11WUYnjA0
iTunesで、選択した曲を取得するのはselectionを使えば良いですが、
スクリプトの終了時に選択を解除したいと思っています。コマンド一覧を
探しても、該当するものが見つけられず、{}などを代入する方法も試して
みましたが、エラーになります。何か方法はありますでしょうか。

252 :名称未設定:2010/08/12(木) 00:51:46 ID:LjVYtmsW0
>>251
activate application "iTunes"
tell application "System Events"
tell process "iTunes"
keystroke "a" using {command down, shift down}
end tell
end tell

253 :251:2010/08/12(木) 16:44:17 ID:NMikliXS0
>>252
ヒントどころか、そのものズバリを教えて頂いてありがとうございます。
何か解除のコマンドがあるんだろうと探してましたが、ショートカットを
実行すれば済む話だったのですね。勉強になりました。それでは、どうも
ありがとうございました。

254 :名称未設定:2010/08/14(土) 14:12:30 ID:+P+6s8oJ0
質問です。

http://macscripter.net/viewtopic.php?id=18551

ここを参考にして文字列の置換をしようと考えたのですが、
アルファベットの大文字と小文字を区別してくれません。
どうやったら、区別するように変更できるでしょうか。

255 :名称未設定:2010/08/14(土) 15:39:06 ID:2yVlRUKq0
そのサイトのコメントに書いてあるじゃない。
considering case 〜 end considering


256 :名称未設定:2010/08/15(日) 01:47:31 ID:1PIXh2sR0
>>255
ほんとだ、書いてあるじゃない。
ありがとうございました。

257 :名称未設定:2010/08/22(日) 05:31:01 ID:pQ7cA8sO0
環境は10.5.8で以下の内容のASを実現すべく格闘中でした。

1. Finderで選択したファイルorフォルダのサイズをクリップボードにコピー。
2.クリップボードの内容を Finderで選択したファイルorフォルダ名末尾に追加。

1は4、5回目の挑戦にして切り貼りの結果なんとか以下まで調べました。
tell application "Finder"
set obj1 to selection as alias
get size of obj1
set fleSze to result
set fleSzeMB to fleSze div (1024 * 1024)
set the clipboard to (fleSzeMB as string)

258 :257:2010/08/22(日) 05:33:52 ID:pQ7cA8sO0
(途中で切れてました。すみません)

set the clipboard to (fleSzeMB as string) & "MB"
end tell

ここでようやく質問です。
Finderリスト表示や情報ウィンドウで表示されるアバウトな(?)表記と同じ数値を得る
もしくは同じになるように成形(?)するにはどうしたらいいのでしょうか。

とりあえず私のレベルにあわせ、サイズに合わせてのGB/MB/KBの柔軟な切り替えは
遠い未来への宿題にしときますです。(2は力尽きたのでとりあえず持ち越しです。)

よろしくお願いします。

259 :名称未設定:2010/08/22(日) 12:51:31 ID:u+WE7l4B0
ちょっと変えてみた
違ったらスマソ

tell application "Finder"
set obj1 to selection as alias
get physical size of obj1
set fleSze to result
if fleSze is less than 1024 * 1024 then
set fleSze to fleSze div 1024
set szeUnt to " KB"
else if fleSze is less than 1024 * 1024 * 1024 then
set fleSze to fleSze / (1024 * 1024)
set fleSze to (round (fleSze * 10)) / 10
set szeUnt to " MB"
else
set fleSze to fleSze / (1024 * 1024 * 1024)
set fleSze to (round (fleSze * 100)) / 100
set szeUnt to " GB"
end if
set the clipboard to (fleSze as string) & szeUnt
end tell

260 :257:2010/08/22(日) 14:58:10 ID:pQ7cA8sO0
>>259
ありがとうございます。動きはバッチリでした!
変数も私の書いた雰囲気ぽくしてもらったり単位の前に半角スペース入れたりと芸細で頭が下がります。
何より単位の切り替えまで!!

こうして答えを見させてもらうと、構造も複雑そうでもなく、なんとか読解できそうな感じで
初心者にはいい教本になりそうで勉強になるです。

次のオフタイムにちまちまトライ&エラーで勉強したいと思います。
ありがとうございました!


261 :名称未設定:2010/09/04(土) 13:25:16 ID:q/3MYKcx0
自動録画環境の構築のため、ファイル名から番組情報を読み取って、
iTunesのプレイリストを作ったりトラック名を入力したりするスクリプトを作っています。
これをRivetというPS3を利用したメディアサーバーで表示させているのですが、
濁点、半濁点がアンダースコアに置換されてしまいます。

例:ロードショー>ロート_ショー

ただ、厳密には以下のような状態です。
iTunesで直接ファイル名を入力した場合はきちんと表示される。
Script1のようにファイル名をAppleScriptで直接指定した場合もきちんと表示される。
しかし、Script2のようにファイル名を取得してからそれを入力させると置換されてしまう。

文字コード絡みのようなので、theNameにas unicode textを付けてみたりしたのですが、
変化ありませんでした。
特殊環境の質問でもうしわけないのですが、なにか解決策はないでしょうか?

==Script1==
set theName to "ロードショー"
tell application "iTunes"
make new playlist with properties {name:theName}
end tell

==Script2==
tell application "Finder"
set theName to name of file "Macintosh_HD:ほにゃらら:ロードショー.m4v"
end tell
tell application "iTunes"
make new playlist with properties {name:theName}
end tell


262 :名称未設定:2010/09/04(土) 16:00:55 ID:pRxfaKr50
>>261
よくわからないけど、これ使えるのかしらん
ttp://piyocast.com/as/archives/673

ついでながら、こういうオモロい話もめっけた
ttp://www.appleco.jp/piyomarusoft/nomorechris.html

263 :名称未設定:2010/09/04(土) 16:30:49 ID:nr4SCwo10
>>261

tell application "Finder"
set theName to name of file "Macintosh_HD:ほにゃらら:ロードショー.m4v"
set theName to nfc(theName) of me
end tell

on nfc(str)
do shell script "f=" & quoted form of str & ";echo ¥"${f%.m4v}¥"|iconv -f UTF8-MAC -t UTF8"
end nfc


264 :263:2010/09/04(土) 16:36:40 ID:nr4SCwo10
円マークは、バックスラッシュです。

265 :名称未設定:2010/09/04(土) 19:23:06 ID:q/3MYKcx0
>>262>>263
ありがとうございます。>>263さんのスクリプトで文字化け解消されました。
>>262さんでは変化なかったので、それとは違う問題みたいですね。
調べていたところ、Normalization form Dという単語に突きあたりました。
こんなのとか、
http://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html
こんなのとか。
http://kotoerisan.blog16.fc2.com/blog-entry-213.html

Mac OS X特有?のユニコードテキストの扱い方みたいですね。
これ絡みの問題なのかな。文字コードの話は難しい。。。

シェルスクリプトのiconvで変換するっぽいということまではたどり着いたのですが、
ちょっとした興味からAppleScriptをいじっている程度なので、
ワカンネーヨ!と思っていたところに神様が降りてきました。
ありがとうございました。

266 :名称未設定:2010/09/05(日) 21:14:55 ID:IbWjyI/X0
Apple ScriptやAutomatorの使い方ってどこでお勉強できるのですか?
古い本より新しい本のほうがいいですよね?

267 :名称未設定:2010/09/06(月) 00:34:27 ID:YKls6qIm0
基本的な質問で申し訳ないんだけど、
特定のフォルダ内のでエイリアスのみ(複数)
の一覧を取得することは可能ですか?

イメージとしてはフォルダ内に色んなファイルがあって、
エイリアスだけを抽出したい場合のロジック


268 :名称未設定:2010/09/06(月) 00:58:49 ID:hh8dZUQQ0
可能です

269 :名称未設定:2010/09/06(月) 01:06:06 ID:YKls6qIm0
是非教えていただけないでしょうか


270 :名称未設定:2010/09/06(月) 01:40:11 ID:JY0MZt4g0
every alias file of

とか?

271 :名称未設定:2010/09/06(月) 08:58:28 ID:Xw3WI2Nc0
>>266
そもそも本が出るジャンルじゃないんで、古い本でも良書ならそっちのほうがいよ。
良書は知らんけど。

サイトなら、ここら辺かな。更新してないけど。以前よりぐっと少なくなってえり好みは出来ない状況。
http://www.tonbi.jp/AppleScript/index.html

272 :名称未設定:2010/09/11(土) 13:33:38 ID:pIdeHP1o0
>>265
よく読めばわかるけど>>262も内容的には同じだよ
ただし前半は10.5、後半は10.4当時の話で、10.6とは状況が変わっている

前半のスクリプトを試してみたが、
そもそも10.6ではNFD文字列にcharacters of ~しても濁点が分離しない
だからといってNFC化されたわけでもない事は、
id of ~すれば確認できる

~ as stringして~ as Unicode textするという回避策も10.6では通用しない
となれば結局iconvとかするしかないわけだ

273 :名称未設定:2010/09/12(日) 02:32:23 ID:0LUq21Wf0
>>271
返事遅くなりすいません、1995年発売の本など安く売られてましたのですが、現在でも使えるのかなと思いまして。
サイトの紹介ありがとうございます。さっそく見てきます!

274 :名称未設定:2010/09/19(日) 08:56:43 ID:WKWNPIkk0
マウスで選択したファイルのファイル名(フルパス)を取得したいと思っています。
そこから右クリックでスクリプトを選択して、ファイル名を変更したり、移動したりといった簡単な処理をするつもりです。
ぐぐった限りではそういう特殊変数は見あたらなかったので、困っています。
どのようにすればマウスで選択したファイルのフルパスを取得できるでしょうか?

275 :名称未設定:2010/09/19(日) 10:23:20 ID:bMlzO3IFi
>>274
Finderのselectionだと思うけど、
Automatorがサクッと拾ってくれるのでそっち使ってる。

276 :名称未設定:2010/09/19(日) 11:36:39 ID:6z+ioYZ00
>>274
tell application "Finder"
repeat with hoge in (selection as list)
hoge as alias as string -- HFS式パスの取得
POSIX path of (hoge as alias) -- POSIX式パスの取得
end repeat
end tell

277 :名称未設定:2010/09/21(火) 15:35:35 ID:PU0Ggm7O0
jpgをfinderで選択後以下スクリプトを実行するとexiftoolが処理、
というスクリプトを見つけました。
これを複数JPEGを放り込むと作業開始して終了するドロプレットアプリにしたいのですが、
どこを書き換えればいいでしょうか?


tell application "Finder"
repeat with thisF in (selection as list)
set fname to quoted form of POSIX path of (thisF as text)
set exifcmd to "exiftool -overwrite_original -AllDates= -DateTimeDigitized= " & fname
do shell script exifcmd
end repeat
end tell

278 :名称未設定:2010/09/21(火) 15:38:32 ID:1zohyEd80
>>277
>>1

279 :名称未設定:2010/09/21(火) 19:07:24 ID:wJk+dX2q0
on open theseFs
end

280 :名称未設定:2010/09/22(水) 11:36:48 ID:FqL2rc+Y0
Mail.app で現在編集中のメッセージの件名を取得するにはどうしたら良いでしょうか。
「現在編集中のメッセージ」をどうやって扱えば良いかが分かりません。

281 :名称未設定:2010/09/22(水) 12:04:13 ID:NrA6VqKi0
/Applications/AppleScript/Example Scripts/Mail Scripts/Scripts Menu/Speak Sender and Subject___ctl-s.scpt
を参考にするとか
最近は入ってるかわかんないけど

282 :名称未設定:2010/09/22(水) 12:05:12 ID:NrA6VqKi0
ごめん、間違えました

283 :名称未設定:2010/09/22(水) 12:33:18 ID:AzUpCpKB0
>>280
name of window 1
でいいんじゃない、とりあえず

284 :名称未設定:2010/09/22(水) 13:34:47 ID:CvcjxZSh0
編集中ではなく選択中だけど、
これ見ると tell application "Mail" to subject of (get item 1 of selection) あたりでいいのかな
/Library/Scripts/Mail Scripts/Get Source of Selected Message.scpt

285 :名称未設定:2010/09/26(日) 09:04:00 ID:iDBgRxfK0
別のスレでソフト?の紹介をしてもらったのですが
使い方を教えてもらえなかったのでこちらで質問させていただきます

http://memogaki.soudesune.net/pressSpecialKey.html
こちらのpressSpecialKeyというのをダウンロードしたのですが
これを呼び出すAppleScriptはどう作ればいいのでしょうか?
サイトにあるdo shell〜をスクリプトエディタにコピペして実行するんじゃないんですよね

286 :名称未設定:2010/09/26(日) 09:06:43 ID:er3D8n310
>>285
いやそれをコピペして実行するんです

287 :285:2010/09/26(日) 09:58:40 ID:iDBgRxfK0
>>286
何度実行しても結果のところに""と出るだけで何も変化がないんです
アプリケーションフォルダにちゃんと入れてるんですけど…

288 :名称未設定:2010/09/26(日) 11:17:53 ID:iBlQMFgx0
do shell script "〜" の 〜 をターミナルで実行して何も表示されなければ、
エディタで実行しても何も表示されないよ

289 :名称未設定:2010/09/26(日) 17:19:32 ID:MynIqoH40
>>287

/Applications/pressSpecialKey
があるのなら、直接ターミナルから叩いて
エラーメッセージが出るか見るしかない。

290 :285:2010/09/26(日) 18:11:23 ID:iDBgRxfK0
>>289
ターミナルから入力しましたがやっぱり変化がありません
エラーメッセージらしきものも出てこないです

291 :名称未設定:2010/09/26(日) 18:24:03 ID:QzJIuMnE0
AppleScript以前の問題
他でやるか自力で何とかしろ

292 :名称未設定:2010/09/26(日) 18:39:47 ID:b9Q2U7Ib0
>>285
普通に動くけど、いまいち便利さがわからん。
作者はAppleScriptのApp形式にしてF10~F12に割り当てて使っているということかな?
F10~F12で音量メーターを出したいってことなんだろうか?

ちなみにApp形式保存で動くんだが、うちの環境が悪いのか、
キーボード環境設定からF10とかに割り当てようとするとなぜか落ちるようだ・・。

293 :名称未設定:2010/09/26(日) 18:54:52 ID:He3NHpjB0
作者はここの住人だった気がするから、実行環境書いて気長に待ってみれば

294 :名称未設定:2010/09/26(日) 22:23:00 ID:JqNZRomw0
>>292
元スレも見てるけど
F11 F12の音量調整を⇧+⌥+F11 ⇧+⌥+F12の音量微調整と置き換えるって意図みたい。
>>285はとりあえず>>1を読んで欲しい。

295 :名称未設定:2010/09/29(水) 18:48:57 ID:REvSicQ50
ちょっと試してみたけど10.5.8では使えないみたいだ

296 :名称未設定:2010/10/07(木) 09:02:59 ID:olWpGjrZ0
tell application "Aperture"
get selection
end tell
で帰って来るのが、
{image version id "sRu8VypyS5eajn346LuIvw" of album id "pCrWEm%LRE6DjUxw+JQOdA" of application "Aperture"}
なんですが、そのうち
album id "pCrWEm%LRE6DjUxw+JQOdA"
の部分を取り出し、
name of album id "pCrWEm%LRE6DjUxw+JQOdA"
こういう指定をしたいんですがどうするんでしょうか?


297 :名称未設定:2010/10/07(木) 11:06:31 ID:olWpGjrZ0
自己解決:parent of ほげほげ

298 :名称未設定:2010/10/10(日) 23:12:05 ID:UEPZQWIu0
文字列処理が残念なApplescript、皆さんどう対策してるのですか?

299 :名称未設定:2010/10/11(月) 00:02:47 ID:sOq+uxpe0
>>298
文字列処理に関しては TextCommands を入れると、
ほとんど不満はなくなると思うよ。
>Scripting Additions: TextCommands 1.1.3
ttp://osaxen.com/files/textcommands-1.1.3.html

300 :名称未設定:2010/10/11(月) 03:05:22 ID:er1zNTmJ0
>>298, 299
TextCommands は Scripting Addtion じゃなくて、バックグラウンドアプリケーションなので、やり取りが頻繁になると速度が稼げない。

僕は、ライブラリを作って対処している。
http://homepage.mac.com/tkurita/scriptfactory/XModules/index.html#XText

90%の用途にはこのライブラリで足りると思う。足りないところを TextCommands とか、SatImage.osax とか使えばいいでしょう。


301 :名称未設定:2010/10/11(月) 03:07:38 ID:er1zNTmJ0
>>298
残念なところがほとんどなんだけど、

word 1 of a_text

みないな妙に賢いところもあることを忘れないでね。

302 :名称未設定:2010/10/19(火) 17:38:37 ID:s9Jr3/Zv0
一般的な話として、もう変更しないだろうってスクリプトは
アプリケーションとして保存して走らせた方が速いの?

303 :名称未設定:2010/10/19(火) 18:33:20 ID:Kmk2AHqy0
アプリケーションにしても編集出来るが?w
実行専用の事? たぶん変わらんけど試してみたらいいんじゃねーの?

304 :名称未設定:2010/10/19(火) 18:42:55 ID:s9Jr3/Zv0
やってみた結果で すげー速かったので一般的にどうなのかなって
思っただけです。

305 :名称未設定:2010/10/20(水) 01:18:12 ID:XgL6LMvS0
スクリプト、だとロゼッタで実行されて
スクリプトバンドル、だとネイティブに実行される
そんな感じの違いじゃなかったっけ
IntelMacでロゼッタだと遅い

306 :名称未設定:2010/10/20(水) 15:32:33 ID:GEfEoOZd0
スクリプトエディタはユニバーサルバイナリだからRosettaは関係なくね
アプリケーションとアプリケーションバンドルの話ならその通りだけど

Snow Leopardではアプリケーション=アプリケーションバンドルだからややこしいが

307 :名称未設定:2010/10/23(土) 03:46:26 ID:HyYmIbE90
そういやスクリプトバンドルは、編集して保存したときにパッケージの変更日時を変えて欲しい

308 :名称未設定:2010/10/25(月) 14:41:13 ID:QG89zPGg0
consideringなんたらでひらがなとカタカナを別物としてあつかうにはなんて書けばいいの?

309 :名称未設定:2010/10/25(月) 22:54:25 ID:2HsylUd60
>>307
別名保存は面倒か?

310 :名称未設定:2010/10/26(火) 01:29:24 ID:5mAsSWX60
>>309
う ん
こまめに保存する人だし
Finder選択項目にtouchするスクリプト書いたからいいんだけどさ
>>308
俺もそれ気になる。つか出来るのか?

311 :名称未設定:2010/10/26(火) 08:11:41 ID:ldwUOkxH0
テンプレのリンク先読むとか適当にググるとかなんで出来ないのかな君らは
結論から言うと昔は出来たが今は無理

テンプレより
http://www.tonbi.jp/AppleScript/dic/Basic/Command/considering.html

「considering ひらがな カタカナ」でググった先頭
http://piyocast.com/as/archives/900

312 :名称未設定:2010/10/29(金) 03:04:22 ID:yMfd41GO0
あるフォルダウインドウに対して「常にアイコン表示で開く」を
AppleScriptで設定するにはどうすればいいんでしょうか。
用語説明で見つからないんです。

313 :名称未設定:2010/10/29(金) 03:38:34 ID:2nPKE5pJ0
>>312
GUIスクリプティングしかない

314 :名称未設定:2010/10/29(金) 04:04:06 ID:yMfd41GO0
プロパティは用意されてなかったのですか。
それは最後の手段と思ってたんですが、最後の手段しかなかったんですね。


315 :名称未設定:2010/10/29(金) 04:42:09 ID:2nPKE5pJ0
>>314
http://wakabamac.blog95.fc2.com/blog-entry-559.html
のSet ViewStyleがソースも公開してらっしゃるので参考にどうぞ

そこのは10.5用なので10.6のFinderだといじる必要があるかも

316 :名称未設定:2010/10/29(金) 18:33:06 ID:yMfd41GO0
ありがとうです

317 :名称未設定:2010/11/03(水) 18:44:20 ID:jJasbw290
いいってことよ

318 :名無し:2010/11/07(日) 08:19:49 ID:dM9cMyBC0 ?2BP(0)

>>80 − 85 で出ていた話題ですが
デスクトップ上で子フォルダー内ファイルを名前で検索する場合

set theFile to every item of desktop that (“なんとか” is in name)
としてとりあえず検索できたのですが、フォルダ内は検索できません。
entire contents とすると、タイムアウト1712が出ます。

子フォルダ内を検索する構文のヒントありますでしょうか。

319 :名称未設定:2010/11/07(日) 23:57:23 ID:osGM0sjS0
>>318
with timeout of ~ を使うのが手っ取り早いです

320 :名称未設定:2010/11/09(火) 12:15:13 ID:ibXK4l5e0
まめちしき

with timeout of 〜 に1/60より小さい数(0とかマイナスとか9/600とか)を設定すると、
幾ら待ってもタイムアウトしなくなる

絶対にタイムアウトさせたくない場合に有効

321 :名称未設定:2010/11/11(木) 00:38:45 ID:hd0tRhd20
osx 10.6で、キーチェーンアクセスの「スクリーンをロック」を一発起動するスクリプトを書きたいと思っています。
ログイン画面に移動するスクリプトはwebで見つけたのですが、これをいじって試行錯誤みても、エラーでうまくいきませんでした。

do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -suspend"

キーチェーンアクセスの「スクリーンをロック」を起動するスクリプトとするには、どうすればよいか教えていただけないでしょうか?

322 :名称未設定:2010/11/11(木) 01:52:41 ID:0Vk4xSSU0
>>321
-- キーチェーンメニュー経由でスクリーンをロックする
tell application "System Events"
tell process "SystemUIServer"
repeat with i from 1 to number of menu bar items of menu bar 1
tell menu bar item i of menu bar 1
click
try
if name of menu item 1 of front menu is "スクリーンをロック" then
click menu item "スクリーンをロック" of front menu
exit repeat
end if
end try
end tell
end repeat
end tell
end tell

323 :名称未設定:2010/11/11(木) 05:44:21 ID:S4ddH12yP
なんという力技

324 :321:2010/11/12(金) 11:01:21 ID:3H656q1I0
レスどうもありがとうございました。
もうすこしスマートなやり方で、というのは、やはり難しいでしょうか。
(もちろん現状でも十分ありがたいですが)

325 :名称未設定:2010/11/12(金) 15:06:15 ID:yckoYkkd0
エラーでうまくいかないというなら、まずエラーの内容を検証するべきなんじゃないのか
つーか>>321をそのままコピペしてちゃんと動いたけど?

326 :名称未設定:2010/11/14(日) 11:31:21 ID:93NqmcRR0
property変数に大きなデータ入れると、ファイルサイズが増えるのは仕様通りとして、
local変数でも、ファイルサイズが増えるのは仕様でしょうか?

終了する前に空にしておけば、大丈夫ですけど(OS 10.5/AppleScriptエデイタ2.3)。

327 :名称未設定:2010/11/15(月) 11:45:28 ID:Q8CLTv5R0
トップレベルの変数でlocal宣言してないだけなら、実質global変数扱いなのであってる

328 :名称未設定:2010/11/15(月) 21:27:12 ID:uWvFeBnd0
>>327
runハンドラ内で宣言なしに変数を使用した場合、他のハンドラからは参照出来ないため、
local変数になっていると思い込んでいたのですが、実体はglobalと言うことのようですね。
確かにlocal宣言しておけば、サイズが増えることはありませんでした。どうもありがとう
ございました。勉強になりました。

329 :名称未設定:2010/11/15(月) 23:00:11 ID:F8O7Hruo0
Cygwin使っている人いますか? その20
http://hibari.2ch.net/test/read.cgi/unix/1268282846/

272 名無しさん@お腹いっぱい。 [sage] 2010/11/15(月) 11:42:30 ID: Be:
マウントオプションとは別に、CRLFをLFに変換するツールはないでしょうか?

美乳セーラー女子高生とSEX顔射フィニッシュ

というコマンドやnkfでも一応可能なのですが
専用のツールはなかったかと思いまして

273 名無しさん@お腹いっぱい。 [sage] 2010/11/15(月) 11:43:21 ID: Be:
>>272
コピペミスった、、、、、
見なかったことにしてください

コマンドは、

cat crlf.txt | tr -d '\r' > lf.txt

です。

330 :名称未設定:2010/11/16(火) 02:10:14 ID:UX4Kr90u0
【みんな大好き】風間ゆみpart9【豊満巨乳癒し系】
ttp://set.bbspink.com/test/read.cgi/avideo2/1280504808/

331 :名称未設定:2010/11/17(水) 02:31:38 ID:SH9dn2p30
>>328
>runハンドラ内で宣言なしに変数を使用した場合、他のハンドラからは参照出来ないため、
>local変数になっていると思い込んでいたのですが、実体はglobalと言うことのようですね。

ASのglobal変数は、他の言語の大域変数とはちょっと違う

例えばpropertyの様にスクリプトのトップで宣言すると、
スクリプト内の全てのハンドラで共有されるので、全ての「他のハンドラから参照」出来る
ハンドラの中で宣言すると、スクリプト内のglobal宣言したハンドラで共有されるので、
global宣言されている「他のハンドラから参照」出来るが、
それ以外の「他のハンドラから参照」出来ない

んでlocal/global宣言の無い変数は通常local宣言が省略されてる扱いになるんだけど、
runハンドラだけはglobal宣言が省略されたものとして処理される
トップで宣言したわけじゃないからそのままでは「他のハンドラから参照」出来ないけど、
runハンドラ内でのglobal宣言は省略されているだけなので、
global宣言されている「他のハンドラから参照」する事は出来る

詳しくはこの辺で
http://www.tonbi.jp/AppleScript/tips/Variable/g_Scope.html
http://homepage.mac.com/tkurita/scriptfactory/monologue/GlobalVariable/index.xhtml

332 :328:2010/11/19(金) 01:53:04 ID:oNlQpUF30
>>331
わかりやすいサイトまで紹介して頂いて、ありがとうございます。確かに、他の言語から
AppleScriptに入ると、その仕様はちょっと戸惑ってしまいますね。他にも興味深い記事が
多く掲載されていますので、じっくりと拝見させて頂きます。ありがとうございました。

333 :名称未設定:2010/11/22(月) 09:48:28 ID:0r41EIhf0
10.6のAppleScriptって
ファイルのクリエータ情報は読めるけど、もしかして書き込みはできない?

334 :名称未設定:2010/11/24(水) 00:55:31 ID:A9r/4EF40
どうか教えてください。。

間違って縦で録ってしまった動画を右に90度回転させて再生したいのですが、
ぐぐってみつけた下記のスクリプトを実行すると「構文エラー」になってしまいます。
どこがいけないのでしょうか。。。AppleScriptエディタのバージョンは2.3で、
OSは10.6です。よろしくお願いします。

tell application "QuickTime Player" to rotate right movie 1 of window 1

335 :名称未設定:2010/11/24(水) 01:10:30 ID:92AJyuyt0
""はダメ

336 :名称未設定:2010/11/24(水) 01:53:52 ID:1X2exXnW0
MPEG Streamclip 使った方が何かと楽なんじゃないの?

337 :名称未設定:2010/11/24(水) 02:25:25 ID:4fdiYNlJ0
人間の首を傾けた方が楽なんじゃないの

338 :名称未設定:2010/11/24(水) 02:33:58 ID:Zm4ClOpp0
ttp://www33.ocn.ne.jp/~xinoue/mactipsx/playerScripts.html
これかな

QT7用のスクリプトはQTXじゃ動かないのが多い
一番楽なのはQT7を追加インストールする事

339 :334:2010/11/24(水) 11:18:07 ID:nYaxkk6u0
わあ レスありがとうございます!

>>335
>>338さんが貼ってくれたリンクの下にあるコレ↓は作動したんですよ。。
tell application "QuickTime Player" to new audio recording

>>336
MPEG Streamclip、ちょっと試してみます。

>>337
昨日はMacBook傾けてみてましたが、、いやでした。

>>338
QT7ってまだDLできるんでしょうか。ちょっとみてみます。

340 :名称未設定:2010/11/24(水) 15:44:13 ID:hv0EObPL0
>>334
このスクリプトだと7でも動かない。
以前は出来たと思ったんだが、バグかな……?

tell application "QuickTime Player" to rotate right track "ビデオトラック" of document 1 of window 1

これでできるはず。

341 :名称未設定:2010/11/24(水) 16:10:26 ID:hv0EObPL0
あ、悪い
>>340だとアスペクト比が狂うな。
サイズも指定しないと駄目か。

342 :339:2010/11/24(水) 18:37:55 ID:zrW0g5u/0
>>336
MPEG Streamclip入れてみました。
コンバートメニューに「Rotation(画像回転)」があり、
そこで設定してコンバート→保存すると回転させる事ができました〜 Thanxです〜!
もし、コンバートしないで(そのまま再生で)回転させる方法があればおしえていただければありがたいです。

>>338
QT7インストール試したのですが、QTXがあると再インストールできないようでした。。残念です。

>>340
ありがとうございます! 帰宅してから試してみます。

343 :342:2010/11/24(水) 18:39:27 ID:zrW0g5u/0
×再インストール
○追加インストール

344 :336:2010/11/24(水) 20:56:05 ID:KQxcJSxW0
ごめん。
Edit メニュー > Rotate Video > Rotate Video CW / CCW は 1.9.3 からみたい。見直したら 1.9.2 にはなかった。1.9.3b4 使ってみて。

345 :名称未設定:2010/11/24(水) 21:27:28 ID:VREddEP20
>>342
http://support.apple.com/kb/DL923?viewlocale=ja_JP&locale=ja_JP

QT7はコレか、システムディスクに入ってる追加インストール用じゃないとダメだよ。

346 :342:2010/11/25(木) 13:37:47 ID:Hp7z0w5F0
>>340
教えてもらったスクリプトでも構文エラーになってしまいました。。Xじゃだめで
7だといけるのでしょうか。。>>345さんが貼ってくれたQT7を試してみますね。
QTX用のスクリプトってまだあまり作られていないのですかね〜
レスありがとうございます。

>>344
1.9.3b4 すばらしい〜 ありがとうございました!

347 :名称未設定:2010/11/26(金) 00:30:40 ID:fxEpu8Uh0
>>342
横からごめん。QTXでは rotate ってコマンドがなくなってるの。
ていうか、 track ってオブジェクト自体がなくなってるんよ。ファイルメニューの用語辞典を見てみること。
tell application "QuickTime Player 7"
activate
end tell
これ、コマンドRしてみな?立ち上がらない?
もしくは、アプリケーションフォルダの中のユーティリティフォルダ見たらはいってるかもよ?
無かったら345さんの書いた7のインストールをためしてみ。

>>341
比率かわらんかったぞ?大丈夫だったぞ?

縦横比を見て縦長だったら横にして、再生するドロップレット作るってのもよいかもね。拡張子みてプレーヤー切り替えたりさ。
見てて楽しそうで、つい横したくなりました。341さんので良いけど、初心者の人には1行は。。。全部書くのも無粋だからキモのところだけ。QT7を入れてから以下。
tell application "QuickTime Player 7"
tell document 1
rotate right track "ビデオトラック"
end tell
present document 1 scale screen
end tell

348 :名称未設定:2010/11/26(金) 00:53:55 ID:ICoVgtzP0
AppleScriptに拘らないならcommand lineからQuickTime扱えるQTCoffee使う方が簡単
http://www.3am.pair.com/QTCoffee.html

90度右回転:catmovie -rotate 90 -o out.mov in.mov
左右反転 :catmovie -hscale -1 -o out.mov in.mov
とか

349 :346:2010/11/26(金) 10:43:16 ID:bQz4FC+v0
QT7の追加インストールは無事できました〜 ので、
>>340>>347で教えていただいたスクリプトを実行してみるとどちらも…

QuickTime Player 7 でエラーが起きました:
track "ビデオトラック" of document 1 を取り出すことはできません。

↑このようなことになってしまいました。。スクリプト難しい。。
もしよろしければ対応法教えていただければと思います、お願いします。

350 :347:2010/11/26(金) 17:20:04 ID:2z9RhC8s0
>>349
エラーも書かないとわからんぞ?こんな感じかい?

tell application "QuickTime Player 7"
rotate right track "ビデオトラック" of document 1
--> error number -1719 from document 1
結果:
error "QuickTime Player 7 でエラーが起きました:document 1 を取り出すことはできません。正しくないインデックスです。" number -1719 from document 1

ムービーを開いていないとエラー出るよ。
ちゃんと開けてるぞ?ってのなら、ムービーのプロパティあけて、ちゃんとビデオトラックがあるか確認すること。

351 :名称未設定:2010/11/26(金) 22:17:48 ID:xq2TD4Vp0
>>350
プロパティはPROじゃないと見られないよ。
そもそもPROならプロパティのビデオトラックの設定で回転させればいいだけなので
334氏もこんなに苦労しなくていいだろうに。

352 :345:2010/11/26(金) 22:54:00 ID:3/GLFIwr0
>>349
QuickTime Player7を起動したとき、StoreみたいなWindowが出てきたと思うけど、
それが表示されたままになってない? 多分、>tell document 1でそのWindowを呼びに
行くからエラーになってるだけだと思う。

再生したいファイルのWindowだけにすれば動くと思うけど、tell document 1の番号は、
追加で開いた場合、後で開いたものが"1"、先に開いたものが"2"になったりもするから、
改良するときは注意した方がいいよ。閉じたら、また番号が変わるし。

再生したいファイルを最後に開くのなら、下のように修正すれば複数開いても動くかと。

tell application "QuickTime Player 7"
set window_no to count of every window
tell document window_no
rotate right track "ビデオトラック"
end tell
present document window_no scale screen
end tell

353 :352:2010/11/26(金) 23:11:01 ID:3/GLFIwr0
あぁ、ごめん。上のだと、最初に開いたWindowを指定になるから、最後に開く限りは
tell document 1で動くはず。もし、再生したいWindowだけにしても動かない場合は、
mpegファイルを再生しようとしてるとか。

354 :名称未設定:2010/11/27(土) 02:07:09 ID:DPBne+3R0
一気に書き写すから原因がわからない
前も書いたが順を追って確認するべし

例えば>>340ならこう
tell application "QuickTime Player" to window 1
tell application "QuickTime Player" to document 1 of window 1
tell application "QuickTime Player" to track "ビデオトラック" of document 1 of window 1
tell application "QuickTime Player" to rotate right track "ビデオトラック" of document 1 of window 1

上から、或いは下から順に「1行ずつ」実行してエラーになる原因を探る

355 :349:2010/11/28(日) 08:10:38 ID:+xCaRjE+0
報告が遅れましてスミマセン。
レスありがとうございます!

>>353を読んではっとしたのですが、もしかしてmpegファイルだとダメなんでしょうか?
まさにmpegファイルなのですよ;; そして別の.mov動画を>>352
スクリプトで実行すると見事回転して再生されました!
拡張子(ファイルの種類)の問題だったのでしょうか?

>>348
QTCoffee便利そうですね〜

>>350
ムービーを開いていてもエラーは出てしまいました。

>>354
化学の実験みたいですね。。ムズカシイ

356 :352:2010/11/28(日) 12:10:03 ID:/7M9WfwG0
>>355

MPEGファイルだとファイル構造の関係でダメなので、これなら動かない?

tell application "QuickTime Player 7"
activate "QuickTime Player 7"
rotate right track of document 1 of window 1
present document 1 scale screen
end tell

357 :名称未設定:2010/11/28(日) 22:45:44 ID:6Bl+CZyO0
>>356
動きました動きました! 
”ビデオトラック”という言葉がNGだったのかな〜?
勉強になりました。どうもありがとう!

358 :名称未設定:2010/12/01(水) 19:44:28 ID:yn9CeNUb0
お題 http://hibari.2ch.net/test/read.cgi/mac/1281949690/615
1. OSX10.6
4.jpegを放り込むと黒フレームを入れて保存される。
できれば初期設定のみでサクッと変換するドロップレット系が希望。

下記をアプリとして保存。作成、確認は10.4.11だけどw

on open someFiles
set folderName to "Padded Images"
set destFolder to (path to desktop as string) & folderName
tell application "Finder"
if not (exists destFolder) then
make new folder with properties {name:folderName}
end if
end tell
repeat with aFile in someFiles
tell application "Image Events"
set anImage to open aFile
tell anImage
set {origWidth, origHeight} to dimensions
pad to dimensions {origWidth + 20, origHeight + 20}
end tell
save anImage in file (destFolder & ":" & name of anImage)
close anImage
end tell
end repeat
end open

359 :358:2010/12/02(木) 06:49:24 ID:dTl1nEXA0
>>358
修正(tell application "Image Events" to launchの行を加える)

on open someFiles
set folderName to "Padded Images"
set destFolder to (path to desktop as string) & folderName
tell application "Finder"
if not (exists destFolder) then
make new folder with properties {name:folderName}
end if
end tell
tell application "Image Events" to launch
repeat with aFile in someFiles
tell application "Image Events"
set anImage to open aFile
tell anImage
set {origWidth, origHeight} to dimensions
pad to dimensions {origWidth + 20, origHeight + 20}
end tell
save anImage in file (destFolder & ":" & name of anImage)
close anImage
end tell
end repeat
end open

360 :名称未設定:2010/12/03(金) 02:17:52 ID:WZJhzlbw0
/????/にあるtext.docをテキストエディットで開く場合、

do shell script "open -a /Applications/TextEdit.app/ /????/text.doc"

テキストエディットが起動していない時はこれで上手くいくのですが、
すでに起動している場合、開くことは開くのですがエラー音がして
処理がここで止まってしまいます。どうすればよいのでしょうか?

361 :名称未設定:2010/12/03(金) 03:01:28 ID:WZJhzlbw0
続く処理に
tell application "System Events"
を加えたら上手くいきました

362 :名称未設定:2010/12/03(金) 03:09:16 ID:Xv7AC/jp0
>開くことは開くのですがエラー音がして処理がここで止まってしまいます
実際には更にスクリプトが続いていて、それが実行できないという意味だろうか?

エラーが出てるのならエラーの内容見ない事には何とも言えないな
ウチでは再現しないし、tryで囲めばいんじゃね?ぐらいのアドバイスしかできない

ちなみにテキストエディットで起動させるときは-aオプションじゃなくて-t使った方が楽

363 :名称未設定:2010/12/03(金) 03:11:03 ID:Xv7AC/jp0
おお、入れ違い…ってなんじゃそりゃ>>361
do shell script 云々は全然関係無いとしか思えないな

364 :名称未設定:2010/12/03(金) 08:20:26 ID:WZJhzlbw0
>>362
>実際には更にスクリプトが続いていて、それが実行できないという意味だろうか?

そうです。
>>360の次の行でダイアログを表示するようにしていました。

do shell script "open -a /Applications/TextEdit.app/ /????/text.doc"
display dialog "こんにちは"

こんな感じです。
テキストエディットが起動していない状態でこのスクリプトを実行すると、
テキストエディットが起動し「こんにちは」が表示されたのですが、
テキストエディットがすでに起動している場合にはビープ音がして「こんにちは」が表示されませんでした。
んで、1行目と2行目の間に>>361の文を挟んだところ無事表示されるようになりました。

365 :名称未設定:2010/12/03(金) 11:42:09 ID:FmzB07NB0
>>359
358さん有り難うございます。
これ、保存時のJPEGをquality 100等設定できないでしょうか?

366 :358:2010/12/03(金) 15:26:58 ID:JDeT/3y10
>>365
Image Eventsでそういった設定はできなくて、ダメでした。

367 :名称未設定:2010/12/03(金) 17:59:56 ID:PoQDXIZF0
>>366
Image Suiteのsave項目に
[with compression level high/low/medium] : specifies the compression level of the resultant file ( applies only to JPEG )
があるぞ。

368 :名称未設定:2010/12/03(金) 19:02:57 ID:anZER08h0
with compression level high にしてもファイルサイズは何も書かないときと同じじゃね?

369 :名称未設定:2010/12/03(金) 19:24:19 ID:FnQ+PTFu0
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 + 20
set padImageWidth to imageWidth + 20

set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --out ~/Desktop/" & "pad" & theDropItemName

do shell script scriptCommand
end repeat

end open

sips を使えば楽だろうと思ったらそんなことはなかった。

370 :名称未設定:2010/12/03(金) 22:49:21 ID:7+SgpkCo0
>>369
凄い・・・有り難うございました!!なにもお礼ができませんが・・

371 :358:2010/12/04(土) 01:00:37 ID:PdJ+dPBF0
OS標準品でできるんじゃね?と思って始めてみたものの、迷走しすぎたw
お騒がせスマソ

372 :名称未設定:2010/12/04(土) 02:32:59 ID:dsrL7F3p0
>>364
ああ、意味がわかった

それはエラーじゃないし止まってもいない
ダイアログは表示されなかったんじゃなくて、裏に隠れてるだけ
ボタンの入力待ちなのだからそりゃダイアログが見えなきゃ止まってるように見えるわな

display dialogを単独で書くと、スクリプト実行環境のダイアログとして表示される
しかしopenした時点でテキストエディットが手前に来て実行環境が裏に回ってしまうので、
ダイアログは裏で表示されてしまった訳だ

一方display dialogをアプリケーションに対して実行すると、
そのアプリケーションのダイアログとして表示される

多分
tell application "System Events" to display dialog "こんにちわ"

tell application "System Events"
display dialog "こんにちわ"
end tell
としたのかな

しかし裏方アプリなSystem Eventsは隠れない代わりに手前にも来ない
という事で俺ならこうする

do shell script "open -t "/????/text.doc"
tell application "TextEdit" to display dialog "こんにちわ"

こうすればダイアログが手前に来ている状態になるので、
わざわざダイアログをクリックしなくてもenterでOK、escでキャンセルボタンが反応する

373 :名称未設定:2010/12/04(土) 02:35:58 ID:dsrL7F3p0
おっと、ダブルクォートを1つ消し忘れ
do shell script "open -t /????/text.doc"

374 :名称未設定:2010/12/04(土) 19:19:48 ID:vufaBGFn0
>>369
修正
set scriptCommand to "sips "~の行は
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --out " & "~/Desktop/" & (quoted form of ("pad" & theDropItemName))

>>371
Image Events とsips ってほぼ同じものだと思ってたけど
ヘルプ見ると微妙にオプションで設定できることが違うねえ。

どうせsips使うなら全部sipsでやろうと思ったんだけど、
-g オプションで取得できる標準出力が面倒な型なのでやめました。
どっちも一長一短あるなあ。

375 :名称未設定:2010/12/05(日) 10:54:55 ID:zjri4Kel0
iTunesで Preference → general → import settings...
を操作して、
一発でApple Lossless と iTunes Plusを切り替えたいのですが、
どうしたらよろしいでしょうか?
スクリプトエディターのライブラリを見てみましたが適切なものが見つかりません。

376 :名称未設定:2010/12/05(日) 12:28:08 ID:+Co3POab0
>>375
name of encodersでエンコーダーのフォーマット一覧が出てくる
set current encoder to でフォーマットを選ぶ

377 :375:2010/12/05(日) 16:55:33 ID:zjri4Kel0
ありがとうございました。うまくいきました。
ここも参考にしました。
ttp://d.hatena.ne.jp/seuzo/mobile?word=*[AppleScript]

378 :名称未設定:2010/12/05(日) 18:10:25 ID:5K/lA25GP
tell application "System Events"
activate
display dialog "こんにちわ"

379 :名称未設定:2010/12/06(月) 05:47:02 ID:d5dWTPjL0
end tell しないと構文エラーだな

380 :名称未設定:2010/12/12(日) 17:04:26 ID:TjebxVbF0
現在のファイルネームをSpotlightコメントに書き込むスクリプト
選択したフォルダの第一階層のみ。
あとすでにSpotlightコメントがある場合は、上書きされる。

on run
tell application "Finder"
set targetFolder to choose folder
set targetFolderPath to targetFolder as alias
set targetFolderPath to targetFolderPath as Unicode text

list folder targetFolder without invisibles
set targetFolderItemList to result

if targetFolderItemList is not {} then
repeat with theItemName in targetFolderItemList
set theItemPath to (targetFolderPath & theItemName) as alias
set comment of theItemPath to theItemName
end repeat
end if

end tell
end run

381 :名称未設定:2010/12/12(日) 21:19:30 ID:U5LHa1q10
機能は分かるが使用目的がわからんぞ

382 :名称未設定:2010/12/13(月) 00:26:21 ID:2u8wxIEk0
多スレの質問への回答をなぜかここに貼ってるから解らないことになる。
ちょっとその旨付け足しとけよな
ttp://hibari.2ch.net/test/read.cgi/mac/1281949690/700

383 :名称未設定:2010/12/13(月) 22:31:29 ID:gvkRPoOh0
>>381-382
いや、申し訳ない。
すっかり忘れてました。

こっちに書き込んだのは、
AppleScriptはこっちに集中させた方が良いかと思ったためです。
お騒がせしました。

384 :名称未設定:2010/12/15(水) 02:09:51 ID:5BJFSx1/0
ここに書く事自体は問題ないと思うよ
>>358みたいな感じで

385 :名称未設定:2011/01/18(火) 10:54:39 ID:jHEJDl0m0
今まで動いてたスクリプトが動かないぞ?と思ったら、
Tell application "ほにゃらら"
end tell
でアプリケーション起動しなくなってません?うちだけかな。。。

386 :名称未設定:2011/01/18(火) 11:05:53 ID:UwbvpIXu0
今までの仕様は忘れたけど10.6.6では起動しないね。

387 :名称未設定:2011/01/18(火) 11:47:45 ID:jHEJDl0m0
>>386
コマンド挟んだら普通に起動しました。勘違いかもしれません。
動かなくなった原因調査中。

388 :名称未設定:2011/01/18(火) 13:15:50 ID:Yp4b0wEI0
今までもあいだになんかコマンド挟んでた

389 :名称未設定:2011/01/18(火) 13:26:05 ID:oN2Xz44RP
Tell application "ほにゃらら"
(よっしゃ、何かするのか、ほにゃららを起動する準備するか)
end tell
(なんだよ、何もしないのかよ、だったら呼ぶなよ、起動やんぴ)

390 :名称未設定:2011/01/18(火) 13:58:10 ID:CuEAtHB70
かわいいw

391 :名称未設定:2011/01/18(火) 14:21:31 ID:jHEJDl0m0
QT7がインストールされているか否かの確認として利用していたのですが、
runを挟んだところスクリプトも動いたので、
動作不良はやっぱりこれが原因だったようです。
まぁイレギュラーなケースでしょうね。お騒がせしました。

392 :名称未設定:2011/01/19(水) 00:23:38 ID:i6PFOiij0
>>391
run application "ほにゃらら"

393 :名称未設定:2011/01/23(日) 22:58:03 ID:7dKv8WwB0
質問させてください。
TeXShopというTeXのエディタで、文書中の日本語が含まれる行のに半角の括弧が含まれていた場合、
それを全角に置換するスクリプトを作りたいと思っています。

http://www.kiwi-us.com/~mizusawa/penguin/html_hint/applescript/script_memo.html
このページを参考に、文字列の置換の方法はわかったのですが、
行に日本語が含まれる場合のみ適用する方法をどなたか教えて頂けませんでしょうか?

394 :名称未設定:2011/01/24(月) 06:58:48 ID:Hj0gz4sp0
Perlあたりで書く方が簡単
要するに、TeXのコマンドや英文も混じってるから日本語の所だけ置換したいと解釈したけど、
それなら行単位で考えずに、隣接する文字で判定する方法で十分。
考え方としては、半角カッコの隣の文字が全角文字だったら全角に置き換える。

# カッコの前が全角文字
s/[0x80-0xff][0x20-0xff]¥(/(/g;
s/[0x80-0xff][0x20-0xff]¥)/)/g;
# カッコの後が全角文字
s/¥([0x80-0xff][0x20-0xff]/(/g;
s/¥([0x80-0xff][0x20-0xff]/)/g;

これはShift-JISの場合。細かい構文は忘れたから間違ってるかも

395 :名称未設定:2011/01/24(月) 08:29:00 ID:ObDMr5P+0
いくらなんでもひどすぎ

396 :名称未設定:2011/01/24(月) 09:25:43 ID:2tXgccjS0
>>395
文句つけるときはアンカぐらいつけろよ>>395
>>395

397 :名称未設定:2011/01/25(火) 00:22:35 ID:TwGGzome0
>>393
set inputTxt to "全角文字のみでかっこだけ(半角)
あいうえお(全角文字+半角text)でもhankakuかっこ
hankaku only(hanhan)ok?
ハンカクカナハ(hankaku)アツカイ"
set outputTxt to ""
set textDatas to paragraphs of inputTxt --1行ごとに分解
repeat with i in textDatas
set the clipboard to i --クリップボードに1行のテキストを入れる
set clipBoardInfo to clipboard info --クリップボードinfoを取得
set textByets to item 2 of item 1 of clipBoardInfo --OSX10.4クリップボードの1行のテキストのバイト数を取得
--set textByets to item 2 of item 2 of clipBoardInfo --OSX10.6クリップボードの1行のテキストのバイト数を取得
set textLength to length of i --1行の文字数
set tempTxt to i --一時的に変数に収める
if textByets /= textLength then --1行のテキストのバイト数と文字数が違ったら(全角文字は2バイト、半角文字は1バイトなので全角文字が含まれていると、バイト数と文字数に違いが出る)
set tempTxt to txtExchange(tempTxt, "(", "(") --半角括弧を全角括弧に
set tempTxt to txtExchange(tempTxt, ")", ")") --半角括弧を全角括弧に
end if
set outputTxt to outputTxt & tempTxt & return
end repeat
set outputTxt to text 1 thru -2 of outputTxt --最後の改行を削除

on txtExchange(str, serchChr, repChr) --テキスト変換
set delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to serchChr
set strs to text items of str
set AppleScript's text item delimiters to repChr
set str to strs as string
set AppleScript's text item delimiters to delim
return str
end txtExchange

398 :397:2011/01/25(火) 00:27:17 ID:TwGGzome0
当方、OSX10.4マシンと10.6マシンしか持っていないので
10.5は分からない。多分10.6と同じと思う。
検証は10.4マシンでしかしてないから
他のOSバージョンだとクリップボード以外の部分でうまくいかないかも。

399 :397:2011/01/25(火) 00:32:17 ID:TwGGzome0
あ、半角カナでも全角括弧にしないとなのかな?
半角カナ使ってなければ大丈夫と思うけど

400 :名称未設定:2011/01/25(火) 07:08:12 ID:6v895AVs0
>>394
sedの例も教えてください。

401 :名称未設定:2011/01/25(火) 09:58:54 ID:k6lisrb20
Xcode を AppleScript で制御したいと思います。
コマンド一覧とか仕様書のようなものを探す時に、王道のようなものがあれば教えて下さい。
apple のサイトのどこにありがちとか、検索するときに含めるべき単語とか。

Windows 向けの iTunes COM SDK リファレンスなんてあるくらいだからと期待しているのですが、見つかりません。

402 :名称未設定:2011/01/25(火) 10:17:51 ID:xWWU+Kaz0
>>401
AppleScript Editorの「用語説明を開く」では不足?

403 :名称未設定:2011/01/25(火) 13:22:14 ID:k6lisrb20
>>402
ありがとうございます。
求めていたもの、そのものです。
Mac 凄いですね。

404 :名称未設定:2011/01/26(水) 17:00:14 ID:9qrxvpuG0
一括で画像アイコンを元にもどす(com+i アイコンをえらんでDelete)
applescriptを教えていただけないでしょうか?

405 :名称未設定:2011/01/26(水) 19:24:38 ID:qkjVGofq0
tell application "Finder"
delete selection
empty trash
end tell

406 :名称未設定:2011/01/26(水) 19:26:55 ID:UcInL9H80
やっちゃらめ〜

407 :名称未設定:2011/01/26(水) 22:04:49 ID:8yd19Ijg0
スクリプトじゃないけど⌘-control-iでアイコン選んでdeleteじゃダメなん?

408 :404:2011/01/27(木) 13:56:39 ID:v7BzkPBq0
>>407
まとめてたくさんの画像を処理したかったのでapplescriptで探していました。
その後、シェルスクリプトをつかったAutomatorで処理できそうなかんじなのでそっちでやってみようと思います。



409 :名称未設定:2011/01/28(金) 23:03:16 ID:BLFT9eB50
>>408
スレ趣旨的にあれだけど、
http://www.macupdate.com/app/mac/17460/cocothumbx
は紹介しておく。

410 :名称未設定:2011/01/30(日) 01:05:06 ID:tJasNy8B0
やっと規制解けた。
>>404,408
自分も以前素材写真買った時にOS9時代のカスタムアイコン付いてて消したいと思って
スクリプト作ろうと思ったけどカスタムアイコンだけ消すのは非常に難しそうだったので諦めてた。
リソースフォーク削除すればカスタムアイコン消えるので
tell application "Finder"
set selectedItems to selection
repeat with i in selectedItems
set newFilePath to quoted form of POSIX path of (i as alias)
set parentFolder to parent of i
set oldName to "old-" & name of i
set name of i to oldName
set oldFile to file oldName of parentFolder
set oldFilePath to quoted form of POSIX path of (oldFile as alias)
do shell script "ditto --norsrc " & oldFilePath & " " & newFilePath
--do shell script "rm " & oldFilePath
end repeat
end tell
これでいけそう。ファイルの取得方法はお好みで。
タイプとクリエータ情報も削除されちゃうけどOKかな?
コメントアウト部分を有効にするとオリジナルファイルが直接削除されます。

>>407
複数項目の情報では消せないのです。
リスト表示にして最初のファイル選択して
インスペクタ表示してインスペクタのアイコン選択後
[delete]キーと[↓]キーを交互に連打とかやってた。

411 :名称未設定:2011/01/30(日) 01:13:43 ID:KsoNCWv30
>>410
>複数項目の情報では消せない
消せる
何か操作間違ってないかい?

cmd+ctrl+iの複数情報の表示でも
cmd+opt+iのインスペクタでも

複数項目選択後アイコン欄クリック>deleteキーでちゃんと消える

412 :名称未設定:2011/01/30(日) 01:21:48 ID:tJasNy8B0
>>411
あ、ゴメンオレTiger使ってる。

413 :名称未設定:2011/01/30(日) 03:32:09 ID:xcmeBZeS0
文字通り「⌘-i アイコン選んでdelete」を地で行くGUI Scriptingをうっかり書いてしまった
Tigerではさすがにいろいろ違ってて動かんだろうなって事で没

xattr使うのが一番速い気がするけどTigerには入ってなかったかも

414 :名称未設定:2011/01/30(日) 07:56:54 ID:9nzw7DxXP
素直にリソース削除するアプリ使えば済む・・・

415 :名称未設定:2011/02/02(水) 10:25:39 ID:tZGi6fL00
>>404
丸投げ禁止
ググれば該当するスクリプトが見つかったけど?

416 :名称未設定:2011/02/06(日) 13:04:35 ID:5ECkx8CC0
ありそうなのに見つからないので聞いてしまいますが、
画面上の任意の座標のピクセルの色を調べる方法はないでしょうか。
シェルコマンドツールがなんかありそうなんですが、見つかりません。


417 :名称未設定:2011/02/06(日) 14:12:16 ID:z6rs+8+m0
まずDigitalColor Meterではダメな理由を

418 :名称未設定:2011/02/06(日) 14:34:06 ID:5ECkx8CC0
AppleScript非対応なのはちょっと困る

419 :名称未設定:2011/02/06(日) 15:45:51 ID:mcJwUE4b0
>>416
この辺が参考になるかも
ttp://macscripter.net/viewtopic.php?id=26833

420 :名称未設定:2011/02/07(月) 13:28:09 ID:paWAkg6K0
ありがとうございます。
お、これは、と思って読んでたら、画面上の〜ではなくて、画像上の〜の方に
ずれちゃってますね。残念。

421 :名称未設定:2011/02/07(月) 20:31:06 ID:hcfrWgxf0
iTunesプレイリストの表示項目をスクリプト制御したいと思っています。
http://allabout.co.jp/gm/gc/80841/1/
この辺を参考に、表示オプションウィンドウを表示してチェックボックスを選択し、
任意の表示項目を表示する事はできました。
次に表示項目を任意の順番で並び替えたいのですが、これは可能でしょうか?
項目のUI Elementまではたどり着いたのですが、行き詰まりました。
よろしくお願いします。

tell application "System Events"
tell process "iTunes"
tell group 1 of outline 1 of scroll area 1 of window "iTunes"
every UI element
end tell
end tell
end tell


422 :名称未設定:2011/02/08(火) 03:16:44 ID:bEFu3jP20
>>421
"System Events"よりtell app "iTunes"のほうが楽に思えるけど。

プレイリストを操作するのは、ちょっと難しい。
make,delete,duplicate,addを使うけど、検索して調べてみて。

423 :名称未設定:2011/02/23(水) 10:57:30.74 ID:hllsMYTA0
下のサイトのスクリプトを利用してファイル名の半角カナを全角カナに変換するスクリプトを作りました。
スクリプトエディタで実行すると大丈夫なのですが、
ドロップレット形式にすると上手く変換できないのは何故でしょう?
OS 10.4.11です。

http://d-cyst.m78.com/~mizusawa/penguin/html_hint/applescript/script_memo.html#hankana

424 :名称未設定:2011/02/25(金) 11:27:27.79 ID:p16lCFwn0
nkfでも入れてdo shell scriptで呼び出した方が簡単なんじゃねえ?
と試しもしないで言う

425 :名称未設定:2011/02/25(金) 13:36:56.71 ID:FQzTSVsV0
>>423
うまく変換できないというのは、なぜそう思うの?

426 :名称未設定:2011/02/25(金) 14:22:11.79 ID:kxvr7z+g0
>425
思うのではなくて実際にならなかったので。
ドロップ形式にした状態で実行すると全角にならなかったので
displaydialogで状態を確認すると、半角のままでした。
スクリプトエディタで実行した際は同様にダイアログに表示した状態でちゃんと変換されています。

427 :名称未設定:2011/02/25(金) 14:30:23.00 ID:YfgIQ7Q50
>>423
つかそういう仕様だよ。アプリケーションとスクリプトエディタで動作が違う局面はあるので
そういう物として受け入れるしか無い。

428 :名称未設定:2011/02/25(金) 15:34:44.66 ID:R7TUnffJ0
>>426
なんでもいいからtell applicationでくくったら動いたよ。(10.6.6)

ちなみに
on open dropedItems
display dialog "test"
end open
これすら動かないからドロップレットのバグな気がするけど、
10.4から放置となるとどうだろね?

429 :名称未設定:2011/02/25(金) 15:47:04.51 ID:kxvr7z+g0
>428
>なんでもいいからtell application
これの意味がよくわかりませんが、
ドロップレットが動かないわけじゃありません。変換ルーチンが上手く動作しないだけです。

430 :名称未設定:2011/02/25(金) 16:10:50.75 ID:R7TUnffJ0
>>429
ん?それじゃドロップレットが動かないのはうちがおかしいのか?
サイトのスクリプトをon openでくくってapp保存。
>アイテムドロップしても無反応で終了すらせず止まってしまうんだが。。。

上のテストスクリプトが動くのかどうか知りたい。
動くならこっちはこっちで原因を追及しなきゃならん。

>なんでもいいからtell application

tell application "Finder"だろうが、
tell application "iTunes"だろうが、
なんでもいいからtell applicationでスクリプトをくくったら動いたってこと。
かなり謎。

431 :名称未設定:2011/02/25(金) 16:26:10.99 ID:kxvr7z+g0
>430
サイトのスクリプトは単なる関数なので呼び出さないと当然何もしません。
>428のドロップレットは普通に動きます。(10.4.11)

432 :430:2011/02/25(金) 19:58:58.60 ID:R7TUnffJ0
>>431
こっちの変な挙動はSpacesのせいで無関係の場所でスクリプトが動いていたのが原因でした。失礼。
で、再度確認したところ、リンク先の後半のスクリプトで何ら問題なし。
前半のはOSAX必要だし、時々失敗すると書いてあるので試してません。

433 :名称未設定:2011/02/26(土) 00:11:41.44 ID:m0fmoYc50
>>423
Japanese.lproj はバンドルしてる? 10.4なら必要になるはず。



434 :名称未設定:2011/02/26(土) 22:51:41.83 ID:BJGVfQC80
そもそもアプリケーションとアプリケーションバンドルの区別も付いてなさそうだ

435 :名称未設定:2011/02/27(日) 09:49:03.90 ID:W3eMpclq0
http://www.bekkoame.ne.jp/~iimori/sw/TransliterateOSAX.html

最近のOSではこれ使えないんでしょうか?

436 :名称未設定:2011/02/27(日) 10:26:35.29 ID:Kt72z4Nz0
TransliterateText
Deprecated in Mac OS X v10.4. Use CFStringUppercase instead.

もう消えてたらダメなんじゃない

437 :名称未設定:2011/02/28(月) 09:17:07.18 ID:GG7wQW6j0
>432
書き忘れていましたが、OSAX版では無いほうです。

>433
バンドル形式でJapanese.lproj追加したら正常動作しました。
ありがとうございます。

どうしてアプリケーション形式の場合は上手くいかないんでしょう?

438 :名称未設定:2011/02/28(月) 14:37:16.62 ID:KqfZ1VCri
ウチの10.4.11(PPC)で>>423のデリミタの方をまるコピーして試してみたけど、
runからでもopenからでも、アプリケーションでもアプリケーションバンドルでも、
全く問題無く動作したよ?

439 :名称未設定:2011/02/28(月) 20:40:15.36 ID:qTWbKGEx0
エディタのフォーマット設定でフォントのサイズや色を変更して適用しても
次回立ち上げたときなどにすぐデフォルトに戻ってしまいます。
同じような症状の方いらっしゃいますか?
自分の環境は OS10.6.6 AppleScript エディタ2.3です。

440 :名称未設定:2011/02/28(月) 21:15:20.58 ID:jUK8acKc0
うちもなります。
1週間くらいでリセットされちゃう感じ。

441 :名称未設定:2011/02/28(月) 21:49:20.67 ID:O9K+/5K50
ああ俺だけじゃないんだw
なんだろなあれ

442 :名称未設定:2011/02/28(月) 23:17:53.32 ID:qTWbKGEx0
エディタのplistファイルには保存されてない感じですね

443 :名称未設定:2011/02/28(月) 23:31:38.41 ID:lVbx/dka0
>>442

保存場所はココ
~/Library/Preferences/com.apple.applescript.plist


444 :名称未設定:2011/03/01(火) 00:07:48.30 ID:04020V130
>>443
ありがとうございます。
とりあえずそのファイルをバックアップしておきます。

445 :名称未設定:2011/03/01(火) 22:20:51.76 ID:jQBdZOOj0
>>437
>どうしてアプリケーション形式の場合は上手くいかないんでしょう?
 問題は形式ではなくて、スクリプトエディタの書き出す appletの実行処理部分が、システムの
言語設定を無視してスクリプトを動かしてしまうと言うようなバグがあるということ。
 バンドル形式ならそれを後処理でなんとかできると言うだけ。

 実際に起きていることは文字化けのような状態。似たようなことは実行形式でないスクリプトでも、
異なる言語を最優先にしている環境(システム環境設定の言語環境の言語の最上位)で開き直した時に
起きることがある。そんな事が appletの中で起きていると思えば良い。

 これを回避するもうひとつの方法はソースを全てUnicode(UTF-16)で書いてしまうと言う方法。
実際、10.5以降のスクリプトエディタはコード部分については Unicode化されているので、この
ような問題は基本起きない(ちなみに 10.6で作った該当アップレットは10.4(PPC)でも正しく動作した)。
 ただ、10.4上で Unicode化したソースを用意し使う場合、"as Unicode text" を明示しないと
うまく行かなかったような記憶もある。なので 438の人がなぜ動くのかは俺には説明できない。

446 :名称未設定:2011/03/02(水) 09:13:54.46 ID:SGjyqy370
>445
明確な回答ありがとうございます。
あまりよくは理解できてませんが、やっとすっきりしました。

447 :名称未設定:2011/03/03(木) 05:20:53.32 ID:KqG2VBCt0
iPadやiPhoneでAppleScript開発できませんか!

448 :名称未設定:2011/03/03(木) 06:10:15.48 ID:+ZpTdPv50
できないし、今後開発もしくは実行環境が移植されることも、ないでしょう

449 :名称未設定:2011/03/04(金) 02:46:07.71 ID:KnWn2tX1i
実際にiPhone使う様になる前は俺もそんな事考えてたなぁ

450 :名称未設定:2011/03/04(金) 10:20:16.18 ID:xaQcP0x+0
APIのドキュメントがたった数百ページのOSだからな。
それにSandBox的な思想からはAppleScriptは真逆だ

451 :名称未設定:2011/03/07(月) 19:02:19.32 ID:XvTCucvE0
Applescript と Geektool を使ってデスクトップ上にプレイリストの一部を表示できるようにしたのですが、

tell application "iTunes"
set trackName1 to name of track 1 of playlist "トップ 25"
set trackArtist1 to artist of track 1 of playlist "トップ 25"
(略)
return (略)
end tell

このスクリプトだと、iTunes を起動していない時でも勝手に iTunes を起動させてしまうようなのです。
これを「iTunes が起動していないときには何もせず、起動しているときのみプレイリストを取得する」というふうに改良できるでしょうか?

452 :名称未設定:2011/03/07(月) 19:41:59.26 ID:GXWOAdq90
その前にif命令でiTunesが起動しているかどうか確認させるといいんじゃないかな
起動中のプロセスを見に行かせればいい。それらしい言葉でググると出て来たはず

453 :名称未設定:2011/03/08(火) 01:14:16.22 ID:JqZ4sTzu0
tellの次の行にif running then、end tellの前の行にend if
ただしLeopard以降に限る

454 :名称未設定:2011/03/08(火) 07:57:27.90 ID:cAk11t040
>>452-453
なんとか目的の挙動を取らせることができました!
はじめは起動しているプロセスの確認ということで、
tell application "System Events"
set AppList to every application process that name is "iTunes"
repeat with AppName in AppList
if (name of AppName) is "iTunes" then
としていましたが、
if running then
のほうがずっとスマートに出来ますね。

アドバイスありがとうございました。

455 :名称未設定:2011/03/08(火) 12:24:02.16 ID:kFCunXVh0
>>454
if running thenで解決したようなのでアレだけど…。

tell application "System Events"
if application process "アプリ名" exists then


System Events使うにしても、こう書けばスッキリ。

456 :名称未設定:2011/03/08(火) 16:18:07.13 ID:cAk11t040
>>455
exists は以前試したことがあったのですが、どうやら起動していない iTunes を起こしにいってしまうみたいなんです。
私の思い違いかと思い今さっき試してみましたが、やはりそうなってしまいました。

457 :名称未設定:2011/03/08(火) 21:54:35.94 ID:JqZ4sTzu0
>>456
System Eventsにapplication processを直接起動する仕組みは無かったような
大元のfile/file packageをopenする事はできるけど

一方application 〜 という表記にはアプリケーションを起動する効果があるんで、
元々のapplication "iTunes"の影響なんじゃないかな

458 :名称未設定:2011/03/09(水) 00:43:01.65 ID:rWlh8qwK0
tell application "System Events"
title of every application process contains "iTunes"
if result is true then
~

ならどうか?
いや、まあもう解決したからどうでもいいんだが。

459 :名称未設定:2011/03/22(火) 18:02:36.52 ID:4Lx7sVLT0
こんにちは。

AppleScriptでDNS更新するスクリプトを作ろうと思っていますが、
わからない点が多いので質問させていただきます。

DNS更新に用いるのはhttpアクセスで、http://rrrrrrr.rrr&id=id&pass=password
のようなものです。ログイン項目にスクリプトをおいて、起動後は30分毎に上のURL
にアクセスを続けるようなものを考えています。ただ、一つ気になるのが、ネットに
繋がらないときや更新エラーが出た場合に表に出さずに、再度30分後に試みてくれる
ようにしたいと考えています。この場合、一つずつ例外時の対応を記述しないといけ
ないのでしょうか?

460 :名称未設定:2011/03/22(火) 18:11:24.11 ID:4Lx7sVLT0
on idle
do shell script "curl http://rrrrrrr.rrr&id=id&pass=password"
return 30 * minutes
end idle

これでいけそうなんですが、問題ありますかね?

461 :名称未設定:2011/03/22(火) 18:35:55.92 ID:YXUIUYXG0
>>460
そのアドレスにわざと間違ったアドレスを入れて
更新時間も短くすれば
エラー時の挙動は簡単に試験できるからまずはそれで試して

462 :名称未設定:2011/04/29(金) 02:18:56.10 ID:mGeIKQ6g0
ノートパソコンの電池がヘタって来て、突然シャットダウンするようになった。
MiniBatteryLoggerという、自分で設定した電池残量でGrowlに警告を出せるソフトを見つけた。
また、Deep SleepというWidgetで、好きなときにhibernationできることも分かった。

で、思ったんですが、AppleScriptでMiniBatteryLoggerの警告を察知して、
Deep Sleepを起動させるスクリプトを作れば良いのでは!?と思いつきました。

Deep Sleepを起動するスクリプトは多分難しくないと思うのですが、
問題はどうやって、警告をAppleScriptに渡すかです。

調べたところ、Growlの改造版でAppleScriptを起動できるものがあるようで、
それを使おうと思いましたが、Growlそのものの機能が働きませんでした。

別の方法としては、AppleScriptを常に起動した状態にして、
直接警告を監視し続けるのが良いかと思いました。

どちらの方法が良いのでしょうか?また、警告を監視し続けるのはシステムに負担ですか?



463 :名称未設定:2011/04/29(金) 03:14:20.45 ID:ide1YPLe0
>>462 そりゃ明らかにパワー喰って酷使だろ。
新しいバッテリーを買ってきた方が良いぞ。

464 :名称未設定:2011/04/29(金) 03:57:41.88 ID:mGeIKQ6g0
>>463
やっぱりそうですか、結構いけるかと思ったんですが…


465 :名称未設定:2011/05/02(月) 17:54:11.43 ID:dsHEH73I0
tell application "terminal"
 do script with command "hogehoge"
endtell
tell application "terminal" to quit

を実行する時にバックグラウンドかドックに格納した状態で処理してもらうにはどうすればいいでつか

要するにユーザの目に触れさせたくないんですけど

466 :名称未設定:2011/05/02(月) 18:18:57.15 ID:0smIOcEZ0
do shell scriptじゃダメなの?
それをバンドル形式アプリで保存してInfo.plistにLSBackgroundOnlyを追加してやれば

467 :名称未設定:2011/05/02(月) 21:14:59.10 ID:W26P8ZAH0
NSUIElementもいいかも。

468 :名称未設定:2011/05/03(火) 17:43:19.19 ID:q+Cpkjd30
NSBGOnlyとかLSUIElementってのもあるよ

469 :名称未設定:2011/05/04(水) 23:12:58.76 ID:AtdnDoJs0
AppleScriptっていろんな書き方できるから習得しづらいよね。

470 :名称未設定:2011/05/06(金) 11:38:25.09 ID:LcZxttWv0
>>466
do shell script なんて知りませんでした
これすげえ便利ですね
ありがとう

でも、バンドル形式アプリを実行する方法とInfo.plistの反映方法が分からん

Info.plistの書き方は
バンドル形式で保存→パッケージの内容を表示→info.plist内に以下のように編集

<key>WindowState</key>
<dict>
<key>LSUIElement</key>
<string>1</string></pre>
</dict>

でおk?

471 :名称未設定:2011/05/06(金) 11:48:45.91 ID:LcZxttWv0
スマソ、バンドル形式アプリって事はアプリケーション形式ってことですね

472 :名称未設定:2011/05/06(金) 12:32:05.71 ID:ip1N7c520
> <string>1</string></pre>

ここの</pre>は何ですのん?

473 :名称未設定:2011/05/06(金) 14:03:13.66 ID:LcZxttWv0
>>472
ttp://xcatsan.blogspot.com/2008/03/nsbgonly-nsuielement-lsuielement.html
ここ参照してますた

やっぱいらないですよね
</pre>は消しますた

474 :名称未設定:2011/05/06(金) 15:06:52.12 ID:75DRqAeU0
>>472
ケアレスミスが防げるしXcodeを入れてこれを使いましょう
/Developer/Applications/Utilities/Property List Editor.app

475 :名称未設定:2011/05/07(土) 15:55:10.58 ID:T2s/io/U0
>>474
なるほど、こんな便利なものがあったのですね

476 :名称未設定:2011/05/09(月) 08:49:01.63 ID:SKs68rTY0
質問させてください

tell application "Finder"でフォルダーを生成するってスクリプトを複数のMACで
動かしてるんだけど、1台だけエラーが出て止まる台があります


クラスFolderを取得できません…とか何とか


他の台では(OS9含む)普通に動いてるんで、
何かのファイルでも壊れてるんでしょうかね?

477 :名称未設定:2011/05/09(月) 09:00:00.87 ID:/QIUhH9z0
権限とか・・

478 :名称未設定:2011/05/09(月) 14:47:53.96 ID:m8oN3qEFP
AppleScriptでプログラミングに興味を持ったのですが、
ステップアップにお薦めの言語ってなんでしょう?
理解しやすいとか、雰囲気が似てるとか、汎用性があるとか、理由は何でもいいです。

479 :名称未設定:2011/05/09(月) 14:53:09.92 ID:kpe/YJrw0
言語は沢山の種類があるけど、スクリプト言語から目を広げてみたら?
C言語の子孫が多いけど、やっぱりオブジェクト指向じゃなきゃいかんだろうから
Objective-C,C++,Javaなどがいいんじゃない?
Objective-CならiPhoneプログラミングが可能になる。仕事ならC++がJavaでは?
開発環境という意味ではX-code 3.xが無料で垣根が低いかな。

480 :名称未設定:2011/05/09(月) 21:42:00.34 ID:m8oN3qEFP
>>479
ありがとう。
いわゆるC言語ってのがどれも元になってるわけですね。
とするとC言語を勉強しといた方が後々応用が利いたりするのかな。
いずれにしても、どれもググるとはじめての〜とか入門○○みたいなのが引っかかるので、
適当にそれぞれ触ってみます。いじってて興味がわくのが一番だろうし。

481 :名称未設定:2011/05/09(月) 22:27:55.21 ID:UiXDzCcP0
>>480
今から学習するなら、初めからオブジェクト指向の言語にしといた方がいいと思うよ。
C++やObjective Cとか。

482 :名称未設定:2011/05/10(火) 00:40:47.22 ID:cZHGhenD0
AppleScriptに似てるなんてHyperTalkくらいしか知らんな
悪い意味でこれほど柔軟性にとんだ言語なんて見たこと無い

483 :名称未設定:2011/05/10(火) 15:47:36.52 ID:n5xnqbpk0
>>478
PythonかRubyかCoffeScript

AppleScriptの特徴としては、以下のものが挙げられると思う。
・オブジェクト指向
・(そこそこ)動的
・英語っぽい
上記の言語は、オブジェクト指向はちゃんとサポートしてるし、より動的。
英語っぽさはそんなに無いけど、C系言語よりはまだ近い。
Python/Ruby はTerminal.appからも使えるし、
Cocoaと連携出来るPyObjCやMacRubyもある。
CoffeeScriptはNode.jsでサーバー上で使うもよし、ブラウザでも。

でもまあ、MacユーザーならObjective-Cに気軽に触れられるし、
C/C++/Javaは定番だよね。

484 :名称未設定:2011/05/12(木) 17:23:58.10 ID:K4GvGQrt0
>>478
Mac でプログラムするなら Objective-C がよい。
やっぱ役に立つし、楽しいから。
でも、Objective-C の前に C を勉強しなきゃ行けないけどね。

485 :名称未設定:2011/05/13(金) 05:56:29.01 ID:s7vsvmD60
>>484
>やっぱ役に立つし、楽しいから。
私は、AppleScript, javascript, perlを主に
使っています。 javascript, perlからAppleScript
に変数を渡して呼び出すのは面倒ですが、
Objective-Cだと、AppleScriptの実行が
スムーズにできますか? それが出来れば、
時間をかけて勉強したいです。

486 :名称未設定:2011/05/13(金) 08:59:34.57 ID:RGb2TMc/0
>>485
AppleScript≒AppleEventの送受信だから、cで直接AppleEvent送るコード書いた方が
細かい処理ができるし速い。AppleScriptをコンパイルする時間も不要。
Objective-CだとScripting Bridgeが使えるから、AppleEvent直送りでも読み易い
コードも書ける。

487 :名称未設定:2011/05/13(金) 09:40:43.66 ID:41m+UI5I0
>>485
スムーズかどうかはよくわからないけど、AppleScript と Objective-C の連携方法はいくつもある。

* OSAKit というものがある。それを使えば、AppleScript のハンドラに引数を渡して実行できる。比較的簡単。
* Scripting Bridge を使えば、Objective-C が AppleScript の代わりになる。
* AppleScriptObjC を使えば、特定のインターフェースを意識せずともお互いを呼び出し合えるらしい(使った事がないのよくしらない。)

Javascript から AppleScript を呼び出すという道はないよね。

perl の場合はなんかモジュールがあるのかしら?osascript コマンドを使うのが一番安直だけど、テキストしかやり取りできないね。


488 :名称未設定:2011/05/13(金) 21:30:05.29 ID:2OwQhE+50
>>487
大昔にこのレスでも書きましたが、このページを参考にして
>http://applescript.tv/linktrigger/

html+javascriptのファイルから直接,次のように:
seekdvd://com.taro.AppleScript.seekdvd?time=321&DVDname=matrix1

seekdvdというAppleScriptを変数を渡しながら実行できます。



489 :名称未設定:2011/05/15(日) 07:55:02.93 ID:nMka9vUs0
AppleScriptObjCのサンプルなら
QTP7Controllerってのがあるよ。

490 :名称未設定:2011/05/15(日) 10:36:03.04 ID:UPW4c/M30
>>486, 487, 489
ご助言ありがとうございます。アップルスクリプトの部分に
限定すれば、Objective-CでもCでも学習すべき箇所が限定
されるので、挑戦します。

491 :名称未設定:2011/05/16(月) 17:32:47.09 ID:gmVE8kZc0
下のスクリプトは、このままではエラーが出るのですが
”ココ”の行のmy_folder2をmy_folderにすると正常に動きます。
理由が分かる方教えてください。set name of~の前にdelayを入れるとこのままでも動きます。
OS 10.4.11です。

global my_folder, Name1, newFile

set theItem to choose file
tell application "Finder"
set Name1 to "myname1.ai"
set my_folder to choose folder
set my_folder2 to make new folder at my_folder with properties {name:"myFoder1"}
set newFile to (make new file at my_folder2 with properties {name:"myname1.ai"}) as text --ココ
my savefile(theItem)
set name of file newFile to "newFile.ai"
end tell
end open

on savefile(theFile)
tell application "Illustrator CS"
activate
open theFile
tell front document
save in newFile as Illustrator with options {compatibility:Illustrator 11, compressed:false, PDF compatible:true}
close
end tell
end tell
end savefile


492 :491:2011/05/16(月) 17:34:24.98 ID:gmVE8kZc0
書き忘れましたが、choose fileはイラストレーターファイルを選んでください。

493 :名称未設定:2011/05/16(月) 20:09:17.58 ID:swA9OqX70
昔 さわったぐらいだけど。

choose folder は StandardAdditionsのコマンド。戻り値はAlias。
make new folder は Finder のコマンドで、戻り値はFinder item。

この場合、alias of 〜とか、〜 as aliasとかで型変換してあげれば
動くのでは?

494 :名称未設定:2011/05/16(月) 20:11:10.38 ID:glb140yI0
>>491
ココの行の次で return して、出来た myname1.ai を illustrator で開いてみな。どうなる?
あと、 choose folder で選択したフォルダの第一階層に、myname1.ai って名前の 中 身 が あ る ファイルがあるんじゃねーのか?
もう少し、基礎から始めた方がよいぞ。あと、イベントログくらい見ような。

495 :名称未設定:2011/05/17(火) 00:47:20.35 ID:StYsy3d60
>>493-494
ソース見たら営利の丸投げ乞食だろ。反応すんなよ。

496 :名称未設定:2011/05/17(火) 02:27:48.69 ID:n16kRnso0
>>491
10.4.11
CS3
だと動作したけど…?

497 :491:2011/05/17(火) 09:09:26.18 ID:G1WXeNUu0
>>493-495
言葉不足で知りたい点が伝わっていなかったようなので詳しく書きます。
要はフォルダ選択してその中に保存したaiファイルの名前を変更するのはすんなりいくのですが、
(ココの行のmy_folder2をmy_folderにした状態)
選択したフォルダの中に更にフォルダを作成してそこに保存したaiファイルの名前を変更しようとすると
delayで待たないとエラーが起きるのです。

ソースが少し回りくどい事をしているのは抜粋なのと、イラレからダイレクトに別名で保存が自分の環境では
上手くいかなかったので一旦仮のファイルを作成してそれを置き換える形にしているからです。
global my_folder,name1はこの抜粋では必要ありませんでした。

後、ソースは自分で書いたので丸投げではありません。
このままだとあまり意味のないスクリプトですから。
自分で書いたスクリプトからエラーの起きる箇所を抜粋して載せてます。


498 :名称未設定:2011/05/17(火) 13:09:48.53 ID:mjhXslze0
何のエラーが起こるか具体的に書いてないから、確認する気も起こらないんだけど
 update ファイルへの参照
をファイル操作直前に置くと動くんじゃないかな?
Finderは色んな情報キャッシュしてるから、ファイルシステムの変更は即座に
把握されないことがある。update強制するとキャッシュ無効になる。

499 :491:2011/05/17(火) 13:19:53.32 ID:G1WXeNUu0
>>498
ありがとうございます!
まさにそれで解決しました。こんな方法があるとは知りませんでした。
過去にもこれで解決しそうなエラーに会っていたので他でも試してみます。

ちなみに起きていたエラーは↓です。
Finder でエラーが起きました:操作は完了できませんでした。

>>496
すみません。返信忘れてました。CS1だと上手く動かなかったんですが上位バージョンだと問題ないのかもしれません。

500 :名称未設定:2011/05/17(火) 21:25:15.48 ID:n16kRnso0
>>499
もう解決したのですね

私もファイル名に特定文字が使われてると
うまく動作しなくて(フォトショップだったかな?)
tmpファイル保存後リネームした事あるけど
イラストレーターで別名保存がなぜ出来ないのかを
解決した方がいいのでは?

501 :491:2011/05/18(水) 09:19:57.51 ID:H3SaPj/v0
>500
イラレCS1はパスに2バイトフォントが含まれていると保存できないし、
別名保存できないのも仕様かと思ってあきらめていたのですが他の環境ではできるのでしょうか?
新規作成した場合は好きなディレクトリに保存できますし、
既存ファイルを開いてそのまま保存することは問題ありませんでした。

502 :491:2011/05/18(水) 09:25:31.20 ID:H3SaPj/v0
↑2バイトフォントじゃなくて2バイト文字の間違いでした。

503 :名称未設定:2011/05/30(月) 02:04:06.58 ID:zpcJhBo/0
★3以上の曲で1アーティスト1曲を100アーティスト抽出する
iTunesのプレイリストを作るAppleScriptをご存知ありませんか?


504 :名称未設定:2011/05/30(月) 04:03:03.95 ID:40PohkNC0
ttp://dougscripts.com/itunes/ で探してみたら

505 :名称未設定:2011/05/31(火) 07:17:22.75 ID:bXhe7o0p0
眠れなかったんで作ってみたよ10.4.11、iTunes 9.2.1だけど
下記で、*1 は予め★3以上のスマプレ作っといてそれを指定
*2 は適当に名前変えて
*3 は良さげなら100に

tell application "iTunes"
tell playlist "AAA" -- *1
set keys to my randx(artist of every track)
set newpl to make new playlist with properties {name:"ZZZ"} -- *2
repeat with k in keys
duplicate (some track whose artist is k) to newpl
end repeat
end tell
end tell

506 :505の続き:2011/05/31(火) 07:18:43.97 ID:bXhe7o0p0
on randx(inl)
set lim to 10 -- *3
set tmpl to {}
repeat with a in inl
if a is not in tmpl then set tmpl to tmpl & a
end repeat
if (count of tmpl) < lim then error "short of artists"
set outl to {}
repeat
set a to some item of tmpl
if a is not in outl then
set outl to outl & a
if (count of outl) = lim then return outl
end if
end repeat
end randx

507 :名称未設定:2011/06/12(日) 22:14:46.73 ID:o1LohgBg0
VLCのボリュームを100%に変更するにはどうしたらいいでしょうか。


508 :名称未設定:2011/06/12(日) 23:11:03.61 ID:UxcuFaw20
>>507
VLCってAppleScript対応だったんだ。知らなかった。

tell application "VLC"
set c to 0
repeat while c < 32
volumeDown
set c to c + 1
end repeat
repeat 8 times
volumeUp
end repeat
end tell

Mac OS X 10.5.8
VLC 1.1.5


509 :名称未設定:2011/06/12(日) 23:39:35.33 ID:o1LohgBg0
>>508
ありがとうございます。

いきなり100%にセットする方法はないのですね。
volumeDown の方の繰り返しを repeat 32 times としないのは何か理由があるのでしょうか。


510 :名称未設定:2011/06/13(月) 00:21:04.97 ID:VnW/yOYh0
>>509
repeat 32 times がいいと思う。ちゃんと見直してから書き込めばよかった...。で、いきなり100%にする方法は辞書を見る限りなさそう。GUIスクリプティングでできるのかな?

511 :名称未設定:2011/06/13(月) 00:27:07.32 ID:9WtXEqoW0
>>510
ありがとうございます。

大変勉強になりました。


512 :名称未設定:2011/06/13(月) 19:08:36.46 ID:pnyN0HVE0
OS X 10.4.11, Safari 4.1.3, Spark 3.0b9です。
Safariのツールバー、ブックマークバー、タブバー、ステータスバーを一括で非表示、表示と切り替えたくて
以下のようなスクリプトをSparkでF3キーに割り当ててみたのですが、F3キーを2回押さないと反応しません。
1回目無反応、2回目すべて非表示になる、3回目無反応、4回目すべて表示される、といった具合です。
どうすれば1回押す毎に反応するようになるでしょうか? 申し訳ありませんがスクリプトの知識はありません。
tell application "System Events" to tell process "Safari" to keystroke "|" using command down
tell application "System Events" to tell process "Safari" to keystroke "B" using command down
tell application "System Events" to tell process "Safari" to keystroke "T" using command down
tell application "System Events" to tell process "Safari" to keystroke "/" using command down

513 :名称未設定:2011/06/14(火) 01:48:47.06 ID:0wMgRf3+0
safari側がキー入力の受け入れする前にキーストローク終わっちゃってる感じ
delay入れてみては?
この場合ならkeystrokeは連結してもOKかな

delay 0.5
tell application "System Events" to tell process "Safari" to keystroke "|BT/" using command down

514 :名称未設定:2011/06/14(火) 22:36:06.49 ID:3ArZN9Ds0
どうもありがとうございます。完璧に動作しました。
F3を押すことで、これからキー入力を送るので受け付けてくださいと命令してから
送るまでのあいだに間が必要だったわけですね。
そして、コマンドを押し下げながら順に|BT/と入力していくという風に記述できる。素晴らしいです。
新しいSafariにはフルスクリーンモードが搭載されるという話ですが
これで古いMacでも縦方向を広く使えてとても助かります。

515 :名称未設定:2011/06/15(水) 08:21:48.72 ID:SgIvrSZc0
へー、tell A to B の二段重ねとかできるんだな
初めて知った

516 :名称未設定:2011/06/26(日) 20:53:44.56 ID:hWboQH6S0


on mul2(x)
return x * 2
end mul2

上のハンドラを
set myfunc to mul2
myfunc(4)

こうする時はちゃんと使えるのに、次のように
他のハンドラに渡してその中で実行しようとするとエラーになります。

on map for srclist given func:f
set newlist to {}
repeat with m in srclist
set the end of newlist to f(m)
end repeat
return newlist
end map

map for {2, 3, 4} given func:mul2

上のmapに渡すハンドラをscriptでくるむとできるようなんですが
そうしないでもう少し手軽にやる書き方はありますか??

517 :名称未設定:2011/06/27(月) 11:08:38.16 ID:gzcMikEG0
>>516
 これはスコープの問題。関数呼び出し foo() は 『"foo" と言う名前ラベルのオブジェクトを探して
実行せよ』と言う意味。そこで、スクリプトは実行時に foo を探すが、それが見つからない。なぜなら
デフォルトで探されるのは、(tell節が絡まなければ)スクリプトのトップレベルだから。つまり、
on myfunc(foo)
foo()
end myfunc
と書いた場合、引数の fooはローカルで、foo() の fooはグローバルなので失敗する。

518 :名称未設定:2011/06/27(月) 11:12:03.11 ID:gzcMikEG0
>>517 から続く) そこで、
on myfunc(foo)
global dummyFunc
set dummyFunc to foo
dummyFunc()
end myfunc
on dummyFunc()
error "直接呼ばないで" number -1
end dummyFunc
と、こんな風に書けば呼び出せる。要点はトップレベルに実体のあるオブジェクト(別にハンドラーで
なくても良い)を用意し、それをローカルからアクセスして書き換えて呼び出せばうまく行くと思う。

519 :516:2011/06/28(火) 10:34:21.05 ID:VpbYe0TR0
>>518
ありがとうございます
文法の理解が進みました



520 :名称未設定:2011/07/22(金) 22:05:54.37 ID:mxW1fJc/0
curl 'URL' | iconv -c -f EUCJP -t UTF8

のように、エンコードエラーが出たら無視するようにしたいのですが、applescript上で
do shell script"上記構文"
を使うとエラーが出てしまいます

何かいい対処法やヒントなどあれば、教えてください

521 :名称未設定:2011/07/22(金) 22:13:25.21 ID:9W6vnX2j0
>>520
try
do shell script"上記構文"
on error
end try

はどうかしら

522 :名称未設定:2011/07/22(金) 22:32:59.32 ID:2wWalnX+0
>>521
すごいよ、エスパー並みの読解力だわ。

523 :名称未設定:2011/07/23(土) 00:19:34.30 ID:m4Ufdtmr0
>>521
ありがとうございます

でも、それだと全く取得出来なくなりますよね?

iconv -cオプションのように無効な文字の出力のみを抑えたいんです

ターミナル上では先程の構文で、無効な文字を省いて出力してくれるのですが、
AS上ではエラーになります

AS上で無効な文字を省いて取得する方法は無いでしょうか?

あとUTF8ではなくUTF-8の間違いでした
すいません

524 :名称未設定:2011/07/23(土) 00:56:37.98 ID:scaHSKdZ0
>>523
>>520
>を使うとエラーが出てしまいます
と記述されてますが、どんなエラーが出るのか記載されていないため
なにも助言出来ません。
エンコードエラーがでてもエラーを無視して処理を続行したい
と解釈すれば、>>521の記述でいいです。

>>523
>でも、それだと全く取得出来なくなりますよね?

try
set ret to do shell script"上記構文"
on error errorMessage
set ret to errorMessage
end try

あるいは、shell側で
curl 'URL' | iconv -c -f EUCJP -t UTF8 | cat
等として、強制的に正常にリターンする。



525 :名称未設定:2011/07/23(土) 01:32:42.09 ID:b5sJ8HTH0
>>523,520ではないけど@とか使ったEUCのhrml作って試してみた。
「AppleScriptエラー」と出て詳細にiconvの結果っぽいのが途中まで出るだけみたい。

>>524の | cat付けるだけでOK

>>520
知恵袋の方もあなた?

526 :名称未設定:2011/07/23(土) 02:09:09.44 ID:7Ui7C/si0
>>524

> iconv -c -f EUCJP -t UTF8 | cat

細かいことで申し訳ないけど、下の方が良いと思うよ。
iconv -c -f EUCJP -t UTF8; exit 0


527 :名称未設定:2011/07/23(土) 02:19:41.38 ID:m4Ufdtmr0
>>524
>>525
ありがとうございます

|cat で、エラー前までの取得が出来ました
今まではページごとに何かに変換してからUTF8に変換のようにしていたのですが、これで手間が減りそうです
いろいろ言葉足らずですいませんでした

>>525
知恵袋の方も私です
マルチにならないよう締めたのですが、ルール違反でしたら申し訳ありません

528 :名称未設定:2011/07/27(水) 23:46:03.78 ID:fk64YnKf0
Safari 5.1にうpしたら自作スクリプトが動かなくなりますた。
Safariの前面ウインドウにjpg画像が開かれているときに保存を実行するのです。
前バージョンでは問題なく動いてたんですが、自力でどうにもならずでして…
saveでの実際のパスは変数で指定してます。

tell application "Safari"
tell document 1
save in "Macintosh HD:Users:hoge:Desktop:xxx.jpg"
end tell
end tell

私のエロ生命にかかわる大問題です。
誰か助けてくださいまし。

529 :名称未設定:2011/07/29(金) 00:48:28.17 ID:wA8KkTqC0
まず右手をチンコから放し、用語説明を見るべきでしょう

530 :名称未設定:2011/07/29(金) 13:07:20.12 ID:kzyOvd/10
>>529
いやいや、これじゃチンコ萎え萎えですよ。
なにか書き方に問題ありそうですかね?
Safari 5.0.5までは問題なかったのに、どう仕様が変わったのかなんなのか。
画像に限らずsave自体できなくないですか?5.1にした皆さんどうでしょう?

531 :名称未設定:2011/07/29(金) 16:37:37.39 ID:GDDl+ckd0
Lionにしたら、"URL Access String"機能拡張が使えなくなりました。

532 :名称未設定:2011/07/29(金) 17:36:21.57 ID:kCiFJHtc0
>>531
無くなってるね。

533 :名称未設定:2011/07/29(金) 20:43:44.43 ID:GDDl+ckd0
Do Shell Script と curlで奮闘していまつ。

534 :名称未設定:2011/07/29(金) 23:39:11.44 ID:kzyOvd/10
curlで取れない画像なんですよね…
単純にUAとかreferrer見てるとかcookie食わされてるとかじゃないようで。
ブラウザで見れてるんだからcurlで取れないわけないんだろうけど、たぶん俺の洞察が甘いんでしょう。
とりあえず難はあるんだけどGUIスクリプティングの方向で保存するようにしてみます。
スレ違い気味ですんませんでした。

535 :名称未設定:2011/07/30(土) 01:35:57.14 ID:QnoQCeiE0
Automatorでも無理な感じ?

536 :名称未設定:2011/07/30(土) 12:46:27.24 ID:c3VemvUD0
ファイルのアイコン画像を好きな画像に変える為に

tell application "System Events" to keystroke "o" using command down
tell application "Preview" to activate
tell application "System Events" to keystroke "acw" using command down
tell application "Finder" to activate
tell application "System Events" to keystroke (ASCII character 30)
tell application "System Events"
keystroke "i" using command down
keystroke tab
keystroke "vw" using command down
end tell

みたいに、かなり無理矢理やってますw

例えば、
プレビューで開かずに画像をクリップボードに入れる
Finderのファイル属性などからアイコンを設定する
などの綺麗な書式は何かありませんかね?

537 :名称未設定:2011/07/30(土) 19:54:05.12 ID:9xLR3ey50
>>536
「プレビューで開かずに画像をクリップボードに入れる」、提示されたAppleScriptの4行目までのをいろいろパクって置き換えを書いてみた。奇麗な書式かどうかは知らない

property extensionList : {"jpg", "jpeg", "tif", "tiff", "png"}

tell application "Finder" to set theSelection to selection
repeat with theItem in theSelection
 set theItem to theItem as alias
  if the name extension of (info for theItem) is in extensionList then
   set tiffData to read theItem as TIFF picture
   set the clipboard to tiffData
   exit repeat
  end if
end repeat


538 :536:2011/07/30(土) 21:44:14.79 ID:txsPVdnI0
>>537
なるほどー
TIFFとしてreadするんですね
恥ずかしい話、画像のクリップボードがTIFFだったの頭から全く抜けてました

プレビューとインスペクタがビヨンビヨンと出て来るのが、ビヨンだけになり、スマートになりました
ありがとうございました(>_<)

539 :536:2011/07/30(土) 22:09:19.67 ID:txsPVdnI0
あとInfo forってのあるんですね
これあれば、いちいちFinder呼ばなくてもnameとか取得出来るんですね
いや、ちょっと感動して
applescriptまだまだ勉強してみます

連投すいませんでした

540 :名称未設定:2011/08/09(火) 02:18:47.90 ID:5m0jT1FK0
コピーペーストできないソフトに、keystroke関数を使って入力するスクリプトを作りたいのですが
下のソースでは、applescriptのエディタ内ではうまく実行できるのですが、他のソフト(テキストディタ等)
では、うまくいきません・・・ソースのどこが悪いのでしょうか?どなたかお願いします。

tell application "System Events"
set str to get the clipboard
keystroke "a" using {command down}
keystroke 63
keystroke str
end tell

541 :名称未設定:2011/08/09(火) 03:04:18.63 ID:lVu8ZEeg0
対象アプリをactivateしておいて流し込まないと、ってこと?

542 :名称未設定:2011/08/09(火) 03:10:12.50 ID:5m0jT1FK0
>>541
すみません、分からないです。
ただ、コピーした内容をapplescriptでペーストしたいだけなのですが・・・

543 :名称未設定:2011/08/09(火) 04:04:45.76 ID:izSZxQzf0
>>542
ペーストをどのアプリで行うか指定しないと
同じアプリ実行されるだろう。

tell application "Text Edit"
activate
--ペーストする。
end

こんな感じで。あとcmd+vのないアプリなんてあるのかw

544 :名称未設定:2011/08/09(火) 05:23:21.50 ID:UDrKVUyx0
たまにあるね。
コマンド+vは出来ないけど右クリックメニューから出来るのとか、
その逆もある。

545 :名称未設定:2011/08/09(火) 12:44:54.30 ID:5m0jT1FK0
>>543 返信ありがとうございます。
>>543のソースを>>540のどこに加えれば良いのでしょうか?何も分からなくてすみません・・

546 :545:2011/08/09(火) 12:58:24.87 ID:5m0jT1FK0
できたみたいです。
スレ汚しすみませんでした

547 :名称未設定:2011/08/09(火) 18:00:26.11 ID:OqWUpQIC0
Finderウィンドウ内の指定のファイルを選択状態(ワンクリック状態)にするにはどうすればよいですか?
Google先生に聞いてみたのですが私の検索スキルではそのものズバリを見つけることができませんでした。

548 :名称未設定:2011/08/09(火) 18:10:08.39 ID:WR7Ef7mO0
>>547
こういうの?
tell application "Finder"
activate
reveal "/Users/MyName/Desktop/hoge.txt" as POSIX file
end tell

549 :名称未設定:2011/08/09(火) 18:19:53.68 ID:OqWUpQIC0
おおおお、これです!!
試した感じ望んでいた動作です!
ありがとうございました。

Reveal
http://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as1010.html
じっくりみてみます。

550 :名称未設定:2011/08/09(火) 21:41:06.88 ID:2kuD7X3Vi
>>549
にゃにゃ(^-^)/

551 :名称未設定:2011/08/10(水) 03:29:43.62 ID:3HkqA6cK0
QuickTimePlayer 7, OSX 10.6で

連番ファイル(avi)をファイルダイアログで範囲指定して
ex.
a0000.avi, a0001.avi....a0010.avi
新規ムービーファイルを作り、
その連番通りに結合(新規ファイルにコピペで結合できるはず)し
a.aviという名前で保存する。

というAppleScriptを作りたい(教えてもらいたい 作ってもらいたい)んです、、。お願いします。


552 :名称未設定:2011/08/10(水) 04:56:58.87 ID:4n5JsgAh0
10個程度なら考えてる間に手作業の方が早いよ

553 :名称未設定:2011/08/10(水) 07:48:31.70 ID:tQCY15lc0
>>551
Terminalで
cat a0000.avi a0001.avi ….. a0010.avi > a.avi

アップルスクリプトにする理由がない。

554 :名称未設定:2011/08/10(水) 11:06:51.85 ID:iQ4Dxaes0
>>553
しかもその例なら、
cat a00??.avi > a.avi
でいける。a0011.aviとかいらないものが存在するなら、
cat $(jot -w a00%02g.avi 10 1 10) > a.avi
または
cat a000{1..9}.avi a0010.avi > a.avi




555 :名称未設定:2011/08/10(水) 18:59:48.09 ID:RcoMmZ8YP
>>553
横からすいません、それってmp4やm4vなんかでも有効ですか?

556 :名称未設定:2011/08/10(水) 19:16:39.35 ID:sxsg4HBUP
>>555
やって見た方が早くね?w

557 :名称未設定:2011/08/10(水) 20:05:25.86 ID:RcoMmZ8YP
>>556
おっしゃるとおりですんでやってみました

ダメでした orz

2枚組みのDVDをチャプター付きでエンコしたファイル
DISK1.m4v と DISK2.m4v があったんで
その2つをホーム直下に置いてターミナルを起動して
「cat DISK1.m4v DISK2.m4v > TEST.m4v」と入力して
return キーを押したらカリカリと何かやった揚げ句に
ホーム直下に TEST.m4v をペッと吐き出したんですが
喜んで開いてみたら DISK1.m4v と同じ内容のものでした

558 :名称未設定:2011/08/10(水) 23:48:37.77 ID:YHi/7OQR0
ヘッダがあるから無理でしょ

559 :名称未設定:2011/08/11(木) 01:26:46.21 ID:K3lO3ltE0
>>557
あまり詳しくないが、aviは単純ファイル連結でも再生できるらしい。
mp4というか、MPEGは本来だと単純ファイル連結できない。
しかし、一部のプレイヤーはそれでも再生出来る。
たしか、VLCは再生できたはず。
QuickTimeでは連結前の最初のファイルしか認識しない。

560 :名称未設定:2011/08/11(木) 02:15:59.42 ID:1gLoOjAv0
元質問者の >551です。
すでにターミナルで結合を試したけど、うまく再生できなかったため
QT player7のコピペでやってみたら可能だったので
AppleScriptで自動化できないかと思って質問しました。

今、たまたま、調べていたらMPEG Streamclipを試したところ
これなら連番aviファイルを結合することに成功。
さらにバッチ処理も可能でした。

お騒がせしてすいませんでした。






561 :名称未設定:2011/08/17(水) 01:50:25.51 ID:YJQQg2s+0
http://www.mousedown.net/mouseware/JSONHelper.html

562 :名称未設定:2011/08/17(水) 09:23:02.24 ID:10+pNeuk0
OSX10.5から10.6にしたところ、スクリプトメニューから実行するスクリプトが速過ぎて、制御するアプリ側が追いつかずcmd+cやcmd+vのキーストロークが失敗してしまいます。たまには上手く行くのですが。。。
(多分アプリ側のダイアログが出るのが遅い)
これを回避する方法ってありますか?

563 :名称未設定:2011/08/17(水) 11:49:18.87 ID:rq8Gjx9x0
>>562
・delayで決め打ち
・ダイアログなら、Quickeys を使ってダイアログが出るまで待たせる

564 :名称未設定:2011/08/17(水) 12:25:42.60 ID:10+pNeuk0
>>563
やはりdelayしかないんですね。
Quickeys、懐かしい!まだあるんですかね。探してみます。
ありがとうございました。

565 :名称未設定:2011/08/17(水) 15:09:10.71 ID:t5cnM3LT0
>>564
こういうのはどう?
ダイアログ出るまで無限ループ... 無限ループ... 大丈夫かな?

tell application "System Events"
tell application process "そのアプリケーション"
repeat until exists window "ダイアログの名前"
delay 1
end repeat

--ここにキー操作を書く

end tell
end tell

566 :名称未設定:2011/08/17(水) 19:02:01.50 ID:10+pNeuk0
>>563
delayでうまくいきました!ありがとうございました。

>>565
実はダイアログウインドウ自体は割とスパっと表示されるんですが、
その中に表示されるべき数値が何故か「もさっ」と出て来るんです。
なのでcmd+cしても空っぽ、tab keyを5回リピートしてペーストしても空白とかorz

しかし、教えて頂いた例は別の所で使えそうなので、参考にさせて頂きます。
ありがとうございました!





567 :名称未設定:2011/08/18(木) 07:52:19.85 ID:Eyax/Fhd0
>>566
その数値がテキストフィールドに入ってるものなら
テキストフィールド内の値を受け取って入れ込んだ方が確実で速い気がする

repeat 10 times
if value of text field 1 of window 1 is not "" then exit repeat
delay 1
end repeat
set txt1 to value of text field 1 of window 1
set value of text field 6 of window 1 to txt1

568 :名称未設定:2011/08/18(木) 09:57:40.78 ID:IUUn4b6X0
>>567
うおぉ。これはまた私にとっては一段と高度な構文!
大体の意味は分かるんですが、「text field 1」とか「text field 6」というのは、
"例えば"ってことですよね?そこはtext field 2であったり、3であったりするんですよね? すみません聞いてばっかりで。

569 :567:2011/08/18(木) 11:51:34.19 ID:M8pRv2rf0
そう例えば。
ダイアログ出した状態で知りたいテキストフィールドに何か入力しておいて
get value of text field 1 of window 1
とやってtext fieldの後の数字を増やして何番目が目的のフィールドか予め確認しておく


570 :名称未設定:2011/08/18(木) 20:16:07.88 ID:EzBIWePX0
Prefab UI Browser を使えば、text field の番号なんかがマウスオーバーで確認できるよ。

571 :名称未設定:2011/08/19(金) 02:10:34.36 ID:aBwKjhtc0
value of text fields
properties of text fields
properties of attributes of text fields
色々試してみると面白い

572 :名称未設定:2011/08/25(木) 22:18:44.89 ID://mjA7Gg0
初心者です 質問すみません
shift+option+r を実行するという単純なスクリプトを作りたいんですが、いざ使用予定のphotoshop上で実行すると
SyntaxError: 数値の桁数が違います。
というエラーが出てしまいます
以下そのスクリプトです、どうか訂正お願いします

tell application "System Events"
keystroke "r" using {option down, shift down}
end tell

573 :名称未設定:2011/08/26(金) 12:59:26.68 ID:37+fyphA0
スレ復帰テスト

574 :名称未設定:2011/08/26(金) 13:18:23.08 ID:sfR92wPY0
>>572
その3行のスクリプトをどうやって実行したのでしょう?
エディタから実行すればことえりのショートカットを実行するし
photoshopでスクリプトメニューから実行しても
そんなエラーでなかったのですが…

575 :名称未設定:2011/08/26(金) 15:31:03.09 ID:TgoqNaez0
>>572

tell application "Adobe Photoshop" to activate
tell application "System Events"
tell process "Adobe Photoshop CS3"
keystroke "r" using {option down, shift down}
end tell
end tell



でどう?Photoshopのバージョンは書き換えてね。

576 :名称未設定:2011/08/26(金) 15:49:57.99 ID:LuLKKEUX0
optionキーを押しながらiTunesを起動する。
という場合はどのように書けばいいんでしょうか?

577 :名称未設定:2011/08/26(金) 16:07:14.16 ID:LW24SStE0
>>576
>>1

578 :名称未設定:2011/08/26(金) 16:17:21.13 ID:LuLKKEUX0
キーを押しながら起動するスクリプトが分からないんですが。

579 :名称未設定:2011/08/26(金) 17:19:24.68 ID:LRaEsRBs0
>>578
key down {option}
tell application "iTunes" to activate
key up {option}

580 :名称未設定:2011/08/26(金) 17:52:32.22 ID:sfR92wPY0
>>575
shift+option+r ってブラシのモードを消去にする
ショートカットですよね?
ブラシツールじゃないからでは?

うちではエラー出ないのであとはわかりません

581 :名称未設定:2011/08/26(金) 18:02:10.85 ID:LuLKKEUX0
>>579
ありがとうございます。
いくつかあるライブラリ別にiTunesを起動するスプリクトを用意して置くというものです。
とっかかりの部分でつまずいていました。
その後に参照するライブラリの場所の指定部分を続けて完成出来そうです。

582 :名称未設定:2011/08/26(金) 19:39:48.03 ID:TgoqNaez0
>>580
そんなこと俺に聞かれてもわからんw

583 :名称未設定:2011/08/27(土) 00:52:31.29 ID:q21a6/BU0
>>582
質問者と別人かよ!w

584 :名称未設定:2011/08/27(土) 07:19:27.42 ID:3dZgD3TR0
質問者不在のまま質疑応答進行ってよくあるよな

585 :名称未設定:2011/09/02(金) 16:54:15.29 ID:WJTfHt3F0
Lion 10.7.2 AS2.2.1 ASエディタ 2.4.1
ダイレクトに choose file や choose folder で出したオープンダイアログで、
共有が見えない。ネットワークから見てもマウントしていないし、そこで共有も出来ない。

ASエディタを使わずにテキストエディタ等から実行させても、ASエディタの編集メニューから開くでも同じ状況です。
まあFinder に tell してからやればよいだけだ、といえばそれまでですが。。。
私のシステムが壊れているのか知りたくて。同じ症状出る方おられますでしょうか?

586 :自動再起動:2011/09/06(火) 15:18:27.09 ID:mirC3VR00
落ちたソフトを自動的に再起動.
http://www.rinpa.com/blog/archives/applescript/index.html
ただし activate は削除した.

これで起動したアプリを隠す (バックグラウンドで開く) ために,
tell application "System Events" to set visible of process "TeamViewer" to false
を end if の後に入れたら成功.でもそれでは隠すのを解除したくても繰り返し隠されてしまう.
ということで,できれば end if の前に入れたい.今のところ失敗してる.どうすればいい?

あと,AppleScript とシェルスクリプトの対応関係なんかを載せたサイトがあれば教えて欲しい.
上記同様のこと (落ちたアプリをバックグラウンドで開く) は,シェルスクリプトでできないかな?


587 :名称未設定:2011/09/06(火) 15:59:50.14 ID:AVIuXrBB0
ttp://developer.apple.com/jp/technotes/tn2002/tn2065.html

ttp://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as164.html


588 :自動再起動:2011/09/07(水) 06:46:30.44 ID:A90jdqil0
>>586 は気長に回答待つが,シェルスクリプトについては,こちらの
http://hibari.2ch.net/test/read.cgi/unix/1308195527/l50
475で改めて質問したので,そちらへよろしく.

>>587 は AppleScript からシェルスクリプトを呼び出す方法とその逆をやる方法.
欲しいのは両者の対応関係を一覧した情報なので,ちょっとちがう.

589 :名称未設定:2011/09/07(水) 08:46:49.87 ID:W1f1FbRs0
そんな上から目線で質問されましても

590 :名称未設定:2011/09/07(水) 11:28:50.13 ID:nIHcfgD20
図々しいにもホドガール

591 :名称未設定:2011/09/07(水) 11:39:07.28 ID:uFWyacgp0
>>588
対応もクソもねーよ。全く違う言語。
夏休みは終わったからな。

592 :名称未設定:2011/09/07(水) 13:00:16.61 ID:biIQ32s00
あんな上から目線の立場ならそんなのわかりそうだがなあ

593 :名称未設定:2011/09/07(水) 13:12:57.96 ID:biIQ32s00
launch
の後でループして目的のアプリが起動するのを待ち、その後 set visible する
activate はいらんだろ

アプリ起動をコマンドでやるなら open だな

594 :自動再起動:2011/09/07(水) 16:40:19.34 ID:A90jdqil0
>>591 情報どうも.ノンプログラマの自分から見れば,AppleScript も automator もシェルスクリプトも機能としては同じなの.
言語としてはたしかに全然違ってそうだけど,共通の目的に使える部分については,対応表も可能だと思ったわけ.

上から目線と言うよりは,単に中立的・白紙的だということだと思う.自分用のメモに最低限の編集施しただけだから.
べつに下から目線にならなくていいよ.


595 :自動再起動:2011/09/07(水) 16:53:45.07 ID:A90jdqil0
>>593
どうもありがとう.でも,launch の「あとでループする」というのが分からないです〜.

ちなみに以下のスクリプトだと,一回目に起動したときは確かに隠れるが,
その後終了させて自動起動したあとは,なぜか隠れない.

on idle theObject
tell application "System Events" to set AppNames to name of processes
if AppNames does not contain "TeamViewer" then
tell application "TeamViewer" to launch
tell application "System Events" to set visible of process "TeamViewer" to false
end if
return 10
end idle


596 :名称未設定:2011/09/07(水) 17:03:05.14 ID:3o6ze2JR0
バカだ

597 :自動再起動:2011/09/07(水) 17:07:09.83 ID:A90jdqil0
どこがバカか分からないので苦労してるのよ.


598 :自動再起動:2011/09/07(水) 17:13:11.86 ID:A90jdqil0
なぜか分からんが,delay というのを入れたらうまく言った.

tell application "TeamViewer" to launch.
delay 2
tell application "System Events" to set visible of process "TeamViewer" to false


599 :名称未設定:2011/09/07(水) 17:21:17.77 ID:biIQ32s00
とりあえず「傲慢でした」と謝罪するのが先じゃねw

tell application "TeamViewer" to launch
tell application "System Events"
repeat until "TeamViewer" is in name of processes
delay 0.2
end repeat
end tell
delay 0.5
--tell application "TeamViewer" to activate
tell application "System Events" to set visible of process "TeamViewer" to false

その後調べたら、ただの launch で起動すると起動されたアプリは 「隠す」で起動されるから、それだけで良さそうだけど、なんかのアプリでそうならなかった憶えがある

tell application "TeamViewer" to activate
を一度かましてからじゃないと Dock のアイコンがグレーにならない、うちの環境

タイミングはいろいろ癖があるから delay の値で調節すれば


600 :名称未設定:2011/09/07(水) 17:22:44.21 ID:biIQ32s00
>>598
うん。launch 行実行されても、プロセスが起動されたわけじゃない
それでいいんだったら、それでいいよ

601 :自動再起動:2011/09/07(水) 17:45:58.68 ID:A90jdqil0
>>599-600
どうもありがとう.いい人じゃ.ご教示内容は将来の参考に記録しておく.
謝罪はしないが,とりあえず傲慢というより無人格だった.

launch で起動したことを確かめずに次の命令に進んでしまうんだ.なるほど.


602 :名称未設定:2011/09/07(水) 18:45:29.46 ID:iFdR4flH0
>>601
TeamViewerは使ってないけど、 通常はlaunchで起動するまで待つよ。ただ、起動した後に
初期設定の読み込みなどを始めるアプリ(Photoshopとか)なんかだと、起動した時点で次の処理へ
移ってしまう。

それと、アプリによっては処理が一段落した時点で、隠すを解除してしまう場合があったり、
無視される場合もあるため、delayでタイミングをずらす必要がある。

603 :名称未設定:2011/09/07(水) 18:57:04.97 ID:biIQ32s00
>>602
tell application "TeamViewer" to launch
tell application "System Events" to set visible of process "TeamViewer" to false
のように launch の直後にプロセスにアクセスしようとしたら、そんなプロセス無いぞって怒られるのがしばしばあるんだけどね
ま、そういう環境もあるってことで

604 :602:2011/09/07(水) 21:20:42.78 ID:iFdR4flH0
>>603
とりあえず、iTunes、iPhoto、Mail、Safari、Firefox、Photoshop、アプリケーション形式の
スクリプトなど、手当り次第に調べてみたけれど、隠すが無視されることはあってもエラーになる
現象が確認出来ない。現在は10.7で、10.6の頃がどうだったか、起動の直後に隠すような処理は
普段していないので(大抵、その前処理が入る)、10.6だとダメなのかもしれない。

どちらにせよ、そう言う環境を考慮するなら、visibleの値をセットした後に、その値がfalseで
あるか調べるループ処理をするよりも、素直にdelayを挟んだ方が安心だとは思う。

605 :602:2011/09/07(水) 21:32:00.88 ID:iFdR4flH0
ちょっと補足。最後の2行は>>599のスクリプトに対してではなく、以前に隠すが働くまで
ループさせる処理をしたことがあって、そのことをふと思い出しただけのものです。

606 :自動再起動:2011/09/08(木) 11:41:33.77 ID:Jp/c58At0
launch が処理対象によってちがう動作をすること了解.
こういう一連のやりとりを見てると,「バカだ」と言われるほどバカでもない気がする.

ちなみに TeamViewer 自動再起動用の applescript をリモート OS 10.6 に置いて,
おそるおそる TV 落としてスクリプト実行してみたら,ローカルとちがう動きをした.
でリモート TV は呼び出しを受けてつながった時点で,窓がドックに収まるようになっていた.
「隠す」処理は無視されるようだから,applescript で入れてもあんまり意味なかった.
ま,他のアプリで applescript 使うときの参考ということで,みなさんには感謝する.

どうでもいいが,TeamViewer は窓を閉じるだけで終了してしまうので,誤操作が怖かった.
そうじなくてもリモートで何らかの理由で落ちてしまったら接続できなくなるので,
こういうスクリプトが役に立つのは間違いない.

欲を言えば,ログアウトした状態で TeamViewer を起動しておけないかとも思う.
AppleScript じゃ無理だろうけど.


607 :自動再起動:2011/09/08(木) 11:51:46.01 ID:Jp/c58At0
>>606 で「「隠す」処理は無視されるようだから」というのは訂正.
たぶん起動した時点では隠されているはずで,その後外部から呼び出されてつながった時点で
ドックに収まったと推測.


608 :名称未設定:2011/09/08(木) 13:08:26.94 ID:NSfSmCPR0
そんなクソにも役立たないプライドなんて捨てればいいのに。ネット上では特に

609 :名称未設定:2011/09/08(木) 13:19:47.80 ID:1Y0ZLU3a0
どこの王様なんだろ

610 :名称未設定:2011/09/08(木) 13:41:23.65 ID:JXBD50x50
もっと素直に、僕はバカです助けて下さいとはいえないのかな。
プライドが高くて無人格にまで下げるしかなかったのか。

611 :自動再起動:2011/09/08(木) 14:52:01.12 ID:Jp/c58At0
おやおや,怒られてるみたいね.なんか失礼なこと言ったっけ.
自分の投稿見直したけど,上から目線とか図々しいとか,どの言葉を指しているのか分からんよ.
とにかく,助けてくれたみんな,ありがとね.

ということで,次の方,質問どうぞ.


612 :名称未設定:2011/09/08(木) 15:03:48.84 ID:tpfYV8Dq0
帰国子女でもないなら、国語の勉強が足りなかったみたいだな。

613 :名称未設定:2011/09/08(木) 15:34:09.52 ID:JXBD50x50
>>586
>落ちたソフトを自動的に再起動.
>http://www.rinpa.com/blog/archives/applescript/index.html
>ただし activate は削除した.
いきなり、意味不明な書き出し。このスレは質問or発表スレなので
どちらなのか明示すべき。自己中心的としか思えない。
アプリの自動再起動を行うため、以下のblogを参考に…と書き出すべき。

>どうすればいい?/教えて欲しい./でできないかな?
一回の発言で3点も要求するのはわがままと言わざるえない。

>>588
>475で改めて質問したので,そちらへよろしく.
堂々とマルチポス。質問ではなく「考えろ」の色合いが濃い。

>>1
>安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
よく読んどけ。


614 :名称未設定:2011/09/08(木) 15:47:41.53 ID:93T0/+Kg0
>>611
あっちでもいい顔されてないねー。
initプロセスの代わりに実装されたlaunchプロセスが
常に起動し続けるオプションも持っているから使うべきだとアドバイスされてたね。

615 :名称未設定:2011/09/08(木) 17:20:48.45 ID:eHsdnmLD0
>>612
帰国子女をひとくくりにするのやめてくれ

616 :名称未設定:2011/09/08(木) 17:23:04.99 ID:LKWzRIHG0
しかし何で帰国子女っていうんだろうね。
男だっているのに。

617 :名称未設定:2011/09/08(木) 17:34:48.50 ID:tpfYV8Dq0
>>615
スマンカッタ。

>>616
( ゚Д゚)ポカーン

618 :名称未設定:2011/09/08(木) 17:39:07.28 ID:kYYmL2fG0
子女という単語は息子や娘を指すんだよ
マジレスだよ

619 :名称未設定:2011/09/08(木) 17:45:29.21 ID:d8q7lVfk0
まあ単に バカ でいいでしょ
次どうぞ

620 :名称未設定:2011/09/08(木) 17:52:57.30 ID:YuNj6Wnl0
「良家の子女」などと用いる例があるように「子女」が本来尊称であること、また、「男」の語が入っていないにもかかわらず男女両方の子供を指すことから、
「性差別語」のように連想される。このために文部科学省の組織内名称をはじめとしたほとんどの公共機関と教育機関では「帰国子女」から「帰国生徒」等の
無難な名称へ変更されている。むしろ現在では公の機関では「帰国子女」のほうが少数派である。

だとよ

621 :名称未設定:2011/09/08(木) 18:16:57.37 ID:HhnInQpU0
まあ、どうでもいいがな。

622 :名称未設定:2011/09/08(木) 21:16:23.82 ID:+Rco3u7H0
アスペを相手にするお前らは本当に忍耐強い
見てるだけでもイライラした

623 :名称未設定:2011/09/08(木) 22:13:27.81 ID:1oOJ2Lcx0
>>611
このレス文だけとってみても失礼だな。アスペというのか知らんがコミュ力不足。

624 :自動再起動:2011/09/08(木) 22:46:52.16 ID:Jp/c58At0
あ,なるほど.アスペルガーには分からない微妙なことだったのね.じゃあ僕にはむずかしいかも.

次の質問が出てないので敢えて答えておくと,
>>613 の指摘は「書き出しが意味不明」ってこと以外は該当しない感じ.
●一回の発言で3点質問するのはわがままというよりは,無用な繰り返しを避けて効率的.
●マルチポストと言っても,ちゃんと断った上で一部分をより適切なスレに分離しただけ.
●丸投げではなくて,ほとんど全部スクリプトを示した上での質問だった.


625 :自動再起動:2011/09/08(木) 23:10:16.18 ID:Jp/c58At0
>>614
>initプロセスの代わりに実装されたlaunchプロセスが
>常に起動し続けるオプションも持っているから使うべきだとアドバイスされてたね。

どうも補足ありがとう.でもこの補足をふくめ,あちらのスレの解答は今のところぜんぜん理解できてないんです.悲
あちらの質問の仕方は「丸投げ」に近いのは認める.省略したのは,こちらのスレの質問にリンクすることで,
applescript の場合を示しているからだけど.
「このアプリは起動中?」を確かめるコマンドが分かればなんとかなると思うが,
コマンド集探しても見つからなかった.



626 :自動再起動:2011/09/08(木) 23:56:22.76 ID:Jp/c58At0
シェルスクリプトで教えてもらったマニュアルの項目をしばらく眺めていたけど,
とりあえず Safari のリーディングリスト行きに.
けっきょく Mac OS X に依存したコードになるなら,
シェルスクリプトで書こうとした当初の目的とズレてしまう.

AppleScript でできることはシェルスクリプトでより簡潔な言葉でできると思っていたが,
そうでもないということか.アップルスクリプトちょっと見直した.
このスレッドで分かるように,ユーザーも言わなくていい指摘までしてくれて親切だし,笑


627 :名称未設定:2011/09/09(金) 00:04:09.87 ID:Mr+dwSyh0
急にスレが伸びてるから、何事かと思えば。

628 :名称未設定:2011/09/09(金) 01:48:44.05 ID:WtP9HFKA0
ここはスルー力をつけるスレに認定されました

629 :名称未設定:2011/09/09(金) 02:20:50.62 ID:lEiH7AkU0
tell application "TextEdit" to launch
delay 1
repeat until application "TextEdit" is running
delay 0.5
log "not running"
end repeat
log "running"
--tell application "TextEdit" to activate
--delay 0.5
tell application "System Events" to set visible of process "TextEdit" to false

630 :名称未設定:2011/09/09(金) 10:03:25.11 ID:8RAmTrLm0
>>625
むかしの話だけど、ログイン後に必ず走らせたいのなら/etc/gettyを使ってrespawn指定のプロセスを作った。
指定のスケジュールで走らせるためにはcronという仕組みがありシステムプロセスであるデーモンが世話を焼いてくれた。
それもこれも、unixカーネルが走り始めて最初のプロセスであるinitがinittabを見て起動するという仕組みを利用していたのね。

でもTigerからinitに変わってlaunchが第一プロセスになって面倒を見てくれるようになった。
システムつまりカーネルモードでも、ログイン後のユーザプロセスでもそれぞれに設定をわけて面倒を見てくれる。
ログイン前から走らせるのなら前者を、ログイン後なら後者を使えばいいよ。
その設定の説明が件のレスだし、そのなかに落ちても自動再起動する設定もあるよ。
どの道、プロセスが落ちたのもシステムに検知してもらうんだからアップルスクリプトに頼る必要はないでしょ。

631 :名称未設定:2011/09/09(金) 10:06:03.36 ID:8RAmTrLm0
unixの起動について調べたほうが理解が進むんじゃない?

632 :名称未設定:2011/09/09(金) 13:46:05.69 ID:LGF7NfTy0
いつからこんな怖いスレになった

633 :自動再起動:2011/09/10(土) 03:13:49.15 ID:JHvupoZi0
>>630
>ログイン前から走らせるのなら[init]を、ログイン後なら[launch]を使えばいいよ。

どうも.シェルスクリプトで書こうとした当初の目的は,それを知っておくと Mac OS X にかぎらず
UNIX コンピュータ全般を操れるであろう汎用性の高さゆえ.
もし launch プロセス?ってのが OS X 独特のもの(かどうかは知らないけど)で汎用性がないなら,
ここで勉強しても上記目的には役立たないことになる.

でも,ログイン前から走らせることは AppleScript では出来ていないから(たぶん出来ないと推測),
それが出来る点においては init の使い方を勉強する価値はありそう.敷居高そうだけど.

>>629
別の例示ありがとう.applescript についてはすでに解決してるけど.


634 :名称未設定:2011/09/10(土) 03:15:43.55 ID:epBYZUAC0
感謝したあとで否定文を差し込むあたり、性格悪いなと思った

635 :名称未設定:2011/09/10(土) 04:43:35.23 ID:TbQhhLgT0
本人的には自分は正しいって感覚なんだと思うよ。
異様に高いプライドを間違えた方向に持ってしまっているのが一般社会と馴染まないところかと。
ある意味気の毒ではある。

636 :自動再起動:2011/09/10(土) 06:23:32.51 ID:JHvupoZi0
>>634 はいはい.順番逆の方がいいってことかな.


637 :名称未設定:2011/09/10(土) 06:39:52.92 ID:f2rfqAQP0
相手をしてるやつは自分も荒しだと気づけよ
本人のためにもならない

638 :自動再起動:2011/09/10(土) 07:36:31.27 ID:JHvupoZi0
>>635
人類平等でしょう.プライドとかじゃなくて,
ボクはいっしょに仕事するような相手とは対等な関係を持ちたいの.
見上げもせず,見下しもせず.ま,態度悪いと陰で言ってた上司はいたので,
あなたの指摘も当たってる部分はある.でもたいして困っていないのでご心配なく.

>>637
わるかった.人格攻撃が続くので,つい反応してしまった.


639 :名称未設定:2011/09/10(土) 09:32:06.76 ID:H19lCgZBP
いるよね、ぺーぺーの新米のくせに
「僕はなんでも分かってるし、仕事も出来るんです。
 あなたはなんでそんなに偉そうなんですか?
 僕は先輩後輩って嫌いなんですよね」
って言うヤツ。まぁワザと演じてるんだろうけどさ。

640 :名称未設定:2011/09/10(土) 10:16:26.00 ID:vGlTjnDk0
あんたら朝っぱらから元気だねぇ
日曜夜までこの調子で行くのかい?

641 :名称未設定:2011/09/10(土) 13:19:56.22 ID:SEspeDEh0
>>637>>638
わざと取り違えてるのか知らんが「本人」は>>638だからな

642 :名称未設定:2011/09/10(土) 13:35:30.59 ID:PQ+2TvO90
たぶん、>>638は一人っ子なんだろう。
法の下の平等と人間関係は違うと気づくべき。

643 :名称未設定:2011/09/10(土) 14:16:30.92 ID:2x5csyly0
>>636
あなたにとって必要かどうか、っていう情報はスレにとって必要じゃないんだよね
であるのに関わらず自分には不要であると主張するのは性格の問題でしょ
あなたの為のスレじゃないし、あなたの為だけのレスでも無い

644 :名称未設定:2011/09/10(土) 18:06:00.45 ID:ACwY40A/0
>>633
もう解決済みなのに、個人的な理由でスレを私物化するのはどうかと。何か言われたら、
全てやりかえすようなことを続けていても、スレを荒らすだけ。もし、まだ続けるのなら、
あなた個人のことはぶっちゃけどうでもいいから、きちんと整理してから質問を。

それから例のAppleScriptだけど、on idleを使わずにon runの普通のスクリプトにして、
delayを挟んだループにした方が、負荷が少ない。そのままだと終了が出来ないけど。

645 :自動再起動:2011/09/10(土) 18:27:03.00 ID:JHvupoZi0
>>643
他人の発言を悪意に取り過ぎ.ボクにとって不要だなんて言ってない.
>>629を書いてくれたひとにとって不要な努力をさせてしまったかもしれないのを軽く謝ってるだけ.

>>633
「別の例示ありがとう.applescript についてはすでに解決してるけど」
で言いたかったことを書き表すとこうなる:

「AppleScript にかんする質問については一応解決したところに,
わざわざ時間をとって別の例を挙げてくれてありがとう.
なるほど is running を使うことで
"System Events" ...in name of processes
と書くのを避けることが出来るのは参考になった.どうも.」

こんなに書かなくても普通分かりそうなものだが…思い込みは恐ろしい.
みんなの忠告は受け取っておくが,どの発言も本人には悪意はないことは理解してくれ.
アスペルガーで人格障害を抱えてるボクのような人間の発言を叩いても
あまり意味がないから,もう止めたほうがいいよ.


646 :自動再起動:2011/09/10(土) 18:37:20.28 ID:JHvupoZi0
>>644
on run というのもあるんですね.調べてみます.どうも.


647 :名称未設定:2011/09/10(土) 18:53:07.09 ID:H19lCgZBP
こーゆーのは悪意がないからタチが悪いんだよね…周囲を不愉快にさせるが
本人には悪意がないから絶対に反省しないし、改善される見込みもない。
ま、でも、しょうがないね、そーゆーココロの病気なんだから…


648 :名称未設定:2011/09/10(土) 22:59:57.01 ID:SEspeDEh0
もういい大人だろうと思うが
悪意が無い≠悪いことをしてない、と気付くのはいつだろうね

649 :名称未設定:2011/09/10(土) 23:20:10.77 ID:vGlTjnDk0
いい加減スレ違いだって事に気付くのはいつだろうね

650 :自動再起動:2011/09/11(日) 07:59:14.20 ID:zZ8Z2yWr0
どうも質問をしやすい雰囲気を崩してしまったようなので,
その切っ掛けを作った一人として,解決策を提示しておく.
要するに質問の仕方が悪いといった理由で叩かれる可能性を
できるだけなくしておけばいい.
以下のような説明をスレッドの最初に追加しておくといいんじゃ.


質問は試験問題形式で十分.より適切な回答を得られるよう,その質問を
するに至った事情などを添えるのも場合によっては望ましい.例を示す.

質問.以下の等式をみたすような x, y, z, n の組合せをひとつ以上
見つけるプログラムを書け.
[等式] x^n + y^n = z^n
ただし, x, y, z はゼロでない自然数, n は 3 以上の自然数とする.
また, x^n は x の n 乗のことである.

事情.塾講師をやってます.中学生に上記[等式]を解く宿題を出したところ,
正解者がいなかった.不思議に思って自分でも解こうとしたが,
手作業ではなかなか解が得られないことが分かった.
コンピュータの力で解を求めたい.



651 :名称未設定:2011/09/11(日) 08:55:09.76 ID:MXpRQ0WrP
しつこいからNG登録しとくか

652 :名称未設定:2011/09/11(日) 08:58:12.98 ID:br6nMrWh0
キチガイ見世物スレワロタ

653 :名称未設定:2011/09/11(日) 09:10:29.54 ID:vdQvorkM0
常識が判断出来ない人だったか

654 :名称未設定:2011/09/11(日) 09:46:13.39 ID:MpPZlcJC0
自動の人については、
投げやり気味に同情してたんだけど、
それはこの上もなく誤りだった様だ。

655 :名称未設定:2011/09/11(日) 10:05:22.72 ID:PMf6wry20
ほんとに病気の人ってこんななんだな
キモ過ぎる

656 :名称未設定:2011/09/11(日) 11:00:33.15 ID:N8fByo+k0
自動の人は、アスペというより人格障害のようだ

657 :名称未設定:2011/09/11(日) 12:28:32.40 ID:AcsvSUjB0
>>650
その質問の例なんだけど…

・丸投げ禁止
・わからない点、エラーが解決できない点についてはスクリプト片を添えて質問

というこのスレのルールにまったく従ってないぞ。

658 :名称未設定:2011/09/11(日) 13:14:39.99 ID:N5VxcB3z0
スルーしとけバカチン

659 :名称未設定:2011/09/12(月) 01:45:40.30 ID:YblJmk/40
自動の人って何かと思ったら、初っぱなから名前設定してるのな
なるほど、気をつけよう

660 :名称未設定:2011/09/15(木) 01:33:20.46 ID:zWqxcQzN0
sage禁止で

661 :自動再起動:2011/09/17(土) 18:28:23.99 ID:gwVt0Swg0
しつこくするつもりはないのでしばらく黙ってたけど,反対多そうだね.
「試験問題形式で十分」とは書いたが,そうしなければならないなんてことは
一言も言ってないので,べつに反対する理由にはならないはずなんだが.

ま,こういうスレが答える側の論理(「答えてやるんだから,もうちょっと頭下げてね」)に
支配されていることは分かった.
質問者側への配慮ってのは,答える側には分かりにくいもののようだ.
スレッドをウォッチしてるひとは答える側/答えられる側が多いだろうから仕方ないか.

>>657
もちろん>>650 の例のあとには,「私の解答とその問題点」などが続く.
そもそも AppleScript 向けの例になってなかったから,その辺は適当に変える必要がある.


662 :名称未設定:2011/09/17(土) 20:27:42.26 ID:YTRBTbCg0
教わる者と教える者が対等の立場だと思ってんのか、このバカは。
どんだけ社会経験ないんだ?
本来なら金払って知識を得るもんだぞ。
http://chiebukuro.yahoo.co.jp/
ここだと学校の宿題やセンター試験の答えも解いてくれるらしいぞ。
オレはここまで献身的にはなれないが。

663 :名称未設定:2011/09/17(土) 20:33:35.84 ID:S6Pk1bT90
キチガイはスルーで

664 :名称未設定:2011/09/17(土) 20:38:48.39 ID:q0kyPwEL0
AppleScriptを勉強すれば、任意のWebページから指定した文字列を含む段落を拾ってきてテキストに保存してくれるような簡単なアプリケーションはできますか?
できるかどうかさえわかれば自分で頑張ります!

あ、でもFlashを操作するのは無理ですよね、たぶん

665 :名称未設定:2011/09/17(土) 20:51:33.38 ID:/SaqDz9S0
>>664
出来ちゃう

Flashの操作については試した事が無いので良くわからないが

666 :名称未設定:2011/09/19(月) 22:30:58.30 ID:UCCE/DG/0
たくさんあるQuick Timeのムービーの注釈のコピーライトとかに入力したいんですが、AppleScriptで一括してできますか?
どなたか、できるかどうか、あるいはヒントだけでも教えてください。
できるならなんとか自力で調べて作ってみたいと思います。
一応、調べたんですがわからず、できないことをやってるのではと思ったので。


667 :名称未設定:2011/09/19(月) 22:41:13.73 ID:aFHP6lWfP
用語説明からすると、出来そうにない。

668 :名称未設定:2011/09/20(火) 01:14:09.55 ID:vYR2MgU/0
>>666
使った事はないけど Automator に『ムービーの注釈を設定』と言うアクションがある(10.6)。
たぶんメタタグ関連のコマンドで処理してるんじゃないかな?

669 :名無し:2011/09/23(金) 00:17:53.55 ID:v1jvnS+70 ?2BP(0)

>>664

AppleScriptいじりたてですが。
SafariとJeditとSystem Eventsを組み合わせて
指定のURLの全文取得が出来ていますので
あなたも出来ると思いますよ。


find string (text) を使ってリピートで取得か、
findAll string (text) で一気にparagraph選択かな?で
自信無いです。
Jedit用語説明見るとこれ以降に続く構文が真偽しか選択できませんね。


フラッシュプレーヤーをインストールしてみました。
用語説明では見つかりませんけど、AppleScriptから使えるのかな。
cliclick使えれば何とかなるかも。


BathyScapheを久しぶり起動したら
バージョンアップがわかったので2.0.5にしてみました。

670 :名称未設定:2011/09/23(金) 02:00:50.59 ID:ovQMknMc0
>>668
ありがとう。Automator、いじってみたけどワケわからん。
あきらめるわ。


671 :名称未設定:2011/09/23(金) 10:19:41.63 ID:6sDgG0EQ0
そんなすぐ諦めてちゃ何もできませんがな
Automator簡単だよ、簡単だから簡単なことしか出来ないけど

672 :名称未設定:2011/09/23(金) 10:47:10.63 ID:9xxpvTWi0
スピーカー音量の設定で指定した値と実際にセットされた値とで一部ずれがあるんですが
これはどういう理由があるんでしょうか?

set volume output volume (val_set)
set (val_get) to (get output volume of (get volume settings))
指定した値(val_set) | 実際の値(val_get)
99 | 98
96 | 97
94 | 93
92 | 91
89 | 88
....。
とりあえずこんな風になっています。
このせいで、スクリプトで現在の音量より1だけ小さい(大きい)音量にセットしたい時に
余計な記述が必要になってしまいます。大した問題ではありませんが。

673 :名称未設定:2011/09/23(金) 11:19:15.77 ID:pCk/xJAt0
http://www.macosxautomation.com/lion/annotatedversion/index.html

AppleScript では
http://support.apple.com/kb/TA25539
でも、なんかいろいろ壊れているみたいだなあ

674 :名称未設定:2011/09/23(金) 11:45:17.28 ID:pCk/xJAt0
>>672
10.6.8 ではそんなことないけど、10.7 はそうだね
後ろはなんか3つ区切りみたいだけど、頭はそれとまた別のようで、パターンが意味不明だね
余計なことしてんな

675 :672:2011/09/23(金) 18:11:30.12 ID:9xxpvTWi0
ああスノレパは大丈夫なんですね。
ついでなんでリストにしてまとめておきますね。ほとんど需要は無いだろうけど。
property list_vol_spacial : {42, 49, 54, 58, 62, 66, 69, 72, 75, 78, 81, 84, 86, 89, 92, 94, 96, 99}
property list_vol_sp_down : {66, 84, 89, 92, 94, 99}
property list_vol_sp_up : {42, 49, 54, 58, 62, 69, 72, 75, 78, 81, 86, 96}

676 :名称未設定:2011/09/23(金) 18:14:01.97 ID:9xxpvTWi0
spacial じゃなくて special ね‥‥

677 :名称未設定:2011/09/30(金) 14:54:57.34 ID:EnmE8oAi0
>>665
遅れましたがありがとうございました!!
頑張ってみます。

678 :名称未設定:2011/10/02(日) 13:22:08.57 ID:XLAmD09K0
-- Delete of Eject
tell application "Finder"
set list_file to (selection as alias list)
repeat with f in list_file
if (kind of f is "ボリューム") then
eject f
else
delete f
end if
end repeat
end tell

SparkでこんなスクリプトをCmd+Del に割り当ててるんですが
kind属性を判断するような箇所をシステム言語によらない形にできないものでしょうか?

679 :名称未設定:2011/10/02(日) 14:17:17.22 ID:/1ueGcaW0
汎用性に欠けるけど、URLで代用してみるとか
if (URL of f begins with "file://localhost/Volumes/") then


680 :679:2011/10/02(日) 15:12:04.13 ID:62/wEsBu0

役に立たなかったw

681 :名称未設定:2011/10/02(日) 15:42:03.82 ID:nP/8UtV50
>>678
if class of item f is disk then


682 :名称未設定:2011/10/04(火) 12:52:56.49 ID:VjIE+nBg0
iTunesの曲オプションの「メディアの種類」を「Podcast」に変更したいのですが
下記スクリプトだと「オブジェクトのタイプが不明です」というエラーが出てしまいます。

そもそも、変更するプロパティが違うのでしょうか?

tell application "iTunes"
repeat with theTrack in selection
set podcast of theTrack to true
end repeat
end tell

683 :名称未設定:2011/10/04(火) 13:40:54.95 ID:68QQkr7P0
元々kindを使ってたりわざわざalias listにしてたり、
なかなか興味深いな

684 :名称未設定:2011/10/04(火) 14:27:44.48 ID:lMfr7Ol30
>>682
r/o
read only属性のようだけど

685 :名称未設定:2011/10/04(火) 14:48:24.26 ID:VjIE+nBg0
>>684

r/oって、リードオンリーの意味だったんですね!
基本的なことがわかっていませんでした。ありがとうございます。

ということは、自分で調べた限り「メディアの種類」を変更する方法が無いようですが、ご存じの方はいますか?

686 :名称未設定:2011/10/04(火) 15:16:36.84 ID:8szMkUSS0
>>685
その程度、手動じゃだめなのか。

687 :名称未設定:2011/10/04(火) 15:40:21.63 ID:VjIE+nBg0
>>686
Automatorを使ってiTunesに取り込む時に、タイトルとかと一緒に設定したかったんですが。
無理なら諦めます…

688 :名称未設定:2011/10/04(火) 22:56:57.20 ID:oNDIyiaF0
http://www.youtube.com/watch?v=FaOCQ9AQyP0&annotation_id=annotation_583788&feature=iv

リンゴ様。
こいつら韓国人は、徹底的に再起不能にしないと、また、どこかの国から盗みます!
日本からかもしれないし、アメリカからかもしれないし、中国からかもしれないし、その他からかもしれません。

こいつらは徹底的に再起不能にしないと、また盗むのです。
日本でのギャラクシーの販売を確実に退けてください、韓国人は、ギャラクシーを売って日本でお金を手に入れたら、そのお金で世界を旅して、また誰かからアイデアを盗みます。

また同じ目に会いたいのですか?!!!
あなたがたを、ずるいビジネスをしない、良識ある会社であると信じています。

689 :名称未設定:2011/10/05(水) 00:09:10.32 ID:yJAz9f+20
スレに関係ねーし。百歩譲ってApple関連だとしても、Appleには届かねーし
しーね

690 :名称未設定:2011/10/05(水) 00:25:36.16 ID:3te3oUQ+0
ああー、すみません。
アップル関連のスレに書き込んでいましたが、手違いでした。

691 :名称未設定:2011/10/05(水) 10:08:11.81 ID:1cZFye/C0
スクリプトの事ではないのですが、
スクリプトエディタのウインドウ下部の「説明・結果・イベントログ」の表示欄が消えてしまいました。
どうやったら表示できますか?
以前から表示欄の有る物は問題ないのですが、新規で作成したスクリプトには一切表示されません。

692 :691:2011/10/05(水) 10:09:07.54 ID:1cZFye/C0
書き忘れましたがOSは10.4.11です。

693 :名称未設定:2011/10/05(水) 10:52:13.78 ID:NT6qLOyk0
>>691
command+1
command+2
command+3

694 :691:2011/10/05(水) 11:42:21.34 ID:1cZFye/C0
>>693
いや、そう言うことじゃなくて根本的に表示するエリアが存在してないんです。

695 :691:2011/10/05(水) 11:47:23.92 ID:1cZFye/C0
画像アップしました。
ttp://s3.gazo.cc/up/s3_0637.png

696 :名称未設定:2011/10/05(水) 13:12:48.63 ID:APuRrr6NP
>>695
動画の方を見てしまって画像を見ないヤツ続出

697 :名称未設定:2011/10/05(水) 15:42:47.95 ID:kKdlPwnJ0
Script Debuggerを外す
表示欄のあるやつをウインドウ>デフォルトとして保存する
com.apple.ScriptEditor2.plistを消す
等々?

698 :691:2011/10/05(水) 15:57:36.51 ID:1cZFye/C0
>>697
ありがとうございます。
↓で直りました。でも、どうやって消えたのでしょう?
表示欄のあるやつをウインドウ>デフォルトとして保存する

699 :名称未設定:2011/10/05(水) 21:33:55.28 ID:NYzhqCI/0
iWorkのNumbersをコントロールしてみようと試行錯誤をしているのですが、
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
tell application "Numbers"
tell table 1 of sheet 1 of document 1
set rn to a reference to (cells of range ("A1:A10"))
set ce to a reference to cell ("A11")
set value of rn to 8
set value of ce to "=SUM(A1:A10)"
value of ce ----> 80
properties of ce
end tell
end tell
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
range ("A1:A10") のような範囲指定方法は、
用語説明の Numbers: Numbers Suite > cell クラス を参照しても記載がないように見えました。
どこか他で説明している箇所があるのでしょうか?
あと、上にあるように value に Numbers数式を入れると、計算結果が取得できますが、
数式そのものはcellのproperties を覗いても見あたりません。 これは取得できないものなのでしょうか?

700 :名称未設定:2011/10/06(木) 14:14:38.10 ID:7L17iawL0
>>699
俺は式ごとコピーするときはGUI scriptingでごまかしてる

701 :名称未設定:2011/10/14(金) 23:53:27.99 ID:r3gb/SpC0
今日、ほとんどはじめてのスクリプトを書いて実務に生かせました。
これからよろしくお願いします。
それでひとつ質問なんですけど、今日書いたスクリプトで
set tgtFiles to selection as alias listとして
複数選択したファイル、フォルダをドラッグ&ドロップするとそれらを
処理するものなのですが、自分の環境でやると成功するのに
少し古い、白いiMacだと「can't make alias〜」と出て処理できません。
as alias list のリストをとって、1個だけ選択して処理するとすべて処理できます。
こんなこと、あるんでしょうか?
ソースはすみません会社に忘れました。

702 :名称未設定:2011/10/15(土) 03:30:13.42 ID:KfABc9qt0
>>701
選択項目がひとつだけの時 as alias list が失敗すると言う問題が以前は有った(Mac OS X 10.4)。
10.5では直っていたはず。
複数選択時にもエラーが起っているなら…それは知らない。

703 :名称未設定:2011/10/15(土) 10:05:13.55 ID:IcZAXu4q0
>>702
ありがとうございます。たぶんそれですね。回避策はどうするんだろ、、、、?
Strinsでsetして、調べてlistかaliasにする、とかですかね、、、、。
初心者過ぎてわからないw 
実は昨日、激混みのアップルストアで行列を尻目にmac mini買いました〜♪
近所の図書館にぜんまいビュンビュン見つけたので
借りてくる予定でーす♪

704 :名称未設定:2011/10/15(土) 10:06:56.34 ID:IcZAXu4q0
×Strins
○String
orz

705 :名称未設定:2011/10/15(土) 11:53:41.87 ID:Wucgn8c40
>>701
ドロップされたファイルリストはdropletのopenハンドラのパラメータで得られるでしょ。
任意のタイミングでFinderの選択を得るのは、こうするのが確実。
on getFinderSelection()
set selList to {}
tell application "Finder"
set selObj to selection
repeat with x in selObj
set end of selList to (get x as alias)
end repeat
end tell
return selList
end getFinderSelection

706 :名称未設定:2011/10/15(土) 16:39:39.70 ID:i1O2bvxW0
>>703
「〜Studioでびゅんびゅん」だとXcode4では役に立たないかも

707 :名称未設定:2011/10/17(月) 23:12:03.01 ID:LtHu3kDe0
300MBほどの大きなデータを10個ほど作成して、そのデータをさらに処理する、というような
場合、なにかいい方法はないでしょうか。普通に処理を並べただけだと、2つめの処理がされません。
いろいろ調べてtryかwith timeoutを使うのだとは思うのですが、その「ファイルが完全に生成されている状態」
というのをどう調べればいいか分からないのです、、、。

708 :名称未設定:2011/10/17(月) 23:51:30.17 ID:XP074dMC0
on idle で数秒ごとにファイルサイズをチェックして、
前回チェックしたサイズと変わらなければ、データ処理を発動すれば?

最近AppleScriptやってないから自信ないけど、
Finderかなんかにファイルサイズを問い合わせると、
常に正しいサイズを教えてくれるわけでは無い「はず」なので、
do shell script "ls -l filepath" とか "wc -c filepath"とかでチェックする。

いま思いついたのはこれくらい。
これ以外の方法を考えるには、もう少し手がかりが欲しいかな。

709 :名称未設定:2011/10/18(火) 00:09:29.64 ID:TO+b8o7tP
Applescriptじゃなきゃいかんか?

710 :名称未設定:2011/10/18(火) 00:30:51.18 ID:vvsF9B4H0
>>707
普通に出来ると思うが。なにがしたいのか、なにが出来ないのか
さっぱりだわ。

711 :名称未設定:2011/10/18(火) 05:27:36.98 ID:SbRoxNYg0
ファイルが開いているかどうかで処理終了を判断できるなら lsof コマンドを繰り返せば
できるんじゃないかな。

712 :名称未設定:2011/10/18(火) 10:09:10.55 ID:c4W9u+nm0
ファイルをドロップすれば自動的に添付してあらかじめ指定したアドレスに送信できるものを
作ろうとしているのですが、以下の通り実行してもうまくいきません。
Mailへ指示を送るプログラムは今回が初めてで、ネットのいろんなサイトを見て作成したものなので、
もしかしたら今のバージョンに対応していない構文の書き方とかをしているのかもしれません。
診断よろしくお願いします
property Address : ""
on run
display dialog "送信先のアドレス" default answer Address
set Address to text returned of result
end run

on open sendfile
set thename to "test"
set theaddress to Address
set thesubject to "無題"
set thebody to "無題"
tell application "Mail"
set newmessage to make new outgoing message with propeties
{subject:thesubject, content:thebody & return & return}
tell newmessage
set visible to false
make new to recipient at end of to recipients with propeties
{name:thename, address:address}
tell content
make new attachment with properties {file name:sendfile} at after the last paragraph
end tell
send
end tell
end tell


end open

713 :名称未設定:2011/10/18(火) 15:26:29.91 ID:jRQaLc+c0
>>712
propeties→properties
後、予約語を使わないのは基本。AddressはmyAddressなどに。
Mailへ指示を送るのは初めてとか書いてるけど、予約語を使っているあたりスクリプト自体の経験を感じないが。

714 :名称未設定:2011/10/18(火) 21:06:35.99 ID:QI5V5fiR0
sageない奴はスクリプトどころかパソコン使用自体の経験を感じないが。

715 :名称未設定:2011/10/18(火) 21:34:11.17 ID:5eojuChp0
>>713
なんで最後に余計な事言うのさ?
>>714
落ち着こうよ。単語の関連がぐちゃぐちゃだよ?

716 :名称未設定:2011/10/18(火) 21:38:43.85 ID:5eojuChp0
ああ、そういえば、無闇矢鱈に地雷を踏みまくる人がいたっけ…

717 :名称未設定:2011/10/18(火) 22:25:43.46 ID:c4W9u+nm0
>>712
普通に誤字だった…変数扱いになってたわ気付け俺。
一応予約語の関連は知ってはいたけど全く考えてなかった。言葉キツいけど細かい所まで見てくれてありがとうございました。
一応直してみたけど、AppleEventのハンドラで誤りが起こりましたで失敗。また色々勉強してきます。
ありがとうございました

718 :名称未設定:2011/10/18(火) 22:41:11.14 ID:+/M+P5SO0
>>714 にとってのパソコンは2chだけのように読めちゃうぞ


719 :名称未設定:2011/10/18(火) 23:47:25.34 ID:5F5fedrB0
>>717
いきなり全部組み上げてdroplet化しちゃうから、何がおかしいのか調べられなくなる
初めて作った、それも色んな情報を参考にしたというなら尚更だ

一部ずつエディタ上で実行して流れを掴め

720 :名称未設定:2011/10/19(水) 00:52:40.69 ID:R0pzufWd0
>>717
ドロップレットでテストしているのか?
起動時(on run)はファイル選択にすると
テストするとき、普通に実行できるぞ。
下はオレのテンプレ。

on open theList
toControl(theList)
end open

on run
choose folder with prompt "フォルダを選んでください" without invisibles
toControl({result})
end run

on adding folder items to theFolder after receiving theList
toControl(theList)
end adding folder items to

on toControl(theList)

repeat with curItem in theList
--処理
end repeat

end toControl



721 :名称未設定:2011/10/19(水) 02:21:39.40 ID:f1PSMZfz0
>>717 早っ。もうあきらめんの?こんなに人気なのに?
properties の綴り。そしてここにコピペしたのがそのままなら、その後ろの改行消さないと。それだけでうごくんじゃないかな?

>>719 さんのいうとおり。一行づつがんばるのだ。で、>>716 さんよびました?あ、でももっと痛い人いたね。いや、やっぱ私のことかな。。。
せっかくためしてみたから、答えつける。でも、自分やってみてからね。本当は複数ファイルとかいろいろ考えないと。


722 :721:2011/10/19(水) 02:22:35.41 ID:f1PSMZfz0
--自分のmail用ハンドラ埋もれてる、すぽっとらいと効かないのつらい、ぴよ◯さま。おかりしました。って、たぶんもとからそうだな。
on run {}
set sendfile to choose file
main(sendfile) of me
end run
on open sendfile
main(sendfile) of me
end open
on main(sendfile)
set thesubject to "題名ですね"
set theSender to "Soushinsya@mac.com" --送信者アドレス
set recipientAddr to "Jushinsya@mac.com" --–受信者アドレス
set bodyText to "こんにちは。ひよこさん。¥nソースお借りしました"
sendMail(thesubject, theSender, recipientAddr, bodyText, sendfile) of me
end main
on sendMail(thesubject, theSender, recipientAddr, bodyText, sendfile) -- Mail.appでメール送信を行う
tell application "Mail"
set newmessage to make new outgoing message with properties {subject:thesubject, content:bodyText}
tell newmessage
set visible to true
set sender to theSender
make new to recipient at end of to recipients with properties {address:recipientAddr}
tell content
make new attachment with properties {file name:sendfile} at after the last paragraph
end tell
--send -->コメントアウトしておくから、ぱらめたちゃんといれたらはずしてね。
end tell
end tell
end sendMail

723 :名称未設定:2011/10/19(水) 07:47:27.09 ID:8tz/nSrC0
mailコマンドじゃいかんのか

724 :名称未設定:2011/10/19(水) 19:06:36.20 ID:bNjbDz7B0
スレ違いかつ重箱で何だけど、アドレスの例示にはexample.comとかを使いましょう。

725 :712:2011/10/20(木) 21:54:27.41 ID:+tLRVSrJ0
>>719
一応run時に入力した内容がプロパティとして保存されているか、と、ドロップしたファイルのファイル名が
しっかり出てくるかは確認しました。ただ一番重要なメールの部分が一切手つかずだったんで、そこも確認してみようかと
思います。ありがとうございます。
>>720
ファイルをドロップしただけであらかじめ指定しておいた相手にファイルを送れるってのがやりたいので、
それだとちょっと理想とは外れるんですよね…でもわざわざテンプレまで晒してもらってありがとうございました
>>そうですね!もうちょっと頑張ってみます。改行消すのは書いた後に気付いてやったんですけど、
やっぱり動かない…色々いじってる感じだと、やはりメールを送る段階でのスクリプトに問題がありそうなんだがわからない…
>>722
わざわざありがとうございます。なかなか僕にとっては高度なスクリプトなので、ちょっとづつ動作を確認しつつ使わせていただきたいと思います
>>723
コマンドとは?もしかしてもっと簡単に動かす方法があったりするんですか?


726 :名称未設定:2011/10/21(金) 00:51:36.10 ID:sj5MvoIW0
>>725
>>720だが、なにか勘違いしてないか。
このテンプレは、ダブルクリックで起動したときはon runが呼ばれ
ダイアログで選択したファイルをtoControlへ処理を渡す
ファイルドロップしたときはon openが呼ばれ受け取ったファイルを
toControlへ処理を渡す。両対応のテンプレ。
スクリプトエディタで実行するときは、普通に実行ボタンを押せばいい。

unixには、mailコマンドがある。だが、こちらも難易度は高いと思うが。

727 :名称未設定:2011/10/21(金) 02:16:29.34 ID:hJ7UeuFv0
>>725
「propeties」の後が2カ所とも改行されてるみたいだけど、1行に直した?
AS穴のを丸パクしたんだろうけど、このミスといい特徴的な変数の書き方といい、
コピペじゃなくて手打ちしたのだろうか
まずは真似した元のスクリプトをそのままコピペして、自分の環境で動くか確認しようよ

まぁ問題は多分こっち
>make new to recipient at end of to recipients with properties {name:thename, address:address}
最後のaddressがMailにとっては予約語なのでエラーになってんじゃないかな
頭でpropertyのaddressから変数のtheaddressに入れてんだから「address:theaddress」にすりゃ動くでしょ
Mail使ってないので確認はしてないが

728 :名称未設定:2011/10/21(金) 11:07:45.75 ID:dm4+z5ex0
>>725
>>713の指摘部分直せばそのまま動く。

729 :712:2011/10/21(金) 18:32:50.75 ID:0fIsYML40
>>726
なるほど。両対応って凄いですね。ありがとうございます。参考にさせてもらいます。
やっぱりハンドラについても勉強しないとなぁ…
>>727
一応指摘頂いたところは直してみました。まずは言われた通り普通にメールを送るだけのスクリプト作ってみて
試してみたいと思います。ありがとうございました
>>728
みなさんが教えてくれる感じだとそれで動きそうなんですが、どうしても誤りが起きてしまう…以下直した後のスクリプト
property sendaddress : ""
on run
display dialog "送信先のアドレス" default answer sendaddress
set sendaddress to text returned of result
end run
on open sendfile
set thename to "test"
set theaddress to sendaddress
set thesubject to "無題"
set thebody to "無題"
tell application "Mail"
set themessage to make new outgoing message with properties {subject:thesubject, content:thebody & return & return}
tell themessage
set visible to false
make new to recipient at end of to recipients with properties {name:thename, address:theaddress}
tell content
make new attachment with properties {file name:sendfile} at after the last paragraph
end tell
send
end tell
end tell
end open
なぜ動かないんだ…
つかみなさんホントにありがとうございます。そしてものわかり悪すぎてすいません…

730 :名称未設定:2011/10/21(金) 19:15:41.44 ID:XutzDVyk0
ゆとり秋田

731 :名称未設定:2011/10/21(金) 20:14:32.64 ID:wdCOSeh/0
お値段以上、ユトリ♪

732 :名称未設定:2011/10/24(月) 11:18:47.40 ID:gHRneV590
>>729
ハンドラ以前にスクリプトの基本を勉強した方がいいよ。
ちゃんと全ての行の意味を理解しているとは思えない。

733 :名称未設定:2011/10/26(水) 20:11:56.34 ID:l0o6cTZ30
初心者です。
指定したアプリケーションを再起動させる為に下記のスクリプトを実行しています。

tell application "指定したアプリケーション"
quit
end tell
tell application "指定したアプリケーション"
launch
end tell

上記の方法でOS 10.6.8上では問題なく再起動出来るのですが
OS 10.7.2上ですと二度スクリプトを実行しないと指定したアプリケーションが立ち上がりません。
他に良い方法などはありますでしょうか?

734 :名称未設定:2011/10/26(水) 20:20:59.50 ID:x85bsis80
間に delay 入れたら?

735 :名称未設定:2011/10/26(水) 20:22:48.04 ID:Aj6zteKS0
>>733
end tell
delay 10 -- とりあえず 10 秒待ってみる
tell application "指定したアプリケーション"

736 :名称未設定:2011/10/26(水) 20:27:46.12 ID:l0o6cTZ30
>>734
>>735

ありがとうございます。
間にdelayを入れる事によりOS 10.7.2上でも一度のスクリプト実行で再起動出来る用になりました。


737 :名称未設定:2011/10/26(水) 21:02:31.83 ID:aroaEr1F0
Lionになってからdelayを入れないと動かなくなったのが多いんだが
結構面倒で困る

738 :名称未設定:2011/10/28(金) 08:04:47.84 ID:hbqcddzB0
すみません、よく分からないので、教えてください。
OSに標準のフォルダアクションで、add^new itemscriptというのがあると思うのですが、
これで、外部のサーバーにつなぎ新着データがあったら知らせるようにしたいと思っています。
サーバーにはすでにつながる状態にしてあり、このフォルダアクションを設定したあと
自分で他のローカルマシンからそのサーバーにデータをアップするときちんと動作している
ようなんですが、そのままデータを待っていてもデータ着信通知が来ず、その後、
自分で確認するとデータが入っている、という状態です。スクリプトの内容もざっと見てみた
のですが、特に問題になるような処理は入ってないようなのですが、、、、、、、。

どなたか原因、わかります?

739 :名称未設定:2011/10/28(金) 08:06:00.25 ID:hbqcddzB0
すみませんスクリプト名間違えました。
add-new item alert.scptってやつです。

740 :名称未設定:2011/10/28(金) 10:30:34.93 ID:hJjG3flhP
それから先程まで分からなかったので書かなかったのですが、
つなぐ先はリモートのアップルファイル共有です。
afp://で始まるアドレスで、うちの環境だと、macからしかつなげません。
今、もうちょっと調べたんですが、ファイル共有のASPサービス使ってるようです。
こりゃ特殊すぎでダメですかね、、、、orz

741 :名称未設定:2011/10/28(金) 10:30:38.13 ID:0LhR2KYo0
なんか良くわからないけど、システム環境設定の共有でリモート AppleEventは設定しとかなくて良いんだっけ?

742 :名称未設定:2011/10/28(金) 10:56:07.76 ID:VYIpAgfD0
そのスクリプトに「外部のサーバーに」「知らせる」ような仕組みは無いわけで、
それは自分で書いたんじゃないの?
それで「きちんと動作している」って事だから問題はフォルダアクション処理じゃなくてその「外部のサーバーに」「知らせる」処理な訳だ
それを挙げもせずに問題になる処理は無いとか言われても、そうですか変ですねとしか言えませんわ

743 :名称未設定:2011/10/28(金) 22:30:51.57 ID:hbqcddzB0
>>742
いや、スクリプトはOSについているサンプルスクリプトからひとつもいじってません。
それから、さきほども書いたように「外部のサーバー」にローカルからフォルダアクションを
設定して、ローカルの別のマシンから「外部のサーバー」にファイルを加えると
フォルダアクションを設定したマシンに通知がきます。それなのに実際に欲しい
ファイルを外部の人がサーバーにアップしたファイルは通知されないんです。

744 :名称未設定:2011/10/28(金) 23:44:26.86 ID:H9IyyR9E0
>>743
>>738
>自分で他のローカルマシンからそのサーバーにデータをアップするときちんと動作している
>ようなんですが、そのままデータを待っていてもデータ着信通知が来ず、その後、
>自分で確認するとデータが入っている、という状態です。


もうちょっと分かる日本語で書いてくれ。

745 :名称未設定:2011/10/29(土) 00:58:48.63 ID:RXAHWet70
>>743
finderでafp接続した状態でのアクション設定/通知ってこと?
解決策は知らないけど
ローカルのサブマシンで動作確認するんじゃなくて
あなたが直接サーバ上でファイルを配置してみればいいのでは

746 :名称未設定:2011/10/29(土) 09:08:35.16 ID:bOQ5cDvP0
エスパーするとサーバ上の特定のフォルダへ
他のマシンからファイル追加されるのを
監視したいんだよね?
そのサーバは外部のaspでafp接続と。

試さずに書いてるけど
サーバに仕掛けがないと
仕組み上無理なんじゃねえの

747 :名称未設定:2011/10/29(土) 10:34:48.79 ID:KvGsceIC0
>>744
何がわからないかお教えいただければお答えしますのでそこを質問していただければ、と。

>>745
下請けにはそんなことはできません。データあげとくから取りにいって処理して早急に戻せ。そんな世界です。こんな単価安い仕事したくないです(泣)。でもしがらみがあって抜けられません。ヤクザの世界に近いです(泣笑)。だから仕事はさっさと済ませたいです。

>>745
そのとおりです。

うちの会社……A、Bのマシン---(外部へ)------サーバーC(afp)

という状況で、AからCにフォルダアクションを設定後、違うBのマシンから
フォルダにデータを入れると、きちんとAに「ファイルが追加されたよ」と通知がきます。
AとBは別個にしかも直接Cにアクセスしているので、実際問題はBが外部であろうが、
内部であろうが関係ない気がするんですが、、、、、。フォルダアクションの動作の仕組み
が調べても分からないのでアレですが、>>741さんのいうところは可能性としては
ありかなあと思っています。違うような気もしますが。

フォルダアクションというのは、フォルダとスクリプトを関連付けて、フォルダの一定の挙動
からFinderがAppleイベントを感知して決められたスクリプトを発動する、というものだと
思うのですが、それともフォルダ自体にスクリプトを埋め込み、それが発動する、というもの
なんでしょうか? もしそうだとするとサーバーに仕掛けがないと動かない気もしますが、
実験事例のように、動く例もあるわけですから、その可能性は薄いのかな、と。

あと考えられるのは接続が見かけ上は接続していても、タイムアウトしている可能性、
とかいうのもあるのかな、と。その場合は別に常時監視するなりして接続を維持する
必要があるのかもしれません。。

748 :名称未設定:2011/10/29(土) 11:10:46.00 ID:TcimdVUG0
on adding folder items to ハンドラを呼び出す判断としてポーリングなんてしてないんじゃね。無駄が多いから
自分でポーリングすればいいだけのように思うけど。ls -l と diff ででも可能だろ

749 :名称未設定:2011/10/29(土) 11:26:42.06 ID:e1TetpToP
>>531
今Lionにしたら使えなくなってたんでびっくりした。
curl を使うしかないのか……。
しかしわざわざなくすこともないんじゃないかと思うのだが。

750 :名称未設定:2011/10/29(土) 11:30:48.03 ID:HkfSs5mz0
>>749
ファイルメーカーでアップルスクリプトを実行していたので困りました。
curlを含んだ実行スクリプトを作って対処しました。なんとかなってほっとしました。

751 :名称未設定:2011/10/29(土) 11:36:22.75 ID:KvGsceIC0
>>748
ありがとうございます。光が見えました。




しかし、今度はUnixか。げっそり。
applescriptだっておぼつかないのにまた次から次へと、、、、、。
正規表現はどうするのかと調べればperlでやれだの、
zip圧縮するにはやはりシェル使えだの。
結局applescriptだけじゃどうにもならないこと多すぎ。

752 :名称未設定:2011/10/29(土) 11:52:26.04 ID:5iIS0e3s0
あ〜あ、チラ裏にしちまいやがんの

753 :名称未設定:2011/10/29(土) 12:01:15.53 ID:TcimdVUG0
>>751
AppleScript でもできるよ
単にフォルダ内のアイテムの詳細リスト保持して、今のとの前のと比較すればいいんだから
ただ ls -l と diff で済ませるよりめんどくさいだけだけど

下請けのくせに文句多すぎ。perlとかzipとか今のと関係無いでしょ
下請けで技術力無くてどないすんねん

754 :名称未設定:2011/10/29(土) 12:42:08.23 ID:a7pXlsgi0
> 結局applescriptだけじゃどうにもならないこと多すぎ。

激しく同意!!

755 :名称未設定:2011/10/29(土) 12:58:56.70 ID:n7q4HHoo0
AppleScriptは橋渡しのためのものでしょ。

756 :名称未設定:2011/10/29(土) 13:14:24.25 ID:ILZktXQd0
元々アプリ制御の為のモノだと思ってたけど
今はAppleScript対応アプリが少なくなってるんでしょうか?

757 :名称未設定:2011/10/29(土) 13:27:22.26 ID:pGzyZIDH0
アプリ自体が増えてない。Apple純正で非対応の物も多い
やるきあんのか?->実はあまり無い
という微妙な状態じゃなかったっけ?

自分で作ったCocoaアプリ見ると、意識しなくても基本の部分はてんこもりになってくるんだな

758 :名称未設定:2011/10/29(土) 14:00:12.44 ID:NW5OvFfE0
>>747
>フォルダアクションというのは、フォルダとスクリプトを関連付けて、
>フォルダの一定の挙動からFinderがAppleイベントを感知して決められた
>スクリプトを発動する、というものだと思うのですが
違うよ。Finderは関係無い。
~/Library/LaunchAgents/見れば判るけど、Launchd経由でkernel eventを監視してる。
kernel event発生しない形の変更は検知できない。
自前で監視するなら、フォルダの更新日付トリガーにするのが定番の処理方法だね。

759 :名称未設定:2011/10/29(土) 15:56:32.33 ID:KvGsceIC0
あーやっぱり神々はどこにでもいますね。いろいろありがとうございます。
>>758
ああFinderとカーネルなどをごっちゃにしてましたね。勉強になります。

ところで正規表現などの話ですが、いましらべたら、QuoEditというシェアウェアが
対応しているようですね。実際に使ったわけではないので分かりませんが、
けっこういけそうです。が、お金は払えない&会社のマシンにインストールできないので
perl勉強します。ちょっとしたことだし。

それから、これもあんまり関係ないけど、Acrobatってうまいことやればapplescriptから
javascriptに変数渡せるようですね。いろいろできそう、、、、。

プログラミング(までいかないけど)は楽しいねぇ。

760 :名称未設定:2011/10/29(土) 17:11:24.08 ID:n7q4HHoo0
>>759
PHPやRuby、Python、JAVA等も標準で入っているはずだから好きなの選んで使え。

761 :名称未設定:2011/10/30(日) 21:51:30.96 ID:PkGqRQYy0
win使いなんかね
unixやperl使えたら軽い自動化なんて
それだけでOKな位じゃないかな
いっそcronでrsyncを10分とか30分とかの
間隔で回したらどう



762 :名称未設定:2011/10/30(日) 21:53:57.85 ID:v5dnG3S60
Mac的にはlaunchdだろ、cronはなくす方向とか結構前に聞いたけどまだあるな

763 :名称未設定:2011/10/30(日) 22:14:43.88 ID:c2/3epOZ0
質問よろしいでしょうか?

AppleScriptのKeyStrokeは
アプリによって対応してる/してない
があるのでしょうか?
アプリにフォーカスがあたってる時のホットキー(メニューの右横の表記)と
アプリにフォーカスがあたってない時にも動作するホットキー
ともに試したのですが、動作させたいアプリでは何の反応もありませんでした。

アプリ名と送信キーを変えて、Grabとかのアプリに試したところ
問題なく動作したので、少々混乱しています。

764 :名称未設定:2011/10/31(月) 03:14:39.35 ID:CSarPBmg0
かからないアプリとやらを書いてみたら。

765 :名称未設定:2011/10/31(月) 10:24:57.09 ID:ZyQK5Uxp0
keystrokeはSystem Eventsの命令であって、
アプリ名の指定とか無い、というかSystem Eventsだ

何某かのapplication processの下で実行しても、
そうでなくても動きに違いは無い

766 :763:2011/10/31(月) 21:49:39.45 ID:TYREFXjj0
スクリーンショットを取るスクリプトとして

# sample1
tell application "Grab"
activate
tell application "System Events"
keystroke "A" using {shift down, command down}
end tell
end tell

は動きますが

#sample2
tell application "System Events"
keystroke "4" using {shift down, command down}
end tell

は動かないです。Shift+Command+4と押せばスクリーンショットが始まるのに。
グローバル?なホットキーはAppleScriptで呼び出すことは出来ないのでしょうか?

767 :名称未設定:2011/10/31(月) 21:57:24.46 ID:reLc8wrh0
Command+Shift+4 を処理しているのが、アプリレベルではなくてOSレベルのどっかだからでしょ
Command+Shift+4 を適切にOSレベルのどっかに送ればいいような気がするが、無理なんじゃね

別の >>764 をどうぞ

768 :763:2011/10/31(月) 21:58:56.65 ID:TYREFXjj0
>>764
ScreenFloatというアプリです。

>>765
上の>>766のsample1で「tell application "Grab" 」「end tell」を削ると動かなります。

プロセスにAppleEventを送信するモデルの実現方法として
System Events宛にtellするコードスタイルではあっても
そのAppleEventの処理自体は受信するアプリケーションに処理を委ねている以上
メッセージの受け取り手のアプリの指定は重要だと思うのですが
認識違っているでしょうか?
まだ始めたばかりで、余り良くわかっていないのですが、、

769 :763:2011/10/31(月) 22:04:05.05 ID:TYREFXjj0
>>767
まとめると、
・グローバルなホットキーは送信の仕方が不明だから諦めましょう。
・アプリ内のホットキーが送受信できないなら、keystrokeに未対応だから
 対応してる別アプリを使おう
ということですね? 残念です。。。

770 :名称未設定:2011/10/31(月) 22:07:32.95 ID:reLc8wrh0
>>768
有料のもんか。よくわからないけど、結局やりたいのは Command+Shift+4 なの?
だったら
do shell script "/usr/sbin/screencapture -c"

771 :名称未設定:2011/10/31(月) 22:14:47.72 ID:reLc8wrh0
>>769
「AppleEventを送信」とかわかってるんだったら、なんとなく想像できなくない?
送信の仕方が不明というか、処理を行なっている所が不明というだけど

772 :763:2011/10/31(月) 22:25:54.66 ID:lxeTjJiD0
>>770
やりたいことは、ScreenFloatというアプリのスクリーンキャプチャ開始指示
(Command+Shift+4が改良?されたような操作になります)です。
そのグローバルなホットキーはCommand+Shift+2ですが、これはアプリの設定で変更できます。
アプリにフォーカスがある状態でのホットキーはCommand+Nですが、これは変更できないようです。

QuickSilverから起動するための、橋渡し役としてAppleScriptを使えるかな?
と思いたち手習いで書き始めたという感じです。一応
pick menu item "Make new Shot" of menu "File" of menu bar 1
といった感じでメニュー経由では所望の動作を先ほど実現できたのですが
アプリの立ち上げ方に制約(MenuBarに格納できず、Docに格納するしかない)
が出てしまうため、できれば直接グローバルなホットキーを送信できればと思っています。

773 :名称未設定:2011/10/31(月) 23:25:44.84 ID:PBfQYMtB0
>>772
Cmd + Shift + 数字の組み合わせは
多分だけどキーボードからの入力を最優先にするためにOSがリザーブしてる
だからその組み合わせは使わずに
例えば、F13 を発動キーに設定して

tell application "System Events"
key code 105
end tell

で行ける

F13にした理由はWinキーボードのPrint Screenキーだから

774 :名称未設定:2011/10/31(月) 23:44:14.07 ID:7I67kM980
>>766
>Shift+Command+4と押せばスクリーンショットが始まるのに
このとき範囲指定はどうしてますか?
Shift+Command+3も動きませんか?

775 :763:2011/11/01(火) 00:13:43.51 ID:D54MxX6l0
>>773
情報ありがとうございます。
Windowsキーボードが手元にないため今はショートカット設定ができないため、
明日試してみたいと思います。

>> 774
キーボードで直接「Shift+Command+3」を押したり
キーボードで直接「Shift+Command+4」を押したりした場合には
スクリーンショットが直接、ないしは範囲指定後にデスクトップに作成されます。
(当たり前ですが)

それをAppleScript経由で行おうとして>>766のsample2や

#sample3 (sample2の "4"を"3"に変えただけ)
tell application "System Events"
keystroke "3" using {shift down, command down}
end tell

とすると、残念ながら動かないです(具体的には特に何の反応もありません)
どうも、グローバルなホットキーを発行する場合には、
スクリプトの書き方にもう一工夫必要なのではないか?と考えています。

776 :名称未設定:2011/11/01(火) 00:19:23.25 ID:l/ID4kAf0
>>775
だから
Command + Shift + 数字
以外のキーを設定すればいいって言ってんの

例えばCreate new shotに
option + command + sを指定すれば

tell application "System Events"
keystroke "s" using {option down, command down}
end tell

でOK
ちょっとは応用を利かせることを覚えようぜ

777 :763:2011/11/01(火) 00:33:53.36 ID:D54MxX6l0
>>776
おおおおお!
動きましたー!\(^o^)/

まずはOSに標準でついてるGrabアプリのホットキーを動かしてから、
という発想で躓いてしまってたみたいです。

>>773
> Cmd + Shift + 数字の組み合わせは
> 多分だけどキーボードからの入力を最優先にするためにOSがリザーブしてる

の推理が結構あたっていそうですね。
でもなかなか不思議な挙動ですねー。

778 :763:2011/11/01(火) 01:05:28.33 ID:D54MxX6l0
無事解決できたので、自分同様に初AppleScriptな方用にまとめておきます。
AppleScriptからグローバルなホットキーの呼び出しは、
英字との組み合わせはOK、数字との組み合わせはNGでした。

英字との組み合わせは、より正確には、
Ctrl、Option、Shift、Commandでの組み合わせ全15通りのうち
「Ctrl+Option+英字」を除く14通り全てで動作確認できました。
(英字はeまたはsで確認。数字は2で確認)

#OK例
tell application "System Events"
#keystroke "e" using {control down, option down, shift down, command down}
end tell

#NG例
tell application "System Events"
#keystroke "2" using {control down, option down, shift down, command down}
end tell

779 :763:2011/11/01(火) 01:06:36.79 ID:D54MxX6l0
keycode前の#は外してください。外し忘れです。。。

780 :763:2011/11/01(火) 01:07:46.39 ID:D54MxX6l0
keycode前の、じゃなく、keystroke前の、でした。。寝ます。。。

781 :名称未設定:2011/11/01(火) 03:29:58.26 ID:swpkIGzV0
解決したようなので、後の流れは置いといてレスにだけ返しとく

>>768
>上の>>766のsample1で「tell application "Grab" 」「end tell」を削ると動かなります。

それはactivateの対象がGrabじゃなくなっちゃうからだ
Grabを手前に持って来る処理が無いのでキー操作は手前にある別のアプリケーションが受ける事になる
まーこの場合概ねスクリプト実行環境だな

さっきも書いたけどkeystrokeはSystem Eventsの命令=System Events用のAppleEvent
だからSystem Events以外には送れない
tell application ~を多重に重ねた場合外側のは実質的に無視されるのでそういう書き方も出来るけど、
紛らわしいので俺は好きじゃない

782 :名称未設定:2011/11/01(火) 07:28:37.19 ID:esa/aTOT0
tell application "System Events"
keystroke "$" using {shift down, command down}
end tell

>>778
数字とき、例えば「4」の場合は、shift downされているので、 「4」キーのデータが「$」として飛んでくる。

783 :782:2011/11/01(火) 07:32:26.96 ID:esa/aTOT0
この場合は飛んで行く、か

784 :763:2011/11/01(火) 09:21:40.94 ID:lxikuoMp0
>>781
System Eventsアプリがイベントディスパッチャーで

tell application "Grab" #ここでリスナ登録
activate
tell application "System Events" #イベントディスパッチャー経由で
keystroke "A" using {shift down, command down} #登録済リスナにパブリッシュ
end tell
end tell #リスナ登録削除

↑という意味だと予想していたのですが、全く違ったようですね。。
単純に最前面アプリが受信するだけ、と。
指摘ありがとうございました。

785 :763:2011/11/01(火) 09:45:26.98 ID:+J6C9gi/0
>>782
もともと実現したかったShift+Command+2も以下でできました!

# send shift+command+2
tell application "System Events"
keystroke "\"" using {shift down, command down}
end tell

ホットキーのキーコンビネーションにShiftを混ぜていない場合でも
Shiftを打ち消す?よう1→!、2→"、3→#、…として送信しないとならないとは
余り直感的といえない不思議な仕様ですね。

786 :名称未設定:2011/11/01(火) 11:10:20.91 ID:l/ID4kAf0
>>785
コマンド+シフト+数字は無理っぽいのではと書いておいて
コメントするのも憚られるが

>不思議な仕様
ちょっと勘違いしてる
keystrokeはあくまで文字の入力用であって
「キー」を送るのではなく「文字」を送るもの
(キーを送りたい場合は「key code キー番号」を使う)

だから「"」を指定した時点でShiftが押されていることになる
すなわちシフトダウンは不要

# send shift+command+2 = command+"
tell application "System Events"
keystroke "\"" using {command down}
end tell

でOK

787 :名称未設定:2011/11/01(火) 12:04:39.72 ID:swpkIGzV0
key codeでやるならこんな感じ

tell application "System Events"
key code 19 using {shift down, command down} --shift+command+2
end tell

788 :名称未設定:2011/11/01(火) 22:09:03.93 ID:ytLPZlj70
ブックタイプとか使ってると気づかないかもしれないけど、
テンキーではスクリーンショットとれないし、
キーボードによってはシフト押した時に出る記号が変わることもあるから
keycodeの方が良いと思う。

789 :名称未設定:2011/11/01(火) 22:12:55.29 ID:ytLPZlj70
と書いた後思ったんだけど、
これって繋げてるキーボードによって挙動が変わるのかな?
2個違う種類のキーボード繋げて実行したらどうなるんだろ?

790 :名称未設定:2011/11/02(水) 01:15:12.74 ID:hd1GL9wK0
変わらんよ
どのキーボードでもコードは同じ
でなきゃキーボード毎に独自ドライバ用意せにゃならんでしょ
テンキー側でスクリーンショット取れないのは、
フルキーの数字とはコードが違うから

キーを押した時に実行されるイベントをスクリプトで再現してるだけだから、
キーボード繋いでなくても動く

791 :名称未設定:2011/11/02(水) 06:56:29.75 ID:E9NslX370
GuiScripting的な話があったので、聞くのですが、特定のアプリケーションで
メニューにある項目を実行するのってどうするのでしょう。
具体的にはAcrobatProfessionalであるメニューを実行したいのですが、
http://favapple.net/2010/04/28/558/を参考に

click the menu item "OCR を使用してテキストを認識..." of menu 1
of menu item "OCR テキスト認識" of the menu "文書" of menu bar 1

的なことをやるのですが、いっこうにうまくいきません。そもそも、上記サイトでは、
tell application process "Acrobat"
とSystem Events中でアクロバットのプロセスを呼び出してメニュー実行しているようですが、
Acrobatの用語辞書を見るとmenuやmenu itemなどの項目があるので
tell application "Adobe Acrobat Professional"の中で実行すればいいような気もします。しかし
menuをdoするのかgetするのか良く分かりませんし、なんでmenu 1とかmenu bar 1とか数字が
ついているのかいまいちわかりません。数字を変えたり取ったりしてもできません
いったいどうすれがAcrobatで特定のメニューが実行されるんでしょうか。

それからある単語を違う表記に変える、というテキスト処理をしたいのですが、その変換例が
1000ぐらいになりそうなので、辞書を作り、変換したいと思っています。
今までの蓄積で用例となるものはたくさんあるのでそれを処理して、リストを作るのですが、
・変換の処理はどうするのがいいのか。
・辞書テキストの登録形式はどんな形が汎用的か
が知りたいのです。

変換の処理についてはperlから辞書テキストの変換の対になる組をグルーピングしてマッチさせて返し
逐次変換、という感じで考えてますが、もっと効率的、標準的なテクニックってあるんでしょうか。
applescriptのレコードを使ってもよさそうな気もするんですが、速度的なこととやり方がいまいち、です。

上記を前提として辞書を作るなら「元単語」「:」「変換単語」とかでいいんでしょうか?(「」はつけませんよ)
途中でやり方変えるかもしれないので、applescript内で使ってもターミナル内で使ってもいたずら
しない形、というと、どうするのがいいのかと。エスケープ地獄は正規表現だけでいいです。

792 :名称未設定:2011/11/02(水) 08:34:41.35 ID:9V8F753N0
/Library/Scripts/UI Element Scripts/ にある Probe Menu Bar.applescript とか Probe Window.applescript とか元に、ちょこちょこ小分けに実行してどういう構造になってるか吟味しなよ

793 :名称未設定:2011/11/02(水) 12:31:49.35 ID:GuUm7HiK0
>>791前半
メニューの構造を解析するのは面倒なので
専用ソフトもあるようだけど
楽なのは
http://memogaki.soudesune.net/UIElementAction.html
のページの下の方にある
CopyGUIScriptForUIElementUnderMouse
というのを実行させてからそのメニューを選んで
数秒後にapplescript editorにペースト
(作者さんありがとう)

794 :名称未設定:2011/11/02(水) 12:43:51.51 ID:kBTnZXdR0
>>791
とりあえず>>1と関連リンクぐらい読んで来い

>Acrobatの用語辞書を見るとmenuやmenu itemなどの項目があるので
>tell application "Adobe Acrobat Professional"の中で実行すればいいような気もします。しかし

それでできるかどうかは知らないが、
とりあえずそれがGUI Scriptingじゃない事だけは確かだ

>menuをdoするのかgetするのか良く分かりませんし、なんでmenu 1とかmenu bar 1とか数字が
>ついているのかいまいちわかりません。数字を変えたり取ったりしてもできません

「menu item "OCR を使用してテキストを認識..." of menu 1 of menu item "OCR テキスト認識" of the menu "文書" of menu bar 1」というのは、
「1番目のmenu bar」の中の「"文書"という名のmenu」の中の「"OCR テキスト認識"という名のmenu item」の中の「1番目のmenu」の中の「"OCR を使用してテキストを認識..."という名のmenu item」というそのまんまの意味
各部分(UI elementという)を順番で指定したり名前で指定したりしてるわけだから、
数字を変えたり取ったりしたら別の場所或いは何も無い場所を指す事になるので、
まともに動くわけがない

ツールとか使わないでやるなら↓を実行して、
結果から目的のmenu itemを探せ

tell application "System Events" to entire contents of menu bar 1 of application process "Acrobat"

795 :名称未設定:2011/11/02(水) 17:53:53.34 ID:fF+OuPRQ0
>>791
>>それからある単語を違う表記に変える、というテキスト処理を
>>したいのですが、その変換例が1000ぐらいになりそうなので、
>>辞書を作り、変換したいと思っています

J edit X の複数一括置換で出来そうだけど

796 :名称未設定:2011/11/02(水) 23:29:27.86 ID:JgLXDD4cP
>>795
すみません。正しくはファイル名などの変換のため、その方法は難しそうです。
PDFから特定の文字列を抽出し、
その文字列を辞書により変換。
その変換した文字列を使ってさらに
ちがうファイル等を操作します。

797 :名称未設定:2011/11/03(木) 00:02:51.85 ID:EPeY2qv80
perlでいんじゃないの

798 :名称未設定:2011/11/03(木) 23:08:54.65 ID:nMYt3FFG0
applescriptってプログラムしているといつのまにか違う言語でプログラミングしていることがよくある。
俺も気づけばちょいちょいとapplescriptで準備して、コア部分はperlとshell

799 :名称未設定:2011/11/03(木) 23:42:03.12 ID:PDKWkEDJ0
俺はAppleScriptで作り始めて気づけば全部Obj-C
配列遅いからなあ

800 :名称未設定:2011/11/04(金) 16:48:34.49 ID:DYznHblG0
AppleScriptって三角関数すらねーのかよw
そういう時は他の言語に任せて値を受け取った方が楽だね。
オーバーヘッドを気にする用途なら最初からAppleScriptは使わないし。
わざわざルーチン作ってくれてるサイトとかみると、ご苦労なこったと思う。

801 :名称未設定:2011/11/04(金) 20:38:50.15 ID:MZh6hEDA0
>>800
そこまで馬鹿だとコメントすら無駄だな。
自分でも何の役に立つか分からんような人生だな。

802 :名称未設定:2011/11/04(金) 21:04:06.88 ID:bE1lm72j0
いきなり 三角関数「すら」だからなあ。馬鹿と言いたいのもわからなんでもないw

803 :名称未設定:2011/11/04(金) 21:39:49.72 ID:NiuwVe3g0
使い分けという考えを持てない石頭の持ち主。

804 :800:2011/11/05(土) 00:22:29.59 ID:Mq69bJ8L0
アホな用途で悪いが、デスクトップのアイコンをクルクル回したかったのですよ。

set c to do shell script "echo \"scale=3;c(6.28*" & (idx - 1) & "/20)\"| bc -l"
set s to do shell script "echo \"scale=3;s(6.28*" & (idx - 1) & "/20)\"| bc -l"
メインパートの前にこんな感じで sin, cos値を配列に溜め込んでおいてから、

set x to (x0 + r * (item idx of list_cos))
set y to (y0 - r * (item idx of list_sin))
set (desktop position of f) to {x, y}
アイコン位置を移動させたわけですよ。

805 :名称未設定:2011/11/05(土) 00:54:13.23 ID:so3iFS/A0
ふ〜ん、暇人だねえ。ご苦労なこった
わざわざルーチン作ってくれてるサイトの方が有益であり有用だな。俺はAppleScriptで三角関数なんて使わない/使い道思い浮かばんけど

806 :名称未設定:2011/11/05(土) 00:59:54.64 ID:EEE0E+F90
>>804
それは毎回計算するんじゃなくて
結果を20項の定数配列として持っとくべきでないか?

807 :名称未設定:2011/11/05(土) 01:22:45.33 ID:Mq69bJ8L0
>>806
グルグル何周も回る時に同じ角度が出てきて再計算するのは速度的にちょっとかなと思って。
事前に配列は作ってありますよ。

計算結果を数値リテラルとして全部コード中に持たせたらどう?という趣旨でしょうか。
今度いろんな形でアイコンを動かす時はそうしてみます。

808 :名称未設定:2011/11/05(土) 01:26:09.52 ID:/L+GH/fs0
一般の言語って一通り揃ってるから、比較するとAppleScriptは物足りない。
けど、AppleScriptはアプリケーション操作とフロー制御の為のものだから、
下手にやるより、他所に投げるほうが妥当だと思う。
でも、投げた先がPerlやらRubyで、その便利さに気付くと、
いつの間にかRubyの中にAppleScriptが埋め込まれてたりw

809 :名称未設定:2011/11/05(土) 01:49:54.08 ID:7i7EHx2I0
Photoshopとかイラストレーター使うと三角関数(行列)使うな
アプリ側が持ってるけど

制御して絵を描かせると面白い
昔ながらの数学の基本で動いてるってのがよくわかる

810 :名称未設定:2011/11/05(土) 03:03:44.58 ID:qMklRvu80
指数対数三角関数は表で持っとくに決まってるだろ
図書館の棚を占領する数表を引いてた百年前から
FPU内のROMを引く現在まで
個別に計算した方が速かったことはない

811 :名称未設定:2011/11/05(土) 03:05:59.99 ID:emHslc4F0
例の頭のおかしい人なんじゃね?
どっちでもいいから放っておけ

812 :763:2011/11/06(日) 12:04:34.79 ID:9kULEaYI0
>>786>>787
レス遅くなりました。
key codeで指定する版でも動作確認できました。

> だから「"」を指定した時点でShiftが押されていることになる
> すなわちシフトダウンは不要

この部分は、少し違うのではないかと考えています。
Key Codesというソフトでキーコードを調べたところ
2を押した時、Shift + 2を押した時、それぞれで以下のようにKeysが変わるので、
keystrokeだからとか「"」を指定したからとか関係なく
もともとそういうOSの仕様だと感じます。

Key Down
Characters: 2
Unicode: 50 / 0x32
Keys: 2
Key Code: 19 / 0x13
Modifiers: 256 / 0x100

Key Down
Characters: "
Unicode: 34 / 0x22
Keys: ⇧"
Key Code: 19 / 0x13
Modifiers: 131330 / 0x20102

813 :名称未設定:2011/11/07(月) 00:15:28.34 ID:bi3C14nk0
tell application "Key Codes" to activate
tell application "System Events"
keystroke "2" using {shift down, command down}
end tell

こうすればテストできる。結果は、
Characters: 2
Unicode: 50/0x32
Keys: shift+command+2
Key Code: 84/0x54
Modifiers: 3277066/0x32010a
で、問題なのは Key code の 84。これは10key pad側の"2"キーのことで、これを識別する
ショートカットは動作しなくなる(テスト:10.6)。

 キーボード周りは難しい。アプリが Keysを見るか、Key Codeを見るかはケースバイケースな面があって、
特に Mac OS時代は APIが貧弱で独自実装が多かったせいでいろいろ問題が起きた。今はアプリに関しては
Cocoaのおかげでマシにはなっているのかもしれないが、時々首をかしげるようなこともある。

 key code と keystorke はどちらもキーダウンイベントを発生させるが、指定したデータだけが送られるのではなく
常にもう一方が適時補完されて発行される。今回の例では補完がご丁寧に 10keyを指定してくれたために
shiftしても """ になっていなかったと言うお話(推定)。ちなみに、この補完は接続しているキーボードの
種別(ASCIIかJIS等)の影響も受けるようだ。

814 :名称未設定:2011/11/07(月) 11:01:23.76 ID:YUcTRxiI0
要するに keystroke "1234567890." はテンキー扱いって事だよ
例えテンキーなしのキーボード使ってたとしてもそれは変わらない

Finderの表示形式みたくテンキーでも有効なショートカットもあるけど、
そうでなければどっちなのか意識しておかないと

815 :名称未設定:2011/11/09(水) 01:09:35.80 ID:Y+iyN54w0
AppleScriptをappとして保存して、ホットキー割当アプリを通して実行しているのですが、
実行する度に一瞬だけメニューがそのアプリ名に変わり、ウィンドウフォーカスも一瞬だけ外れて
画面がチラチラするのですが、
これを防ぐ方法(例えばバックグラウンドで実行されるような感じの実行)は可能でしょうか?

816 :名称未設定:2011/11/09(水) 02:17:01.86 ID:d0PiNkVx0
>>815
パッケージを開いてinfo.plistを編集してみる。
ttp://news.mynavi.jp/column/osx/328/index.html
LSUIElementの項

817 :815:2011/11/09(水) 08:53:20.70 ID:qkp+Jo4U0
>>816
ありがとうございます。まさにコレです!

818 :名称未設定:2011/11/11(金) 22:56:57.69 ID:k/EHZhts0
あるテキストが1000ファイルほどあって、それに行番号をつけ、その一部、たとえば20-30行目だけをひとつの
ファイルにまとめたい。そんなときみなさんならどうされます? do shell script で cat -n のperl printな感じで
がんばってるんですが、どうもうまくいかないんすけど。display dialogではうまく抜き出して表示されるのに、
ファイル書き込みが失敗します。うまく引数が伝わってないか、cat -nで入る行番号のあとのタブがいたずら
しているのか、それとも、改行とか文字コードとかが悪いのか。あーもう疲れたっす。

819 :名称未設定:2011/11/11(金) 23:31:32.89 ID:8jyacdgm0
head -30 hoge.txt | tail -10 >> hogemix.txt
これで hoge.txt の 20〜30行が hogemix.txt に追記される、多分

hoge.txt を回すのはシェルによって変わるから自分で調整してくんろ

820 :名称未設定:2011/11/12(土) 00:14:00.54 ID:QvuvgXTQ0
Safariからページのソースを取得してファイルに保存する時
open for accessでファイルをオープンして書き込むのと
do shell script "echo " & quoted form of thesource & "> ~/Documents/source.html"
ってするので文字コードとか違ったような気がする
元のコードにも依るだろうしあまり追及してないけど

821 :名称未設定:2011/11/12(土) 02:28:23.46 ID:abEC04br0
全部シェルスクリプトで書いちゃう
AppleScriptを絡ませる必要性が今んとこ読み取れないんで

822 :818:2011/11/12(土) 11:01:29.36 ID:GmXwHUiD0
ちょっとスレ違いだけど、なんかAutomatorでPDFからテキスト取り出すとLionと10.4と10.5で吐き出すテキストが違うし、
コードもShift-jisだのUTF8だのUTF16-LEだのころころ変わるし疲れたよ。
ぶっちゃけ聞くけど、改行を含むテキストが入っている変数をperlに引数として渡してファイルに書き込む
にはどーすんの??? 単純にdo shell script でperlでファイル開いてprintして閉じる、だと、うまくいかんのだが。
よくわからないがヒアドキュメントとかなんとか使うのかと四苦八苦して昨日は終わった。

823 :名称未設定:2011/11/12(土) 11:22:20.48 ID:IJE22zIN0
うまく動かないところの(他所でもほぼそのまま動かせそうな)スクリプトのサンプルと、どううまくいかないのか具体的に言葉で示せよ
何度も何度もバカか

824 :名称未設定:2011/11/12(土) 11:29:36.83 ID:dGePCkkn0
何言ってるのかわからない
やりたいことを文章にまとめられないのにスクリプトが組めるわけがない

825 :818:2011/11/12(土) 16:12:36.76 ID:GmXwHUiD0
それじゃほぼコピペします。裸で歩くみたいではずかしーが責任とってヨネ。適当に改行してます。
tell application "Finder"
set a to selection as alias
--変換するファイルを選択しておいて実行。ファイルはUTF-8の改行CR
set filename to name of a
set filename to do shell script "perl -e '$target = q/" & filename & "/; $target =~ s#[/¥¥(¥¥)]#_#g ;
$target =~ s#[ ]##g ; $target =~ s#¥¥&#_and_#g ; print $target;'"
--とりあえずファイル名にエラー起こしそうな字があったら強制排除
set datatxt to do shell script "cat " & quoted form of POSIX path of a & " | perl -pe 's#¥¥r#¥¥n#g' |
perl -pe s#[/¥¥(¥¥)¥¥.]#_#g | perl -pe s#¥¥&#_and_#g | cat -n | perl -ne 'print if 20 .. 30 '"
--似たような感じで変な字は適当に変換しちゃってcat -nして20-30行めをprint
display dialog datatxt--これはうまく表示してくれる。
set pl_file to "/Users/818/Desktop/FileOutput.pl" as Unicode text-
-perlのワンライナーで書くとエスケープ地獄がいやなのでとりあえずファイルで。
do shell script "perl " & POSIX path of pl_file & " " & filename & " " & datatxt
--filename と datatxtを引数で渡してテキストに書き込み
end tell
---------------------
FileOutput.pl 単純に引数受け取ってちょっと整形してテキストに書き込み。
$filename = $ARGV[0];
$datatxt = $ARGV[1];
$filename =~ s/([a-zA-Z]+¥d{2,9}_)(.+)(¥.txt)/$2/;
open(FILE, ">>/Users/818/Desktop/sampletest.txt");
print FILE $filename."¥n".$datatxt."¥n";
close( FILE );
exit;
結果してはfilenameを整形したものと改行がひとつファイルに書き込まれる。見られたくないけど
見てほしい。これが変態の入り口でしょうか。初心者としてはものすごく恥ずかしいです。許してください。

826 :名称未設定:2011/11/12(土) 17:14:05.50 ID:fFodrs570
>>825

>do shell script "perl " & POSIX path of pl_file & " " & filename & " " & datatxt
ちゃんとquoted form of しとけ。


827 :818:2011/11/12(土) 17:26:35.34 ID:GmXwHUiD0
>>826
引数にクォーティング??
ちょっといじってみます、、、、、、
もうぜんぜんapplescriptじゃない気がする、、、、、。

828 :818:2011/11/12(土) 18:16:11.89 ID:GmXwHUiD0
>>826
ありがとうございました!!
do shell script "perl " & POSIX path of pl_file & " " & filename & " '" & datatxt & "'"

としたらだいたい望む結果になりました。感謝感謝です。
お騒がせしてすみませんでした。

829 :818:2011/11/12(土) 18:40:17.09 ID:GmXwHUiD0
>>828
連続ですみません。
" '" & datatxt & "'"
のところ、
" " & quoted form of datatxt
でもいいんですね。変数にquoted form ofが使えるのは知りませんでした。
なるほどね、、、、。


830 :名称未設定:2011/11/12(土) 18:48:29.80 ID:fFodrs570
>>829
File側にも付けて欲しいんだけど。
quoted form of POSIX path of pl_file
quoted form of filename
囲まないと空白文字がある場合、次の引数と認識される。

831 :名称未設定:2011/11/13(日) 22:42:35.56 ID:ag75lT210
教えてください。
>>581の様に、いくつかあるライブラリ別にiTunesを起動するスプリクトを書きたいんですが、
オプションキーを押しながら起動して、ライブラリを選択すると言う手順ではなくて、予めそのライブラリを読み込んだ状態でiTunesを起動したいんですが、どういった方法がありますか?


832 :名称未設定:2011/11/14(月) 23:38:29.66 ID:Z2NF8dfd0
>>831です。
補足すると、iTunesの起動時にしかるべきプロパティにライブラリへのpathを書き込めないかと言う感じなんですが、何のプロパティを弄ればいいかわからないんです。

833 :名称未設定:2011/11/15(火) 00:27:30.48 ID:g9RzLu6/0
しかるべきプロパティってのが無さそうじゃない?
シンボリックリンクを張り替えればスイッチできるようだけど

834 :名称未設定:2011/11/15(火) 08:08:36.61 ID:1en2K5M20
>>833
そうなんです。いろいろググって見ましたけど見つかりません。
だだ起動時に前回のライブラリを読み込んで起動する以上、何かあるはずだと思って。

835 :名称未設定:2011/11/15(火) 08:47:07.51 ID:RdpFaiMm0
英語苦手なんで、自己責任でよろしく
http://stackoverflow.com/questions/1693780/applescript-to-launch-itunes-with-a-specific-library

~/Library/Preferences/com.apple.iTunes.plistのalis:1:iTunes Library Locationが位置情報みたいで、
あらかじめその値を覚えて置いて、書き込んでやればできるかも
Property List Editor使って手作業でコピペしたときは、見た感じ上手く切り替わってたけど、
後々不都合が出るかどうかは、わからん

836 :名称未設定:2011/11/15(火) 18:00:26.17 ID:1en2K5M20
>>835
ありがとうございます。
やって見ます。

837 :名称未設定:2011/11/17(木) 09:23:28.29 ID:qd9WlY6JP
アプレットにドラッグアンドドロップしたものによって処理を変えたいんだけど
簡単な方法はないでしょうか?
ネットで調べると小難しくて時間がかかる方法しか見つかりません。
こんなことも簡単にできないなんてすごい言語だな。

838 :名称未設定:2011/11/17(木) 09:32:05.77 ID:SnT2dWfs0
>>837
もうちょっと具体的に書いたら?
簡単にはできないってことはクリエータータイプや拡張子では判断出来ないって事だよね?

839 :名称未設定:2011/11/17(木) 09:39:58.01 ID:/bvoVRy50
なんか恥ずかしいやつだな

840 :名称未設定:2011/11/17(木) 10:15:09.04 ID:OmYmt39o0
「ドラッグアンドドロップしたものによって処理変え(る)」を「簡単にでき(る)」言語ってなんだろうな
ほとんどの言語がそうらしいのだけど、そうか?

841 :名称未設定:2011/11/17(木) 13:14:56.94 ID:Q5GbZcwK0

837は言語に詳しそうだから
無理してAppleScriptを使わずに簡単にできる言語使えばいいだけだろw

842 :名称未設定:2011/11/17(木) 20:59:35.57 ID:C3ni8bXg0
AppleScriptで簡単に出来る言語を呼び出せばフォルダアクションが使えるな。

843 :名称未設定:2011/11/17(木) 23:56:25.74 ID:4/J9lsBo0
だから、Applescriptは本来アプリを自動操作する物であって
全てApplescript単体で済ませるアプリを作る為の物では無いんだけど
最近は本当に分ってない人が増えたんだね。

以前はOSAXとか使ってファイルヘッダ読み込んで判断とかも出来たけど
今はファイル判定に何を使えば良いのか分からない。

844 :名称未設定:2011/11/18(金) 02:18:51.27 ID:xsC8rMdg0
>>843
拡張子やタイプクリエータを当てにしないというなら
fileコマンド呼んでその結果を受け取って振り分ければいい
いやマジで

845 :名称未設定:2011/11/18(金) 03:20:19.56 ID:T524XbJ80
FinderかSystem Eventsで適当な属性を採る
info forで同上
do shell scriptでfileコマンド
readでバイナリヘッダ読み込み

パッと思いつくだけでもこんなに

846 :名称未設定:2011/11/18(金) 10:38:04.10 ID:mr1wlQXa0
>>844
だよな
以前はAppleScriptの外部を呼べないのでOSAXで拡張していくしかなかったけど、
今は外部のをいろいろ呼べるから誰もOSAXを作ろうとも思わないようになったんだろな

847 :名称未設定:2011/11/18(金) 16:29:15.16 ID:dG+/8sA10
もし必要になっても、ちっちゃなコマンド作っちゃった方が簡単なんだよね

848 :名称未設定:2011/11/21(月) 22:30:15.71 ID:a5vxvO+k0
仕事で使ってるマシンでいろいろOSAXを入れるわけにもいかないから、
できるかぎりもともとインストールされている環境でがんばるようにしている。

849 :名称未設定:2011/11/23(水) 17:39:13.32 ID:1s/grMRj0
>>848
Appletで配布するならbundle内にOSAXごと入れれば良いでしょ。
追加インストールの必要も無いし、OSAXがロードされるのはapplet内だけだし。

850 :名称未設定:2011/12/01(木) 23:06:03.09 ID:Hd6YNCmM0
なんか最近スクリプト書くのが楽しくて楽しくてしょうがない。

851 :名称未設定:2011/12/02(金) 10:52:21.43 ID:qcoHsI1I0
わたしにもそう思える時期がありました。

852 :名称未設定:2011/12/02(金) 22:45:02.56 ID:hxNwPkiO0
>>851
だいたいどれくらいで飽きるの?www

853 :名称未設定:2011/12/03(土) 12:27:49.09 ID:2k7sXt/c0
メンテナンスでうんざりするようになれば。

854 :名称未設定:2011/12/03(土) 12:36:04.45 ID:jFi0l4QTP
コントロールできるアプリの機能が少なすぎる。
妄想はいっぱいあるのに、そのせいで実現できない

855 :名称未設定:2011/12/06(火) 17:31:19.45 ID:Engd3aD30
>>854
じゃあ、コントロールできるアプリを自分で作るのだ。

856 :名称未設定:2011/12/09(金) 14:11:08.10 ID:xDHAGrZj0
本来のASには詳しくなくてGUI Scripting一辺倒な俺はあんまり困らないんだよね
FlashとSilvelightだけは如何ともし難いけど

857 :名称未設定:2011/12/10(土) 02:22:23.29 ID:0L88nYTZ0
初心者です。レコード型から必要な要素だけをとりだしたいのですが、以下のBYDAYのように
属性がないとエラーになってしまいますね。無いものは無視するようなエラー処理をしたいのですが
どのような記述をしたらよいのでしょうか?
tell application "Finder"
set testrec to {FREQ:"YEARLY", INTERVAL:"1", BYMONTH:"7"}
get FREQ of testrec
get BYDAY of testrec
get BYMONTH of testrec
end tell

858 :名称未設定:2011/12/10(土) 02:34:23.32 ID:CuvI4nYV0
tryとerrorを使ってみるとか

tell application "Finder"
set testrec to {FREQ:"YEARLY", INTERVAL:"1", BYMONTH:"7"}

try
get FREQ of testrec
on error
log "FREQ error"
end try

try
get BYDAY of testrec
on error
log "BYDAY error"
end try

try
get BYMONTH of testrec
on error
log "BYDAY error"
end try

end tell

859 :名称未設定:2011/12/10(土) 15:11:39.19 ID:30jcbcmX0
858 さま
本当に基礎的な事をお聞きしたようでお恥ずかしいかぎりですが、
目的が達成できそうです。ありがとうございました。

860 :名称未設定:2011/12/12(月) 02:10:13.77 ID:NYbm00YE0




ワイは日本人やが聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な元の中国に戻るらしいで
みんなも知っての通りもう経済は破綻してて、取り戻すのは無理なんだそうや


その世界ではごっつい有名な政府関係者筋から聞いた確かな情報やで

まあお前らほどの頭の良い連中には、今さらなくらいのネタやな、失礼なくらいかもしれん
お前らからすればもう常識的なくらいの知識やろ?









303 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)