AppleScript アップルスクリプト 質問、発表 4
1 :
名称未設定 :
2009/10/21(水) 21:12:36 ID:uUZ2pM5W0
2 :
名称未設定 :2009/10/21(水) 21:42:06 ID:ocbA/J+e0
1000
3 :
名称未設定 :2009/10/21(水) 22:34:35 ID:/4hh7cRf0
4 :
名称未設定 :2009/10/22(木) 12:04:21 ID:MhezUP1i0
5 :
名称未設定 :2009/10/22(木) 17:33:50 ID:3Wm19SWL0
6 :
名称未設定 :2009/10/23(金) 04:20:05 ID:M4Mkl48i0
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
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
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
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
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
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
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
65 :
名称未設定 :2009/12/10(木) 23:42:53 ID:ecKAHfND0
GUI スクリプティングを勉強したいんだが どうすればいいだろう
66 :
名称未設定 :2009/12/11(金) 03:30:48 ID:tL/S60kS0
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
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
72 :
名称未設定 :2009/12/12(土) 14:04:57 ID:U++d7OCD0
勉強してみます 皆様ありがとうございます
73 :
名称未設定 :2009/12/12(土) 14:33:20 ID:j8+q6ijr0
74 :
名称未設定 :2009/12/14(月) 05:04:49 ID:Tfq0mJFZ0
ちょっと教えてください ファイル名などを指定する時に頭文字数文字だけで指定する事は可能ですか? 例えば「ABC△△△.jpg」の△が分からなくても指定できれば良いのです。 実際にはアプリケーションで使うパラメーターを指定します。 よろしくお願いします。
75 :
名称未設定 :2009/12/14(月) 07:25:00 ID:S62Zvqc20
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
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
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
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
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
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
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
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
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
149 :
名称未設定 :2010/03/08(月) 16:31:44 ID:SrQDwyB30
>>147 10.5.8ですがそのような項目がありません・・
150 :
名称未設定 :2010/03/08(月) 16:44:49 ID:SrQDwyB30
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
153 :
名称未設定 :2010/03/15(月) 18:19:24 ID:xHBfGwAX0
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
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
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
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:
[email protected] "
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
250 :
名称未設定 :2010/07/14(水) 00:48:20 ID:oYKnFyE/0
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
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
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
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
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
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
286 :
名称未設定 :2010/09/26(日) 09:06:43 ID:er3D8n310
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
300 :
名称未設定 :2010/10/11(月) 03:05:22 ID:er1zNTmJ0
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
310 :
名称未設定 :2010/10/26(火) 01:29:24 ID:5mAsSWX60
>>309 う ん
こまめに保存する人だし
Finder選択項目にtouchするスクリプト書いたからいいんだけどさ
>>308 俺もそれ気になる。つか出来るのか?
311 :
名称未設定 :2010/10/26(火) 08:11:41 ID:ldwUOkxH0
312 :
名称未設定 :2010/10/29(金) 03:04:22 ID:yMfd41GO0
あるフォルダウインドウに対して「常にアイコン表示で開く」を AppleScriptで設定するにはどうすればいいんでしょうか。 用語説明で見つからないんです。
313 :
名称未設定 :2010/10/29(金) 03:38:34 ID:2nPKE5pJ0
314 :
名称未設定 :2010/10/29(金) 04:04:06 ID:yMfd41GO0
プロパティは用意されてなかったのですか。 それは最後の手段と思ってたんですが、最後の手段しかなかったんですね。
315 :
名称未設定 :2010/10/29(金) 04:42:09 ID:2nPKE5pJ0
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 BE:426967834-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
331 :
名称未設定 :2010/11/17(水) 02:31:38 ID:SH9dn2p30
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
550 :
名称未設定 :2011/08/09(火) 21:41:06.88 ID:2kuD7X3Vi
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
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
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
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
583 :
名称未設定 :2011/08/27(土) 00:52:31.29 ID:q21a6/BU0
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
588 :
自動再起動 :2011/09/07(水) 06:46:30.44 ID:A90jdqil0
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
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
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
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 BE:1707869186-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
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
687 :
名称未設定 :2011/10/04(火) 15:40:21.63 ID:VjIE+nBg0
>>686 Automatorを使ってiTunesに取り込む時に、タイトルとかと一緒に設定したかったんですが。
無理なら諦めます…
688 :
名称未設定 :2011/10/04(火) 22:56:57.20 ID:oNDIyiaF0
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
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 "
[email protected] " --送信者アドレス
set recipientAddr to "
[email protected] " --–受信者アドレス
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
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
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
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
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
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
ワイは日本人やが聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な元の中国に戻るらしいで みんなも知っての通りもう経済は破綻してて、取り戻すのは無理なんだそうや その世界ではごっつい有名な政府関係者筋から聞いた確かな情報やで まあお前らほどの頭の良い連中には、今さらなくらいのネタやな、失礼なくらいかもしれん お前らからすればもう常識的なくらいの知識やろ?
861 :
名称未設定 :2011/12/14(水) 23:49:04.01 ID:FAr5KFVL0
初心者同然のものです。 このようなスクリプトを書きました。 tell application "Finder" (choose file) as alias set doc to result set doc to doc as alias set docName to name of doc my reSize(doc) end tell on reSize(doc) tell application "Adobe Photoshop CS3" activate set display dialogs to never open doc set doc to current document resize image doc width 50 as percent height 50 as percent save current document close current document end tell end reSize で、スクリプトエディタ上ではちゃんと動く(画像を50%縮小してくれる)ん ですが、on runで囲ってアプレットにして単体で動かすと、 Photoshopが画像を1ピクセルにしてしまうんです。 原因がさっぱりわからなくて。記述が悪いにしても何をどう直してよいのやら。 ご教授賜りたく思います。 環境はOS10.5.6でPhotoshopはCS3です。宜しくお願い致します。
862 :
名称未設定 :2011/12/15(木) 14:02:35.03 ID:0rVCU6VJ0
自分はCS1なんでアレだが、自分の所では0.5 as percentにしないと50%サイズにはならんが。 50にすると50倍にされる。ただアプレットにしても結果は同じ。
863 :
名称未設定 :2011/12/16(金) 00:15:58.56 ID:E9q5Df8W0
>>862 さん
ありがとうございます。
早速CS1環境で試してみたら確かに動きました。
なんでCS3ではだめなんだろ?
画像の縦横を求めて、それに0.5掛ける方向で考えてみます。
ありがとうございました。
864 :
名称未設定 :2011/12/16(金) 02:01:54.74 ID:uc5AQmYP0
>>863 Tiger+CS3(PPC)
アプリケーション形式でちゃんと動いたよ。
865 :
名称未設定 :2011/12/17(土) 00:14:47.91 ID:YsAWqdDI0
>>864 さん
ありがとうございます。
結局、記述には問題ないみたいですね。謎が深まります。
改めて違う質問をさせて戴きたいのですが。
set theList to [AAA.jpg ,BBB.jpg ,CCC.jpg] as list
上記のように変数theListにファイルネームをリストとして入れたとします。
その変数theListにファイルネームで検索をかける事、そして在るか無いかを
応答させる事は出来るのでしょうか?
866 :
名称未設定 :2011/12/17(土) 01:46:05.93 ID:9IQma+3r0
theList is in filename だったかな。
867 :
名称未設定 :2011/12/17(土) 02:06:48.68 ID:bVF46GYq0
>>866 変数が逆
>>865 リストの書き方が違ってるけどその辺は大丈夫?
あるなしだけなら
"ファイルネーム" is in theList
ざっくりこんな感じかな
tell application "Finder"
set fileNames to {"AAA.jpg", "BBB.jpg", "CCC.jpg"}
set theFile to choose file
set theFileName to name of theFile
if theFileName is in fileNames then--ここであるなしチェック
display dialog "ありました"
else
display dialog "ありません"
end if
end tell
ウチの環境(Tiger)だと大文字小文字は無視される。
実ファイルが存在するかどうかだったらexists file "ファイルパス"とか
868 :
名称未設定 :2011/12/17(土) 22:40:25.95 ID:YsAWqdDI0
>>866 さん
ありがとうございます。お気持ち戴きました。
>>867 さん
ありがとうございます。まさにコレです!!
リストにあるなしで分岐させようと思っていたのでまさにコレです。
サンプルスクリプトをコメント付きで書いて戴いたので
バッチリ理解できました。
なるほどなぁ。
一つapplescriptへの理解が深まりました。
スプリクトとは関係ないんですが、このスレはsage進行なんですか?
とりあえずsageときますね。
869 :
名称未設定 :2011/12/21(水) 21:07:33.87 ID:Q3pg9rk40
どなたか教えてください。 サーバー上のフォルダにファルダアクションを設定したいんですが、 マシンを立ち上げるたびにフォルダアクションを設定しないといけません。 なんとか自動でマシンを立ち上げるたびにフォルダアクションを設定すること できないでしょうか。 つか、今は、フォルダアクション設定を立ち上げて、すべてきれいに削除して、 そのうえで再度アクションを設定とかしてるんですが、これ以外に方法ないんでしょうか。 もううざくてうざくて。
870 :
名称未設定 :2011/12/21(水) 21:13:20.26 ID:Q3pg9rk40
×ファルダアクション ○フォルダアクション
871 :
名称未設定 :2011/12/23(金) 01:13:25.71 ID:xY1zt9DF0
GUIスクリプティングで強引に 下のスクリプトをアプリケーション形式で保存してログイン項目へ追加 run application "Folder Actions Setup" tell application "Folder Actions Setup" activate tell application "System Events" tell process "フォルダアクション設定" repeat if exists menu bar item "フォルダアクション設定" of menu bar 1 then if value of checkbox "フォルダアクションを使用可能にする" of window "フォルダアクションの設定" = 0 then click checkbox "フォルダアクションを使用可能にする" of window "フォルダアクションの設定" end if keystroke "q" using command down exit repeat end if delay 1 end repeat end tell end tell end tell
872 :
871 :2011/12/23(金) 01:19:42.17 ID:xY1zt9DF0
前から使ってるやつだけど、希望のものかな? 一応補足説明 最初のrun〜は 他のアプリケーションがログイン項目に登録されていた場合 tellだけだとactivateしたのが背面にいく事があるので追加。 フォルダアクション設定を終了するのをquitにすると チェックボックスにチェックが終わらないうちに終了してしまうことがあるのでkeystrokeで。 スクリプト起動後、終了するまでは他のアプリケーションを前面に出さない事。
873 :
名称未設定 :2011/12/23(金) 11:44:06.82 ID:BDaPK5dH0
>>871 ありがとうございます。今、環境がないのでテストできませんが、
これは、フォルダアクション設定を起動して「使用可能にする」をチェックする、
というGUIスクリプトですかね、、、、、。
勘違い、かもしれせんか、普通、ローカルにあるフォルダにフォルダアクション
を設定しておけば、次回起動後にもそのフォルダアクションは効いていると思うんだけど、
サーバーにあるフォルダの場合は、設定をしておいても、次回起動後、サーバーに
接続しておいても、フォルダアクションが効かないという状態です。これは複数のサーバー
で試しましたが同じです。フォルダアクション設定の用語説明とか見たり、ちょっとググったり
しましたが、スクリプトなどで自動的に、フォルダアクションを設定するようなこと、
できないんですかね。
できないなら、フォルダ監視して新しいファイルが入ってきたら処理するようなスクリプト
作りたいんですが、まだまだ研究不足。どなたかアドバイスお願いします。
そもそもon addingg folder itemとかいうフォルダアクション用のハンドラって普通には
使えないんでしょうか。
874 :
871 :2011/12/23(金) 16:40:13.26 ID:xY1zt9DF0
勘違いしてたスマヌ… 自分の環境だとローカルのフォルダでもちょくちょく動かないことがあって 設定見るとフォルダアクションを使用可能にするチェックが外れてることがあったので 同じような状況だと思った。 System Eventsにattach action to ってのがあるよ mount volume でマウントして attach action to フォルダ(alias型)using "スクリプトファイルのパス" とか
875 :
名称未設定 :2011/12/23(金) 16:52:30.51 ID:BDaPK5dH0
>>874 おお、それですね、きっと。using スクリプト、ですか。
すでにvolumeを自動マウントして、接続しているか監視するスクリプトは書いているので、
これを加えればいいんですかね。とても参考になります。System Events のスクリプトが
分からず困ってました。
年末にひと遊びできそうです。ちょっと試して見ます。ありがとうございます。
876 :
名称未設定 :2011/12/24(土) 12:11:11.96 ID:CPerrj6dP
877 :
名称未設定 :2011/12/24(土) 18:28:55.62 ID:sTEhe3c80
またまた初心者です。 evernoteの特定のタグのノートだけをfilemakerproに書き出すスクリプトを作成中です。 tell application "Evernote" activate find notes "tag:icalfm" set target_list to result set list_num to count target_list repeat with i from 1 to list_num open note window with item i in target_list set note_title to title of item i in target_list set the_HTML to HTML content of item i in target_list set plain_Text to do shell script "echo " & quoted form of the_HTML & space & "| textutil -convert txt -stdin -stdout" tell application "FileMaker Pro Advanced" activate tell database "ENtoFMP" create new record tell record i set contents of field "en_title" to note_title set contents of field "another_content" to plain_Text end tell end tell end tell end repeat end tell こんな感じでいけそうなんですが、evernoteに貼り付けた画像がうまく処理できませんでした。 皆様お知恵をおかしください。 ではメリークリスマス!
878 :
名称未設定 :2011/12/26(月) 17:14:10.20 ID:qh9QL6JU0
どなたか教えてくださりません? あるマシンでスクリプトを組んで保存し、他のマシンに持っていくと、 動かなかったり、ダイアログが文字化けしていたりてし読めないことがある。 いろいろ調べていると、どうも、保存時に設定する改行コードだか文字コードだか が影響しているらしいことまではわかった。けれど、OSのバージョンが同じでも 改行コードなどが違うこともあるし、完全に同じ時期の機種でも違うこともある しかもその改行コードなどは変えようと思ってもグレーアウトしていて変えられない。 これ、どういうことなんでしょうか。その影響なのか、細かい所でもそれぞれのマシン でスクリプトを変えねばならず、ものすごく不便です。どこかの設定で統一できるなら したいけど、それはどこにあるんてしょうか。
879 :
名称未設定 :2011/12/26(月) 17:22:57.35 ID:BADn5r4+0
880 :
名称未設定 :2011/12/26(月) 17:33:48.21 ID:GcdhyRCP0
今時ならUTF-8、LFで問題ないだろ てめぇで統一しろよ
881 :
名称未設定 :2011/12/26(月) 18:44:16.92 ID:qh9QL6JU0
>>880 あれ?、そもそも保存時にグレーアウトしてて選択できなくないですか?
OSは主に10.4です。 あれっていったいどこで決まってるんでしょう?
882 :
名称未設定 :2011/12/26(月) 19:27:14.33 ID:65Lunl7Q0
つテキストエディタ
883 :
名称未設定 :2011/12/26(月) 23:23:37.98 ID:i+f1h9pr0
>>881 10.4 までの AppleScript Editor でのテキストの扱いは MacJapanse (Shift-JIS) でいろいろ問題抱えたままだね
10.6 だと UTF-16 になってて問題無く、10.6 で作ったのを 10.4 に持っていっても 10.4 の AppleScript Editor で開いて実行でなければ問題無いようだけど
改行コードは テキストファイル(.applescript) でしか意味が無く、関係無いね
884 :
名称未設定 :2011/12/26(月) 23:24:10.44 ID:qh9QL6JU0
>>882 いやいや、そうじゃなくて、同じスクリプトでもある環境では実行できなくて、
ある環境では実行できるということ。で、よくわからんけど、実行する環境で
保存しなおすと実行できたり、エラーが出たり。これ、どう解決するの?
らとのバージョンではない模様。
885 :
名称未設定 :2011/12/26(月) 23:28:06.85 ID:qh9QL6JU0
>>883 ああすみません。書き込みして更新したら書き込み出てきました。
おお、それですか。やっぱなんか違うんだ。めんどくさいなあ。全部マシンのバージョンあげてー。
でも諸事情で上げられないorz 情報ありがとうございます。
886 :
名称未設定 :2011/12/26(月) 23:34:00.85 ID:i+f1h9pr0
>>885 10.6 で作ったのを 10.4 で実行するぶんには問題なさそうだけど
10.4 の AppleScript 実行環境は UTF-16 を理解してるみたい。あくまでもアホなのは 10.4 の AppleScript Editor
それでもエラーが出たりとかあったりしたら、日本語でコメント書いていたらそれかなあ
887 :
名称未設定 :2011/12/27(火) 01:17:16.40 ID:dJsZ0rhP0
888 :
名称未設定 :2011/12/27(火) 03:37:33.07 ID:ftm3Hml00
.scptでも問題あるのか? 日本語メッセージ書いたこと無いから(というか経験的に 危険だろうから回避してる)わからんな。
889 :
名称未設定 :2011/12/27(火) 07:34:46.19 ID:TSrSLEGK0
>>887 それが AppleScript Editor のことなんだって
実際 10.4 の AppleScript は UTF-16 を理解しているってか、data utxt6F225B57 あなた自分で言っているじゃない
890 :
名称未設定 :2011/12/27(火) 07:39:21.41 ID:TSrSLEGK0
>>889 ,887
10.6 (て、10.5からか) の AppleScript Editor は
set str to "漢字"
と書いても
set str to <<data utxt6F225B57>> as Unicode text
と同等にしてくれる/なるので、
set str to "漢字"
で問題無いよ。AppleScript Editor どうこうの問題だと思うのだがなあ
891 :
名称未設定 :2011/12/27(火) 07:44:45.78 ID:TSrSLEGK0
これらは、文字列定数を無理矢理 Shift-JIS で表示しょうとすることに関して as string を Shift-JIS 前提で処理していたのが、AppleScript 内部として Unicode に変わってまともに動かないとかいうのは別の話
892 :
名称未設定 :2011/12/27(火) 09:46:45.09 ID:xRh5eyk4P
で、どうすりゃいいのか? 自分でも考えるけどよくわからない 使ったことない構文もあるみたいだしw
893 :
名称未設定 :2011/12/27(火) 10:17:51.97 ID:TSrSLEGK0
AppleScript Language Guide を斜め読みしたけど、String クラスは日本語はいまだ MacJapanese のよう。文字列定数は Text クラスだったのね。 で、localized string ってあるじゃないの 日本語なんてソースレベルでは邪道なのでw、日本語メッセージなどはリソースで用意してってのが真っ当でしょう まあ、スクリプトレベルでリソースファイルを扱うのは、スクリプトというお手軽言語にはちょっと邪道な気がするけどw
894 :
名称未設定 :2011/12/27(火) 16:05:09.09 ID:xRh5eyk4P
まるでわかりまへん おてあげ。 マシンごとにやるしかないか。 あーめんどくさ。
895 :
名称未設定 :2011/12/27(火) 17:05:40.18 ID:Tlx2qVud0
ものすごく不便ですやらよくわからんやらめんどくさいやら、実際そうだとしてもしつこく書くな、表に出すな 読んでるだけでムカムカする
896 :
名称未設定 :2011/12/27(火) 17:33:48.77 ID:Cj7YAp8J0
だから最初からそう書いてるのに
897 :
名称未設定 :2011/12/27(火) 18:11:59.57 ID:sfNGmHd70
>>890 違う。その処理をやっているのはScriptEditorではなく、スクリプトエンジン本体の
AppleScript.component。もっとピンポイントに指摘するとOSACompile()というAPI
>>893 10.5以降はtext/string/Unicode textは単なるシノニムで全てUnicode
898 :
名称未設定 :2011/12/27(火) 18:41:44.25 ID:TSrSLEGK0
>>897 まあ細かい部分の指摘はおっしゃる通りなんだろう。確かにコンパイル直後に化けるからそんなところだと思ってはいたけど
それを使うのは AppleScript Editor ぐらいなもんで(他にもAutomatorなぞあるだろうけど)、実行時には無関係じゃねと思うのだが、まあ、なんというか、失礼した
いまいち何を指摘または否定していたい/いるのかちょっとわからないなあ
いや、AppleScript Language Guide にそう書いてあるってことなんだけど、そうなの?
899 :
名称未設定 :2011/12/27(火) 19:02:34.90 ID:TSrSLEGK0
>>894 display dialog (localized string "Hello")
display dialog (localized string "Good bye")
って、書いてみて、アプリケーションかスクリプトバンドルで書き出す
そのアプリケーションかスクリプトバンドルをFinderでパッケージを開くと、Contents/Resources があるので、そこに テキストエディタ(のテキストモードで)、
以下の内容の Localizable.strings という名前のテキストファイルを書き出す
(Contents/Resources 直下でいいのは、あくまでも日本語だけで多国語対応なんて考えてないという安直モードの場合)
"Hello" = "こんにちは";
"Good bye" = "さようなら";
AppleScript Language Guide の図を見た方がわかりやすいと思うけどw
スクリプトバンドルの場合、なんか AppleScript Editor での実行時はリソースから読んでくれないけど、一時的にアプリケーションにしてまたは in bundle 指定すればテストはできる
まあ、自らの特殊な環境でおてあげならしょうがないな。
>>895 の言う通りだと思うし
900 :
名称未設定 :2011/12/27(火) 19:24:06.32 ID:TSrSLEGK0
>>897 ,898
>いや、AppleScript Language Guide にそう書いてあるってことなんだけど、そうなの?
嘘です。そんなこと AppleScript Language Guide には書いてありません。どこをどう読んでそんなこと思ったのか今の俺には理解できません
すみませんでした。ご指摘ありがとう
901 :
875 :2011/12/28(水) 21:09:22.62 ID:DPIdH+b20
フォルダにスクリプトを設定するスクリプト、OS付属のスクリプト見て、 なんとか設定することができました。ありがとうございます。 詳細はOS付属のスクリプト見れば分かりますが、makeとかdeleteで folder action とかscriptを目的のフォルダをInfo forすればOKみたいです。 何言ってるかわからないと思いますが、とりあえず報告終わりますw ありがとうございます!
902 :
名称未設定 :2011/12/29(木) 01:29:11.01 ID:eMEvBdVL0
( ゚д゚)
903 :
名称未設定 :2012/01/05(木) 21:27:20.00 ID:jBkJjac00
何を言っているかわからねーと思うが、で本当にわけわからんのも珍しいな
904 :
名称未設定 :2012/01/07(土) 10:36:37.58 ID:CNISSNIE0
データCDを差し込んだらドロップレットにドラッグアンドドロップしたのと同じようにするには どうしたらいいのでしょう。音楽CD、ビデオDVDなどは自動でスクリプト発動できるようですが、 普通のデータCDの場合はできないんでしょうか。
905 :
名称未設定 :2012/01/07(土) 15:55:05.40 ID:IlVa89xS0
906 :
名称未設定 :2012/01/07(土) 21:17:11.96 ID:CNISSNIE0
>>905 ありがとうございます。やっぱりちょっとはいじらないと駄目みたいですね。
頑張ってみます。
907 :
名称未設定 :2012/01/08(日) 21:36:47.17 ID:LDRrs/060
908 :
名称未設定 :2012/01/08(日) 22:03:43.93 ID:k8w6b2Kg0
Safariのバージョン違い(古い)で構文エラー その行を search だけに(とか the の前に -- (ハイフン二つ)入れるとか)してコンパイル、search の文字色が青(デフォルトでのキーワードの色)にならなかったらそう というかmiスレ覗いたらマルチ進行になってるイクナイ
909 :
名称未設定 :2012/01/08(日) 22:09:45.27 ID:k8w6b2Kg0
勢いで断言しちゃった そうかな? ぽいけど 程度でオネガイ
910 :
名称未設定 :2012/01/08(日) 22:10:32.02 ID:LDRrs/060
>>908 レスありがとうございます。
マルチ進行、ほんとにすみませんでした。
Safariのバージョンが5.0.5でした。
解決策はSafariを最新版にするしかないでしょうか?
911 :
名称未設定 :2012/01/08(日) 22:18:26.46 ID:k8w6b2Kg0
912 :
名称未設定 :2012/01/08(日) 22:20:42.93 ID:LDRrs/060
913 :
名称未設定 :2012/01/08(日) 22:33:17.83 ID:2ZoU7iJW0
914 :
名称未設定 :2012/01/08(日) 22:50:20.37 ID:LDRrs/060
>>908 おおっ!できました。
深謝です。
ほんとうにありがとうございます。
915 :
名称未設定 :2012/01/20(金) 21:46:40.74 ID:i09RdKGk0
ファイル名を正規表現でチェックして、データを判定するスクリプトを作ったんだけど、 恐ろしく速度が遅い。スクリプトの速度上げる方法ないかな。
916 :
名称未設定 :2012/01/21(土) 00:09:51.51 ID:+iej9qkO0
file コマンドを使うのがいいとおもう。
917 :
名称未設定 :2012/01/21(土) 01:11:14.05 ID:jwQV3qlH0
つperlを呼び出す
918 :
名称未設定 :2012/01/21(土) 12:45:35.29 ID:1Zo53hRC0
>>917 perl使ってるよ。
それが単体の判定ドロップレットを作って、メインスクリプトからopen file 〜using application
で使うとそれなりなんだけど、その内容をメインスクリプトにハンドラつかって埋め込むと処理が
遅くなるような気がする。なんで同じことやってるだけだろうに速度が違うのかがわからない。
なんかいい方法はないかなあ。
919 :
名称未設定 :2012/01/21(土) 12:52:19.80 ID:/LTylsLv0
>>915 を読んで、
AppleScriptで正規表現エンジン作ったのか(驚愕)
と思った。
920 :
名称未設定 :2012/01/23(月) 20:35:09.06 ID:R9/UAmBk0
acrobatでpdfからjpgにグレースケールで書き出したいのですが、 save document 1 to file aFile using conversion "com.adobe.acrobat.jpeg" とすると、前回のjpegの書き出し設定(「JPEGとしての保存の設定」ダイアログのカラースペース)が適用されます。 これをapplescript上でグレーなどに指定することは出来ますか? ソフトのバージョンは adobe acrobat 8 pro ver8.1.5 MacOS 10.6.8 です。
921 :
名称未設定 :2012/01/23(月) 21:47:08.00 ID:sWQZbutB0
>>920 javascriptで同様の内容を探して見たが無理っぽい。Jpeg保存までみたい。
よくわからないけどGUIスクリプティング頑張ってみるとか。
それはそうと誰か教えてくれ。OS10.4.11でスクリプトエディタでスクリプト書こうと
他のマシンで作ったスクリプトを開くと、do shell script のあとに続く二重の
バックスラッシュがなぜか一重のバックスラッシュになっていてコンパイルできない。
ただ、そのほかで作った二重のバックスラッシュを含むスクリプトを動かすと動く。
こういう場合、どうすればいいんでしょうか?
922 :
名称未設定 :2012/01/23(月) 22:28:52.81 ID:R9/UAmBk0
>>921 わざわざjavaまで調べて下さってありがとうございます
無理そうなんですね...残念です
GUIスクリプティングは以下のスクリプトで試してみたのですが、「設定...」ボタンが青く反転するだけで、押したことにならず、「JPEGとして保存の設定」ダイアログにいけないんですよねー...
それ以外のボタンは普通に押せるのですが
...
tell application "System Events"
tell process "Acrobat"
click menu item "JPEG" of menu 1 of menu item "画像" of menu 1 of menu item "書き出し" of menu 1 of menu bar item "ファイル" of menu bar 1
click button "設定..." of group 1 of window "別名で保存"
end tell
end tell
923 :
名称未設定 :2012/01/25(水) 07:48:15.79 ID:ZEuq9H9L0
GUIスクリプティングは時々delayを挟まないと 期待通りに動かないことがあるよ
924 :
名称未設定 :2012/01/25(水) 13:22:02.31 ID:OuAoKjBcP
>>922 どうでもいいけど、JavascriptとJAVAを一緒くたにしないで・・・
925 :
名称未設定 :2012/01/25(水) 21:06:33.95 ID:x96hyp0Z0
Javaな
926 :
名称未設定 :2012/01/27(金) 11:46:17.31 ID:KLOiokc60
イラレcsで、下のようなカラー設定だとフィルタリング(whose〜)が効かないんですが、 このような場合の同一色を短時間で検索する手段てありませんか? {class:CMYK color info, cyan:74.901956319809, magenta:67.843133211136, yellow:67.058819532394, black:89.803916215897} これみたいに整数値だとフィルタリングで探せます。 {class:CMYK color info, cyan:100, magenta:0, yellow:0, black:0}
927 :
名称未設定 :2012/01/27(金) 12:13:10.11 ID:xwvGjffT0
>>926 コンピュータの基本だけど浮動小数点数が一致することは基本的に無いよ。必ず誤差がある。
誤差範囲内にあるか又は大小関係で比較しないといけない。
928 :
名称未設定 :2012/01/27(金) 13:05:34.08 ID:KLOiokc60
やっぱり無理なんですかね。 フィルタリングできれば実用範囲の速度だけど、 比較ループすると一気に使い物にならない速度になっちゃうんですよね。
929 :
名称未設定 :2012/01/27(金) 15:44:24.23 ID:Go6DR1UGP
>>925 JAVAの表記はJavaでもJAVAでも良い。
Sun(Oracle)のサイトでもJava表記とJAVA表記が混在している。
930 :
名称未設定 :2012/01/29(日) 00:14:47.37 ID:z3lGjjue0
>>928 フィルタリングする色はどこから持ってくるの?
既に存在するオブジェクトの色だったり
スウォッチの色なら
一旦変数にでも入れて使えばフィルタリングできるよ
931 :
名称未設定 :2012/01/29(日) 11:22:45.37 ID:bSG98L8b0 BE:399840023-2BP(0)
>>918 >それが単体の判定ドロップレットを作って、
以前に,MacOS X Snow Leopardで大量のファイルをチェックして
処理するスクリプトを作った時に,処理速度速度が極端に落ちる問
題が発生しました。
同じスクリプトを,AppleScript Editorでソースコードを
表示した状態から実行すると,劇的に処理速度が上がりました。
932 :
名称未設定 :2012/01/30(月) 11:09:55.99 ID:Yn23qSyC0
>>930 本当だ。その方法だとフィルタリングできるんですね。勉強になりました。
ただ、今回はその色そのものが書類上に存在しているかわからない場合の
チェック兼修正用として使いたいんですが、そんな場合にはどうしたら良いでしょう?
具体的にはCADからイラレに変換したデータなんですが、
自分でやった物でもたまに色変換し忘れた物とかが混じっていたりするので。
よく見ると画面上でもK100の色とは異なるんですが気付かない場合もあるので。
933 :
930 :2012/01/30(月) 20:24:56.80 ID:FwSM7NKd0
>>932 こんなのどう?
set theFCs to {}
set theSCs to {}
tell application "Adobe Illustrator"
tell document 1
set pItemsCount to count of page items
repeat with i from 1 to pItemsCount
try
set theFC to fill color of page item i
set theSC to stroke color of page item i
if {theFC} is not in theFCs then set the end of theFCs to theFC
if {theSC} is not in theSCs then set the end of theSCs to theSC
end try
end repeat
make new layer
set theGB to geometric bounds
set x to item 1 of page origin
set Y to height + (item 2 of page origin)
repeat with i from 1 to count of theFCs
set theRH to height / (count of theFCs)
make new rectangle with properties {bounds:{x, Y - theRH * (i - 1), x + 10, Y - theRH * i}, fill color:item i of theFCs, stroke color:{class:no color info}}
end repeat
repeat with i from 1 to count of theSCs
set theRH to height / (count of theSCs)
make new path item at beginning with properties {entire path:{{x + 10, Y - theRH * (i - 1)}, {x + 20, Y - theRH * i}}, filled:false, stroke color:item i of theSCs}
end repeat
end tell
end tell
新しいレイヤーに使っている色の一覧が作られるので(グラデは除外)
Illustrator上で自動選択ツールの設定を許容値を0にして一覧の色を選択
934 :
名称未設定 :2012/01/31(火) 09:08:11.90 ID:jx873SW70
>>933 なるほど。それならK100じゃない黒があるかどうかもすぐわかりますね。
頭が固くて気付きませんでした。
ありがとうございます。またまた勉強になりました。
935 :
930 :2012/01/31(火) 12:29:59.70 ID:Vve0d6YR0
>>934 あ、
set theGB to geometric bounds
は無視して。
同じことするならJavascriptの方が早い気がする。
936 :
名称未設定 :2012/01/31(火) 12:50:58.18 ID:jx873SW70
>>935 度々ありがとうございます。
試しに今度JSで作ってみます。
937 :
名称未設定 :2012/01/31(火) 13:47:10.20 ID:Vve0d6YR0
需要あるかな?Safariを利用したプログレスバー --Safariを利用したプログレスバー global BL set BL to 300 tell application "Finder" to set selected to selection as list set work to "Finderで選択されたアイテム名" my makeprogresswindow(work) set deno to count of selected repeat with i from 1 to deno my progressbar(name of item i of selected & "を処理中", i, deno, work) delay 0.2 --ここに処理を入れる end repeat my breakprogresswindow(work) on makeprogresswindow(W) tell application "Safari" activate make new document with properties {URL:"about:blank"} set bounds of window 1 to {30, 30, 50 + BL, 200} do JavaScript "document.write ('<title>" & W & "</title><body><div id=¥"bar¥" style=¥"background:#eeeeee;width:" & BL & ";height:10;margin: 0 auto;font-size:12px¥"></div></body>');" in document 1 end tell end makeprogresswindow on progressbar(WN, NU, DE, W) tell application "Safari" set PBL to round NU / DE * BL do JavaScript "document.getElementById(¥"bar¥").innerHTML='<div style=¥"background:#999999;width:" & PBL & ";height:100%;margin: 0¥"></div>" & WN & "';" in document W end tell end progressbar on breakprogresswindow(W) tell application "Safari" to close document W end breakprogresswindow
938 :
937 :2012/01/31(火) 14:02:09.88 ID:Vve0d6YR0
とりあえずFinderで選択されたファイル/フォルダの名前を表示するだけ。 入れ子状態とかも作ったけど改行制限オーバーだったのでギリギリまで詰め詰め repeat回数が多くて処理に時間がかかるときに終わりの目安がなんとなく分かるのでたまに使ってます。 スクリプト起動中にリアルタイムで表示内容を変更することができるので デバッグやスクリプトのスピードアップを検討するときなどにも使えるかも。
939 :
名称未設定 :2012/02/01(水) 12:07:36.49 ID:wzkEfhkC0
>>937 なぜにCocoa 呼ばんの?とは思ったが動かしたらめちゃ楽しい。
ちと書き方が昔風だけど、書き方なんて自由な訳で。
ありがとう、これはぜひ使ってみたい。いじりがいもありそう。
940 :
名称未設定 :2012/02/07(火) 18:18:23.58 ID:LX4ul6tR0
Drag & Dropでファイルのサイズをクリップボードにコピーするスクリプトです。複数のファイルを 同時にD&Dするといくつかのファイルのサイズが得られない事があります。 自分なりに調べてみると、Finderの"情報を見る"の詳細情報に入手先が記載されているファイルの サイズだけが得られません。しかし、ファイルが一つか、このようなファイルだけの時は動きます。 入手先の記載のないファイルと記載のあるファイルが混ざっていると入手先の記載のあるファイルのサイズ だけが得られません。まるっきり的外れなような気もするのですが、他に原因が見つけられません。 Leopardの時は問題なく動いていたと思うのですが、Lion(10.7.2)にしたことと関係があるのでしょうか。 アドバイスを頂けないでしょうか。 on open drop_item_list tell application "Finder" set the clipboard to "" repeat with obj in drop_item_list set file_size to size of obj set the clipboard to (the clipboard) & file_size & return end repeat end tell end open
941 :
名称未設定 :2012/02/08(水) 21:58:46.08 ID:qOBgEaho0
ようやくXcodeインストールしてスクリプトにインターフェイスつけようと思ってるんですが、 どなたかヒントをください。 よくある市販のアプリケーションにある「環境設定パネル」的なものってどうやって 作るんでしょう? 後からデータを保存する場所などを設定したいんですが、自分ならスクリプトのproperty などを書き換えればすむんですが、どうやら他人にはハードルが高いらしく、 そういうものをセッティングして、アプリを再起動してもその値を覚えているようなものに したいんですが、、、、、、、。ググってみましたが、どうも参考になる情報がないもので、、、、。 しかしXcode楽しいですね。Applescriptだけだと素人感満載ですが、インターフェイス がつくと、ちょっとくらい処理が遅くても許してもらえそうな感じw
942 :
名称未設定 :2012/02/08(水) 22:05:14.24 ID:eAw9iCyS0
943 :
名称未設定 :2012/02/08(水) 22:14:02.76 ID:qOBgEaho0
>>942 あうううううううう(涙)
がんばって読んでみます。ありがとうございますorz
944 :
名称未設定 :2012/02/08(水) 22:23:01.40 ID:eAw9iCyS0
945 :
名称未設定 :2012/02/08(水) 22:24:45.67 ID:eAw9iCyS0
面倒くさい時は 実行用アプリケーションと 設定用アプリケーションを別個に作ると楽です エラー処理とか入れなくていいから 設定変える時はこっちを使って下さいって渡せばいい
946 :
名称未設定 :2012/02/08(水) 22:48:14.06 ID:qOBgEaho0
ああだめだ。英語気持ち悪くなってきたorz
よくわかりませんが、なにやらいろいろ構成して、plistに書き込む
つーことですな。
もうちょっとサンプルスクリプトとかいろいろ眺めてから挑戦します。
それはそうと、今、10.5用のXcodeってダウンロードできるのか?
ぜんぜん見当たらないんだけど。つーかXcode4はAppleScript用の
サンプルスクリプトってごそっと抜けてるし。サンプルスクリプトは
別にダウンロードするのかな? AppleIDで登録しろだのなんだの
意外と面倒っすね。でも面白いからいいやw
>>945 ああなるほど。AppleScriptのときにはrunしたら環境設定的なこと、
ファイルをドラッグアンドドロップしたら処理みたいなことしてたけど、
それを別々のアプリにするみたいなかんじでしょうかね?
いろいろ参考になります。
947 :
名称未設定 :2012/02/08(水) 22:49:32.84 ID:qOBgEaho0
しかし I am very new for apple scripts には笑った。どこの国も一緒だなw
948 :
名称未設定 :2012/02/09(木) 19:36:22.62 ID:ea+OTQBO0
USBメモリを使い終わった後、USBメモリmyusbをアンマウントするappを、USBメモリの「中に」作ってみたんですが、 do shell script "diskutil unmount /Volumes/myusb" 実行すると Volume myusb on disk2s1 failed to unmout というエラーメッセージが出てアンマウントできませんでした。 実行したプログラムそのものが存在するドライブをアンマウントするのでエラーは当たり前なのかもしれないですが、それを回避してアンマウントするappを「USBメモリ内に」作る方法はないでしょうか?
949 :
名称未設定 :2012/02/09(木) 20:32:55.69 ID:fRKirlsS0
もうAppleScriptの範疇じゃないだろ〜
950 :
名称未設定 :2012/02/09(木) 20:55:03.35 ID:4iWTAki/0
>>948 アンマウントを実行するappをリソースに内包して、
アンマウントを実行するappを/tmp または Temporary Items にコピってからコピったappを起動するとともに素早く終了するとか
アンマウントを実行するappはアンマウントを実行する前に、起動元のUSBメモリ中のappが終了するのを待つとより完璧かな
951 :
名称未設定 :2012/02/09(木) 22:02:45.49 ID:4iWTAki/0
>>950 ,948
shell script をコピって実行(後自爆)バージョン
tell application "System Events" to set myPID to the unix id of process the (name of the current application)
do shell script "echo 'while kill -0 " & myPID & " 2> /dev/null; do sleep 1; done; diskutil unmount /Volumes/myusb; rm -f /tmp/realUnmountUSBVol.sh' > /tmp/realUnmountUSBVol.sh"
do shell script "sh /tmp/realUnmountUSBVol.sh > /dev/null 2>&1 &"
do shell script は & だけじゃバックグラウンドプロセスを起動してすぐ帰るってしてくれなくて、> /dev/null 2>&1 を付ければOK。ってことでこのスレらしくない?w
>>949
952 :
名称未設定 :2012/02/09(木) 22:38:11.79 ID:fRKirlsS0
参ったw
953 :
948 :2012/02/09(木) 23:04:43.00 ID:v+H2Ee4R0
>>950-951 おお、ありがとうございます!
やっぱ結構アクロバチックな事が必要なんですね・・・
ちょっと勉強しながらやってみます。
954 :
名称未設定 :2012/02/09(木) 23:38:11.74 ID:4iWTAki/0
>>953 ごめんなさい
>>951 はダメっぽい
バックグラウンドプロセスの実行環境として、起動元の applet.rsrc が開かれた状態で継承されてアンマウントできません。いらんのに、全くいらんのに
app コピるより shell script はただのファイルだし、考えたら shell script をコピる必要さえないじゃんなのにい、applet.rsrc が邪魔
なーんかないか考えてみよう
955 :
名称未設定 :2012/02/10(金) 02:17:34.43 ID:XdmK1XLf0
>>954 ,953
csh だと親プロセスが開いているファイルなんて継承してないてことで(bash で開いているファイルを継承させないオプションがあるのかどうかわからない)
tell application "System Events" to set myPID to the unix id of process the (name of the current application)
set cshScript to "while( 1 )
/bin/kill -0 " & myPID & " >& /dev/null
if( $? ) break
sleep 1
end
diskutil unmount /Volumes/myusb"
set savedDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to return
set cshScript to text items of cshScript
set AppleScript's text item delimiters to ASCII character 10
set cshScript to cshScript as string
set AppleScript's text item delimiters to savedDelimiters
do shell script "echo '" & cshScript & "' | /bin/csh -s > /dev/null 2>&1 &"
csh よくわからんなあ
スクリプトを1行にできないのかなあ/どうもできなさそうってことで、なんか長くなった。AppleScript's text item delimiters は AppleScript の改行(return/CR) を shell の改行(LF) に変換してるのです
956 :
名称未設定 :2012/02/10(金) 02:57:09.05 ID:XdmK1XLf0
あ、csh 間にかますだけでいいんじゃねっ... てことで tell application "System Events" to set myPID to the unix id of process the (name of the current application) do shell script "/bin/csh -c " & quote & "/bin/bash -c 'while kill -0 " & myPID & " 2> /dev/null; do sleep 1; done; diskutil unmount /Volumes/Untitled'" & quote & " > /dev/null 2>&1 &" 寝よ...w
957 :
名称未設定 :2012/02/10(金) 07:43:37.93 ID:T5Sv7sCh0
ちょっと教えてください。AcrobatProfessionalについているPDFをチェックする プリフライト機能、というのがあるんですが、これがメニューからドロップレット が作れます。中を開くとAppleScriptなので、これ幸いと自分のスクリプトに 組み込めないかと苦闘したのですが、実現できません。 on process_item(this_item)ハンドラを他のスクリプトに内蔵することってできない でしょうか。 on open these_items try process_item(these_items) end try end open -- process the file on process_item(this_item) try tell application "Finder" set myPath to path to me end tell with timeout of 1 second tell application "Adobe Acrobat Professional" activate delay 1 ≪event PRFLPRFL≫ this_item given ≪class PATH≫:myPath end tell end timeout end try end process_item
958 :
名称未設定 :2012/02/10(金) 07:51:05.35 ID:T5Sv7sCh0
続きです。やったこと ・そのままon process_item(this_item)ハンドラをスクリプトに埋め込む→AEHandlerが云々で× ・逆にドロップレットに自分のスクリプトを埋め込んで再保存→該当部分で同様のエラー ・ドロップレットになっているフォルダの中身を見てみる→重要な情報などはplistの中などにも発見できず。 ・海外のサイトを見る →みんな同じこと考えてて「Acrobatは糞」と質問者が罵るか「そのまま使えアホ」と煽られるかのどちらか。 いつも思うのですが、なんでAcrobatのこのあたりの機能はJavascriptでもapplescriptでも機能提供されない んでしょうかね。pitstop関連の特許がらみもあるのかも、とも思いますが。
959 :
名称未設定 :2012/02/10(金) 18:08:20.22 ID:w9o5mLpj0
Acrobatをサーバー的に使うにはいろいろライセンスを取得する必要があったような気がしないでもない
960 :
名称未設定 :2012/02/10(金) 22:52:36.25 ID:T5Sv7sCh0
>>959 ありますよね。なんかめんどくさいのが。でも、上の話はそれとは別の話ですよ。
961 :
名称未設定 :2012/02/10(金) 23:04:44.65 ID:T5Sv7sCh0
>≪event PRFLPRFL≫ this_item given ≪class PATH≫:myPath がよく分からないんです。用語辞書にも載ってないし、検索してもだめだし。 どう考えても、this_itemをそのドロップレットのパスに従ってプリフライトせよ、 ってことだと思うけど、ドロップレット自体はどこに置いておいても動くし、 そもそもプリフライトに使用する設定はどこから読み込むのかと。謎が多すぎて 手も足も出ません。なんなんですか? これ。
962 :
名称未設定 :2012/02/15(水) 23:45:22.87 ID:5kjeEa2v0
どうしても分からんorz applescript studioのイベントハンドラで on key down theObjectと on key up theObject があるかと思うけど、ウインドウにボタンを配置しておき、 シフトかオプション、コマンド、コントロールなどキーは問わないが、 キーを押した時点でボタンの表示がたとえば「印刷」から「用紙を指定して印刷」 とか代わって、そのままクリックするとそれぞれ別のスクリプトが動くようにしたい のだけど、どうすればいいんでしょうか。on key down の例を探したけど、 見つからなかった。applescript studio のイベントハンドラ 一覧とその例とか どっかにないかな……。
963 :
937 :2012/02/16(木) 00:49:51.43 ID:Rnhe+Zuj0
>>948 GUIスクリプティングでキーボードショートカット使うとか
tell application "Finder"
activate
set theVolume to disk of (path to me)
select theVolume
tell application "System Events"
key code (14) using command down
end tell
end tell
964 :
名称未設定 :2012/02/16(木) 02:16:15.36 ID:/kShfPCb0
>>962 Xcode入れてドキュメントも入れてんだろうから見れば良いじゃない
AppleScript Studio Terminology Reference
965 :
名称未設定 :2012/02/16(木) 09:29:59.37 ID:zejo708S0
>>962 書いてみた
property NSAlphaShiftKeyMask : {shift:65536}
property NSShiftKeyMask : {shift:131072}
property NSControlKeyMask : {shift:262144}
property NSAlternateKeyMask : {shift:524288}
property NSCommandKeyMask : {shift:1048576}
property NSNumericPadKeyMask : {shift:2097152}
property NSHelpKeyMask : {shift:4194304}
property NSFunctionKeyMask : {shift:8388608}
on IsDown(theKeys, theKeyMask)
return ((theKeys / (shift of theKeyMask)) mod 2) as integer is 1
end IsDown
on idle
set theModifiersKey to call method "modifierFlags" of class "NSEvent"
if not IsDown(theModifiersKey, NSAlternateKeyMask) then
set theButtonTitle to "Print"
else
set theButtonTitle to "Print..."
end if
set title of button "Print" of window "main" to theButtonTitle
return 0.5
end idle
モディファイアキーの押下状態の変更をダイレクトに伝えてくれるのはAppleScriptでは用意されていないようなので、idleで定期的にチェックという無駄と反応が鈍い
ボタンのアクションの変更を変えるのはどうすんだろうね。とりあえずボタンのタイトルで振り分けるとか
966 :
名称未設定 :2012/02/16(木) 16:01:58.34 ID:3tECEIY10
> applescript studioのイベントハンドラで
> on key down theObjectと
> on key up theObject
こんなのあったっけ?
on keyboard down theObject event theEvent とon keyboard up theObject event theEvent ならわかる
ただこれもアプリ全体のイベントには設定できないし、
修飾キー単体では反応しないっぽいので、
>>962 の目的には合わないが
967 :
名称未設定 :2012/02/16(木) 18:59:50.03 ID:zejo708S0
>>965 >AppleScriptでは用意されていないよう
って、Cocoa-AppleScriptもかなと勝手に思って書いたが、普通に安易にNSWindowのサブクラス作れて、普通にflagsChangedが呼ばれて、ストレスあんまり無くキーの押下状態を得られた
Cocoa-AppleScript侮れないw
まあCocoa-AppleScriptするならCocoaドキュメント読まねばならず、だったらObjective-Cで書いた方がAppleScriptの文法/制約で悩まないで済むっていう...
968 :
名称未設定 :2012/02/23(木) 22:09:40.09 ID:2VZh/UL+0
lionにXcode入れたんだけど、 Xcode4.2.1 applescript全滅 Xcode3.2.6 ゴニョってインストール、コマンドラインでゴニョれば古いソースはビルドできる Xcode3.1.4 同上で、carbonがないとしかられる。 ぜんぜんうまくいかないんだけどorz lionで新規プロジェクトでapplescriptでアプリ作れる人いたらどうすればいいか教えてください。
969 :
名称未設定 :2012/02/23(木) 23:32:08.29 ID:QdRnNph40
>>968 普通にできているよ。フレームワークが変わっていて、言語仕様が、少し変わっているので、ダメなんじゃないの。リファレンスマニュアル読めばわかると思うよ。
970 :
名称未設定 :2012/02/24(金) 07:54:52.64 ID:qTOlXcGs0
>>968 applesriptってAppleScript Studio?
Xcode 3.2.6 で 既存のプロジェクトはビルドできるはできるけど、新規プロジェクトはテンプレートが無いから作成できないってことだよね
Xcode 3.1.4 のインストーラからテンプレートを盗んでくればいいよ
/Volumes/Xcode Tools/Packages/DeveloperTools.pkg
に入っている
pkgutil --expand /Volumes/Xcode¥ Tools/Packages/DeveloperTools.pkg ~/DeveloperTools
ってすれば、デスクトップに DeveloperTools ってフォルダができている
その中に Payload があるから Finder でダブルクリックすると解凍が始まる
Payload ってフォルダができるので、その中に Library/Xcode/Project Templates/Application/AppleScript Application がある
AppleScript Application を ~/Library/Application Support/Developer/Shared/Xcode/Project Templates/AppleScript Studio に(そういうパスが無かったら作って)入れる。最後の AppleScript Studio は好きな名前でいいよ
Xcode 3.2.6 を起動して新規プロジェクト選ぶと、出ているはずだよ。
971 :
名称未設定 :2012/02/24(金) 08:33:19.18 ID:1EsaeqC20
>>969-970 ありがとー。昨日いろいろいじっていて
・3.1.4でプロジェクトを作る。
・そのプロジェクトをゴニョった3.2.6で開いて編集
でいまのところうまくいってます、と報告しようと思ったら、それってつまり
>>970 と同じことですよね。ああ、これでlionでapplescript studioがいじれます。
感謝感謝です。
972 :
名称未設定 :2012/02/24(金) 08:55:52.68 ID:qTOlXcGs0
>>971 ああ、なる。だったら、
/Developer/Library/Xcode/Project Templates/Application/AppleScript Application
を
$HOME/Library/Application Support/Developer/Shared/Xcode/Project Templates/AppleScript Studio
にコピれば、3.1.4 起動する必要無いくらかな。お好きに :)
973 :
名称未設定 :2012/02/24(金) 08:56:46.33 ID:qTOlXcGs0
あ、 /Developer は、3.1.4 の Developer ね
974 :
名称未設定 :2012/02/24(金) 15:07:49.29 ID:CJGFbzwl0
ついでに新規ファイル追加用のテンプレートはこの辺にあるので、ついでに移植しておくとよいね /Developer/Library/Xcode/File Templates/AppleScript あとInterface BuilderのAppleScript Inspectorタブが消えているので、Terminalで以下を実行して復帰させる defaults write com.apple.InterfaceBuilder3 IBEnableAppleScriptStudioSupport -bool yes これで概ね3.1.4以前と同じ感覚で使えるかと
975 :
名称未設定 :2012/02/25(土) 16:55:35.61 ID:RuiGBx4u0
976 :
名称未設定 :2012/02/25(土) 17:16:30.37 ID:hAfl5ygD0
自分で作れ
977 :
名称未設定 :2012/02/26(日) 17:00:12.73 ID:cEyk/5Xo0
プロジェクトテンプレとInterface Builderのセットになったやつは3.2.2ぐらいの時にあったよ ググれば出んでしょ
978 :
名称未設定 :2012/02/26(日) 18:06:28.09 ID:SX1S2Szy0
あーもう誰か教えて。 applescript studioで例えばデスクトップからアプリのウインドウにドラッグ&ドロップすると そのファイルなりフォルダなりの処理を始めるようにするにはどうすればいいんだ? たとえばウインドウのあるエリアにファイルをドラッグ&ドロップすると所定のフォルダに コピーしてファイル名を変更するみたいなことがしたいんだけど、、、、、、、 ・ハンドラーは on drop theObject drag info dragInfoを使って ・types of pasteboard of dragInfo で処理するに値するかどうか判定して 、、、、とか書いてたらちょっと分かってきたw スマンw (とかいいつつ、また来ると思うw)
979 :
名称未設定 :2012/02/26(日) 18:54:16.65 ID:0yqTcLgI0
せっかく書いた文でも捨てる勇気
980 :
名称未設定 :2012/02/26(日) 20:16:21.41 ID:SX1S2Szy0
だ、だめなのか、、、、? 間違ってるのか、、、、、orz
981 :
名称未設定 :
2012/02/26(日) 20:18:56.12 ID:Q3EpPNmf0 意訳:ここはおまえの日記帳じゃない