AppleScript アップルスクリプト 質問、発表 3
at MAC
1:名称未設定
08/10/03 18:41:42 Abs+u1Ko0
質問、発表どっちでもスレ。
【注意】
安直なスクリプト作成依頼、丸投げはやっちゃダメ! わからない点、エラーが解決できない点について、スクリプト片を添えて質問しよう。
・前スレ、関連旧スレ
AppleScript アップルスクリプト 質問、発表 2
スレリンク(mac板)
AppleScript アップルスクリプト 質問、発表
スレリンク(mac板)
【標準装備】スクリプトエディタ
スレリンク(mac板)
おもろい、めずらしいアップルスクリプト発表会 6
スレリンク(mac板)
・参考リンク
AppleScript ヘルプ
help:///Library/Documentation/Help/AppleScript.help
発表まとめ
URLリンク(members.at.infoseek.co.jp)
MacWiki - AppleScript
URLリンク(macwiki.sourceforge.jp)
AppleScript PARK
URLリンク(www.tonbi.jp)
TN2065: do shell script
URLリンク(developer.apple.com)
URLリンク(developer.apple.com)
2:名称未設定
08/10/04 00:31:28 t3kkMEtL0
こういうの作ってください!は無しで
3:名称未設定
08/10/05 17:59:06 jL0aulsu0
前スレ落ちた
4:名称未設定
08/10/05 18:02:53 N1ohX2350
こっちを立てるのが早すぎたな。
5:名称未設定
08/10/06 03:06:39 L5eEHjv20
980超えたら落ちるのは仕様です
6:名称未設定
08/10/07 02:14:48 lCUqUn5J0
2chのレスを自動更新してgrowlというappで表示していくAppleScript
を実況用にgrowlスレ
スレリンク(mac板:298番)
で作っていただいたのですが、PowerPC用のようで
自分の環境ではレスの取得などはうまくいっているようなのですが
その表示がうまくいかないようです。
テスト用のscriptを作っていただき試したところ、AppleScriptからgrowlへの動作は問題なく、growl自身の問題でもないようです。
レスを表示させる動作に問題があるようです。
環境はGrowl 1.1.4 OSX10.4.11/Intelです。
Applescriptはこちらのものです。
URLリンク(memogaki.soudesune.net)
これをIntelMacでも使いたいのですがどのようにしたら良いのでしょうか。
このような動作をするものはIntelでは無理なのでしょうか。
作った方もなぜ動作しないか分からないそうなので
IntelでのAppleScriptについて詳しい方いらっしゃいましたら教えてください。
よろしくお願いいたします。
7:名称未設定
08/10/07 03:42:29 Y47w/it70
自分の環境では動いている。
このスレを選択したら通知もGrowlで表示された。
なぜかPowerPCバイナリだけど。
でLeopard+Intelな環境で色々試して分かったこと。
・配布されたものをそのまま起動→動作、PowerPCバイナリ
・動作終了後に配布アプリのEdit→Edit Scriptでスクリプトファイルを開いて
・アプリケーションとして保存したもの→URL選択画面以降動作せず、PowerPCバイナリ
・アプリケーションバンドルとして保存したもの→URL選択画面以降動作せず、Universalバイナリ
・Automatorを使ってアプリケーションとして保存したもの→URL選択画面以降動作せず、Intelバイナリ
・そのまま実行→URL選択画面以降動作せず
・debugModeをtrueにして実行→動作
・debugModeをtrueにしてアプリケーションバンドルとして保存したもの→動作、Universalバイナリ
ということは配布されているバイナリからスクリプトを取ってきてdebugModeをtrueに変更して独自に作り直せばいい。
作者さんが転載、改造、再配布を許可しているのでそれに甘えて完成品はこちらから。
URLリンク(dl.getdropbox.com)
propertyのheaderFileNameをtest2にして本家とも共存できるようにしました(少なくとも自分の環境では)。
本家との違い(というか一部不具合)
・メニューUIが日本語
・実行プロセス名が2chResView.appではなく2chResView
・Universalバイナリ
・メニューからもDockからも終了できずActivitiy Monitorから強制終了する必要がある
8:名称未設定
08/10/07 03:46:09 Y47w/it70
前半の2つ目より後の箇条書きは2つ目の下にぶら下げたつもりだったのだが投稿してみたらそうなってなかった orz
9:名称未設定
08/10/07 03:55:53 Y47w/it70
追記になりますが結局メニューもDockも使い物にならないなら(スクリプトの編集はアプリケーションバンドルをこじ開ければ出来ます)そんなものいらないという場合は
バンドルの中のContents/Info.plistを以下のファイルで置き換えてください。
URLリンク(dl.getdropbox.com)
ただしその場合はメニューもDockのアイコンも出なくなるので起動後別のソフトを前面に出してしまうと2chResViewに戻る方法が無くなって終了する以外の選択肢が無くなります。
挙動を元に戻したい場合はバンドル内のInfo.plistをSmultronのようなテキストエディタで開いて
<key>NSUIElement</key>
<string>1</string>
の2行を削除してください。
10:名称未設定
08/10/07 04:32:52 lCUqUn5J0
>>7-9
検証、改造ありがとうございます
今試してみたのですが、Growlの最初の通知はうまくいくのですが
実況刷れなどでの自動更新されたのレスはやはりGrowlでの表示はできないようです。
イベントログではレスの内容を取得できているようなのですが・・・
取得したレスのGrowlでの表示がうまくいかないようです。
レス取得もそちらの環境では可能でしょうか?
11:名称未設定
08/10/07 04:47:48 lCUqUn5J0
追記
動作としてはurl入力後
〜レススキップしました
という通知がきた後、何の通知もなくなってしまいます。
イベントログではレスの取得はされているのですが、それがGrowlに通知されない状態です。
板のアドレスを入力した後もレス表示するまではうまくいっている様子です。(スレを選んだりは問題ない。)
12:名称未設定
08/10/07 07:25:52 Y47w/it70
>>11
自分の環境では~レスをスキップしましたという表示の後そのより後のレスの通知が表示されます。
さっきまでもう少し実況板に適した仕様にしようと色々いじっていたのですが
やはり他人の書いたスクリプトを編集するというのは難しいので現状では中途半端な状況ですが一応上げておきます(本家や先ほどのものとは共存可能です)。
URLリンク(dl.getdropbox.com)
オリジナルからの変更点
・headerFileNameをtest3に設定して本家と共存可能にした
・Universalバイナリとして動作(オリジナルはPowerPCバイナリ)
・実況板用にチェック間隔(checkInterval)を5秒に設定した
・同じくレス表示間隔(showResInterval)を1秒に設定した
・maxShowResNumbyReadOnceを1001に設定し全てのレスが通知されるようにした
・本家との区別をつけるためにプロセス名を2chResView Liveに変更した
現状での問題点
・オリジナルと違ってメニューやDockからの終了が出来ないのでActivity Monitorから強制終了する必要がある
・解決策とはとうてい言えないがInfo.plistでNSUIElementを1に設定し実質役立たずなメニューとDockアイコンを無効にした(スクリプトの編集はバンドルを開くことにより可能です。)
・そのため起動後別アプリを前面に出してしまうと終了以外出来なくなる仕様
・基本的には最初に更新確認元のURLを指定したらその後は放置を推奨します
・新着レスが無いとまた最初からレスを表示するが2周目以降において
n周目のレス番号表示=本来のレス番号+1周目での板のレス最大値+2周目でのレス最大値+.............+(n-1)周目でのレス最大値
のような状況になってしまっていたのでレス番号をGrowlに通知しないという荒技(というかその場しのぎ)により対応。
(本当はここは本来のレス番号が表示されるようにしたかったのですが自分の技量不足で出来ませんでした。また後日時間があるときにトライします。)
(一応オリジナルのレス番号も表示されるほうもコメントアウトして残してあります。)
13:名称未設定
08/10/07 08:11:16 lCUqUn5J0
>>12
そうでしたか。。新版でもやはり変わらずレスは表示されない・・・
うーん、何がいけないんだろう。
>・解決策とはとうてい言えないがInfo.plistでNSUIElementを1に設定し実質役立たずなメニューとDockアイコンを無効にした
拡張子を.scptに変更してscriptediterから実行し、editerはDockに収納というのがスマートかなーと思ってました。それなら終了できるので。
いろいろと朝早くに面倒を見ていただきありがとうございます。
14:名称未設定
08/10/07 19:12:05 v8Kp0RHoP
>>13
Growlの通知のスタイルをBubblesにしても駄目ですか?
CSS形式だと連続表示した時に駄目なときがあるのでそれの可能性もちょっとあるかも
15:名称未設定
08/10/07 20:10:43 lCUqUn5J0
>>14
Growlはいろいろなパターンで(通知スタイル、出てくる場所)試してみましたがやはりでてきません。
新規アカウント作って試しましたがやはりダメでした。
実行中アクティビティモニタを見ているとcurlというプロセスが着いたり消えたりします。
2chResview Liveを最前面にしているとカーソルが白黒の風車が着いたり消えたりします。
CPU使用率もメモリも十分に余裕があります。
ちなみに2GHzCore2Duo メモリ1GBです。
なにか自分の環境が悪いのでしょうか??
16:名称未設定
08/10/07 21:09:31 v8Kp0RHoP
>>15
もう一個思い当たるのがas Unicode textをGrowlHelperAppで
通知するテキストに対して行うってのがあります。
昔DragThingなどでうまく動かない時にas Unicode textを適当に付けたら
動くようになった記憶があります。
URLリンク(memogaki.soudesune.net)
にそうしたのを置いておきました。
>>7さんの報告によると自分と同じ10.5でも動かないようなので違う可能性は高いです。
でもAppleScriptにPPCとintelの違いなんてあるんでしょうか?
17:名称未設定
08/10/07 21:23:10 kwz1vCP70
>>15
URLリンク(mtlab.ecn.fpu.ac.jp)
とりあえず2chでログとか関係なしに
AppleScriptからGrowlに通知を送るだけのスクリプトでも作ってみたら?
18:名称未設定
08/10/07 21:48:43 lCUqUn5J0
>>16
作者の方でしたか。ありがとうございます。
試してみたのですが、やはり表示されませんでした。。
>>17
作者様に作っていただいた
URLリンク(memogaki.soudesune.net)
URLリンク(memogaki.soudesune.net)
でAppleScriptからGrowlに通知を送るテストはしたのですが、それはおkでした。>>6にkwsk書かず申し訳ない。助言ありがとうございます。
19:名称未設定
08/10/07 22:00:13 kwz1vCP70
>>18
じゃぁ今度はログとるところを分解してテストしてみりゃいんじゃない
なんでも人任せにすんな
20:名称未設定
08/10/07 22:06:35 lCUqUn5J0
>>19
かしこまりました。
お邪魔なようなのでもう書き込みはしません。
いろいろとしていただいたお二人ありがとうございました。
21:名称未設定
08/10/07 22:29:25 KlERJHmd0
「なんでも人任せにすんな」への返答が「お邪魔なようなのでもう〜」
こういう奴見るとほんと腹立つわ
22:名称未設定
08/10/07 22:36:57 kwz1vCP70
俺としてはsmalltestを行えってまじめにアドバイスしてんだけどな
23:12
08/10/07 22:52:07 Y47w/it70
いまさらだけど自分としてはそう不愉快に感じなかったな。
寧ろイベントログとかもう少し詳しく書いてくれれば力になれたかもしれないのにという感じ。
というか中途半端に動作するものをアップした自分が悪い?
24:名称未設定
08/10/07 22:55:18 yqsxH7SN0
前スレラストのお客さんもこの手合いだったからな。
流石にちょっと、という感はある。
25:名称未設定
08/10/07 23:10:09 AJUayXJ10
またしばらく寂れそうだw
26:名称未設定
08/10/09 14:41:14 EnaYP1mJ0
Script Debugger4で自作テンプレをクリッピングメニューから呼び出したいのですが,
登録方法がよくわからず困っています.もしわかる方いたら教えていただけませんか.
27:名称未設定
08/10/09 18:18:36 EnaYP1mJ0
>>26 の件ですが,Clippingsフォルダに入れるだけでした.おさわがせしました.
これだけじゃなんなので,Script Debugger4の話題を一つ.
うちのintel Leopard環境では特定のスクリプトでApple Event logを表示させたり,
sourceボタンを押すと強制終了したり操作不能になる不具合が出てます.もしこれから
買おうと思っている人は,動作確認をしっかりやった方がいいかもしれません.
28:名称未設定
08/10/11 00:58:27 YGVRabN70
Security Update 2008-007当てると、Script Editorで辞書開いた時にできる一時sdefファイルの作成場所が
/tmpから/var/tmp/folders.uid/TemporaryItemsに変わる。
なもんでログインし直すとゴミ箱にRecovered filesが出来ちゃう。ちょっと邪魔臭い。
29:名称未設定
08/10/12 23:12:57 UYsjvl6V0
前スレのSnapz Pro Xの小物に続き,今回もまた小物発表します.
YouTube動画を高解像度版で表示させるアプレット.フリーウェア.
YouTube HRV with Firefox β
www.gcug.net/test/ythrvfb.zip
YouTube HRV with Safari β
www.gcug.net/test/ythrvsb.zip
今開いているYouTube動画の高解像度版を新しいウインドウで開いて表示させます.
ただし,全ての動画が高解像度版で観られるわけではありません.特に公開時期が古い
動画は高解像度では観られないようです.予めご了承下さい.
比較画像
www.gcug.net/test/ythrv.png
30:名称未設定
08/10/12 23:39:29 Rk15pzzC0
Firefoxスレで見て、Safariスレでも見て、ここでも見るのか orz
31:名称未設定
08/10/12 23:42:57 UYsjvl6V0
ごめんね.
32:名称未設定
08/10/13 01:17:47 4W8DvxVS0
>>29
踏む気にもならんが、&fmt=18足してるだけじゃないんか?
せめて開いてるページの高解像のソースをmp4で別名保存するってのとか位したら?
って、書くなよ。それくらいもうみんな書いてるから。
33:名称未設定
08/10/13 01:26:14 JL5lkbOm0
>>29
はい,ただ足してるだけです.別名保存もしてません.皆さんが書いてる通りです.
予想どおり,ほとんど踏まれてません.でも,なんだかわかんないけど,楽しい.
34:名称未設定
08/10/13 01:26:57 JL5lkbOm0
失礼しました,>>29ではなく>>32へのレスです.
35:名称未設定
08/10/13 01:32:01 8CRBv2qs0
>>29
10.4.11/Safari3.1.2で動かなかったです
36:名称未設定
08/10/13 01:48:58 JL5lkbOm0
>>35
10.4.11では動かなかったですか.すみませんです.
10.5の環境しかもってないので,原因突き止めるのは時間かかりそうです.
いずれにしてもこの話題長くひっぱるのはあれなので,なんかわかったら
サイトの方に書いておきます.どうもでした.
37:名称未設定
08/10/13 02:31:47 YwtPc7by0
>>29
http://抜きなのは何か意図はあるのでしょうか?
38:名称未設定
08/10/13 02:36:00 dBXY5jcQ0
実は、以前から同じ用途のスクリプトつくって自分で使ってた。
単純にurlに&fmt=18付けるだけだから、俺みたいなスクリプト初心者でも出来るよ。
39:名称未設定
08/10/13 03:45:44 4W8DvxVS0
>>29 楽しむなバカ!!!
しね、しんでお詫びしろ真面目に勉強してAS書いてるやつに。
ASからsafari開かんでもシェルスクでcurlってのもあるぞ。
べ、べつにお前に教えてるわけじゃないんだからな!!勘違いするなよな!!
40:名称未設定
08/10/13 09:55:40 8JYSbZ9o0
俺ならbookmarkletでやるかな。
41:名称未設定
08/10/13 09:55:58 YwtPc7by0
&fmt=18足すだけで編集不可で「フリーウエア」とかわざわざ謳ってなんかあれな人っぽいな。
過去スレで質問しまくって「できましたー」って編集不可で公開した人に似ててなんか変。
編集不可のスクリプトの発表はスレ違いとテンプレに追加してほしい。
42:名称未設定
08/10/13 10:07:55 S2bmhJwE0
俺の所も動かないから中を見ようとしたら編集不可だって。
馬鹿にしてるのか。
43:名称未設定
08/10/13 10:36:11 dU9oInNnP
よほどの遅い回線でなければ、わざわざ&fmt=18付けて再読み込みさせなくても
動画の再生画質
URLリンク(jp.youtube.com)
で設定しておけば高画質で再生されますよ。
44:名称未設定
08/10/13 12:32:22 P4LigQDi0
なんでこの程度のことでわざわざ煽り入れるんだか
45:名称未設定
08/10/13 12:32:45 WM63qh/30
>>35
サイトよりスレの方が早いので,あらためてこちらに.
Safariで動かなかったとのことですので,スクリプト書いておきます.
たぶん,これなら動作すると思います.
tell application "Safari"
activate
set theURL to get URL of document 1
open location theURL & "&fmt=6&fmt=18"
end tell
29のアプレットは,これにいくつかのエラー処理を加えたんですが,
それがきっと動作的にまずかったんだと思います.
46:名称未設定
08/10/13 12:41:12 WM63qh/30
誤解されそうなので訂正します.エラー対応処理です.
47:名称未設定
08/10/13 15:38:07 vHCZlgpZ0
set URL of tab -1 of window 1 to URL of tab -1 of window 1 & "&fmt=18"
なんてやっておくと裏のタブで開いておいたのを裏のままfmt=18で再読み込み。
全タブを取得しといてcurrent tabだけ除外すれば複数の裏タブもいっぺんに。
48:名称未設定
08/10/23 21:18:44 JnvvdQR80
Growlがとかいってた人
URLリンク(memogaki.soudesune.net)
こんなんでてたぞ
49:名称未設定
08/10/23 21:55:34 E3n5TJ5f0
10.5 Intelだとうまく動かない、元スクリプト作者は環境ないから何ともしがたい、
って話だったと思ったけど
それが解決してなければどうしようもないんじゃないかい
50:12
08/10/23 22:00:25 lUXKK1hP0
>>7とか見ると中身のスクリプトを取り出してもう一度.app化すればUniversalで動くらしいよ。
>>7のリンク先はもうないっぽいが。
51:名称未設定
08/10/23 22:01:06 lUXKK1hP0
ってよく考えたら>>7作ったのは自分だったんだ。
かなり前のことだったので忘れてたぜ。
52:名称未設定
08/10/24 10:04:11 gyloSjgq0
www.gcug.net/test/ascal.png
do shell script "cal"でdisplay dialogの表示をそろえたい場合,どうしたらいいでしょうか?
53:名称未設定
08/10/24 11:36:24 Jf97pub80
>>52
ヒラギノ?の標準半角スペースは333emだから500emのと置き換える。
でも、使えない環境もおおい。例えばこことかね。
これは力技てか、手抜き。本当はHTMLとかで真面目に書いた方がよいね。
set hoge to do shell script "cal"
set myStrings to hoge as Unicode text
set findStr to " "
set replaceStr to string id 8199
set myStrings to replaceString(myStrings, findStr, replaceStr) of me
display dialog myStrings
return
on replaceString(myStrings, findStr, replaceStr)
set tmp to AppleScript's text item delimiters
set AppleScript's text item delimiters to findStr
set theList to every text item of myStrings
set AppleScript's text item delimiters to replaceStr
set myStrings to theList as string
set AppleScript's text item delimiters to tmp
return myStrings
end replaceString
54:名称未設定
08/10/24 12:13:07 YLgb7goj0
初めてまともにAppleScript使ってるんですが、つまづいてます。
Safariで複数のウィンドウ、複数のタブを開いている時、
アクティブなウィンドウを切り替えたいんですが、何か方法ないでしょうか?
set current tab in targetWindow to targetTab
でタブは切り替わってるんですが、ウィンドウが背面にある場合は背面のまま切り替わってます。
System Eventで clickしても同様です。10.5.5です。
要するに目的のタブとウィンドウをアクティブにしたいんですが、どうやれば良いでしょう?
ヒント下さい
55:名称未設定
08/10/24 12:45:14 Jf97pub80
>>54
set index of targetWindow to 1
昼食後は眠い。
56:名称未設定
08/10/24 13:29:40 YLgb7goj0
>>55
thx!
ウィンドウは切り替わった...けど非アクティブのまま切り替わってる?
全面にあるウィンドウが非アクティブ、背面にあるウィンドウがアクティブの色
こーゆーもんですか?
57:名称未設定
08/10/24 14:58:36 Jf97pub80
>>56
そのままじゃんか。答え自分で書いてるし。
次の行に activate とでも打ってみるんだ。
ひまだー(嘘だ!!!)仕事する気ならねー
58:名称未設定
08/10/24 15:18:19 YLgb7goj0
>>57
答え...? よくわからんです。
Safari自体はactiveなんですが、
SafariのウィンドウをA(前面)B(背面)として、
通常はAがアクティブ、Bが非アクティブのウィンドウ色で並び順もその通りなんですが、
set index of B to 1
とすると、Bが非アクティブ、Aがアクティブ(つまり変更前のまんま)
の色のまま、Bが前面にくる(並び順だけ変わる)んです。
次の行にactivate書いてみましたが、これはアプリを前面に出すんですよね?
何か勘違いしてるのかな(´・ω・`)
やっと文法がわかってきたけど、これ難しいなぁ
59:名称未設定
08/10/24 15:59:35 ykVyKfvr0
初めて触るのにそうポンポン思い通りのスクリプト書かれちゃたまらんw
60:名称未設定
08/10/24 20:17:48 YLgb7goj0
あぁダメだ
tell application "Safari"
--activate
set (index of window 2) to 1
end tell
こいつの動作が納得いかない
とりあえず今はこういうモンだと思うことにしよう
61:名称未設定
08/10/24 20:46:43 MjFKpi3E0
たぶんそれバグだ
AppleScriptではよくあること
62:名称未設定
08/10/24 21:05:51 D8NGnyy50
ほんとだ。うしろウインドウをcommand+optionクリックしたときと
同じ動作になっちゃうんだ。
63:55
08/10/24 21:22:57 Kw8HwHQ60
Script Editor でも一緒だな。アプリケーションレベルのカレントにならない。
2つしか見てないけど、仕様かな?かな?
index 忘れて素直に System Events で書いた方がよいね。
64:名称未設定
08/10/24 21:31:39 D8NGnyy50
Finderは期待通りの動作をするようだ
65:名称未設定
08/10/24 22:21:32 frwVBtf10
AppleScriptじゃなくてCocoa自体のバグですな。
だからCocoaアプリは全滅
tell application "Finder"
select window 2
end tell
で動くのが正しい実装
tell application "System Events"
tell process "Safari"
set value of attribute "AXMain" of window 2 to true
end tell
end tell
とすれば動くが、こんなの判る人いない。
66:名称未設定
08/10/24 22:47:16 PrT8+w6N0
おお、そういう指定ができるのか。知らなかった。
ちなみにAppleScript的ルールからいうとバグではあるが、Cocoaな
世界ではActive Windowという単一の概念は無くて、
MainWindowとKeyWindow, Inactive Windowってのがある。
ちなみに、NSWindowクラスではKeyになるのを拒否したり出来るみたい
なのでセットしたプロパティが反映されているかその後チェックが必要。
Classic OSユライのASと考え方が違うのはある程度しゃーない。
67:名称未設定
08/10/24 23:10:52 Kod93loi0
>>53
display dialogでHTML(CSS?)のフォント指定ができるのかよくわかりませんが,
とりあえずは自分で使うだけなので,デリミタ置換で十分かなと思います.
ありがとうございました.
68:名称未設定
08/10/24 23:20:07 frwVBtf10
>>66
AppleEventの命令を内部的にどうマップするかは別にCocoaに限った問題じゃない。
アプリやクラス毎に意味付けは変わって来る。
だからこそStandard Suiteに総称的なselectがあるわけで、代わりに意味不明な
命令を繰り出す理由にはならんよ。OOP的な方向とも相反する。
69:55
08/10/24 23:48:15 Kw8HwHQ60
色々奥が深いんね。勉強になるし楽しい。
>>67
display dialog でよいのか。最終エディタとかに持って行くんかとおもった。
70:名称未設定
08/10/25 00:02:39 /nRWm3zs0
2chResView.app
MBP intel 10.5.5でお試ししてみましたが,これはいいですね.
ワンセグを使っているんですが,まさに実況スレの自動更新とあいまって,
スレの流れがよくわかるわかる.
2chResViewのみですが,今のところこれといった問題もありません.
実況は2chブラウザでなく,2chResViewのみでいいかなって思うぐらい.
GrowlとAppleScriptの可能性を感じさせるアプレットですね.素晴らしい.
71:名称未設定
08/10/25 00:55:28 /nRWm3zs0
>>69
display dialogなんですよ.もしJedit Xとかに持っていくのなら
フォント変更ができると思うので,大丈夫じゃないかと思います.
72:名称未設定
08/10/25 03:02:01 F4pUJc+e0
tell application "Safari"
activate
set visible of window 2 to false
set visible of window 2 to true
end tell
少し遅くなるがこれもありか?
73:名称未設定
08/10/25 07:19:58 /nRWm3zs0
読み飛ばしてもらっていいんですが,
うちのLeopardでは,>>72 が希望にそった動作をしてます.
>>65 はドックからの起動だと大丈夫なんですが,アプリ単体で
起動した時はウインドウがアクティブにならないみたいです.
74:名称未設定
08/10/25 16:44:23 /nRWm3zs0
www.gcug.net/test/gmc.png
レス >>53 で教えて頂いたスクリプトと2chResViewのソースをあわせて,
display dialogではなくGrowlでカレンダー表示させるようにしたスクリプト.
75:名称未設定
08/10/25 17:18:51 zRBX1lq80
2chResView導入テスト中。
モタスポ実況板のスレURLを入れると、
「&amp;1(←本当は半角)を取り出すことはできません。」と言われて、
動作が止まってしまいます。下記スレで起こりました。
URLリンク(live-racing.net)
どこをいじればいいかアドバイスいただけますと大変助かります。
Intel iMac、10.5.5です。よろしくお願いします。
76:名称未設定
08/10/25 18:05:23 VbXcGaBh0
Growlスレに作者がいるって訳じゃないの?
77:名称未設定
08/10/25 23:42:03 x2JBMzcV0
string id 8199ってなんじゃ?
78:名称未設定
08/10/26 01:08:20 e+jOjkx/P
>>75
対応したと思う
79:名称未設定
08/10/26 02:14:27 QJLbb3aC0
>>78
2chはここしかみてないから使わないけどソース見てて。おしえてくれろ。
set AppleScript's text item delimiters to {hoge as Unicode text}
どしてリストにして渡してるの?どっかで何か変わったの?これやらないとだめ?
80:名称未設定
08/10/26 02:15:30 4cxLaD6K0
>>79
日本語でおk
81:名称未設定
08/10/26 02:19:56 QJLbb3aC0
>>77
あ、私かいな。ちゃんと引用しろよ。
Unicode ID のことだよ。前スレで盛り上がったじゃん?data<>とかで書かなくてもよいんだ。
そいえばちゃんとお礼してない。教えてくれた人ありがとう。
82:名称未設定
08/10/26 02:23:45 QJLbb3aC0
>>80
78さん? >>53 で私の使ってるハンドラ string を渡してる。
delimiters に関してなにか変更あったのかな?と。あまりAppleのdocument読まないから。
83:名称未設定
08/10/26 02:25:13 4cxLaD6K0
どうやら日本人じゃないらしい
84:名称未設定
08/10/26 10:17:39 lUfGSYy60
>>81
ありがと。
Tigerだとコンパイルできるけど動かんぞ。
Leopard以降なのか?
なんかUnicode対応以来,あちこちぐちゃぐちゃしてわからんことが大杉。
85:名称未設定
08/10/26 11:04:50 hQeVnxlp0
君ら、もうちょっと脳に汗かこうや
ググらず、Language GuideやRelease Notes読まず、じゃわか(ry
86:75
08/10/26 13:32:52 zHn/rlQA0
>>78
ご対応ありがとうございました。
ただ、残念ながら動きませんでした。エラーも同じです。
Growlからは「スレが見つからないので新しいスレを選択しろ」と言われます。
87:名称未設定
08/10/26 16:51:07 TVo/dLc60
AppleScriptのdo shell scriptからPerlを扱えるようカジりはじめたのですが,
最初からつまずいてます.
set textMess to " Leopard."
do shell script "perl -e 'print \"Hello,\n\";'"
do shell script文の後にAppleScript変数textMessをつけて,"Hello, Leopard."
という結果にしたいのですが,"echo " & textMessをこれにどうつなげていいのか
わかりません.教えていただけませんか.
88:名称未設定
08/10/26 17:18:51 1fRNd1I/0
>>87
コマンドラインを変数にして文字列とつなげればインジャネ?
つかここら辺基本だから、どっかのサイトでみっちりやっといた方がいいと思うけど。
まあ適当にサンプルおいとくからがんばれ
on open theFileList
repeat with theFile in theFileList
set commandLine to "openssl sha1 " & {quoted form of (POSIX path of theFile)}
set xxx to do shell script commandLine
set pushTemp to AppleScript's text item delimiters
set AppleScript's text item delimiters to "= "
set xxx to last text item of xxx
set AppleScript's text item delimiters to pushTemp
display dialog xxx
end repeat
end open
89:名称未設定
08/10/26 17:33:51 TVo/dLc60
>>88
do shell scriptを変数に書き出して,それをもう一つの変数につなげるのではなくて,
do shell script 内のPerl内でつなげて完結させるということを聞きたかったわけです.
上のサンプルは別な部分で参考にさせていただきます.
90:名称未設定
08/10/26 17:40:30 TVo/dLc60
わかりにくかったかもしれません.自分でいろいろ試してみます.
91:名称未設定
08/10/26 17:52:57 1fRNd1I/0
>>89
do shell script で発行されたコマンドに対して対話的に何かしたいといいうことか?無理。
92:名称未設定
08/10/26 18:28:28 TVo/dLc60
>>91
言われている通り無理っぽいので,テクニカルノートのサンプルを参考にして
一度AppleScript変数に読み込ませてからつなげる方法にしました.
set textMess1 to "Hello,"
set textMess2 to " Leopard."
do shell script "echo " & textMess1 & textMess2
-- "Hello, Leopard."
ありがとうございました.
93:名称未設定
08/10/26 20:07:32 VTGefaxq0
set textMess to " Leopard."
do shell script "perl -e 'print "Hello," & textMess & "\n";'"
これとは違うって事?
解決したみたいだからいいけど
94:名称未設定
08/10/26 20:30:36 TVo/dLc60
>>93
そうかそれでいいんですね.
何度やってもエラーになってたので,ダブルクォーテーションが抜けてたか,
増えすぎたバックスラッシュでこんがらがってたのかも.ありがとうございます.
ちょっとでもわかると,Perlが楽しくなってきました.
95:名称未設定
08/10/26 21:29:52 e+jOjkx/P
>>79
どっかからのコピペなんで詳しいことはわかりません
>>86
試したら自分もエラーが出たのでもっかい直しました
96:名称未設定
08/10/26 21:57:07 c5rHVkSN0
このつぶやき見飽きた。もう勘弁してくれ。
>>33 でも,なんだかわかんないけど,楽しい.
>>94 ちょっとでもわかると,Perlが楽しくなってきました.
97:名称未設定
08/10/26 22:02:11 leFDhUAz0
>>96
それがプログラミングだからしょうがない。
楽しくないプログラミングなんて誰もやる気しないだろ?
あの試行錯誤感がいいんだよ。
98:名称未設定
08/10/26 22:11:01 VTGefaxq0
>>94
"ワンセットを即座に普通の文字として認識出来るように鍛えるか
set DQ to """
do shell script "perl -e 'print " & DQ & "Hello," & textMess & "\n" & DQ & ";'"
とかやればApplescriptでのダブルクォーテーションとの違いがなんとなくつかみやすいかも。
文字の並びが長くなっちゃうけど
>>96
そんなら無視しれ。
オレ覚えはじめのころにそんなこと言われたら相当凹むわ。
99:名称未設定
08/10/26 22:21:26 PmjoJ6HJ0
環境変数の展開とかしない限りは「¥"」じゃなくてシングルクオート「'」でいいんじゃないのか?
100:名称未設定
08/10/26 22:31:05 tzBda6Gc0
楽しいのは全くもって結構だが、いちいちここに書く必要はない。
101:名称未設定
08/10/27 01:05:49 xTSmnSN80
>>96 >>100 そういうお前がry
102:名称未設定
08/10/27 07:43:15 0eZUsEsb0
>>98
わかりやすくていいですね,慣れるまではそれを使ってみます.
>>99
自分が書き方知らないだけだと思いますが,シングルクォートで書けなかった…….
103:名称未設定
08/10/27 16:35:43 SCa34hkm0
せめて句読点をちゃんと使って欲しい。
104:名称未設定
08/10/27 20:57:21 rwh9I1Ct0
わかり難い物はquoted form of 使うべきだろ。
105:名称未設定
08/10/28 22:28:26 uR63MieC0
>>84
PARKにまだ書かれていないみたいだから、まとめ的に昔と今の違いをここに書いとく。
めちゃくちゃ便利になったってのが解ると思う。Unicodeつかう人にとってだけかもだけど。
とりあえず2万字回すべし、面白いぞ。"25991 23383 12497 12524 12483 12488 35211 12390 12429 12399 28961 12375 12394"
set hoge to 9891 as real
set leopardString to string id hoge
set tigerString to (《data utxt26A3》 as Unicode text) --《》は半角ね。
log leopardString & space & tigerString
106:名称未設定
08/10/28 22:31:24 uR63MieC0
ついで、クォートの使い方私風。参考になれば。
上の10進出すのに使った。ちょうど良いかも。
set hexNum to quoted form of "26A3"
set decNum to do shell script "ruby -e " & quote & "p " & hexNum & ".hex" & quote
return decNum
107:名称未設定
08/10/28 22:47:04 Kb/uGXgy0
>>106
これを参考にして,これから作るScriptに利用してみます.
ありがとうございます.
108:名称未設定
08/10/29 00:30:23 S4POVvan0
見直さずに送信は悪い癖だな。治す気はないが。補足もしくは蛇足をば。
勉強し始めの人にはちょっとしたことでもわけ解んなくなるから。←通ってきた道。いや今でも。
>105 1行目の as real
エラーメッセとNo.が欲しくていろいろ遊んでたのを消すの忘れてた。
なんも書かんでよいぞ。 as integer でもよいか?宣言した方が読み返しやすいかな?
>106 で16進から10進変換かいてるが10進取るだけなら >105 の tigerString つまりキャラクタを id of したら10進とれる。
set hoge to id of "腐" とかで結果みてくれ。ASCII number と character のUnicode 用みたいな物だ。
で >106 はPearl のハンドラ書き直したときのをデバッグついでに1行使いしてみただけ。quote の流れの役に立つかな?と。
とにかく文字処理する人間に取ってはAS2.0と ruby には感謝感激雨霰だな。
ちなにみこいつどんだけ暇なんだ?と思うだろうが確かにそうだ。
仕事する気がおきんのでここで遊んでる。仕様書なんてこの世からなくなればよいのに。
109:86
08/10/30 21:07:17 uO0uvF/a0
>>95
今度は動きました。
どうもありがとうございました。
便利に使わせていただきます。
110:名称未設定
08/11/06 01:32:52 ZibL1xWP0
広義の意味でのApplescriptの質問なのですが、
これまで自分で使うためとフリーウェア(1本だけですが)としてスクリプトを組んだことはあるのですが
はじめて、お客さんに頼まれてスクリプトを組みました。
スクリプトはだいたい200ライン程度、スクリプトエディタを使用しユーザーインターフェイスは最低限のものです。
いちいちtellで階層を呼び出すのは嫌いなので、割と短めのライン数になっていると思います。
内容を言わないでの質問で申し訳ないのですが、一般的にはどのくらいの額を請求できるものなのでしょうか?
最終的にはお客さんと相談して決めようと思っているのですが、
あまりにも常識はずれになってしまうといけないし、自分が安く提供したのか、高く貰ったのかくらいわかっておきたいので
111:名称未設定
08/11/06 01:54:35 6C3sgi7U0
普通は開発にかかった時間で請求するものだと思うけど。
個人的には,AppleScriptで稼ぐのはあきらめました。
112:名称未設定
08/11/06 02:23:52 ZibL1xWP0
>>111
ありがとう。
最初うまく動かなくて2日位かかってしまった。
最初からあることに気づいてれば数時間で出来ちゃったと思う
>個人的には,AppleScriptで稼ぐのはあきらめました。
やっぱり仕事として発生しないということかしら...
113:名称未設定
08/11/06 02:42:27 xe1A6rEs0
会社員なので参考になりそうな答えは提示できないけど、
別にAppleScriptに限定して考える事は無いんじゃないかな
あと今更言ってもアレなんだが、
先に決めとくべきだったんじゃないかとは思う
114:名称未設定
08/11/06 12:53:50 ZibL1xWP0
>>113
アプリケーション制御とファイル管理をするような内容だったので
開発の容易さからApplescriptになりました。
私自身使える言語がApplescriptとjavascriptしかないというのもあります。
私はプログラマーではなく、自身のためにスクリプトを組んだり
レイアウトフォームに付随して(業種がばれますね)スクリプトを組むことはあったのですが
スクリプト単体で発注されたのははじめてで、うれしくて予算は二の次にしちゃいました。
やっぱり、まずはお客さんに満足していただくよう努力して、評価を得ようとおもいます。
有り難うございました。
115:名称未設定
08/11/06 14:51:35 SrjMOGQVP
「報酬は?」「あなたが…満たされた分だけ…」
116:名称未設定
08/11/06 19:47:28 5FgNhhrY0
3万円〜30万円ってところかなあ。
117:名称未設定
08/11/07 00:13:21 KE7FU1C70
日給いくらで申請するかだよね。
118:名称未設定
08/11/07 00:25:54 e1eBJROM0
スクリプト単体じゃなくて別に主たるコンテンツの依頼があったのなら
「また次も宜しくお願いしますね」的なおまけとして差し上げても良かったのにな。
119:名称未設定
08/11/07 01:51:01 U7X/qCx20
>>114
いや、「何故わざわざAppleScriptで作ったの?」とかそんな話じゃなくてさ
対価の見積もり基準としてAppleScriptだと幾ら?って限定する必要はないわけで、
マ板かム板あたりで一般的な話として相談する手もあったんじゃねーのって事です
AppleScriptで書こうがObjective-Cで書こうが、
中身に詳しくないお客にしてみれば同じ事じゃね?
120:名称未設定
08/11/07 13:15:50 QwQjnn/H0
>>119
ありがとう。>>108の方の書き込みをみて、ここで聞いてみようかなと思った次第です。
>>111,117
時間計算してしまうと私の能力が低いと高い請求になってしまう。それもちょっと...
>>116
私はその低い方の金額でもOKな感じです。
>>118
それなりに頂ければ、やる気も出てくるので...やっぱり頂きたい
みなさん本当にありがとう。
121:名称未設定
08/11/07 21:09:06 KE7FU1C70
>>120
能力と時間給の問題は,そのとおりなのだけれども,世間はそれで動いているんだよね。
能力がありすぎると損をするような...
122:名称未設定
08/11/08 12:46:11 n/AS+2ei0
>>121
FP
123:名称未設定
08/11/08 21:23:48 ijpwYJEF0
能力があればそれを理由に時間単価を上げられるじゃない
124:名称未設定
08/11/08 22:45:01 dQzZVq1f0
能力がある→単位時間当たりの料金が高い→でも開発時間が短い ←こっちの方がクライアントのメリットは多いはず
能力がない→単位時間当たりの料金は低い→でも開発時間が長い
ってことでまず自分の時給を決めなさい。750円/hからスタートです。
125:名称未設定
08/11/09 18:45:13 75hQjtnT0
次のような処理を一気にしてくれるスクリプトを書きたいと思っています。
1) ~/Desktop にあるすべてのzipファイルを解凍
2) ~/Desktop にあるすべてのhtmlファイルをゴミ箱に移動 or 削除
1)はStuffIt ExpanderやUnarchiver、2)はFinderに、それぞれやらせればいいのだと思いますが、
具体的にどういう命令にすればいいか分かりませんでした。
初歩的な質問で恐縮ですが、アドバイスお願いします。
126:名称未設定
08/11/09 18:51:37 10dOh0aU0
Automatorなら分からなくても出来るが
それでは駄目なのかい
127:名称未設定
08/11/09 20:02:29 J1ADMCxr0
>>125
簡単に作りたいんだったら
1)はzipファイルをFinderでopen
2)はhtmlファイルをFinderでdelete
両方とも拡張子で選びだせばいい
128:名称未設定
08/11/09 21:40:44 J1ADMCxr0
>>125
>>127の説明だけだとわかんないだろうから具体的なものを書いとく
2)の方だけだよ。あとは調べるなり応用するなりしてみて
tell application "Finder"
delete (every file of (path to desktop folder) whose name extension is in {"html", "htm"})
end tell
129:名称未設定
08/11/10 00:13:25 G+bZelPo0
>>125
こんなんでもいいのかと
tryは該当項目がない時の対応
try
do shell script "open ~/Desktop/*.zip"
end try
try
do shell script "rm ~/Desktop/*.html"
end try
130:名称未設定
08/11/10 03:47:18 HbJJ7IMM0
>>129
シェルスクリプトでやれってことですね、わかりますw
131:名称未設定
08/11/10 11:39:44 jKYev5ya0
最初からシェルスクリプト使った方が効率的だしw
132:名称未設定
08/11/10 14:09:55 E18X5wfz0
なんか雰囲気からして、一日一回定期的に動かしますみたいなものに見えるんだよね。
それだとシェルスクリプトとcronだわなあ。
133:名称未設定
08/11/10 14:32:28 /YsdEu920
>>132
それは古典的なunixの場合、OSXではlaunchdを使う。
URLリンク(developer.apple.com)
134:名称未設定
08/11/10 19:56:01 5VAvNdNM0
へー
135:名称未設定
08/11/11 03:07:18 6TGtup5L0
思いっきりcron使ってた。
launchdってそういうこともできるのか。
136:名称未設定
08/11/11 15:47:06 eOj/IPUD0
>>133
iCal のイベントで呼出してたw
ところでファイル名やフォルダ名に全角パーレンが入ってると
アプリでopenした時にエラーになってしまうのですが
対処はどうすればいいんでしょう?
137:名称未設定
08/11/11 23:59:13 2Z6c/c/30
>>120
今更だけどクライアントと先に話すべき事だよね。
考え方によっては、今後の事も考えて次の仕事とセットで値段を決める方法もあるよ。
例えば「今回は普通5万もらうんですが、これだと高くなるので次の○○とセットで7万でどうですか?」とか。
ついでに、photoshopCS3で楕円形の選択範囲ってつくれる?
普通の長方形とかなら
tell app "photoshopCS3"
select current document region {{500, 520}, {501, 2020}, {501,2020}, {500, 2021}}
end tell
で作れるけど、楕円形が作れない・・・・
教えて下さい。
138:名称未設定
08/11/12 07:22:19 rk8/vzcM0
>>137
CS3 の AppleScriptReferenceGuide は読めるという前提で。
標準楕円なら楕円方程式に放り込んで、必要とする平滑度でポイントの座標をだす。
メモ。((x*2)*(a*2))+((y*2)*(b*2)=1 -->第1象限、abは長短半径。bが0ならxはaね。
円を扁平させたのを3次ベジェで書くなら path item で作って create selection 。これなら12個の座標で行けるね。
ググって方程式あるかな?Illstratoer で楕円書いて direction みてみたら55%くらい引っ張ってあるね。
って遊んでたらお弁当作る時間無くなった;;
139:名称未設定
08/11/12 07:32:18 JWYw+knL0
>>135
launchdを使えば周期動作やフォルダ監視スクリプトも待機負荷無しで作れる。
cronと違いLaunchAgentsはloginしていることが保証されるから、AppleScriptや
GUIアプリを使う物はここに置けば良い。OSXの多くのAPIはloginwindowや
WindowServerとMach IPCでやり取りして動くからlogin状態が必要になる。
140:名称未設定
08/11/12 12:22:33 RLAaAYsU0
>>138
楕円方程式が間違ってるぞ
((x^2)/(a^2))+((y^2)/(b^2))=1
でもなんかカッコいい...惚れた
141:名称未設定
08/11/12 17:26:14 LaYCdK41P
円を扁平させたのも楕円もまったく同じだよ。
>>140の式
142:137
08/11/12 20:54:38 rk8/vzcM0
恥ずかしい。。。。鬱だ死のう。。。っていうんだっけ?2ちゃんねるでは。
ぐはー、いいんだ寝起きは駄目なんだ。
円を扁平させても焦点1つじゃないん?暇なときに書いて比べてみる。
近日点、遠日点、重心の共有、ケプラーの法則。同一時間で起動が描く焦点からの面積は同一だっけ?
なつかしいな。あの頃は HyperTalk で書いてた。←天文部兼写真部。Macで回る赤道儀がほしかった。
143:138
08/11/12 20:57:29 rk8/vzcM0
↑自分の番号間違えた;;こりゃほんとにだめだ。
144:名称未設定
08/11/12 22:40:12 RLAaAYsU0
>>137
結構いいヒントが出てるからもう出来るんじゃないの?
あと、もう一つの手段として
javascriptを使って三角関数で楕円を作る方法あるぞ
145:138
08/11/12 23:59:05 rk8/vzcM0
>>144
もう寝る。眠い。
でもってあんたわたしになにいってんの?書けない????
かけるにきまってるじゃないの。なにがJava?Rubyでもなんでも。shellでも。
三角計算1行で呼べるのがASじゃん。なめたこといってんじゃねーよーーーー
あーーーー。うわ、、、、ごめん、私相手じゃなかった。だからーーーー、番号間違えてただけだよ。
ごめん。うわ。はずかし。えとーーーーー。にゃ?
消すべきだよね、送信したらだめだよね。でも、押すんだろーな。せっかく書いたからってだけで。
146:名称未設定
08/11/13 00:04:24 Xd/R6mGT0
あんた雑談スレでも見るけど、正直、その口調ウザい。
続けるならコテなりトリップなり付けてくれない?
147:名称未設定
08/11/13 00:05:05 O8lIbEpR0
>>145
もうネロだワン
148:137
08/11/13 01:06:16 C6jPTMrr0
みなさんありがとうございます。
AppleScriptReferenceGuideは一応読むんですが、いつも良く分からず考えられる組み合わせ全部やってる状態です・・・
せっかく教えてもらったのにさっぱり理解できません。わからない言葉全部ググってもどうすれば楕円ができるやら。
たとえば、
select current document region {{0, 0}, {0, 100}, {200, 100}, {200, 0}}
で200*100の横長の選択範囲が作れるますよね?
その時に、Photshopの楕円選択範囲ツールで{0, 0}から{200, 100}ドラッグした時とおなじ楕円を作るにはどうしたらいいんでしょうか?
create selectionのパラメーターにはそれらしいものも見当たりません。
select current document region {{0, 0}, {0, 100}, {200, 100}, {200, 0}} as oval とかできればいいんですけどね・・・
ほんと宜しくお願い致します。
149:137
08/11/13 01:22:21 C6jPTMrr0
あれ?もしかしてパスで楕円を作って選択範囲を作る必要があるんですか?
パスになるともっとわからない・・・
明日車で出張なのに気になって眠れない。
150:名称未設定
08/11/13 01:30:46 EqSLftju0
>>148 勘違いをしているようなので
以下が楕円方程式から求める方法
これでいいんだよね?
set a to 100
set b to 50
set ox to 200
set oy to 200
set ovalList to {_1:{}, _2:{}, _3:{}, _4:{}}
set oval to a reference to ovalList
set x to -a
set n to 1
repeat until x ≥ 0
set y to ((1 - (x ^ 2) / (a ^ 2)) * (b ^ 2)) ^ 0.5
set end of oval's _1 to {x + ox, y + oy}
set beginning of oval's _2 to {-x + ox, y + oy}
set end of oval's _3 to {-x + ox, -y + oy}
set beginning of oval's _4 to {x + ox, -y + oy}
set x to x + n
end repeat
tell application "Adobe Photoshop CS2"
select current document region oval's _1 & oval's _2 & oval's _3 & oval's _4
end tell
151:名称未設定
08/11/13 02:19:22 w1vAjk9p0
>150
すげーな。素人にはさっぱりわかんね!でも
repeat until x ≥ 0
って通らないぞ。
152:名称未設定
08/11/13 07:30:54 I6x4aDNX0
x >= 0
かな、入力する時は。後で勝手に≧に変換されるんだっけかな。
153:名称未設定
08/11/13 07:32:45 I6x4aDNX0
>>だったかな、入力する時は。
って意味です。すまそ
154:名称未設定
08/11/13 07:57:22 X81kC3MY0
積分思い出した
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5140日前に更新/344 KB
担当:undef