AppleScript アップルスクリプト 質問、発表 3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名称未設定
2008/10/03(金) 18:41:42ID:Abs+u1Ko0【注意】
安直なスクリプト作成依頼、丸投げはやっちゃダメ! わからない点、エラーが解決できない点について、スクリプト片を添えて質問しよう。
・前スレ、関連旧スレ
AppleScript アップルスクリプト 質問、発表 2
http://pc11.2ch.net/test/read.cgi/mac/1197443062/
AppleScript アップルスクリプト 質問、発表
http://pc11.2ch.net/test/read.cgi/mac/1174045850/
【標準装備】スクリプトエディタ
http://pc9.2ch.net/test/read.cgi/mac/1111760449/
おもろい、めずらしいアップルスクリプト発表会 6
http://pc7.2ch.net/test/read.cgi/mac/1117979906/
・参考リンク
AppleScript ヘルプ
help:///Library/Documentation/Help/AppleScript.help
発表まとめ
http://members.at.infoseek.co.jp/obto/script/script.html
MacWiki - AppleScript
http://macwiki.sourceforge.jp/cgi-bin/wiki.cgi?AppleScript
AppleScript PARK
http://www.tonbi.jp/AppleScript/
TN2065: do shell script
http://developer.apple.com/jp/technotes/tn2065.html
http://developer.apple.com/technotes/tn2002/tn2065.html
0002名称未設定
2008/10/04(土) 00:31:28ID:t3kkMEtL00003名称未設定
2008/10/05(日) 17:59:06ID:jL0aulsu00004名称未設定
2008/10/05(日) 18:02:53ID:N1ohX23500005名称未設定
2008/10/06(月) 03:06:39ID:L5eEHjv200006名称未設定
2008/10/07(火) 02:14:48ID:lCUqUn5J0を実況用にgrowlスレ
ttp://pc11.2ch.net/test/read.cgi/mac/1178220147/298
で作っていただいたのですが、PowerPC用のようで
自分の環境ではレスの取得などはうまくいっているようなのですが
その表示がうまくいかないようです。
テスト用のscriptを作っていただき試したところ、AppleScriptからgrowlへの動作は問題なく、growl自身の問題でもないようです。
レスを表示させる動作に問題があるようです。
環境はGrowl 1.1.4 OSX10.4.11/Intelです。
Applescriptはこちらのものです。
ttp://memogaki.soudesune.net/zip/2chResView.app.zip
これをIntelMacでも使いたいのですがどのようにしたら良いのでしょうか。
このような動作をするものはIntelでは無理なのでしょうか。
作った方もなぜ動作しないか分からないそうなので
IntelでのAppleScriptについて詳しい方いらっしゃいましたら教えてください。
よろしくお願いいたします。
0007名称未設定
2008/10/07(火) 03:42:29ID: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に変更して独自に作り直せばいい。
作者さんが転載、改造、再配布を許可しているのでそれに甘えて完成品はこちらから。
http://dl.getdropbox.com/u/10395/2chResView.zip
propertyのheaderFileNameをtest2にして本家とも共存できるようにしました(少なくとも自分の環境では)。
本家との違い(というか一部不具合)
・メニューUIが日本語
・実行プロセス名が2chResView.appではなく2chResView
・Universalバイナリ
・メニューからもDockからも終了できずActivitiy Monitorから強制終了する必要がある
0008名称未設定
2008/10/07(火) 03:46:09ID:Y47w/it700009名称未設定
2008/10/07(火) 03:55:53ID:Y47w/it70バンドルの中のContents/Info.plistを以下のファイルで置き換えてください。
http://dl.getdropbox.com/u/10395/Info.plist
ただしその場合はメニューもDockのアイコンも出なくなるので起動後別のソフトを前面に出してしまうと2chResViewに戻る方法が無くなって終了する以外の選択肢が無くなります。
挙動を元に戻したい場合はバンドル内のInfo.plistをSmultronのようなテキストエディタで開いて
<key>NSUIElement</key>
<string>1</string>
の2行を削除してください。
0010名称未設定
2008/10/07(火) 04:32:52ID:lCUqUn5J0検証、改造ありがとうございます
今試してみたのですが、Growlの最初の通知はうまくいくのですが
実況刷れなどでの自動更新されたのレスはやはりGrowlでの表示はできないようです。
イベントログではレスの内容を取得できているようなのですが・・・
取得したレスのGrowlでの表示がうまくいかないようです。
レス取得もそちらの環境では可能でしょうか?
0011名称未設定
2008/10/07(火) 04:47:48ID:lCUqUn5J0動作としてはurl入力後
~レススキップしました
という通知がきた後、何の通知もなくなってしまいます。
イベントログではレスの取得はされているのですが、それがGrowlに通知されない状態です。
板のアドレスを入力した後もレス表示するまではうまくいっている様子です。(スレを選んだりは問題ない。)
0012名称未設定
2008/10/07(火) 07:25:52ID:Y47w/it70自分の環境では~レスをスキップしましたという表示の後そのより後のレスの通知が表示されます。
さっきまでもう少し実況板に適した仕様にしようと色々いじっていたのですが
やはり他人の書いたスクリプトを編集するというのは難しいので現状では中途半端な状況ですが一応上げておきます(本家や先ほどのものとは共存可能です)。
http://dl.getdropbox.com/u/10395/2chResViewLive.zip
オリジナルからの変更点
・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に通知しないという荒技(というかその場しのぎ)により対応。
(本当はここは本来のレス番号が表示されるようにしたかったのですが自分の技量不足で出来ませんでした。また後日時間があるときにトライします。)
(一応オリジナルのレス番号も表示されるほうもコメントアウトして残してあります。)
0013名称未設定
2008/10/07(火) 08:11:16ID:lCUqUn5J0そうでしたか。。新版でもやはり変わらずレスは表示されない・・・
うーん、何がいけないんだろう。
>・解決策とはとうてい言えないがInfo.plistでNSUIElementを1に設定し実質役立たずなメニューとDockアイコンを無効にした
拡張子を.scptに変更してscriptediterから実行し、editerはDockに収納というのがスマートかなーと思ってました。それなら終了できるので。
いろいろと朝早くに面倒を見ていただきありがとうございます。
0014名称未設定
2008/10/07(火) 19:12:05ID:v8Kp0RHoPGrowlの通知のスタイルをBubblesにしても駄目ですか?
CSS形式だと連続表示した時に駄目なときがあるのでそれの可能性もちょっとあるかも
0015名称未設定
2008/10/07(火) 20:10:43ID:lCUqUn5J0Growlはいろいろなパターンで(通知スタイル、出てくる場所)試してみましたがやはりでてきません。
新規アカウント作って試しましたがやはりダメでした。
実行中アクティビティモニタを見ているとcurlというプロセスが着いたり消えたりします。
2chResview Liveを最前面にしているとカーソルが白黒の風車が着いたり消えたりします。
CPU使用率もメモリも十分に余裕があります。
ちなみに2GHzCore2Duo メモリ1GBです。
なにか自分の環境が悪いのでしょうか??
0016名称未設定
2008/10/07(火) 21:09:31ID:v8Kp0RHoPもう一個思い当たるのがas Unicode textをGrowlHelperAppで
通知するテキストに対して行うってのがあります。
昔DragThingなどでうまく動かない時にas Unicode textを適当に付けたら
動くようになった記憶があります。
http://memogaki.soudesune.net/2chResView.html
にそうしたのを置いておきました。
>>7さんの報告によると自分と同じ10.5でも動かないようなので違う可能性は高いです。
でもAppleScriptにPPCとintelの違いなんてあるんでしょうか?
0017名称未設定
2008/10/07(火) 21:23:10ID:kwz1vCP70http://mtlab.ecn.fpu.ac.jp/xnote/070209160623.html
とりあえず2chでログとか関係なしに
AppleScriptからGrowlに通知を送るだけのスクリプトでも作ってみたら?
0018名称未設定
2008/10/07(火) 21:48:43ID:lCUqUn5J0作者の方でしたか。ありがとうございます。
試してみたのですが、やはり表示されませんでした。。
>>17
作者様に作っていただいた
http://memogaki.soudesune.net/2chResView.html
http://memogaki.soudesune.net/zip/2chResViewtest.scpt.zip
でAppleScriptからGrowlに通知を送るテストはしたのですが、それはおkでした。>>6にkwsk書かず申し訳ない。助言ありがとうございます。
0020名称未設定
2008/10/07(火) 22:06:35ID:lCUqUn5J0かしこまりました。
お邪魔なようなのでもう書き込みはしません。
いろいろとしていただいたお二人ありがとうございました。
0021名称未設定
2008/10/07(火) 22:29:25ID:KlERJHmd0こういう奴見るとほんと腹立つわ
0022名称未設定
2008/10/07(火) 22:36:57ID:kwz1vCP70002312
2008/10/07(火) 22:52:07ID:Y47w/it70寧ろイベントログとかもう少し詳しく書いてくれれば力になれたかもしれないのにという感じ。
というか中途半端に動作するものをアップした自分が悪い?
0024名称未設定
2008/10/07(火) 22:55:18ID:yqsxH7SN0流石にちょっと、という感はある。
0025名称未設定
2008/10/07(火) 23:10:09ID:AJUayXJ100026名称未設定
2008/10/09(木) 14:41:14ID:EnaYP1mJ0登録方法がよくわからず困っています.もしわかる方いたら教えていただけませんか.
0027名称未設定
2008/10/09(木) 18:18:36ID:EnaYP1mJ0これだけじゃなんなので,Script Debugger4の話題を一つ.
うちのintel Leopard環境では特定のスクリプトでApple Event logを表示させたり,
sourceボタンを押すと強制終了したり操作不能になる不具合が出てます.もしこれから
買おうと思っている人は,動作確認をしっかりやった方がいいかもしれません.
0028名称未設定
2008/10/11(土) 00:58:27ID:YGVRabN70/tmpから/var/tmp/folders.uid/TemporaryItemsに変わる。
なもんでログインし直すとゴミ箱にRecovered filesが出来ちゃう。ちょっと邪魔臭い。
0029名称未設定
2008/10/12(日) 23:12:57ID:UYsjvl6V0YouTube動画を高解像度版で表示させるアプレット.フリーウェア.
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
0030名称未設定
2008/10/12(日) 23:39:29ID:Rk15pzzC00031名称未設定
2008/10/12(日) 23:42:57ID:UYsjvl6V00032名称未設定
2008/10/13(月) 01:17:47ID:4W8DvxVS0踏む気にもならんが、&fmt=18足してるだけじゃないんか?
せめて開いてるページの高解像のソースをmp4で別名保存するってのとか位したら?
って、書くなよ。それくらいもうみんな書いてるから。
0033名称未設定
2008/10/13(月) 01:26:14ID:JL5lkbOm0はい,ただ足してるだけです.別名保存もしてません.皆さんが書いてる通りです.
予想どおり,ほとんど踏まれてません.でも,なんだかわかんないけど,楽しい.
0036名称未設定
2008/10/13(月) 01:48:58ID:JL5lkbOm010.4.11では動かなかったですか.すみませんです.
10.5の環境しかもってないので,原因突き止めるのは時間かかりそうです.
いずれにしてもこの話題長くひっぱるのはあれなので,なんかわかったら
サイトの方に書いておきます.どうもでした.
0038名称未設定
2008/10/13(月) 02:36:00ID:dBXY5jcQ0単純にurlに&fmt=18付けるだけだから、俺みたいなスクリプト初心者でも出来るよ。
0039名称未設定
2008/10/13(月) 03:45:44ID:4W8DvxVS0しね、しんでお詫びしろ真面目に勉強してAS書いてるやつに。
ASからsafari開かんでもシェルスクでcurlってのもあるぞ。
べ、べつにお前に教えてるわけじゃないんだからな!!勘違いするなよな!!
0040名称未設定
2008/10/13(月) 09:55:40ID:8JYSbZ9o00041名称未設定
2008/10/13(月) 09:55:58ID:YwtPc7by0過去スレで質問しまくって「できましたー」って編集不可で公開した人に似ててなんか変。
編集不可のスクリプトの発表はスレ違いとテンプレに追加してほしい。
0042名称未設定
2008/10/13(月) 10:07:55ID:S2bmhJwE0馬鹿にしてるのか。
0043名称未設定
2008/10/13(月) 10:36:11ID:dU9oInNnP動画の再生画質
http://jp.youtube.com/video_quality_settings
で設定しておけば高画質で再生されますよ。
0044名称未設定
2008/10/13(月) 12:32:22ID:P4LigQDi00045名称未設定
2008/10/13(月) 12:32:45ID:WM63qh/30サイトよりスレの方が早いので,あらためてこちらに.
Safariで動かなかったとのことですので,スクリプト書いておきます.
たぶん,これなら動作すると思います.
tell application "Safari"
activate
set theURL to get URL of document 1
open location theURL & "&fmt=6&fmt=18"
end tell
29のアプレットは,これにいくつかのエラー処理を加えたんですが,
それがきっと動作的にまずかったんだと思います.
0046名称未設定
2008/10/13(月) 12:41:12ID:WM63qh/300047名称未設定
2008/10/13(月) 15:38:07ID:vHCZlgpZ0なんてやっておくと裏のタブで開いておいたのを裏のままfmt=18で再読み込み。
全タブを取得しといてcurrent tabだけ除外すれば複数の裏タブもいっぺんに。
0048名称未設定
2008/10/23(木) 21:18:44ID:JnvvdQR80http://memogaki.soudesune.net/2chResView.html
こんなんでてたぞ
0049名称未設定
2008/10/23(木) 21:55:34ID:E3n5TJ5f0って話だったと思ったけど
それが解決してなければどうしようもないんじゃないかい
005012
2008/10/23(木) 22:00:25ID:lUXKK1hP0>>7のリンク先はもうないっぽいが。
0052名称未設定
2008/10/24(金) 10:04:11ID:gyloSjgq0do shell script "cal"でdisplay dialogの表示をそろえたい場合,どうしたらいいでしょうか?
0053名称未設定
2008/10/24(金) 11:36:24ID:Jf97pub80ヒラギノ?の標準半角スペースは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
0054名称未設定
2008/10/24(金) 12:13:07ID:YLgb7goj0Safariで複数のウィンドウ、複数のタブを開いている時、
アクティブなウィンドウを切り替えたいんですが、何か方法ないでしょうか?
set current tab in targetWindow to targetTab
でタブは切り替わってるんですが、ウィンドウが背面にある場合は背面のまま切り替わってます。
System Eventで clickしても同様です。10.5.5です。
要するに目的のタブとウィンドウをアクティブにしたいんですが、どうやれば良いでしょう?
ヒント下さい
0056名称未設定
2008/10/24(金) 13:29:40ID:YLgb7goj0thx!
ウィンドウは切り替わった...けど非アクティブのまま切り替わってる?
全面にあるウィンドウが非アクティブ、背面にあるウィンドウがアクティブの色
こーゆーもんですか?
0057名称未設定
2008/10/24(金) 14:58:36ID:Jf97pub80そのままじゃんか。答え自分で書いてるし。
次の行に activate とでも打ってみるんだ。
ひまだー(嘘だ!!!)仕事する気ならねー
0058名称未設定
2008/10/24(金) 15:18:19ID:YLgb7goj0答え...? よくわからんです。
Safari自体はactiveなんですが、
SafariのウィンドウをA(前面)B(背面)として、
通常はAがアクティブ、Bが非アクティブのウィンドウ色で並び順もその通りなんですが、
set index of B to 1
とすると、Bが非アクティブ、Aがアクティブ(つまり変更前のまんま)
の色のまま、Bが前面にくる(並び順だけ変わる)んです。
次の行にactivate書いてみましたが、これはアプリを前面に出すんですよね?
何か勘違いしてるのかな(´・ω・`)
やっと文法がわかってきたけど、これ難しいなぁ
0059名称未設定
2008/10/24(金) 15:59:35ID:ykVyKfvr00060名称未設定
2008/10/24(金) 20:17:48ID:YLgb7goj0tell application "Safari"
--activate
set (index of window 2) to 1
end tell
こいつの動作が納得いかない
とりあえず今はこういうモンだと思うことにしよう
0061名称未設定
2008/10/24(金) 20:46:43ID:MjFKpi3E0AppleScriptではよくあること
0062名称未設定
2008/10/24(金) 21:05:51ID:D8NGnyy50同じ動作になっちゃうんだ。
006355
2008/10/24(金) 21:22:57ID:Kw8HwHQ602つしか見てないけど、仕様かな?かな?
index 忘れて素直に System Events で書いた方がよいね。
0064名称未設定
2008/10/24(金) 21:31:39ID:D8NGnyy500065名称未設定
2008/10/24(金) 22:21:32ID:frwVBtf10だから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
とすれば動くが、こんなの判る人いない。
0066名称未設定
2008/10/24(金) 22:47:16ID:PrT8+w6N0ちなみにAppleScript的ルールからいうとバグではあるが、Cocoaな
世界ではActive Windowという単一の概念は無くて、
MainWindowとKeyWindow, Inactive Windowってのがある。
ちなみに、NSWindowクラスではKeyになるのを拒否したり出来るみたい
なのでセットしたプロパティが反映されているかその後チェックが必要。
Classic OSユライのASと考え方が違うのはある程度しゃーない。
0067名称未設定
2008/10/24(金) 23:10:52ID:Kod93loi0display dialogでHTML(CSS?)のフォント指定ができるのかよくわかりませんが,
とりあえずは自分で使うだけなので,デリミタ置換で十分かなと思います.
ありがとうございました.
0068名称未設定
2008/10/24(金) 23:20:07ID:frwVBtf10AppleEventの命令を内部的にどうマップするかは別にCocoaに限った問題じゃない。
アプリやクラス毎に意味付けは変わって来る。
だからこそStandard Suiteに総称的なselectがあるわけで、代わりに意味不明な
命令を繰り出す理由にはならんよ。OOP的な方向とも相反する。
006955
2008/10/24(金) 23:48:15ID:Kw8HwHQ60>>67
display dialog でよいのか。最終エディタとかに持って行くんかとおもった。
0070名称未設定
2008/10/25(土) 00:02:39ID:/nRWm3zs0MBP intel 10.5.5でお試ししてみましたが,これはいいですね.
ワンセグを使っているんですが,まさに実況スレの自動更新とあいまって,
スレの流れがよくわかるわかる.
2chResViewのみですが,今のところこれといった問題もありません.
実況は2chブラウザでなく,2chResViewのみでいいかなって思うぐらい.
GrowlとAppleScriptの可能性を感じさせるアプレットですね.素晴らしい.
0071名称未設定
2008/10/25(土) 00:55:28ID:/nRWm3zs0display dialogなんですよ.もしJedit Xとかに持っていくのなら
フォント変更ができると思うので,大丈夫じゃないかと思います.
0072名称未設定
2008/10/25(土) 03:02:01ID:F4pUJc+e0activate
set visible of window 2 to false
set visible of window 2 to true
end tell
少し遅くなるがこれもありか?
0073名称未設定
2008/10/25(土) 07:19:58ID:/nRWm3zs0うちのLeopardでは,>>72 が希望にそった動作をしてます.
>>65 はドックからの起動だと大丈夫なんですが,アプリ単体で
起動した時はウインドウがアクティブにならないみたいです.
0074名称未設定
2008/10/25(土) 16:44:23ID:/nRWm3zs0レス >>53 で教えて頂いたスクリプトと2chResViewのソースをあわせて,
display dialogではなくGrowlでカレンダー表示させるようにしたスクリプト.
0075名称未設定
2008/10/25(土) 17:18:51ID:zRBX1lq80モタスポ実況板のスレURLを入れると、
「&amp;1(←本当は半角)を取り出すことはできません。」と言われて、
動作が止まってしまいます。下記スレで起こりました。
ttp://live-racing.net/livebbs/test/read.cgi/live/1224694330/
どこをいじればいいかアドバイスいただけますと大変助かります。
Intel iMac、10.5.5です。よろしくお願いします。
0076名称未設定
2008/10/25(土) 18:05:23ID:VbXcGaBh00077名称未設定
2008/10/25(土) 23:42:03ID:x2JBMzcV00079名称未設定
2008/10/26(日) 02:14:27ID:QJLbb3aC02chはここしかみてないから使わないけどソース見てて。おしえてくれろ。
set AppleScript's text item delimiters to {hoge as Unicode text}
どしてリストにして渡してるの?どっかで何か変わったの?これやらないとだめ?
0081名称未設定
2008/10/26(日) 02:19:56ID:QJLbb3aC0あ、私かいな。ちゃんと引用しろよ。
Unicode ID のことだよ。前スレで盛り上がったじゃん?data<>とかで書かなくてもよいんだ。
そいえばちゃんとお礼してない。教えてくれた人ありがとう。
0082名称未設定
2008/10/26(日) 02:23:45ID:QJLbb3aC078さん? >>53 で私の使ってるハンドラ string を渡してる。
delimiters に関してなにか変更あったのかな?と。あまりAppleのdocument読まないから。
0083名称未設定
2008/10/26(日) 02:25:13ID:4cxLaD6K00084名称未設定
2008/10/26(日) 10:17:39ID:lUfGSYy60ありがと。
Tigerだとコンパイルできるけど動かんぞ。
Leopard以降なのか?
なんかUnicode対応以来,あちこちぐちゃぐちゃしてわからんことが大杉。
0085名称未設定
2008/10/26(日) 11:04:50ID:hQeVnxlp0ググらず、Language GuideやRelease Notes読まず、じゃわか(ry
008675
2008/10/26(日) 13:32:52ID:zHn/rlQA0ご対応ありがとうございました。
ただ、残念ながら動きませんでした。エラーも同じです。
Growlからは「スレが見つからないので新しいスレを選択しろ」と言われます。
0087名称未設定
2008/10/26(日) 16:51:07ID:TVo/dLc60最初からつまずいてます.
set textMess to " Leopard."
do shell script "perl -e 'print \"Hello,\n\";'"
do shell script文の後にAppleScript変数textMessをつけて,"Hello, Leopard."
という結果にしたいのですが,"echo " & textMessをこれにどうつなげていいのか
わかりません.教えていただけませんか.
0088名称未設定
2008/10/26(日) 17:18:51ID:1fRNd1I/0コマンドラインを変数にして文字列とつなげればインジャネ?
つかここら辺基本だから、どっかのサイトでみっちりやっといた方がいいと思うけど。
まあ適当にサンプルおいとくからがんばれ
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
0089名称未設定
2008/10/26(日) 17:33:51ID:TVo/dLc60do shell scriptを変数に書き出して,それをもう一つの変数につなげるのではなくて,
do shell script 内のPerl内でつなげて完結させるということを聞きたかったわけです.
上のサンプルは別な部分で参考にさせていただきます.
0090名称未設定
2008/10/26(日) 17:40:30ID:TVo/dLc600092名称未設定
2008/10/26(日) 18:28:28ID:TVo/dLc60言われている通り無理っぽいので,テクニカルノートのサンプルを参考にして
一度AppleScript変数に読み込ませてからつなげる方法にしました.
set textMess1 to "Hello,"
set textMess2 to " Leopard."
do shell script "echo " & textMess1 & textMess2
-- "Hello, Leopard."
ありがとうございました.
0093名称未設定
2008/10/26(日) 20:07:32ID:VTGefaxq0do shell script "perl -e 'print "Hello," & textMess & "\n";'"
これとは違うって事?
解決したみたいだからいいけど
0094名称未設定
2008/10/26(日) 20:30:36ID:TVo/dLc60そうかそれでいいんですね.
何度やってもエラーになってたので,ダブルクォーテーションが抜けてたか,
増えすぎたバックスラッシュでこんがらがってたのかも.ありがとうございます.
ちょっとでもわかると,Perlが楽しくなってきました.
0095名称未設定
2008/10/26(日) 21:29:52ID:e+jOjkx/Pどっかからのコピペなんで詳しいことはわかりません
>>86
試したら自分もエラーが出たのでもっかい直しました
0096名称未設定
2008/10/26(日) 21:57:07ID:c5rHVkSN0>>33 でも,なんだかわかんないけど,楽しい.
>>94 ちょっとでもわかると,Perlが楽しくなってきました.
0097名称未設定
2008/10/26(日) 22:02:11ID:leFDhUAz0それがプログラミングだからしょうがない。
楽しくないプログラミングなんて誰もやる気しないだろ?
あの試行錯誤感がいいんだよ。
0098名称未設定
2008/10/26(日) 22:11:01ID:VTGefaxq0"ワンセットを即座に普通の文字として認識出来るように鍛えるか
set DQ to """
do shell script "perl -e 'print " & DQ & "Hello," & textMess & "\n" & DQ & ";'"
とかやればApplescriptでのダブルクォーテーションとの違いがなんとなくつかみやすいかも。
文字の並びが長くなっちゃうけど
>>96
そんなら無視しれ。
オレ覚えはじめのころにそんなこと言われたら相当凹むわ。
0099名称未設定
2008/10/26(日) 22:21:26ID:PmjoJ6HJ00100名称未設定
2008/10/26(日) 22:31:05ID:tzBda6Gc00102名称未設定
2008/10/27(月) 07:43:15ID:0eZUsEsb0わかりやすくていいですね,慣れるまではそれを使ってみます.
>>99
自分が書き方知らないだけだと思いますが,シングルクォートで書けなかった…….
0103名称未設定
2008/10/27(月) 16:35:43ID:SCa34hkm00104名称未設定
2008/10/27(月) 20:57:21ID:rwh9I1Ct00105名称未設定
2008/10/28(火) 22:28:26ID:uR63MieC0PARKにまだ書かれていないみたいだから、まとめ的に昔と今の違いをここに書いとく。
めちゃくちゃ便利になったってのが解ると思う。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
0106名称未設定
2008/10/28(火) 22:31:24ID:uR63MieC0上の10進出すのに使った。ちょうど良いかも。
set hexNum to quoted form of "26A3"
set decNum to do shell script "ruby -e " & quote & "p " & hexNum & ".hex" & quote
return decNum
0108名称未設定
2008/10/29(水) 00:30:23ID: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 には感謝感激雨霰だな。
ちなにみこいつどんだけ暇なんだ?と思うだろうが確かにそうだ。
仕事する気がおきんのでここで遊んでる。仕様書なんてこの世からなくなればよいのに。
0110名称未設定
2008/11/06(木) 01:32:52ID:ZibL1xWP0これまで自分で使うためとフリーウェア(1本だけですが)としてスクリプトを組んだことはあるのですが
はじめて、お客さんに頼まれてスクリプトを組みました。
スクリプトはだいたい200ライン程度、スクリプトエディタを使用しユーザーインターフェイスは最低限のものです。
いちいちtellで階層を呼び出すのは嫌いなので、割と短めのライン数になっていると思います。
内容を言わないでの質問で申し訳ないのですが、一般的にはどのくらいの額を請求できるものなのでしょうか?
最終的にはお客さんと相談して決めようと思っているのですが、
あまりにも常識はずれになってしまうといけないし、自分が安く提供したのか、高く貰ったのかくらいわかっておきたいので
0111名称未設定
2008/11/06(木) 01:54:35ID:6C3sgi7U0個人的には,AppleScriptで稼ぐのはあきらめました。
0112名称未設定
2008/11/06(木) 02:23:52ID:ZibL1xWP0ありがとう。
最初うまく動かなくて2日位かかってしまった。
最初からあることに気づいてれば数時間で出来ちゃったと思う
>個人的には,AppleScriptで稼ぐのはあきらめました。
やっぱり仕事として発生しないということかしら...
0113名称未設定
2008/11/06(木) 02:42:27ID:xe1A6rEs0別にAppleScriptに限定して考える事は無いんじゃないかな
あと今更言ってもアレなんだが、
先に決めとくべきだったんじゃないかとは思う
0114名称未設定
2008/11/06(木) 12:53:50ID:ZibL1xWP0アプリケーション制御とファイル管理をするような内容だったので
開発の容易さからApplescriptになりました。
私自身使える言語がApplescriptとjavascriptしかないというのもあります。
私はプログラマーではなく、自身のためにスクリプトを組んだり
レイアウトフォームに付随して(業種がばれますね)スクリプトを組むことはあったのですが
スクリプト単体で発注されたのははじめてで、うれしくて予算は二の次にしちゃいました。
やっぱり、まずはお客さんに満足していただくよう努力して、評価を得ようとおもいます。
有り難うございました。
0115名称未設定
2008/11/06(木) 14:51:35ID:SrjMOGQVP0116名称未設定
2008/11/06(木) 19:47:28ID:5FgNhhrY00117名称未設定
2008/11/07(金) 00:13:21ID:KE7FU1C700118名称未設定
2008/11/07(金) 00:25:54ID:e1eBJROM0「また次も宜しくお願いしますね」的なおまけとして差し上げても良かったのにな。
0119名称未設定
2008/11/07(金) 01:51:01ID:U7X/qCx20いや、「何故わざわざAppleScriptで作ったの?」とかそんな話じゃなくてさ
対価の見積もり基準としてAppleScriptだと幾ら?って限定する必要はないわけで、
マ板かム板あたりで一般的な話として相談する手もあったんじゃねーのって事です
AppleScriptで書こうがObjective-Cで書こうが、
中身に詳しくないお客にしてみれば同じ事じゃね?
0120名称未設定
2008/11/07(金) 13:15:50ID:QwQjnn/H0ありがとう。>>108の方の書き込みをみて、ここで聞いてみようかなと思った次第です。
>>111,117
時間計算してしまうと私の能力が低いと高い請求になってしまう。それもちょっと...
>>116
私はその低い方の金額でもOKな感じです。
>>118
それなりに頂ければ、やる気も出てくるので...やっぱり頂きたい
みなさん本当にありがとう。
0121名称未設定
2008/11/07(金) 21:09:06ID:KE7FU1C70能力と時間給の問題は,そのとおりなのだけれども,世間はそれで動いているんだよね。
能力がありすぎると損をするような...
0123名称未設定
2008/11/08(土) 21:23:48ID:ijpwYJEF00124名称未設定
2008/11/08(土) 22:45:01ID:dQzZVq1f0能力がない→単位時間当たりの料金は低い→でも開発時間が長い
ってことでまず自分の時給を決めなさい。750円/hからスタートです。
0125名称未設定
2008/11/09(日) 18:45:13ID:75hQjtnT01) ~/Desktop にあるすべてのzipファイルを解凍
2) ~/Desktop にあるすべてのhtmlファイルをゴミ箱に移動 or 削除
1)はStuffIt ExpanderやUnarchiver、2)はFinderに、それぞれやらせればいいのだと思いますが、
具体的にどういう命令にすればいいか分かりませんでした。
初歩的な質問で恐縮ですが、アドバイスお願いします。
0126名称未設定
2008/11/09(日) 18:51:37ID:10dOh0aU0それでは駄目なのかい
0127名称未設定
2008/11/09(日) 20:02:29ID:J1ADMCxr0簡単に作りたいんだったら
1)はzipファイルをFinderでopen
2)はhtmlファイルをFinderでdelete
両方とも拡張子で選びだせばいい
0128名称未設定
2008/11/09(日) 21:40:44ID:J1ADMCxr0>>127の説明だけだとわかんないだろうから具体的なものを書いとく
2)の方だけだよ。あとは調べるなり応用するなりしてみて
tell application "Finder"
delete (every file of (path to desktop folder) whose name extension is in {"html", "htm"})
end tell
0129名称未設定
2008/11/10(月) 00:13:25ID:G+bZelPo0こんなんでもいいのかと
tryは該当項目がない時の対応
try
do shell script "open ~/Desktop/*.zip"
end try
try
do shell script "rm ~/Desktop/*.html"
end try
0131名称未設定
2008/11/10(月) 11:39:44ID:jKYev5ya00132名称未設定
2008/11/10(月) 14:09:55ID:E18X5wfz0それだとシェルスクリプトとcronだわなあ。
0133名称未設定
2008/11/10(月) 14:32:28ID:/YsdEu920それは古典的なunixの場合、OSXではlaunchdを使う。
http://developer.apple.com/macosx/launchd.html
0134名称未設定
2008/11/10(月) 19:56:01ID:5VAvNdNM00135名称未設定
2008/11/11(火) 03:07:18ID:6TGtup5L0launchdってそういうこともできるのか。
0136名称未設定
2008/11/11(火) 15:47:06ID:eOj/IPUD0iCal のイベントで呼出してたw
ところでファイル名やフォルダ名に全角パーレンが入ってると
アプリでopenした時にエラーになってしまうのですが
対処はどうすればいいんでしょう?
0137名称未設定
2008/11/11(火) 23:59:13ID:2Z6c/c/30今更だけどクライアントと先に話すべき事だよね。
考え方によっては、今後の事も考えて次の仕事とセットで値段を決める方法もあるよ。
例えば「今回は普通5万もらうんですが、これだと高くなるので次の○○とセットで7万でどうですか?」とか。
ついでに、photoshopCS3で楕円形の選択範囲ってつくれる?
普通の長方形とかなら
tell app "photoshopCS3"
select current document region {{500, 520}, {501, 2020}, {501,2020}, {500, 2021}}
end tell
で作れるけど、楕円形が作れない・・・・
教えて下さい。
0138名称未設定
2008/11/12(水) 07:22:19ID:rk8/vzcM0CS3 の 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%くらい引っ張ってあるね。
って遊んでたらお弁当作る時間無くなった;;
0139名称未設定
2008/11/12(水) 07:32:18ID:JWYw+knL0launchdを使えば周期動作やフォルダ監視スクリプトも待機負荷無しで作れる。
cronと違いLaunchAgentsはloginしていることが保証されるから、AppleScriptや
GUIアプリを使う物はここに置けば良い。OSXの多くのAPIはloginwindowや
WindowServerとMach IPCでやり取りして動くからlogin状態が必要になる。
0140名称未設定
2008/11/12(水) 12:22:33ID:RLAaAYsU0楕円方程式が間違ってるぞ
((x^2)/(a^2))+((y^2)/(b^2))=1
でもなんかカッコいい...惚れた
0142137
2008/11/12(水) 20:54:38ID:rk8/vzcM0ぐはー、いいんだ寝起きは駄目なんだ。
円を扁平させても焦点1つじゃないん?暇なときに書いて比べてみる。
近日点、遠日点、重心の共有、ケプラーの法則。同一時間で起動が描く焦点からの面積は同一だっけ?
なつかしいな。あの頃は HyperTalk で書いてた。←天文部兼写真部。Macで回る赤道儀がほしかった。
0143138
2008/11/12(水) 20:57:29ID:rk8/vzcM00144名称未設定
2008/11/12(水) 22:40:12ID:RLAaAYsU0結構いいヒントが出てるからもう出来るんじゃないの?
あと、もう一つの手段として
javascriptを使って三角関数で楕円を作る方法あるぞ
0145138
2008/11/12(水) 23:59:05ID:rk8/vzcM0もう寝る。眠い。
でもってあんたわたしになにいってんの?書けない????
かけるにきまってるじゃないの。なにがJava?Rubyでもなんでも。shellでも。
三角計算1行で呼べるのがASじゃん。なめたこといってんじゃねーよーーーー
あーーーー。うわ、、、、ごめん、私相手じゃなかった。だからーーーー、番号間違えてただけだよ。
ごめん。うわ。はずかし。えとーーーーー。にゃ?
消すべきだよね、送信したらだめだよね。でも、押すんだろーな。せっかく書いたからってだけで。
0146名称未設定
2008/11/13(木) 00:04:24ID:Xd/R6mGT0続けるならコテなりトリップなり付けてくれない?
0148137
2008/11/13(木) 01:06:16ID:C6jPTMrr0AppleScriptReferenceGuideは一応読むんですが、いつも良く分からず考えられる組み合わせ全部やってる状態です・・・
せっかく教えてもらったのにさっぱり理解できません。わからない言葉全部ググってもどうすれば楕円ができるやら。
たとえば、
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 とかできればいいんですけどね・・・
ほんと宜しくお願い致します。
0149137
2008/11/13(木) 01:22:21ID:C6jPTMrr0パスになるともっとわからない・・・
明日車で出張なのに気になって眠れない。
0150名称未設定
2008/11/13(木) 01:30:46ID:EqSLftju0以下が楕円方程式から求める方法
これでいいんだよね?
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
0151名称未設定
2008/11/13(木) 02:19:22ID:w1vAjk9p0すげーな。素人にはさっぱりわかんね!でも
repeat until x ≥ 0
って通らないぞ。
0152名称未設定
2008/11/13(木) 07:30:54ID:I6x4aDNX0かな、入力する時は。後で勝手に≧に変換されるんだっけかな。
0153名称未設定
2008/11/13(木) 07:32:45ID:I6x4aDNX0って意味です。すまそ
0154名称未設定
2008/11/13(木) 07:57:22ID:X81kC3MY00155137
2008/11/13(木) 09:08:52ID:KUaqIAkT0>>140
>>144
>>150
>>152
皆さんありがとうございます。
去年から気になっていてあきらめていたんですが
出来てしまうとは!!
ホントにありがたいです!
でも、なんでこの式で楕円になるかさっぱり分かりません(笑
でも、ここまでやってもらえれば私でも出来ます!!!!
ありがとうございます。
でも、やっぱりなぞです・・・
0156150
2008/11/13(木) 13:13:13ID:EqSLftju0>>138さんのおかげで気がついた。
ちなみに各座標を求める部分をサブルーチン化するのであれば以下のようにする。
set a to 100
set b to 50
set ox to 200
set oy to 200
on get_oval(a, b, ox, oy)
script oval
property _1 : {}
property _2 : {}
property _3 : {}
property _4 : {}
end script
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
return oval's _1 & oval's _2 & oval's _3 & oval's _4
end get_oval
tell application "Adobe Photoshop CS2"
select current document region my get_oval(a, b, ox, oy)
end tell
0157名称未設定
2008/11/15(土) 20:21:14ID:QxiQRkp80起動するため(コンテナをマウントさせる形で起動)、何とかAppleScriptの
形にしてみました。
do shell script "/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt /Volumes/DATA/test.tc"
この一行のみです。アプリTrueCryptを使ってDATAディスクにあるtest.tcを
マウントするための単純なシェルスクリプトを、Terminalを表示させずに
行うためとった苦肉の策なのですが、上記のスクリプトを実行すると、
暗号化コンテナをマウントするためのパスワード入力窓がフォアグラウンド
には来ず、即座にパスワードを入力できる状況にはなりません。
このスクリプトを起動したときに、これがフォアグラウンドに来るための
方法なぞご存知の方、ご教示ください。TrueCrypt側の問題なのかもしれない
ですが・・。
0158名称未設定
2008/11/15(土) 20:32:13ID:zjzwFa6K0do shell script "/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt /Volumes/DATA/test.tc &"
tell app "TrueCrypt" to activate
かな
間にdelay 3とか入れたほうがいいかも
0159157
2008/11/15(土) 20:46:46ID:QxiQRkp80ありがとうございます。
うーん、やはりパスワード入力窓がフォアにならないですね・・。
delay 3 を入れても同様です。
と思ったら、パスワード入力窓はバックのままなのですが、その入力をキャンセル
すると、アプリ本体が起動され?メインの窓がフォアに来たりしています。
パスワード入力窓のプロセスか何かが、アプリ本体と違う要素で出来てるとか何か
なんでしょうか。こうなってくると、TrueCrypt側の問題っぽい感じがしますね。
というより、フォアに「どれを」持ってこればいいのか調べきれない私の問題か。
いずれにせよ、もすこし試行錯誤してみます。ありがとうございました。
0160名称未設定
2008/11/15(土) 22:56:56ID:6ZZgBvaS0プロセス調べるぐらい簡単じゃないか
やろうと思えばAppleScriptでもできるし、
LeopardならAutomatorを使う手もある
0162150
2008/11/16(日) 11:51:03ID:yqcSWyTJ0tell application "System Events"
tell application process "TrueCrypt"
set frontmost to true
end tell
end tell
これでどう?
0163159
2008/11/16(日) 19:44:57ID:c9TxTH4I0うーん、やはりうまくいきません。
スクリプトエディタから起動した場合も、アプリケーションにして保存して
ファインダーからダブルクリックで起動した場合も、パスワード入力窓は
最前面には出てこず、エディタの背後やファインダーの背後に立ち上がり
ます。
do shell script を使うのが無理矢理っぽいって感じなのでしょうかねえ・・・。
他に、アプリをパラメータつきで起動する方法は無いでしょうか・・。
0164名称未設定
2008/11/16(日) 20:34:46ID:YH31Dkqw0tell app "TrueCrypt"
activate
open (("/Volumes/DATA/test.tc" as POSIX file) as alias)
end
で済むと言う話ではないのか
0165150
2008/11/16(日) 22:09:51ID:yqcSWyTJ0ひょっとして2行目以降に進んでいない?
ignoring application responses
do shell script "/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt /Volumes/DATA/test.tc"
end ignoring
tell application "System Events"
tell application process "TrueCrypt"
set frontmost to true
end tell
end tell
これでダメなら最後の手段、
アプリケーションを起動するスクリプトとアプリケーションを全面に送るスクリプトを分けてしまう。
以下のようにする。
スクリプトA> tmp.txtにファイルパスを書き込み、スクリプトBをファインダーより起動、
スクリプトBにより起動したTrueCryptを全面に送る
スクリプトB> tmp.txtに書き込まれたファイルパスをシェルを使って開く
0166名称未設定
2008/11/17(月) 01:23:38ID:HYGF21ap00167名称未設定
2008/11/17(月) 04:42:03ID:vf7oC03d0http://bbs.macscripter.net/viewtopic.php?id=27461
http://www.truecrypt.org/docs/command-line-usage.php
0168163
2008/11/17(月) 13:21:56ID:aCPrsfJR0ありがとうございます。アプリケーションのメインの窓は出てくるのですが、パスワード表示窓は表示されず、また
test.tcも選択されていない状況で、「file "DATA:test.tc" のタイプを alias に変換できません。」という
エラーメッセージが出てきてしまいました。このあたりの意味は今後もう少し勉強してみます。
>>166
ありがとうございます。一応、パスワード入力窓はTrueCryptのものと思われます。オプションにTrueCrypt
マウント関連の項目がありますので・・。
>>167
情報ありがとうございます。やはり、このソフトに関しては同じようにマウント自動化につまづく状況の人が他にも
いるようですね。TrueCryptの振る舞いの問題もあるのでしょう。ひょっとすると、このソフトの性質上、そうした
自動化をやりにくいように工夫されているのかもしれません。特にパスワード入力窓の操作など。
0169163
2008/11/17(月) 13:24:09ID:aCPrsfJR0ありがとうございます。うむむ・・ やはり、パスワード入力窓は、起動したスクリプトエディタ、またはファインダ
の背後に出現してしまい、いったんマウス操作なりで前面に持ってこないとパスワード入力できない状況ですね・・
「最後の手段」についてやってみましたが、二つに分けることで、何とかうまくいったようです。
tell application "System Events"
tell application process "TrueCrypt"
set frontmost to true
end tell
end tell
で、tcfront.appという形でtest.tcと同じ場所に保存し、
do shell script "/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt /Volumes/DATA/test.tc & /Volumes/DATA/tcfront.app"
を、test.appで保存。test.appを起動することで最初はファインダーの背面にパスワード窓が出てきますが、
1秒ほどでそれが前面に出てきます。とりあえずはこれでやっていけます。
大変感謝しております。ご教示ありがとうございました。
0170150
2008/11/17(月) 22:53:12ID:Uomap7AT0暇だったので、こんなのも作ってみました。
--引き数→ 角の数,傾き,高さ,横幅,中心点横座標,中心点縦座標
on polygon(corner, angle, h, w, ox, oy)
script obj
property theList : {}
end script
set {angle} to {((angle + 360) mod 360) / 360 + 0.75}
set angle_2 to angle
repeat with i from 1 to corner
set {sign_1, sign_2} to {-1 ^ (angle_2 div 0.5), -1 ^ (angle_2 div 0.25)}
set rad to ((0.5 + (sign_2 * angle_2 mod 0.5)) mod 0.5) * 2 * pi
set {y, ni} to {rad, 1}
repeat with n from 1 to 8
set ni to ni * (2 * n) * (2 * n + 1)
set y to y + -1 ^ n * (rad ^ (2 * n + 1)) / (ni)
end repeat
set y to y div 1.0E-13 * 1.0E-13
set end of obj's theList to {sign_1 * sign_2 * ((1 - y ^ 2) ^ 0.5) * w + ox, sign_1 * y * h + oy}
set angle_2 to angle + i / corner
end repeat
return obj's theList
end polygon
tell application "Adobe Photoshop CS2"
select current document region my polygon(90, 0, 1000, 1000, 1500, 1500)
end tell
↓テイラー展開はここを参考にしました。
ttp://www33.ocn.ne.jp/~xinoue/freeware/trigonometric.html
0171名称未設定
2008/11/18(火) 01:14:04ID:nGx6fZdr0RubyCocoa を呼び出しているので,Tiger以前の場合は別途 RubyCocoa のインストールが必要(Leopardには標準添付)。
playSystemSound("Basso") -- /System/Library/Sounds/*.aiff および ~/Library/Sounds/*.aiff から探して鳴らす
playSoundFile("/System/Library/Sounds/Blow.aiff") -- サウンドファイルのパスを指定してサウンドを鳴らす
on playSystemSound(soundName)
do shell script ("/usr/bin/ruby -e \"require 'osx/cocoa';OSX::NSSound.soundNamed(\\\"" & soundName & "\\\").play;sleep 0.5\"")
end playSystemSound
on playSoundFile(soundFilePath)
do shell script ("/usr/bin/ruby -e \"require 'osx/cocoa';OSX::NSSound.alloc.initWithContentsOfFile_byReference(\\\"" & soundFilePath & "\\\", true).play;sleep 0.5\"")
end playSoundFile
0172名称未設定
2008/11/18(火) 21:43:00ID:Oj2LKQ7S0Apple純正FAXモデム使ってMacでFAX受信するようになったのですが
受信したFAXのファイル名が相手先のTEL番号に自動的になっており 例)FAX from 123 4567.png
これを利用して取引先からのFAXか迷惑FAXかなどを判定し
リネームやAlertを出すFloder Action Scriptを作っている途中です。
0173名称未設定
2008/11/19(水) 00:47:49ID:0V1+hMLH0それが、theFaxFileだとして
tell application "Finder"
set theName to name of theFaxFile
end
で名前は取り出せる。あとは文字列操作だけど、それはもう少し具体例が
ないとよくわからない。
もしかすると
text 10 thru 17 of "FAX from 123 4567.png"
でいいような話かな?
0174名称未設定
2008/11/19(水) 00:52:38ID:Bx+L9xFS0if theName starts with "FAX from"then
if theName contains "123 4567" then
/*123 4567からのFAX*/
else if theName contains "456 7890" then
/*456 7890からのFAX*/
else
/*迷惑FAX*/
end if
else
/*FAX以外のファイル*/
end if
例のようなファイル名なら、
"FAX from "と".png"込みで判別した方が確実な気もするけど…
0175173
2008/11/19(水) 01:02:07ID:0V1+hMLH0単純に文字数ではだめっぽい。
市外局番があることもあるんでしたっけ(それだとwordもつかえない)。
>>174もおっしゃるように
全部含めて比較した方が世話なさそうだ。
0176名称未設定
2008/11/19(水) 01:02:51ID:+YqqaPqO0例えば,デスクトップのファイルで "hoge","hage" のいずれかが含まれているファイルに対してアラートを表示するなら,
set whitelist to {"hoge", "hage"}
tell application "Finder"
repeat with aItem in whitelist
repeat with aFile in ((every item of (path to desktop) whose name contains aItem) as list)
set namae to name of (aFile as alias)
display dialog (namae & " is Valid!") buttons "OK" default button 1
end repeat
end repeat
end tell
あるいはこんな感じでもいい。
set whitelist to {"hoge", "hage"}
tell application "Finder"
repeat with aFile in ((every item of (path to desktop)) as list)
set namae to (name of (aFile as alias))
repeat with aItem in whitelist
if namae contains aItem then
display dialog (namae & " is Valid!") buttons "OK" default button 1
end if
end repeat
end repeat
end tell
0177名称未設定
2008/11/27(木) 17:05:32ID:AmrFVjHJ0すごいです。手を出しすぎるとわけわかんなくなるから RubyCocoa 逃げてた。
これは色々出来そうですね。RubyCocoa スレ行ってきます。
0179171
2008/11/28(金) 01:06:43ID:PIGyVP2U0>>177
他にも,こんな使い方もできます。
例1:AppleScriptに対応していない 辞書.app を何としても使って辞書を引く
on lookupinDictionary(aWord)
do shell script ("/usr/bin/ruby -e \"require 'osx/cocoa';
p = OSX::NSPasteboard.generalPasteboard;
p.declareTypes_owner([OSX::NSStringPboardType],self);
p.setString_forType(\\\"" & aWord & "\\\",OSX::NSStringPboardType);
OSX::NSPerformService(\\\"Look Up in Dictionary\\\", p)\"")
end lookupinDictionary
lookupinDictionary("アップル") -- AppleScript に対応していない辞書.appを使って「アップル」を調べる
例2:AppleScript から WebKit の JavaScript エンジンを使って JavaScript コードを実行。
AppleScript→sh→Ruby→Cocoa→WebKit→JavaScript という,もはや何がしたいのか分からない呼び出しの深さになっていますが……。
まあ,こんなこともできますよ,というネタです。
on eval_js(jsCode)
do shell script ("/usr/bin/ruby -e \"require 'osx/cocoa';
OSX.require_framework \\\"WebKit\\\";
print OSX::WebView.alloc.init.windowScriptObject.evaluateWebScript(\\\"" & jsCode & "\\\").to_i\"")
end eval_js
display dialog eval_js("(new Date()).getYear()+1900")
0180名称未設定
2008/11/28(金) 16:17:05ID:mHcPVnbl0open location "dict://apple"
non ASCIIだとURLエンコードがちょっと面倒
open location "dict://%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB"
0181名称未設定
2008/11/28(金) 22:03:07ID:CStVQp+C0open location "dict://" & URLEncode(_word)
on URLEncode(_str)
do shell script "printf '" & _str & "'| perl -pe '~s/([^\\w])/\"%\".unpack \"H2\",$1/ego;'"
return result
end URLEncode
0182名称未設定
2008/11/28(金) 22:05:09ID:CStVQp+C0\はバックスラッシュに置換よろ
0183名称未設定
2008/11/29(土) 09:44:16ID:VZIVUASpPdo shell script "php -r '$str=$argv[1];$str=urlencode($str);print $str;' " & _str
0184名称未設定
2008/11/29(土) 09:50:56ID:VZIVUASpPちょっと訂正。
do shell script "php -r '$str=$argv[1];$str=urlencode($str);print $str;' '" & _str & "'"
0185名称未設定
2008/11/29(土) 18:52:50ID:3EFLCewh0AppleScriptで出来ますか?
0186名称未設定
2008/11/29(土) 19:28:45ID:0uoN253C00187名称未設定
2008/11/29(土) 19:54:25ID:opFxlnzc0urlencodeだと半角スペースが+になって
辞書appではデコードされないので%20になるrawurlencodeの方がいいかな。
あと''で単純に単語を囲むと'を含む文字でエラーになるので
quoted form ofを使った方がいいかな。
まあ、どっちも単語検索では問題になるケースは滅多に無いと思うけど
いろいろ使うならどっかで問題になることがあるかも。
do shell script "php -r 'print rawurlencode($argv[1]);' " & quoted form of theText
0189名称未設定
2008/11/30(日) 01:50:01ID:g75iUdnM0ある特定の人に渡したいフラッシュ(swf)があります
添付付きメールを送り、見てもらいたいのですが
相手がMac初心者であるため、swfをそのままダブルクリックとか
したりして見れないかと思います
そこで、swfをsafariで開くAppleScriptを同封したいと思っております
「同階層にあるhoge.swfをSafariで開く」
AppleScriptをだれか作っていただけないでしょうか?
0190名称未設定
2008/11/30(日) 02:02:47ID:b3addvQ70swfファイルを選択してコマンド+I(アイ)
↓
「このアプリケーションで開く」ポップアップからその他を選択
↓
ファイルオープンダイアログでSafariを選択
このようにしたファイルを送ったほうが早くね?
Mail.appならメタ情報も送ったと思うだけどアーカイブしておいたほうが安全かな?
0191186
2008/11/30(日) 12:58:36ID:YQMNir780AppleScriptを起動する為のコンテクストメニュープラグインが幾つか有るので
それを導入する事はそんなに難しい事でもないと思ったのですが。。。
CMプラグイン無しでやるには難しいですね。
0193名称未設定
2008/12/04(木) 18:17:32ID:C4D3uOe/010.4で自身のパスを取得したい時はどのようにしたらよいのでしょうか…
0195名称未設定
2008/12/04(木) 21:37:26ID:ypxWlKaq0編集中のスクリプトであればその編集プログラムの,アプリとして実行中であればそのアプリの...
0196名称未設定
2008/12/04(木) 23:15:34ID:D4sqqstd0よく使うのは path to をオーバーライドする方法だね
0197名称未設定
2008/12/04(木) 23:28:03ID:ypxWlKaq00198193
2008/12/04(木) 23:45:42ID:BQJVqUNw0ふむふむ…若干ややこしそうですね…
0199名称未設定
2008/12/05(金) 01:29:21ID:LdWXDghp0人任せですまないが、くりた氏の所から
0200193
2008/12/05(金) 09:53:39ID:okzXidIv0一度試してみます!!
お手数お掛けしました!
0201名称未設定
2008/12/06(土) 16:29:42ID:0qrcWF2v0applescriptから実行するにはどうすればよい?
SystemEvents でやったみたけど出来ない・・・。
0203名称未設定
2008/12/06(土) 18:39:58ID:0qrcWF2v00204名称未設定
2008/12/06(土) 22:05:24ID:NDrqP39+0プリンタのカスタム用紙サイズでA4の縦が10倍くらいのをつくって
それ使ってプリントからPDF書き出し→トリミングで(゚д゚)ウマ-
0205名称未設定
2008/12/07(日) 02:31:56ID:LPtgCgIE00206名称未設定
2008/12/08(月) 23:57:55ID:/A4x2I0f0マウスキーでも使わない限り、スクリプトでのコンテキストメニュー表示は厳しいんでないかな
0207名称未設定
2008/12/10(水) 04:30:55ID:5tEDkIRR0tell application "iTunes"
set currentTrack to current track
set currentName to name of currentTrack
display dialog currentName
end tell
こうやるとエラーは出ませんが、
tell application "iTunes"
set currentTrack to current track
display dialog (name of currentTrack)
end tell
こうするとエラーが出てしまいます。
この違いは、どこから出るのでしょうか…
0208名称未設定
2008/12/10(水) 05:18:07ID:EFcWvX1W0上の方は勝手に型の変換が行われてるわけよ。
tell application "iTunes" to display dialog name of current track as string
0210名称未設定
2008/12/10(水) 18:29:18ID:G6ldQbJ30class of (name of currentTrack)
は property と帰される。なので型変換が実行されるわけだが、 property を変換することは
スクリプトには出来ないので、tell してるアプリに処理が丸投げされ、そこでエラーが起きている。
アプリ側にしてみれば「そこのジョプズの名前を教えろよ」と命令されているようなもので、
「てめぇ、名前知ってて聞くか!?」とぶち切れてエラーを起こしている…わけではなくて、
ほとんど無意味な処理なので実装されてなくて、命令が処理できずエラーになっているだけ。
たとえば、これを明示的に型変換を指定して、
display dialog (name of currentTrack) as string
と書くと、エラーは起きずに処理が進む。
この場合は先に name of currentTrack が get されていて、それから型変換が試みられる。
class of (get name of currentTrack)
は、Unicode text なので、スクリプト側で string として処理することが可能で、結果、
アプリ呼び出しは起きずに変なエラーにはならない。
>207
の動作した最初の例なら、
set currentName to name of currentTrack
のところで、実際は
set currentName to (get name of currentTrack )
と実行されていて、display dialog に渡される引数は実体になっているので、問題は起きない。
結局これは暗黙の形変換に絡んだやっかいで解りにくい問題なんだけど、
たとえば、
display dialog (get name of currentTrack)
と記述しても動作するわけで、暗黙か、明示かと言うよりは、対象が参照か実体か?
それが解決されるとき、どこで処理が行われているか?あたりが分かれ目なんたど思う。
0212名称未設定
2008/12/14(日) 09:26:06ID:0xUWQQKX0open location "http://hoge"
-- ここで、読み終わるまで待つには、どうすればいいんだろう?
save self contained document 1 in new_file
close document 1
end tell
0213名称未設定
2008/12/14(日) 12:32:48ID:CSeBAn7s0if load state of document 1 is complete then
処理
とするとか
0214名称未設定
2008/12/14(日) 13:17:24ID:0xUWQQKX0なるほど、これでいいんだな。
サンキュー。
tell application "QuickTime Player"
open location "http://hoge"
repeat while load state of document 1 is not complete
delay 1
end repeat
save self contained document 1 in new_file
close document 1
end tell
0215名称未設定
2008/12/14(日) 20:53:38ID:9ph8Kdqc0DVDプレーヤーのイコライザーっていじれないですよね?
要は、VIDEO_TSフォルダから再生すると、イコライザの設定が保存できないの
で、AppleScriptを使って保存/復帰をさせたいんですけど、用語説明を一見し
たところイコライザに関する設定が見つからないので…
最悪、System Eventsを考えていますけど、あくまでも最終手段ということで。
申し遅れましたが環境は10.4.11です。よろしくお願いします。
0216名称未設定
2008/12/15(月) 11:47:43ID:J3odUKcK0今 XCode 上で AppleScript メインのアプリケーションを作成しているのですが、
例えばあるボタンが選択された時に呼ばれる
on clicked theObject
end clicked
があったとして、この時呼ばれるスクリプトオブジェクトを事前に知る方法はないので
しょうか?それとも、毎回ボタンが押されるたびに新しいスクリプトオブジェクトが
生成され、実行されているのでしょうか?
だとすると、これらのハンドラの中からグローバルな値をいじる事はできない
のでしょうか?
うまく伝わったか心配ですが、何卒よろしくお願いします。
0217216
2008/12/15(月) 14:35:17ID:J3odUKcK0例えば
・a.applescript
・b.applescript
という二つのファイルがあったとして、
その中で常に参照できる一つのスクリプトオブジェクトみたいなものがあれば、
万事解決する気がします。
0218名称未設定
2008/12/15(月) 15:49:53ID:fBme1Rqv0どうも理解ができない。
この場合呼ばれるtheObjectってのはon clickedメソッドを呼び出したクラスだぞ?
で、on clickedの場合theObjectはボタンだぞ?
on clickedより先に中身知りたいならwill finish launchingでインスタンス呼べば良いんじゃないの?
>>217 でもっと混乱しておる。aとbのスクリプトが同じプロジェクトにあるならなんもせんでもインスタンス共有してるじゃん。
ばらばらに書くほうがめんどいと思うのだが?
0219216
2008/12/15(月) 16:11:44ID:J3odUKcK0on clicked theObject
で呼ばれるスクリプトが a.applescript だったとしますよね?
よく分からないですが、多分ボタンをクリックすると a.applescript を読み込んで
インスタンス化し、そのスクリプトオブジェクトの clicked 関数を呼んでる訳ですよね?
そのスクリプトオブジェクトを事前に知りたい………と言ったらおかしいかもしれないですが、
要するに a.applescript 内での "me" と b.applescript 内での "me" ってのは違ってきちゃう
訳じゃないですか。
もっというなら、最初に起動した時に呼ばれてる awake from nib の時の me ってのを
clicked 内から呼びたいんですが、伝わってますかね………。
グローバルで定義しとけばいけるのかな~と思いきや、ファイルが違うと global の範囲も
そこで区切れてしまうらしく、以下の様な呼び出しができませんでした。
(続く...)
0220216
2008/12/15(月) 16:13:00ID:J3odUKcK0global MainScript
on awake from nib theObject
set MainScript to me
end
on test (theValue)
display alert (theValue)
end
(b.applescript)
global MainScript
on clicked theObject
tell MainScript to test ("aiueo")
end
0221216
2008/12/15(月) 16:54:14ID:J3odUKcK0ttp://homepage.mac.com/tkurita/scriptfactory/Monologue/GlobalVariable/index.html
ここを参考にまずは a.applescript の MainScript を property として
b.applescript を global に定義してみたのですが、うまくいきませんでした…。
Nib からのイベントハンドラの時だけスコープがおかしいんでしょうか。
0222名称未設定
2008/12/15(月) 17:43:37ID:F/y6zi1v0普通は一つのスクリプトに纏めるべき何では?
どうしてもスクリプトを分けるなら、適当なオブジェクトに
値を埋め込んで取得するとか。
0223216
2008/12/15(月) 18:06:40ID:J3odUKcK0できれば、一つのウィンドウは一つの .applescript ファイルに、という形でまとめたかった
んですよね。一つのファイルにごちゃごちゃ入ってると見にくいし…。
当初適当なオブジェクトに最初の me をつっこんでおこうと思ったのですが、全ての
.applescript から絶対的に呼べる所が分からなかったので、ダメでした…。
何かうってつけのオブジェクトなど、ありますか?
0224名称未設定
2008/12/15(月) 23:29:47ID:vbtDqJru00225名称未設定
2008/12/15(月) 23:57:42ID:5awCoNJ20>
> で呼ばれるスクリプトが a.applescript だったとしますよね?
> よく分からないですが、多分ボタンをクリックすると a.applescript を読み込んで
> インスタンス化し、そのスクリプトオブジェクトの clicked 関数を呼んでる訳ですよね?
>
> そのスクリプトオブジェクトを事前に知りたい………と言ったらおかしいかもしれないですが、
うん、それはおかしいな
イベント発生時にどのスクリプトのハンドラが呼ばれるかは Interface Builder 使って自分で設定するんだから、
事前に知りたいも何もない
仮に以下の様に設定したとする
button "A_btn" of window "A_win"
-> AppleScript タブで「a.applescript」と「action-clicked」を選択
button "B_btn" of window "B_win"
-> AppleScript タブで「b.applescript」と「action-clicked」を選択
この場合、button "A_btn" を押すと「a.applescript」の「on clicked」が呼ばれ、
逆に button "B_btn" を押すと「b.applescript」のの「on clicked」が呼ばれる
んで、厳密にはウィンドウじゃなくてボタンレベルだけど、これでやりたい事は解決できんじゃないの?
0226名称未設定
2008/12/16(火) 00:26:15ID:M9H7jOFz0bookmarksフォルダにある全てのファイルについて、スポットライトコメントをリスト形式で得たいのですが、上手くいきません。よかったら教えてください。
set aRootFolder to "Macintosh HD:Users:hoge:Bookmarks"
tell application "Finder"
activate
tell folder aRootFolder to set aFileList to name of every file
repeat with aThisFile in aFileList
tell aThisFile to set aCommentList to (get comment of aThisFile as list)
end repeat
end tell
aCommentListの中には以下のようなものが入っているようです。コメントではなくファイル名が入ってしまっているようです。(ScriptDebuggerによると)
note of item 2 of {
"ほげ.webloc",
"ふが.webloc"
}
0227216
2008/12/16(火) 00:29:49ID:2FbCdVtl0それでは毎回別のスクリプトオブジェクトが生成されてしまうのでダメだと思います…。
>>225
ボタンクリックによって呼ばれるスクリプトを指定できるのは分かりますが、
スクリプトオブジェクトを指定できないのが困りものなのです………。
多分、言いたい事が伝わってないですね。すみません。
本当に説明が難しくて…。色々やっているうちに AppleScript のバグじゃないかと
思ってきたんですが…。クリックなどのハンドラ内では global な値はそもそもが
いじれない気がします。
0228名称未設定
2008/12/16(火) 00:41:27ID:Q0LU9beE0「AppleScript Studioでスクリプト分割に影響されない形でアプリケーション
グローバルが使いたい」ってことじゃないの?
だったらuser defaults使えば? これなら保存も効くし。
0229名称未設定
2008/12/16(火) 00:57:28ID:HLbSKQnW0失礼、違ったか
そもそもスクリプトオブジェクトが出てくる辺り全く意味わからんので、俺程度ではもう無理だな
> クリックなどのハンドラ内では global な値はそもそもがいじれない気がします。
バグか仕様か知らないけど、イベントハンドラ 内で定義した変数は例えトップレベルで global や property 宣言してあっても、
イベントハンドラ内ではローカル変数扱いだった気がする
>>228の言うuser defaultsを使うか、UI内の値にするとか、
スクリプトの外側に求めるしか無いんじゃないかな
0230216
2008/12/16(火) 01:06:46ID:2FbCdVtl0やっぱり最終的にそうなっちゃうんですかね。
実はさっき諦めてそういう形にしました。
なんか不便ですねぇ(^_^
>>229
おぉ!そうなんですか。
そういう仕様だったんですね………。
0231名称未設定
2008/12/16(火) 02:01:58ID:LE4/gpv90>tell folder aRootFolder to set aFileList to name of every file
「ファイル名」そのもの取得しちゃってる。name of はいらない。
>repeat with aThisFile in aFileList
>tell aThisFile to set aCommentList to (get comment of aThisFile as list)
>end repeat
繰り返して追加するなら最初に
set aCommentList to {}
としておいて
repeat内に
set end of aCommentList to comment of aThisFile
一気にやるなら
set aRootFolder to "Macintosh HD:Users:hoge:Bookmarks"
tell application "Finder"
set aCommentList to (comment of files in folder aRootFolder) as list
end tell
自分のトコTigerなので違ったらゴメン
0232名称未設定
2008/12/16(火) 02:35:02ID:LE4/gpv90>>226のスクリプトの頭の数行でファイル名をリストとして取得できてるんだから
name ofをcomment ofに変えるだけでOKだね。
set aRootFolder to "Macintosh HD:Users:hoge:Bookmarks"
tell application "Finder"
activate
tell folder aRootFolder to set aCommentList to comment of every file
end tell
0234名称未設定
2008/12/16(火) 21:56:13ID:sc3SpK6H0どうすればできるでしょうか? 要するにテキストが追加されると一番下まで
スクロールしたいのですが…。
かれこれ2日ほど悩んでます(;_;)
0235名称未設定
2008/12/16(火) 23:02:54ID:sc3SpK6H0scroll to bottom はメッセージを認識できない、と出てしまい、
vertical scroller の float value を 1.0 にしてもスクロールバーだけが移動し、
内容が移動してくれませんでした。
0236名称未設定
2008/12/16(火) 23:16:41ID:sc3SpK6H0http://developer.apple.com/documentation/applescript/reference/studioreference/sr5_control_suite/sr_control.html#//apple_ref/doc/uid/20011219-ASKControlViewSuite.Commands.Scroll
ここによると、scroll to bottom とかはまだ正確にサポートされていないとの事で、
以下のコードでできました。
set theLength to length of (contents of (text view "xxx" of scroll view "xxx" of window "xxx") as string)
--スクロール
tell text view "xxx" of scroll view "xxx" of window "xxx"
call method "scrollRangeToVisible:" of object it with parameter {theLength, theLength}
end tell
0237名称未設定
2008/12/18(木) 14:11:24ID:3s+aMYPz0オートメタースレより
もういらんかな?
290 名前: 名称未設定 Mail: sage 投稿日: 2008/12/12(金) 15:43:26 ID: DrSmwv6L0
バラのPDFを一個にしたりしてる。
0238名称未設定
2008/12/18(木) 23:02:48ID:vAyDBqey0>バラのPDFを一個にしたりしてる。
これは複数のPDFファイルをひとつにまとめるって意味じゃないかな?
Safari以外のツールを使っても良いなら、シイラには[1枚のPDFで出力]ってメニューがあるから使えるかも。
あと、同じHMDTのCoralだと、コマンドラインでURLを与えてpdfオプションを付ければ、
一枚で出力される。ただ、高さの計算がおかしいみたいで、ソース落として手直しが必要かも。
0239名称未設定
2008/12/22(月) 01:14:24ID:YcErVovj0というのはやり方を見つけたのですが、これを普通のテキストではなくて、
ics形式で書き出す方法をご存知の方はおられませんか。
あるカレンダーのある期間のものだけ、イベント名をすべて変更して
かつメモ欄に同一文をつけ足してから別のMacのiCalへ持っていきたいので
ただのテキストへ書き出すのではちょっと使いにくいのです。
0240名称未設定
2008/12/22(月) 04:58:21ID:JbjbTgRh0ちなみに第2文以降は簡単にAppleScriptでできた.
ただし,親カレンダーを変更するのはわからなかったから,あらかじめ対象の
イベントを書き出し対象のカレンダーに移動しておいてね.
0241名称未設定
2008/12/22(月) 14:53:42ID:meU4MAq/Oカレンダー内のすべてのイベントが書き出されてしまう
0242名称未設定
2008/12/23(火) 15:34:06ID:4qnl3VEI0うん、だから12月分のイベントは別カレンダーに移動して、移動した先のカレ
ンダーを書き出す、ってことじゃない?
ちなみに、イベントの移動ってのは自動でやるのは結構大変(同じプロパティ
を持つイベントを作成するという形になる)
0243239
2008/12/23(火) 16:11:34ID:Xd5k/12X0AppleScriptによって一番自動化したいのは、「12月分のイベントをics形式に書き出す」
という部分です。現在の使い方だとそこを手動でやるのではあまりメリットがないので
質問させていただきました。そこ以外はできるというのは把握しています。
現状は、すべてのイベントが書き出されたicsファイルを、LightWayTextで開いて
LightWayTextのマクロ機能で一気に処理しているのですが、不要な部分を取り除くのに
だんだん時間がかかるようになり、ここを改善したいというのが目的です。
AppleScrpitでこういった形で書き出せてしまえば、LightWayText(私の環境ではやや不安定)の
マクロを使わなくても、そのままAppleScriptで処理できてしまうので、いまより便利になるな、
という公算でした。
必要な部分だけ別のカレンダーへ移動して、というのは、あまり考えていませんでした。
まず、ダミーのカレンダーを作ってそこで処理を行い、最後にそれを削除して終わる、ということですよね。
うーん、ちょっと考えてみます。ありがとうございました。
0244名称未設定
2008/12/23(火) 17:35:12ID:4qnl3VEI0ここを参照して、普通のイベントに対応できるようにすればいいんじゃね?
ttp://blog.deadbeaf.org/2006/07/15/
0245名称未設定
2008/12/25(木) 15:33:22ID:6FISXrhM0逆に文字からユニコード16進数を出すことはできますか?
0246名称未設定
2008/12/25(木) 20:27:58ID:lRBhhS9Q0set slct to "字"
set unihex to do shell script "echo " & quoted form of slct & "| iconv -f UTF-8 -t UTF-16 | perl -pe '~s/([^?w ])/¥"%¥".unpack(¥"H2¥", $1)/eg;' | sed s/$'%0a'// | sed s/'%'//g | sed s/feff// | sed s/$'00'//"
自己レスで考えてみたけど、スマートじゃないね・・・。
perlがよくわからないので
0248名称未設定
2008/12/26(金) 09:41:34ID:JIlTPKw20set decNum to id of "亜" --leopard only
set hexNum to do shell script "ruby -e 'p " & decNum & ".to_s(16)'"
0249名称未設定
2008/12/26(金) 12:20:08ID:E9x+Te7w0で、5桁の文字にも対応するようにちょっと改善
set unihex to do shell script "echo " & quoted form of slct & "| iconv -f UTF-8 -t UTF-32 | perl -pe '~s/([^?w ])/¥"%¥".unpack(¥"H2¥", $1)/eg;' | sed s/'%'//g | sed s/0000feff000// | sed s/$'0000000a'//"
0250名称未設定
2008/12/26(金) 22:34:33ID:foTzQ6520hexdumpとprintf使って無理矢理やったな
perlで出来るんならそっちのが万倍早そうだけど
0251名称未設定
2008/12/26(金) 23:05:19ID:+dIEzKNr0set hexString to do shell script "perl -e 'use Encode qw(from_to); $t = $ARGV[0]; from_to( $t, q{utf-8}, q{utf-16} ); $t =~ s/(.)/unpack(q{H2}, $1)/ge; print $t;' " & quoted form of theText
log "hexString:" & hexString
log "date utxt:" & (run script "«data utxt" & hexString & "» as Unicode text")
feffはそのままでもutxtで戻せる気がするけど消した方がいいのかな?
0252名称未設定
2008/12/30(火) 18:31:49ID:I5OBkT890で書いて、Apple Event の部分だけスクリプトブリッジを使ったり osascript で
呼んだ方がよかったりして。
パフォーマンスとかによってはそれでも AppleScript メインで書いた方がいい場合も
あるのかもしれないけど....
あるいは、AppleScript を純粋にスクリプト言語として見た場合の優位性ってある?
0253名称未設定
2008/12/31(水) 03:31:04ID:Mm1sm4sY0OS 10.5から
#!/usr/bin/osascript
で始まる、コマンドラインで実行できるAppleScript書けるようになったから
他のスクリプト言語との親和性を高めようとはしてるのかなと思う
0254名称未設定
2008/12/31(水) 11:11:52ID:Ozabx93y0一般人に使ってもらうためのちょっとしたツールを作るには,ターミナルを見せないことが望ましいからね。
0255名称未設定
2008/12/31(水) 16:08:22ID:b2MY+RQ70(DTP系とか一部のソリューションをのぞいてね)
0256名称未設定
2008/12/31(水) 18:29:43ID:oTst3lHO0それは一般性があるわけじゃないから公開はできなかったりします。
0257名称未設定
2008/12/31(水) 18:40:05ID:AjDOZHKY0おのずと規模がでかいと手間取るし、作る気もなくなる
0258名称未設定
2008/12/31(水) 19:03:18ID:Sltoo2eV0AppleEventでアプリ制御する場合はC++でごりごり書いちゃうね。
AppleScriptだとUnicode処理とか細かい所がうまく書けない。プロトタイピングや
テスト時はAppleScriptも使う。
>>257
ScriptDebugger
0259名称未設定
2009/01/01(木) 06:26:57ID:gq08o8Xj0本来自分がやるべき単純作業をコンピュータにやらしてらくちんできること
使用頻度の少ないものでも採算がとれるケースが他の言語に比べて圧倒的に多いこと
おおよそなんでもできること ←ちょっと語弊があるか、要はできる奴にやらせるということ
0260名称未設定
2009/01/01(木) 13:11:38ID:r11gX/B20>AppleScript を純粋にスクリプト言語として見た場合の優位性
かなり自然言語に近い。
でもこれ英語を話す人じゃないとメリットじゃないんだよね。
0261名称未設定
2009/01/01(木) 14:53:29ID:g3+YIBVs0って、toの前後が逆のような気がする(日本語の語順っぽいから、日本人的にはOK)。
0262名称未設定
2009/01/01(木) 16:37:25ID:/KkdaRW00そう、Mac の操作は「このファイル」を「コピーする」で日本語的。
英語は「コピーする」「このファイル」なんだよね。
0263名称未設定
2009/01/01(木) 17:51:51ID:yGgn93fb0いろんな表現を許す自然言語から離れて、文法的な曖昧さのない人工言語で
プログラミングができるほうが、英語ネイティブにとってもいいんじゃないかと思っちゃうんだけど…。
どんな表現でもこちらの意図をくんでインタープリタが機械語に変換してくれるんならいいけど、
結局はこうじゃないと通じない、っていうのが決まってるわけだしね。
>>261
この場合の to はプログレッシブ英和でいうところの「状態境遇の変化の結果」
ってやつで、これはこれで自然な英語なんじゃないかな。
sing a child to sleep|歌を歌って子供を寝かせる
>>262
最初の本格的な GUI を搭載したパソコンとして Macintosh が発売されたときに、
まずマウスで操作の対象となるアイコンを選択してから、メニューで「コピー」という操作を選ぶ、
というのがオブジェクト指向だとか言われていたみたいだね。
0264名称未設定
2009/01/01(木) 19:06:18ID:ckwdD4I/0マウスでアイコンをクリックしてからコマンドを選択する。
対象となるアプリを指定してから動作内容を記述するのはちゃんと伝統に則っていはいるように思われる。
ところで,AppleScript日本語について誰も言及しないのはなぜだ。
0265名称未設定
2009/01/01(木) 19:27:30ID:fMNW6y3O0何一つメリットが思い浮かばないんだけどさ
0267名称未設定
2009/01/02(金) 02:22:25ID:sK+2ziH80>まずマウスで操作の対象となるアイコンを選択してから、メニューで「コピー」という操作を選ぶ、
>というのがオブジェクト指向だとか言われていたみたいだね。
つかそれこそオブジェクト指向だけど。
Cの言語仕様の一つがオブジェクト指向とか勘違いしてないよね?
>>264
オブジェクトに指令を出すとその指令をどう実行するかはそのオブジェクト自身が知っているという事。
表層はオブジェクト指向だけど内部的にはオブジェクト指向的。
0268名称未設定
2009/01/06(火) 17:29:19ID:7WvgjDPx0CP/Mの時のPIPコマンドとMS/DOSでは逆だったじゃない。
>>267
>オブジェクトに指令を出すとその指令をどう実行するかはそのオブジェクト自身が知っているという事
知らないメッセージは処理しようがないわけで、それはオブジェクトに限らずプログラム一般に言えそう
だから、継承という考え方も加えとかないといかんのじゃない?
初代Macのオブジェクト指向風って、smallTalkで書かれたaltを模したってところじゃないかな。
0269名称未設定
2009/01/06(火) 17:39:55ID:9hT81oaU0知らないメッセージは発行自体が出来ない。何ができて何ができないかはオブジェクトを選択したときの
メニューに反映される。
つかオブジェクト指向の概念の本とかみんな読まんのね。有名な部長と秘書の話とか。
実装ってサブセットに縛られ過ぎ。
0270名称未設定
2009/01/06(火) 17:45:50ID:x9TH+iw90以前、AppleScriptを日本語で書くというのがとにかく嫌だった。
なんでこんな馬鹿なことをさせるのかと腹が立った。
プログラムはある法則で書かざるを得ないんだから、そのルールは嫌でも覚えなければならない。
それが自然な日本語に近いかどうかより、覚えやすく、書くのが楽なほうが余程良い。
おまけに国依存のソースコードになる。(勿論内部では同じ扱いになるということは承知しているが)
そういう意味では英語(というよりアルファベットかな)のほうが遥かに分かりやすく能率がいい。
OS Xで、やっと英語が標準になってホッとした。
0271名称未設定
2009/01/06(火) 19:25:04ID:O1FFwiLj00274名称未設定
2009/01/06(火) 22:47:07ID:Lek/xeGZ0> smallTalk
Smalltalkはこれで一語だからtを大文字にするのはヤメれって口をすっぱくしているのに
その上わざわざSまで小文字にするってどんだけ嫌がらせだよ。w
0275名称未設定
2009/01/06(火) 23:08:01ID:podRJ9OX00280名称未設定
2009/01/12(月) 01:10:40ID:AhGlsvAA0perl
$_='Yaeeeh!';
if (/Yae+h!/){print "マッチしました。\n";}
このPerl文をdo shell scriptで実行させるためには,どうやって書くのでしょうか。
0281名称未設定
2009/01/12(月) 16:40:31ID:1vC0p+Pe0自己レス。Perlはまだよくわからないので,デリミタで行うことにしました。
0282名称未設定
2009/01/12(月) 22:41:08ID:X7CbqN+90このスレでも少しググればでてくるし、飽食ぎみって感じもあるが。知りたい人もいるかもしれないし。
set myText to "Yaeeeh!"
set searchText to "Yae+h!"
do shell script "perl -e '$hoge = ¥"" & myText & "¥" ; if ($hoge =~ /" & searchText & "/){print ¥"マッチしました。¥n¥";}'"
log result
0283名称未設定
2009/01/12(月) 23:20:53ID:Px3IuVgW00284名称未設定
2009/01/13(火) 00:23:10ID:oDBl1TKn0・ラーメンの待ち時間の長さ&商品によって異なる味の変化をデータベース化
例:商品Aでは4分で「麺のふにゃふにゃ感が芽生えはじめる」
というような情報に基づき柔軟に味を調節可能
データベースは、ある設定でラーメンが出来たら、感想フォームを表示、
ここに感想を入力していくことでオリジナルのデータベースが出来あがっていくという仕組み。
さらに、TCP/IP通信でこのデータベース情報を交換できる。
・ラーメンが出来るまでの時間をミニ格闘対戦ゲームで潰せる「時間があっというまに経つね」機能
TCP/IP通信で、ロビーをデディケートサーバーで提供できるような感じで。
・ラーメン作成回数・日時・商品情報から、ラーメンにおける摂取カロリー計算や
嗜好分析などを行える統計機能つき。
この統計から、「おすすめの新作カップメン」みたいな情報も表示できる。
タイムリミットは明日の6時までに適当なアプロダで。
0285280
2009/01/13(火) 00:26:58ID:MBIFafNT0前ににたようなこと教えてもらったのだけれど,Perlの難解さに挫折。
でも,今作っているスクリプトがどうしても正規表現が必要になってきたので,
再度やってみたけど,やっぱり挫折。
正規表現すらまだ満足に使えてないので,またまた挫折。do shell script 上での
Perlの書き方もわかりにくくまた挫折。操作対象の文字が複雑なので,デリミタでは
やれることに限界がみえて,今作っているスクリプトはやめてしまいました。
とまあ,チラ裏はそのぐらいにして。ありがとうございました。
0286名称未設定
2009/01/13(火) 00:54:29ID:CwEaS6FN0こう分解すればわかるか?
perl -e
$hoge = ¥"Yaeeeh!¥" ;
if ($hoge =~ /Yae+h!/){
print "マッチしました。¥n";
}
これの2行目以降をシングルクォートで囲んで、中にあるダブルクォートをエスケープしただけ。
全然むずくないよ。がんば。
>>284
スレ違い。ASじゃなくてAIRの人に頼みなさい!!!
0287名称未設定
2009/01/13(火) 01:37:12ID:CwEaS6FN0iPhoto整理してて、写真クリック、コンテクストメニューからGoogleMap。とかしたら撮影場所思い出しやすいなと。
で、Geoタグを取得したく寝る前の暇つぶしにさわってたのだが、iPhotoに無いし。プレビューはAS対応してないし。
Image Eventsにあるかな?と思ったがなさそうだ。
どっかにある?AS+標準ソフトでは無理?perlのモジュールはあったけど、なんか使うの悔しいし。
Cocoaにある?あったらrubyから呼べるのか?もう寝なくては。だれか教えて。
0288名称未設定
2009/01/13(火) 02:58:57ID:E9SxCmsI0エスケープでややこしくなんないと思う
0290名称未設定
2009/01/13(火) 03:19:24ID:FqSFhcGA0ASからのExif読み出しで使ったことある。
0291名称未設定
2009/01/13(火) 10:09:24ID:tb6yNxsD0まあ嫌いでも馴れなくても、入り口くらいには立っておいた方が便利と言えば便利。
0292287
2009/01/13(火) 12:35:26ID:VJtXyZsK0perlライセンス調べてないけど、さすがにパッケージの中にいれたらだめでしょ?
それに友達とかに配る時ソースで渡したいし。そこで、何々をインストールして。ってのは不格好だから。
iPhoto'09に期待だね。ExifToolのを一応発表しとく(細かい処理やってない)
--http://www.sno.phy.queensu.ca/~phil/exiftool/index.html ツールはここに
tell application "iPhoto"
set hoge to selection
set tarImage to image path of item 1 of hoge -->複数選んでたら最初だけ
end tell
set tarImage to quoted form of tarImage
set GPSLatitude to do shell script "exiftool -b -GPSLatitude " & tarImage
set GPSLongitude to do shell script "exiftool -b -GPSLongitude " & tarImage
set gpsUrl to "http://maps.google.com/?q=" & GPSLatitude & "," & GPSLongitude & "&spn=0.05,0.05&t=h&om=1&hl=jp"
tell application "Safari" to make new document with properties {name:"GeoTag", URL:gpsUrl}
0293名称未設定
2009/01/13(火) 22:47:12ID:v0LdsXek010.5で特にphpをいじった記憶は無いのでOS標準状態で行ける気がするが詳細は不明。
自分で撮った対応画像が無いのであってるかよくわかりませんがネットで拾った画像ではそれっぽかった。
set theFile to "/Users/hoge/Desktop/Download/geotag1.jpg"
-- http://www.google.com/codesearch/p?hl=ja#jDlm4b6TORk/map/mapItemEdit.inc&q=GPSLongitude%20exif_read_data
set theGPSData to do shell script "php -r '
@$exif = exif_read_data($argv[1], 0,true);
if (!empty($exif)){
foreach ($exif as $key => $section) {
if ($key ==\"GPS\") {
$deg = explode(\"/\",$section[\"GPSLatitude\"][0]);
$min = explode(\"/\",$section[\"GPSLatitude\"][1]);
$sec = explode(\"/\",$section[\"GPSLatitude\"][2]);
$Glatitude = $deg[0]/$deg[1] + ($min[0]/$min[1])/60 + ($sec[0]/$sec[1])/3600;
$Glatitude = ($section[\"GPSLatitudeRef\"]==\"N\") ? $Glatitude:-$Glatitude;
$deg = explode(\"/\",$section[\"GPSLongitude\"][0]);
$min = explode(\"/\",$section[\"GPSLongitude\"][1]);
$sec = explode(\"/\",$section[\"GPSLongitude\"][2]);
$Glongitude = $deg[0]/$deg[1] + ($min[0]/$min[1])/60 + ($sec[0]/$sec[1])/3600;
$Glongitude = ($section[\"GPSLongitudeRef\"]==\"E\") ? $Glongitude:-$Glongitude;
echo \"$Glatitude,$Glongitude\";
}
}
}
' " & quoted form of theFile
if theGPSData is not "" then
set gpsUrl to "http://maps.google.com/?q=" & theGPSData & "&spn=0.05,0.05&t=h&om=1&hl=jp"
open location gpsUrl
else
beep
end if
0294280
2009/01/14(水) 00:57:06ID:38Iaw+vJ0その例でなんとなくわかっても,また表現が変わるとグダグダになってしまうので
どうしようもないです。正規表現の強力さはエディタ利用で実感しているので,
なんとかしてPerlを覚えたいと思っていますが,先は長そうです。
わざわざレス,ありがとうございました。
いい加減チラ裏なので,この話題はこれで終わりにします。
0295287
2009/01/14(水) 09:42:55ID:YSbRwTRb0動いた。私もPHPいじった記憶ないから標準で実装だね。
解析させていただきますのだ。ありがと。って仕事しなきゃ。昼休み迄お預け。
0296名称未設定
2009/01/14(水) 12:32:19ID:SEtVNCW60on GPSData(aFile)
set aPath to quoted form of POSIX path of aFile
set latitude to do shell script "mdls -name kMDItemLatitude -raw " & aPath
if latitude = "(null)" then return ""
set longitude to do shell script "mdls -name kMDItemLongitude -raw " & aPath
if longitude = "(null)" then return ""
return latitude & "," & longitude
end GPSData
0297287
2009/01/14(水) 13:14:31ID:Wr//aTFN0こんなコマンドがあったなんて。持ってるコマンドリファレンスに載ってない。買い替えなきゃ
とググってみたらトップヒットサイトにまたびっくり。すごく詳しい。プログラムって奥が深いです。もっと勉強したい。
>>288さんのアドバイスに従って>280を例に書き直してみました。知らなかった。読みやすいです。ありがとう。
do shell script "perl -e '$hoge = qq(Yaeeeh!) ; if ($hoge =~ /Yae+h!/){print qq(マッチしました。¥n);}'"
0298名称未設定
2009/01/14(水) 17:29:45ID:U/ibqIqB0do shell script "mdfind '(kMDItemLatitude < 52.509) && (kMDItemLatitude > 52.505)'"
な感じで近場の画像を検索できたりするのかな?
0299名称未設定
2009/01/14(水) 23:36:02ID:h4QfYTHv0できるよ。スマートフォルダ化もできる。
検索式(Raw Query)の書き方はSpotlightスレも参照
0300名称未設定
2009/01/15(木) 00:55:41ID:agfBod760おおできますか。
いろいろ楽しいことができそうだと思ったけど
よく考えたら家の中でねこしか撮ってなかった…。
GPS内蔵デジカメも出てるらしいし次ぎデジカメ買うときは注目の機能かな。
0301名称未設定
2009/01/15(木) 23:23:15ID:N8kGJ0Ww0いろいろとググって以下のようなコードを書いて、動かしているのですが、うまく動作しません。
2行目の「set path to "/temp/tempfile.MP4" as POSIX file」で、
「expression、property または key form など があるべきところですが end of line が見つかりました。」
なる構文エラーが出力されるのですが、何が不足しているのかよくわかりません。
UNIX方式のパスの書き方では登録できないのでしょうか?
tell application "iTunes"
set path to "/temp/tempfile.MP4" as POSIX file
set track to add path
set video kind of track to "TV show"
set episode number of track to "1"
set show of track to "showname"
set name of track to "title"
end tell
0302名称未設定
2009/01/16(金) 00:26:28ID:UZxMSevB0登録云々以前に2行目の記述自体に問題があるって事かと
POSIX file は単なるパス変換で実体は無くても通った様な気がするが、
手元にMac無いので確認できねぇ
0303名称未設定
2009/01/16(金) 00:27:07ID:C2NBMgdQ00304名称未設定
2009/01/16(金) 00:33:39ID:Rbk7ZgH40set thePath to POSIX file "/temp/tempfile.MP4"
とかじゃないか
0305名称未設定
2009/01/16(金) 01:42:24ID:UZxMSevB0tell application "System Events" to POSIX file "/temp/tempfile.MP4"
こっちは通ったりする
tell application "System Events" to "/temp/tempfile.MP4" as POSIX file
逆のパターンてあるのかな
0306名称未設定
2009/01/16(金) 08:57:32ID:mdKHS71/0>>302-305 さん
回答ありがとうございました。
結論としては304さんの記述を真似たところ、通るようになりました。
おかげでffmpeg変換->iTunes登録が一本のスクリプトで動かせるようになりました。
ありがとうございました。
0307名称未設定
2009/01/16(金) 11:33:27ID:ALiEqpIp0とりあえず動くのですが、フォルダー名が長い場合、browser表示できません
どうやらパス中のフォルダー名が32バイトを越えるとダメなようです
これはGraphicConverter側のバグでしょうか?
0308名称未設定
2009/01/16(金) 11:39:04ID:ALiEqpIp0表示されてるフォルダーをGraphicConverterのbrowserで表示するツールバースクリプトです
短いので載せておきます
tell application "Finder"
set current_folder to the target of the front Finder window as text
tell application "GraphicConverter"
activate
browser current_folder
end tell
end tell
0310名称未設定
2009/01/16(金) 22:08:38ID:ALiEqpIp0うう、お恥ずかしい
ありがとうございました
0311名称未設定
2009/01/16(金) 23:02:01ID:ISGkwbF40MPEG Exporter TNGでも使っていた方が楽だわ。
0313名称未設定
2009/01/16(金) 23:26:11ID:eiQgVAbqiなるほど。こういうツールもあるんですね。
でも今回の場合は、既に独自の命名規則で管理している動画が沢山あったので、自分で作ったわけです。
今後はこう言った物で管理するのも検討してみようと思います。
0314名称未設定
2009/01/17(土) 00:03:41ID:VYFyvu8o0UNIXコマンドも探しましたがなさそうです。なにか良いアイデアはありませんでしょうか?
0315名称未設定
2009/01/17(土) 00:06:11ID:fqNr3t6F00316名称未設定
2009/01/17(土) 00:08:14ID:OZOiX+nk0旧OSではサウンドファイルをFinderに開かせるだけで良かったんだけどねえ。
Speech Managerでしゃべらせたら?
0318名称未設定
2009/01/17(土) 00:15:30ID:fP/WNXTo0http://microcosmsoftware.com/playsound/
0320名称未設定
2009/01/17(土) 00:26:47ID:cP+1OOSR00321名称未設定
2009/01/17(土) 00:59:50ID:Bs9oVMGd0/usr/bin/afplay
一々process起こすのも大げさなので標準OSAXにもCoreAudio使った
サウンドプレーヤがあるべきですな。
0323名称未設定
2009/01/17(土) 01:10:27ID:VYFyvu8o0>Speech Managerでしゃべらせたら?
68K時代から使っているサウンドファイルがあるんです。これがないとMacって感じがしないほど
なんで標準はサウンドファイル不可で不気味なものいれたんだろう。
諦めてサウンド再生だけコマンドラインCommand Line Utilityで作ってみます
0324名称未設定
2009/01/17(土) 01:32:08ID:VYFyvu8o0ありがとうございます。やっぱりUnixコマンドであったんですね
0325名称未設定
2009/01/17(土) 15:03:23ID:OZOiX+nk0Tigerにはなさそうなんだが。
0326名称未設定
2009/01/17(土) 16:37:50ID:OZOiX+nk0とりあえず,そのサウンドファイルの中身は再圧縮なしでQuickTimeまたはAIFFに変換できるはずだから,
将来に備えて変換しておくといいと思うよ。
リソースを使ったサウンドファイルは将来のディスクフォーマットで記録できなくなる可能性がある。
変換にはQuickTime Proを使うよろし。
0327名称未設定
2009/01/18(日) 00:26:05ID:tAw7Ee/A0System7SoundFileと認識されているのですが、QuickTimeProでは開けませんでした
変換にはSndSamplerというシェアウェア(無課金でも変換可)を使いました
0328名称未設定
2009/01/18(日) 14:35:03ID:obx8kJEO0>System7サウンド
QuickTimeでは無理。
でもご安心あれ。iTunesで変換できるよ。
0329名称未設定
2009/01/21(水) 22:13:39ID:oHuMxTGK0あれって一体なにに有効なのかさっぱりイメージできない
0330名称未設定
2009/01/21(水) 23:30:03ID:n7Q3devI00332名称未設定
2009/01/22(木) 02:11:28ID:bnJBd1zX0実際に使ってるワケじゃないけど
LAN内でファイル共有し合って作業してるときに
パブリックフォルダに何か送られてきたらメッセージ出すとか。
送り元が分かると更に便利に、安全になるんだけどねぇ
ファイルに対してわざわざ処理しようと思って実行するんだったらドロップレットの方が確実だから、
他人がトリガーになるような使い方とか
自分の自然な行動(作業)内に含まれるファイルの移動に組み込める内容なら有効に使えそう。
0334名称未設定
2009/01/22(木) 14:45:46ID:fvb5r/TD0スクリーンショットを取ったら自動的にプレビューで開くようにしてる。
後は>>332のと同じように共有フォルダにファイルを受信したら
Growlでメッセージを表示するようにしてある。
0335名称未設定
2009/01/22(木) 15:04:07ID:/Vfvtq050リアルタイムに必要な物には使いにくくなった。
しかもうちでは何故か動かない時があるし。
0336名称未設定
2009/01/22(木) 22:52:32ID:XSycLvZ60repeat
delay 15 * 60
activate
beep
delay 5 * 60
activate
beep
end repeat
15分→5分→15分のエンドレスでアラームがなるスクリプトで、
特に繰り返しの回数は決めてないんですが何かのキーを押したら終了とかという風に
設定するにはどうしたらいいでしょうか?
スクリプトエディタから起動して終了じゃなくてアプリケーションで保存して使えるようにしたいです。
アドバイスよろしくお願いします。
0337名称未設定
2009/01/23(金) 00:30:27ID:g8GHY3vb0ソフトさがしスレからきた人だね。
on idle
activate
beep
delay 15 * 60
activate
beep
return 5 * 60
end idle
これで「実行後、自動的に終了しない」にチェック入れて保存したら、
強制終了じゃなくて普通に終了できるよ。
音だけ鳴ればいいんだったら activate はなくてもいいんじゃないかな?
アラートも表示させるんだったらあったほうがいいだろうけど。
でも起動してしょっぱなに意味のないビープ音が鳴っちゃうのがスマートじゃないね。
なんとかならないかな?
俺はしろうとに毛が生えたようなもんなんで、他のベテランの人たちの回答も待ってね。
0338名称未設定
2009/01/23(金) 01:28:55ID:op5j6dQK0キーを押したら終了ってのはスクリプトエディタでは難しいね
妥協点としては return か esc ぐらいしか使えないが、
display dialog の giving up after を使う方法とか
on run
repeat
activate
display dialog "停止を押すと終了します" buttons {"停止"} default button 1 giving up after 15 * minutes
if button returned of result is "停止" then quit
beep
activate
display dialog "停止を押すと終了します" buttons {"停止"} default button 1 giving up after 5 * minutes
if button returned of result is "停止" then quit
beep
end repeat
end run
0339名称未設定
2009/01/23(金) 01:43:46ID:op5j6dQK0起動直後と終了直前にフラグを反転させればいい
property theFirst : true
on idle
if theFirst then
set theFirst to false
else
if |継続条件| then
--継続時の処理
else
--終了時の処理
set theFirst to true
quit
end if
end if
return *
end idle
0340336
2009/01/23(金) 02:48:37ID:I5W2QyB50キーを押したら終了じゃなくても全然かまいません。
>>338-339のスクリプトで試してみたのですが、うまくいかないのは保存形式が悪いんでしょうか?
>>339のダイアログの停止ボタン押したらそこでループしてしまって、
ダイアログまた表示されてしまいます。
0341名称未設定
2009/01/23(金) 03:04:13ID:g8GHY3vb00342名称未設定
2009/01/23(金) 03:30:51ID:I5W2QyB50338さんのやり方で十分だったので使わせてもらいますw
みなさんありがとうございました。
0343名称未設定
2009/01/23(金) 03:31:58ID:g8GHY3vb0>>337はdelayしてる間は普通に終了できないね。強制終了しないと。
returnで待ってる間は普通に終了できたから勘違いしちゃった。
ごめんよ。
0344名称未設定
2009/01/23(金) 03:39:06ID:I5W2QyB50最初やったときは終了できなくて、
もう一度やったら終了できたんでいいかなーと思ったんですがw
0345名称未設定
2009/01/23(金) 03:53:58ID:g8GHY3vb0でも>>339のアドバイスを参考にこういうふうに直してみた。
property theFirst : true
on idle
activate
beep
if theFirst then
set theFirst to false
return 15 * 60
else
set theFirst to true
return 5 * 60
end if
end idle
こんどはいけるんじゃないかな!
本当は>>339のアドバイスは、起動直後に意味のないビープ音を
鳴らさない方法を教えてくれてるんだと思うんだけど、
そっちのほうはちゃんと理解できなかった…。
それでその部分はそのままになってる。
全然関係ないけど、シフト押しながらアップルメニューをクリックしたら、
そのときにアクティブになってるアプリの強制終了メニューが表示されるの知ってた?
0346名称未設定
2009/01/23(金) 04:17:46ID:I5W2QyB50ありがとうございます。
リンゴのマークの強制終了から消してました。。
ありがとう!
0347名称未設定
2009/01/23(金) 22:35:51ID:iEiQKZr90if button returned of (display dialog "Beepタイマーを終了しますか?" buttons {"キャンセル", "終了"} default button 2 giving up after 15) is "終了" then quit
end reopen
を追加しておくと,起動中のDockアイコンをクリックすると終了ダイアログを出せる。
うっかりダイアログを出しても,15秒後に解除される。
タイマーはその瞬間にリセットされてしまうけど。
0348名称未設定
2009/01/23(金) 22:47:30ID:vlisoeNa0どのように書いたらうまくいくか教えていただけないでしょうか?
よろしくお願いします。
0349名称未設定
2009/01/23(金) 22:54:52ID:oyAQpv4q00350名称未設定
2009/01/24(土) 00:59:10ID:dHrVx5iw0>>338の様なダイアログで代用する方法なら、idle を使う必要は無かったから
んで reopen は使ったこと無いのだけど、>>347を参考に、こんな方法も考えてみた
キーボードではなく Dock アイコンをクリックする事で終了のトリガーとする
property theCount : 0
on idle
set theCount to theCount + 1
if theCount > 1 then beep
if (theCount mod 2) is 1 then
return 15 * minutes
else
return 5 * minutes
end if
end idle
on reopen
set theCount to 0
quit
end reopen
0351名称未設定
2009/01/24(土) 01:01:15ID:dHrVx5iw0>>345は飽くまでも「起動直後の idle ハンドラを回避する」という一般的な話として書いたものだよ
↓
>>345
>>339は飽くまでも「起動直後の idle ハンドラを回避する」という一般的な話として書いたものだよ
0352名称未設定
2009/01/24(土) 01:40:53ID:XrB8hENy0大抵のアイコン集がディスク系や既存有名アプリ系、フォルダー系なので
それのどれでもない日常品とかそういったアイコン集って案外少ないね
0354名称未設定
2009/01/24(土) 02:12:57ID:R4DkHcSF0フォルダを開く行為にも使える
on opening folder open_folder
set pass to "password"
tell application "Finder"
set win to window 1
set ans to display dialog "パスワードを入力して下さい" default answer ""
if (text returned of ans) is not pass then
close win
end if
end tell
end opening folder>>329
0355354
2009/01/24(土) 02:14:09ID:R4DkHcSF00356名称未設定
2009/01/24(土) 02:27:00ID:C7l3u5Cn00358名称未設定
2009/01/24(土) 14:37:43ID:iuhMERsp0VLC で OpenURL をやると、そのまま再生されるのではなく
「再生一覧」のところに登録されるようになってるようだけど。
0359名称未設定
2009/01/25(日) 15:32:49ID:tJVbHTew0どの辺から始めれば良い?
htmlぐらいしか触った事がないんで、右も左も分かんねぇ…。
始めたきっかけとか、とっかかりはこうしたとか、
教えてくれるとありがたい。
0360名称未設定
2009/01/25(日) 15:42:08ID:fTmccVMX0あとは用語説明と実際のサンプルスクリプトを読みまくった感じ。
http://piyocast.com/as/
がアプリケーションごとに整理されていて参考になる。
英語OKなら↓が公式のGetting Started Guide。
http://developer.apple.com/referencelibrary/GettingStarted/GS_AppleScript/index.html
今はまあ基礎のレベルは突破したかなという感じ。
まだオブジェクトの扱いとか謎なところはかなり多いけれど。
最近Cocoaに浮気中(といってもまともに時間取れないけど)。
0361名称未設定
2009/01/25(日) 16:32:24ID:tJVbHTew0サンキューだ…。とてもありがたい。
参考URLもブックマークに登録しといた。
で、今はどっかの入門篇見て、試行錯誤中。
今日一日でどの辺までいけるかなあ。
0362名称未設定
2009/01/25(日) 21:20:37ID:wcrhehAR0クセのある言語だからな。
でも,邪魔な予備知識がないとむしろ飲み込みが早いかも。
スクリプトという名前とは裏腹に,独立したプログラム言語なんだよなあ。
0363名称未設定
2009/01/25(日) 22:23:24ID:CN85++4l0とりあえずiTunesとかのスクリプトだと割と身に付くと思う。
構文も一通り使うし。
それまでもちょこちょこ使ってはいたけど、激ハマリしたのは、QTの録音機能
を駆使するようになってからかなぁ。
タイマーで録音を開始し、終了したら録音ファイル名を録音日時と録音内容に
変更したりするスクリプトを書いてみたり。
今はAppleScriptも一通り遊び尽くしたからCocoaを勉強してみようかな。。。
と思ってる。
若干チラ裏スマソ
0364363
2009/01/25(日) 22:27:21ID:CN85++4l0参考URL(今でも参考にする)は、
AppleScript Beginner's
ttp://homepage.mac.com/jinjin/applescript
AppleScript PARK
ttp://www.tonbi.jp/AppleScript/
かな。あとは>>360のように、やっぱり用語説明だな。連書きスマソ
0365348
2009/01/25(日) 22:32:01ID:9PuEB+lJ0そういうことなのですね。ありがとうございます。
このあとにPlayをしてみたんですが、やはりうまくいかないですね。。。
今はとりあえずキーストロークで書いてるんですが、0.8.6にしか効かず、新しいバージョンに対応したいなぁと思っていたのですが、なかなか難しいようですね。
0366名称未設定
2009/01/25(日) 23:13:55ID:tJVbHTew0iTunesか…分かった!基礎が身に付いたら初めにそこで試行錯誤するよ!
時間は凄くかかるけど、俺もAppleScript→Cocoa→Xcodeってな感じで進みたい…。
行く先は絶壁ばかりの難関のようだけど、
少しでも進めば、そこで見える光景は今と全く違うんだろうな…。
早くみんなに追いつきたいぜ。
じゃあ、スレ汚しはこの辺で。本当にありがとう。
>>364
早速ブクマ登録した
0367名称未設定
2009/01/25(日) 23:14:19ID:CN85++4l0次のスクリプトはダメ?
---
tell application "VLC"
OpenURL (the clipboard)
next 1
end tell
---
0.9.8で動作確認。
要は、再生するオブジェクトの参照をつけてやっただけなんだけど。
playでなく、nextとしたのも、ある意味ポイントかも。
0368名称未設定
2009/01/25(日) 23:19:48ID:g4VQsUPX0それがおもしろくて使い始めた
OSXになってから泣いた
0369名称未設定
2009/01/25(日) 23:24:09ID:d8T6lSiO0いつもAppleScriptで作り始める。ASStusioを使う。パフォーマンスその他の理由で
そのままobj-Cに移行って感じで、まともなもの作ろうとすると基本的にobj-Cに行っちゃうな。
配列が異様に遅いのが決定的。
AppleScriptを使う場面っていうと、デリミタのみでいじれる軽いものとか、言語のみでIllustratorに
絵を描かす(これは便利だ)とか。
0370名称未設定
2009/01/25(日) 23:27:57ID:fTmccVMX00371名称未設定
2009/01/25(日) 23:29:46ID:g4VQsUPX00373名称未設定
2009/01/26(月) 10:05:39ID:9LIdtwhI0Applescriptのlistは確かに遅いけど、
>>170で使っているようなテクニックを知らない人が多い
150の中の人はどうすればlistに早くアクセスできるか知っている
0374名称未設定
2009/01/26(月) 20:30:34ID:0v2l/cYb0tell application "System Events"
keystroke "F1" using command down
end tell
とやってみたんですが、うまくいきません。
ファンクションキーってどうやって指定すればいいんでしょうか。
0375名称未設定
2009/01/26(月) 23:32:59ID:GQNoX3uA0でいけると思います(動作未確認)
keycode は.Xmodmapに書かれているコード番号ー8の値を入れれば良いようです
例)ダッシュボードを開く
tell application "System Events"
key code 111 -- F12Key
end tell
0376名称未設定
2009/01/26(月) 23:44:42ID:GQNoX3uA00377名称未設定
2009/01/29(木) 16:12:40ID:R6pNhmv80G5 + OSX10.4.11 に付属している、AppleScriptで試しています。
1994年の「AppleScript入門」で基礎を読みまして、サンプルをいくつか試しました。
実際に作りたいものの最初のステップは、
・ドロップされたファイルと同一名称のサーバー上のフォルダの名称を、「フォルダ名--x」に変更し、
・ドロップされたファイルを、別のサーバー上のフォルダにコピーする。
です。
でまずはと、デスクトップ上のファイルを、サーバー上のフォルダにコピーするスクリプトを作ったのですが、うまく動いてくれません。
tell application "Finder"
activate
duplicate "++testdata" to foler "A(デスクトップに表示されているボリューム名):B(Aの中のフォルダ)"
end tell
この短い命令が動かず、いきなり途方にくれてます。
どうぞ、よろしくお願いします。
0378名称未設定
2009/01/29(木) 16:25:57ID:2lfbHmya0まったくそのままなのだとしたら考えられるのは下の点。
1.folderがfolerになっている。
2.コピー元ファイルの頭にfileが無い。
つか、なんてエラーが出てるのかも書いた方がいいよ。
0379名称未設定
2009/01/29(木) 17:06:19ID:R6pNhmv80レスありがとうございます。1&2のアドバイスで無事できまして、ホッ
としました!
foler はとてもはずかしいかったです。質問する前にもっと確認してからにいたします。
次回質問する際はエラーメッセージも書くようにします。
0380名称未設定
2009/01/29(木) 21:41:26ID:Tzux3mwy00381名称未設定
2009/01/30(金) 00:32:43ID:EwmQPhjH0コンパイルエラーと実行時エラーの区別もまだ付いてなかったんだろうね
初心者にはありがち
0382名称未設定
2009/02/03(火) 03:15:17ID:bokIOKSF0ブックマーク画面(すべてのブックマークを表示)を出したいのですが、どうすればよいのでしょうか?
BookmarksMenu??すいません。ご教示願います。
0383名称未設定
2009/02/03(火) 03:33:29ID:VSUkA48gPブックマーク画面へのパスが分からないと言う事ですよね?
URLを開く構文のURLを
"bookmarks://"
に指定すれば開けます。
0385名称未設定
2009/02/03(火) 17:17:14ID:yaURClTN0text frameのテキストの配置を変更する方法は無いのでしょうか?
text frame preferencesのvertical justificationだと思ったのですが、
text frame preferencesはR/Oになっています。
0386名称未設定
2009/02/03(火) 23:59:20ID:wReeK7/00自分はCS3しか持ってないけど
行毎にjustificationは変えられるから
tell paragraph 1 of text frame 1 of document 1
set justification to right align
end tell
paragraph 1をparagraphsにすれば全行とか
CSと違ってたらゴメン
0387名称未設定
2009/02/04(水) 09:19:55ID:yUkH0xLC0すみません。行揃えではなく、ボックス内での配置です。
テキストフレームオプションのテキストの配置の設定です。
0388名称未設定
2009/02/04(水) 13:48:51ID:7mf3xcML0これをキーボードのF19キーにキーボードショートカットで割り当てたいのですが、うまく実行出来ません。
スクリプト自体は打ち込み時に実行して同期が確認出来ましたので、問題はないと思われます。
保存場所と保存形式を確認の意味を込めて教えていただけないでしょうか?
0389名称未設定
2009/02/04(水) 16:18:00ID:tDz4s+YN0これですか
tell application "Adobe InDesign CS3"
set vertical justification of text frame preferences of every text frame of document 1 to center align
end tell
0390名称未設定
2009/02/04(水) 16:38:07ID:yUkH0xLC0おお、これです。
ありがとうございます。CSでもできました。
0391名称未設定
2009/02/05(木) 00:00:42ID:DUIXmIrt0myRecord as listで、リスト化すれば、中身の一覧は取得できるのですが、キーの一覧を取得する方法があれば知りたいです。
0392名称未設定
2009/02/05(木) 04:03:46ID:2fUT2Rv90サブルーチンの作り方を教えてもらいたく、またきました。
実行すると、「Can't continue GetFileName.」と表示されます。
on open drop_items
tell application "Finder"
repeat with obj in drop_items
set x to obj as string
GetFileName(x)
set fileName to result
end repeat
end tell
end open
on GetFileName(x)
set npassName to count characters of x
set i to npassName
repeat until i < 1
if character i of x = ":" then exit repeat
set i to i - 1
end repeat
set A to text from character (i + 1) to npassName of x
return A
end GetFileName
アドバイス、よろしくお願いします。
0393名称未設定
2009/02/05(木) 06:57:48ID:rms0EaSc0で呼べばええんでないの?
1994年の「AppleScript入門」とやらにも書いてありそうだけど。
0394名称未設定
2009/02/05(木) 10:12:42ID:4dIjcn6u0修正前後のPDFを渡して、比較結果をプリントさせたいのですが、
それにはAcrobat SDKが必要なのですか?
ためしに、ダウンロードしてみましたが英文資料で、困ってます。
0395名称未設定
2009/02/05(木) 10:20:00ID:o6VZ5fgvPこれでできないかなぁ?
>List & Record Tools Scripting Addition
ttp://www.latenightsw.com/freeware/RecordTools/index.html
0398名称未設定
2009/02/05(木) 23:20:25ID:sVZqjkor0最近使った項目を消去するスクリプト
tell application "Finder"
activate
end tell
tell application "System Events"
click menu item "メニューを消去" of menu "最近使った項目" of menu item "最近使った項目" of menu "Apple" of menu bar 1 of process "Finder"
end tell
これを起動項目に入れて使ってるのですが
毎回「NSReceiverEvaluationScriptError:4」が出るようになりました
起動項目に入れずに、起動後に実行するとエラーも出ず問題なく動作します
これはどういった原因が考えられるのでしょうか?
OSは10.4.11です
0399名称未設定
2009/02/06(金) 00:13:32ID:j9l05J/20ttp://macosx.com/forums/software-programming-web-scripting/265285-applescript-error-nsreceiverevaluationscripterror-4-a.html
The fix is to turn off Fruit Menu's "Use application icon" option. とか
ttp://mtlab.ecn.fpu.ac.jp/WSM_2005/050608132452.html
ちゃんと階層を追わないと、NSReceiverEvaluationScriptError: 4になります。 とか
0400名称未設定
2009/02/06(金) 00:30:40ID:GHgYEa9y0同じくAppleScriptを勉強している者として別件のレス。
そのソースだとファイルのフリをしたフォルダをドロップした時に
エラーが起きたり,パスのまま表示されたりするから注意が必要。
0401名称未設定
2009/02/06(金) 01:02:36ID:TwTQSaTB0click menu item "メニューを消去" of menu "最近使った項目" of menu item "最近使った項目" of menu "Apple" of menu bar item "Apple" of menu bar 1 of process "Finder"
にしてみたらどうかねえ?
0402名称未設定
2009/02/06(金) 01:20:38ID:HZTbiaVw0>393
どうもありがとうございます。my をつけただけでうまくいきました。
>1994年の「AppleScript入門」とやらにも書いてありそうだけど。
書いてないんです。
僕がつけたサブルーチンの名称がいけないのかな...
0403名称未設定
2009/02/06(金) 01:27:10ID:DBYu8CLZ0tell ナントカ ~ end ナントカ
の間に書かれたメッセージはナントカに送られるのがデフォルトなので、
それ以外のもの(この場合、自分で書いたハンドラ)に送るときには
そのことを明示しないといけない。
そして、「自分で書いた」を簡単にあらわすのが my。
もしtell~endの中じゃないところだったらmyがなくてもかまわない。
(その場合のデフォルトが自分自身になるので)
でもmyをつけても問題はない。
というわけで、とりあえずは、「自分で書いたハンドラを呼び出すときには
myをつける」って習慣を付けるんでいいと思います。
0404名称未設定
2009/02/06(金) 01:49:40ID:6Ud4QbMP0おかしいと思ったら遡るクセを付けよう
良く見ればエラーが
click menu item "メニューを消去" of menu "最近使った項目" of menu item "最近使った項目" of menu "Apple" of menu bar 1 of process "Finder"
ここで発生している事がわかる筈だ
後は文を少しずつ短くしていくか、
menu item "メニューを消去" of menu "最近使った項目" of menu item "最近使った項目" of menu "Apple" of menu bar 1 of process "Finder"
↓
menu "最近使った項目" of menu item "最近使った項目" of menu "Apple" of menu bar 1 of process "Finder"
↓
menu item "最近使った項目" of menu "Apple" of menu bar 1 of process "Finder"
或いは逆に長くしていく
process "Finder"
↓
menu bar 1 of process "Finder"
↓
menu "Apple" of menu bar 1 of process "Finder"
この場合、「menu bar 1 of process "Finder" 」ではエラーにならず、
「menu "Apple" of menu bar 1 of process "Finder" 」でエラーになる事がわかる
つまり「menu "Apple"」が間違い
じゃあ実際そこに何があるのかを調べるにはこう書く
UI elements of menu bar 1 of process "Finder"
すると「menu bar item "Apple"」がある事が見えてくる
後はこの繰り返しで>>401の答えに自力で辿り着けるだろう
0405名称未設定
2009/02/06(金) 01:53:10ID:6Ud4QbMP0ただしこれはSystem Eventsに限った話という事で、
全部前後に↓が付く
tell applicaiton "System Events"
~
end tell
0406名称未設定
2009/02/06(金) 23:41:20ID:rXCQ6Lpp0問題なく動作するようになりました
階層の記述を勉強しなおしてみます
ありがとうございました
もう一つ教えて欲しいのですが
ログイン項目に入れると不具合のあった当初のスクリプトでも
起動後に動かすと問題無く動作するというのは
どういう理由なんでしょうか?
今後も起動時に動作させたいモノがあった場合の参考にしたいもので
0408名称未設定
2009/02/07(土) 00:01:26ID:dxI01BKb0当該のスクリプトは>>398のになります
スクリプト自体がエラーなものなら、どの状況でもにエラーになるのでは?と思えてしまいまして
もしかしたら自分の固有の環境によるものなのかもしれないのですが
0409名称未設定
2009/02/07(土) 00:07:13ID:S/nzdlk80該当スクリプトをアプリケーション化してこれ↓で時間差で起動させてみるといいかも。
http://d.hatena.ne.jp/tanemori/20081208/DelayedLauncher
0410名称未設定
2009/02/07(土) 19:49:54ID:t6UihYDj010.5.6 Intel Core 2 Duo、Mail.app 3.5(930.3)です。
以下のスクリプトです。
using terms from application "Mail"
on perform mail action with messages messageList
tell application "Mail"
display dialog "Hello"
end tell
end perform mail action with messages
end using terms from
単に
tell application "Mail"
display dialog "Hello"
end tell
では問題ないです。
0411名称未設定
2009/02/07(土) 22:29:26ID:3ZCqlF3E0Applescriptをアプリ形式、自動終了しない形で保存して常駐させてます。
この場合、実行するとドックに表示されたり、アプリケーションの切り替え(⌘+tab)時に
表示されたりする訳ですが、これを表示させない様にするには
どうすれば良いでしょうか?
またこのスクリプトの実行時に毎回、スクリプトを実行するか(Run or Quit)
どうか聞いてくるのですが、これを表示させないようにすることは
出来ませんでしょうか?
ご返答お待ちしてます。
0412名称未設定
2009/02/07(土) 23:45:29ID:dxI01BKb0398です
これを使って例のスクリプトを数秒遅らせて立ち上げるとエラーは出ないです
ログイン項目同士での相性ってのがあるのかもしれないですね
0413名称未設定
2009/02/08(日) 00:08:41ID:rX16vSuh0> これを表示させない様にするには
俺はこういうユーティリティソフト使っちゃう
http://homepage.mac.com/fahrenba/programs/dockless/dockless.html
> スクリプトの実行時に毎回
保存するときの「初期画面を表示しない」にチェックが入ってない、か
「初期画面を表示する」にチェックが入ってる、かな?(どっちか忘れた)
>>412
それか立ち上がった直後ってGUI Scriptingを受け付ける態勢がまだ
できてなかったりするのかも
0414名称未設定
2009/02/08(日) 02:16:21ID:rWeForWa0アプリケーションバンドル内のContentsフォルダ内のInfo.plistファイルに
NSUIElementという項目を作ってやって値を1にするとDockに表示されなくなる。
これはほとんどのアプリケーションで有効だけど開発環境がJava、Qt、REALBasic、GTK+とかのXcode以外のアプリだと有効にならないことがある。
この作業を自動でやってくれるのが>>413のリンク先みたいなソフト。
0418名称未設定
2009/02/09(月) 10:00:15ID:uyw/qjjy0新・macではないのですが、ご存じでしたらお願いします。
OS9.2.2でスクリプト編集プログラムを動かせないのと、OSX10.4.1で作成したスクリプトを実行することができません。
AppleScriptが動作できていないような感じです。
AppleScriptを動作させるには、機能拡張などで必要なものが何か教えてもらえますでしょうか?
ちなみにこちらにあるのは、
スクリプト編集プログラム(J1-1.8.3)
AppleScriptLib(1.1)
CarbonLib(1.6.1)
AppleScript(J1-1.8.3)
です。
他にたりないもの、この組み合わせではダメなどありましたら、アドバイスお願いします。
0420名称未設定
2009/02/09(月) 22:05:29ID:PajgxNGs0適当にシステムの中をいじって壊しちゃったんだな。
0422名称未設定
2009/02/09(月) 22:50:48ID:SHKnVhck0半角英数しか使わないとか。
0423名称未設定
2009/02/10(火) 00:21:46ID:MfkdZSVw0みなさん、レスありがと。
手っ取り早いのは再インストールですね。
9.1のインストーラ&9.2.1アップローダを用意して出社したのですが、9.2のマシンではインストーラを受け付けてもらえませんでした。は~
仕事柄、フォントやらなんやらとレガシーな環境にどっぷり浸かってて、簡単には再インストールできないんで、残念無念です。
0424名称未設定
2009/02/10(火) 00:45:12ID:lbO1HTXc0両方で動くスクリプトは作れるけど,半角英数はどっちも筋違い。
文字に制限はない。それよりもFinderの仕組みが全然違うとか,他に気を使うところがたくさんある。
0425名称未設定
2009/02/10(火) 01:10:57ID:MBLFe4sO0去年の今頃までこのスレで一人OS9でAppleScriptの作成やってましたので,
懐かしくもあり他人事とは思えません。とりあえずAppleScript関連の初期設定
ファイルを捨てて再起動してみてはどうでしょうか。
バージョン1.8.3のものと,そのCarbonLibはOSXのClassic環境からもってきた
ものですよね。うちもそれで動かしてましたので,問題はないと思います。
AppleScriptLib(1.1)は,あってもなくてもどちらでもいいみたいですよ。
インストーラを受け付けてもらえないとのことですが,AppleScript関連の
機能拡張ファイルが欲しいのであれば,Tome Viewerを使えばそれだけを
抜き出せます。
0426名称未設定
2009/02/10(火) 09:26:51ID:dwaMcUh70おはようございます。
>425さん。
今日、試してみます。ありがとう。m(_ _)m
0427名称未設定
2009/02/11(水) 10:46:10ID:/8iL043f0>ttp://d.hatena.ne.jp/zariganitosh/20090210/1234233639
0429名称未設定
2009/02/13(金) 17:51:35ID:X6PEsdkV0http://www.apple.com/jp/downloads/macosx/imaging_3d/cocoapotrace.html
ラスタ画像をベクタ画像に変換するソフト
UIがAppleScriptで作られてるので、ここにいる人たちなら簡単に・・・でもないが
改良できる。XCodeでのAppleScriptアプリの作り方もよく分かる。
0431名称未設定
2009/02/14(土) 00:18:32ID:YcJ/wip30辞書に書いてあるということを知れば世界が広がるよね。俺が知らなかっただ
けか…
0432名称未設定
2009/02/14(土) 01:08:35ID:z8F0C/ZG0オリジナルの AS との細かい違いで長時間ハマッたり
Studio が必要なほど複雑なプログラムなら Cocoa の方が早いことに気づき…
0433名称未設定
2009/02/14(土) 01:34:55ID:YMQD1jCs00434名称未設定
2009/02/14(土) 01:43:10ID:r07wwjNu00435名称未設定
2009/02/14(土) 13:12:05ID:Eibf3qrk00436名称未設定
2009/02/14(土) 16:13:47ID:EkMgjDr400437名称未設定
2009/02/14(土) 17:05:13ID:mgRJ7TE10ASSにはまると使い回しがきかなさそうで。
0439名称未設定
2009/02/14(土) 17:41:16ID:hBlfVeum0ASSでソフト作ってるけど知らなかった。
これは役に立ちそうだ。
あと、
using terms from application "Xcode"
end
で囲むと手元のASSのスクリプトがスクリプトエディタでコンパイルできた。
0440名称未設定
2009/02/14(土) 19:21:52ID:yQ8ACLxwPあ、いや、そう言ってみたかっただけです。
0441名称未設定
2009/02/14(土) 22:12:54ID:mgRJ7TE10で,それは実行できるの?
0442名称未設定
2009/02/14(土) 22:38:24ID:71kHicmX0実行できましたがASSアプリのスクリプトだから何も起きません。
今G4で2500行ぐらいのスクリプトを編集してるのですが
Xcodeだとめちゃくちゃ重い時があるので
スクリプトエディタで編集できればいいかなと
思ったのですがXcodeのウインドウ分割のメリットの方が
大きい気がして今のところ利用してません。
ちなみに試しに同じスクリプトのコンパイル時間を計ってみたら
Xcodeが18秒、スクリプトエディタが8秒でした。
0443名称未設定
2009/02/15(日) 11:31:58ID:X5oFpKDQ0それだけでいいんだがなあ。
0444名称未設定
2009/02/15(日) 23:53:04ID:7AKlIZrQ00445名称未設定
2009/02/17(火) 12:53:35ID:7/l5dUgl0tell application "Finder"
print "sample.pdf" as POSIX file with properties {target:"INKJET@imac" }-- <-デフォルトでないプリンタ
end tell
上の場合,デフォルトのプリンタで出力されてしまいます。プレビュー.appがうまく、プリンタを選択できてないようなのです。
print "sample.pdf" as POSIX file with properties {target printer:"INKJET@imac" }
とすると(System Eventsにtell?)とすると
『書類"sample.pdf"をプリントのために開くことができませんでした。"スクリプトエディタ"はプレビュー.app Document フォーマットでファイルを開くことができません。』というダイアログが出て無限ループに入ってしまいます。
プリンタの選択方法を教えてください。
0446名称未設定
2009/02/17(火) 12:53:46ID:fbjg39Wf0スクリプトエディタで保存してファイル入れ替えみたいな事とかやってたな
0447名称未設定
2009/02/17(火) 14:02:56ID:Zh80Ur/x0今、data sourceに一つずつループで追加してるんですが、
すごい遅いんです。
call methodあたり使って、一括でドンと追加できたりしないでしょうか。
0448名称未設定
2009/02/17(火) 14:05:27ID:UG64q1lP0ウインドウをアップルスクリプトで開く方法を教えてください。
どうやっても『&1を取り出すことはできません。』とエラーポップアップが出てしまい、
うまくいきません。
ご教示お願いいたします。
0450名称未設定
2009/02/17(火) 20:37:08ID:BsjqPHB20もうやってるかもしれないけど
appendするデータはレコードのリストでも大丈夫だから
リストでまとめて渡してappend実行を一回にしたらちょっとはましになると思う
0451名称未設定
2009/02/18(水) 06:58:36ID:/i+Sn36e0作りたいのは、Aフォルダに入ったPDFを、自動的にJPEGに変換し、Bフォルダに入れたいのです。
選択したPDFを開くスクリプトはできました。
↓それをデスクトップのBフォルダにJPEGで保存させようと作ったスクリプトです。
tell application "GraphicConverter"
tell window 1
set JPEG quality to 30
set JPEG progressive to true
save in "アカウント~:Desktop:B:" as JPEG
end tell
end tell
これを実行すると、デスクトップに
アカウント~/Desktop/B
というJPEGフォルダができます。
どうぞよろしくお願いします。
0452名称未設定
2009/02/18(水) 12:54:33ID:G7YxrSTk00453448
2009/02/18(水) 19:16:34ID:y/5nPWtg0早速ご教示ありがとうございました。大変感謝しております。
こういったSafariがらみのスクリプト集といいますか例文ってどこにあるんでしょうか?
Appleのサイト上にはもう既にリンクが死んでしまっていてたどれないのですが…。
0454448
2009/02/18(水) 19:33:29ID:y/5nPWtg0現在Quicksilverと組み合わせて使いやすいマック環境を構築しようと努力をしている日々です。
ここ数日ググりつつがんばっている物の、知識が追い付かず苦戦しております。
目標としている物は、クリップボードにコピーしてある英単語を、
http://eow.alc.co.jp/◎/UTF-8/
◎のところに挿入してSafariで開くと言う物です。
皆様どうかご教示お願いいたします。
0455名称未設定
2009/02/18(水) 19:54:15ID:jLH41gIx0ブラウザで開くだけならopen locationが楽
○のところに入れるのは○の前後に文字を足すと楽
open location "http://eow.alc.co.jp/" & (the clipboard) & "/UTF-8/"
0456名称未設定
2009/02/18(水) 21:18:09ID:ixisb50p0何故ぐらこん?
QuickTime Playerとかのシステム標準のツールを使った方が汎用性が広くないかい?
0457名称未設定
2009/02/19(木) 01:53:10ID:FYxtePeS0>>410
Mail は on perform mail action 以下で display dialog をすると
フリーズするみたい。
なんらかのメッセージを出すなら、ファイル経由で出すしかないようだ。
0458名称未設定
2009/02/19(木) 02:11:37ID:FYxtePeS0簡潔なのは >>455 だが、Safari 指定でなんらかのURLを開こうとすると
下記のようになる。
document 1 というような形でブラウザウインドウの指定が必須なので、
ウインドウが開いてなければエラーとなるので要注意。
ちなみに Safari での document 1 とは、最前面のブラウザウインドウを指す。
tell application "Safari"
set URL of document 1 to "http://www.google.com/"
end tell
おまけで Firefox だと下記。Firefox の場合はウインドウ指定は任意。
tell application "Firefox"
OpenURL "http://www.google.com/"
end tell
AppleScript は「指定した URL を開く」という同じ処理でも、
アプリケーションごとに指定方法が異なるから注意。
処理によってはアプリケーションが AppleScript に対応していないことも。
0459名称未設定
2009/02/19(木) 02:13:11ID:dxd9g2MY03.xからかな?
AS周りはCaminoの方が充実してそうだが。
0460名称未設定
2009/02/19(木) 02:28:22ID:XN/6YGiP0tell application "なんでも"
<<event GURLGURL>> "http://www.google.com/"
end tell
0461名称未設定
2009/02/19(木) 03:10:35ID:FYxtePeS0イベントがあったね、忘れてた。
そしてスクリプトエディタでイベントの直記述してみて、
>>458 をもっと楽に書けることに気づいた…。
実行の度にウインドウがパカパカ開いちゃうのがあんまよくないけど。
【コンパイル前】
tell application "Safari"
ヌevent GURLGURLネ "http://www.google.com"
end tell
【コンパイル後】
tell application "Safari"
open location "http://www.google.com"
end tell
コンパイルすると変換されちゃうのが残念。
でもどうやら、「ヌevent GURLGURLネ」と「open location」は同じ処理みたいね。
ちなみにイベントの記述について、>>460 さんは表示上あえて << >> と
半角大なりと小なりの 2 回で書いているけど、
スクリプトエディタ上は、ヌ と ネ で記述する必要がある。(フォントが Osaka の場合)
↑半角カナの「ぬ」と「ね」です。
0462名称未設定
2009/02/19(木) 03:43:42ID:PVkmz0MG0レスありがとう。
>452
やってみましたが、
GraphicConverter でエラーが起きました:フォルダ 不特定のオブジェクト が見つかりませんでした。
というAppleScriptエラーになりました。
>456
PDFをCMYKモードを維持したままJPEGにできればなんでもOKです。
スクリプタブルなもので検索してひっかかったのです。
QuickTime Playerはプロ版をもってないので保存できず、
プレビューがいい感じなのですが、スクリプタブルにする改造?ができてません。
何かいい手はないでしょうか?
0463452
2009/02/19(木) 08:55:45ID:KUTxFZfc0AutomatorアクションにはRender PDF Pages as Imagesて良さげなものもあった。10.4
0464名称未設定
2009/02/19(木) 12:22:46ID:pWbBVdn90tell application "Image Events"
launch
set hoge to open file pdfFile
save hoge in jpgFile as JPEG
end tell
面白そうだし書いてみたが長くなったからキモの部分だけを
imegeEventsのコマンドに関しては用語説明読むべし。set と save の間に挟むだけ。
0465464
2009/02/19(木) 15:35:58ID:pWbBVdn90ごめんわからん。JPEGにもCMYKあるってのも知らんかった。
ImageEvents だとどーなってるんだろ?ま、ほぼ確実にRGBになってるとおもう。
0466名称未設定
2009/02/19(木) 16:02:36ID:XE9/4O7Y0--新しいURLを指定したドキュメントウィンドウで開く
--(ex.ドキュメント 1 のカレントタブに)
tell application "Safari"
set URL of document 1 to "http://www.google.com/"
end tell
--新しいURLを指定したウィンドウの指定したタブで開く
--(ex.フロントウィンドウの一番左のタブ に)
tell application "Safari"
set URL of tab 1 of front window to "http://www.google.com/"
end tell
--open を使う
--Safariの環境設定に従って、新規ドキュメントかカレントウィンドウの新規タブで開く
tell application "Safari"
open location "http://www.google.com"
end tell
--常に新規ウィンドウで開く
tell application "Safari"
make new document with properties {URL:"http://www.google.com"}
end tell
--常に新規タブで開く
--(ex.フロントウィンドウに新規タブで)
tell front window of application "Safari"
make new tab with properties {URL:"http://www.google.com"}
end tell
こんな感じかな?
上でフロントウィンドウを指定してるものは、最前面が
"ダウンロード"ウィンドウだったりするとエラーになるので注意。
除外するのが面倒なんだよな
0467名称未設定
2009/02/19(木) 21:28:11ID:bfwXC6dw00468名称未設定
2009/02/20(金) 01:43:29ID:KD7wz1li0>>452
フォルダ 不特定のオブジェクト~じゃなくて,ファイル 不特定のオブジェクト~なら,
パスの区切りを : から / に変更するだけでいいようです。Ver.6.4のグラコンで確認。
0469名称未設定
2009/02/21(土) 15:32:38ID:k0Jn4bRS0テキストから読み込めば登録できるわけだが、
それをしやすくするためのスクリプトを書いたみた。
行数が多いんで何回かにわけて書き込みます。
0470469
2009/02/21(土) 15:33:39ID:k0Jn4bRS0display dialog "でんき,電気,普通名詞
たかさ,高さ,普通名詞
ゆだ,ユダ,人名
たなか,田中,姓
いちろう,一郎,名
むらさきしきぶ,紫式部,その他の人名
かりふぉるにあ,カリフォルニア単純地名
いりのいしゅう,イリノイ州,接尾語付き地名
あっぷる,アップル,組織名
ふぁいんだー,Finder,その他の固有名詞
べんきょう,勉強,サ変名詞
じゆう,自由,形動名詞
わが,我が,連体詞
たいした,たいした,連体詞
がたがた,ガタガタ,副詞
がたがたと,ガタガタと,副詞
しかし,しかし,接続詞
まあ,まあ,感動詞
さす,指す,五段動詞
とぶ,飛ぶ,五段動詞
みる,見る,一段動詞
うける,受ける,一段動詞
さっする,察する,サ変動詞
あんずる,案ずる,ザ変動詞
0471470の続き
2009/02/21(土) 15:34:38ID:k0Jn4bRS0しずか,静か,形容動詞
へいせい,平成,数字列接頭語
さま,さま,人名接尾語
ぐん,郡,地名接尾語
おんちゅう,御中,組織名接尾語
えん,円,数字列接尾語
きをみてもりをみず,木を見て森を見ず,成句
おんぷ,♪,無品詞
こんま,¥",¥",無品詞
だぶるくぉーと,¥"¥"¥"¥",無品詞
スペース,” “,無品詞" default answer ",,"
set theWords to text returned of result
0472471の続き
2009/02/21(土) 15:35:27ID:k0Jn4bRS0tell application "WordRegister" to activate
tell application "System Events"
tell process "ことえり単語登録"
click menu item "テキストや辞書から取り込む..." of menu "辞書" of menu bar 1
end tell
delay 0.1
keystroke "d" using command down
delay 0.1
keystroke "j_i_s_h_o_t_o_r_o_k_u.txt"
delay 0.1
keystroke return
end tell
0473名称未設定
2009/02/21(土) 15:44:20ID:k0Jn4bRS00474名称未設定
2009/02/21(土) 16:20:08ID:Pn8FTPOT00475名称未設定
2009/02/21(土) 16:27:44ID:4G3ITV8D0あとことえりはTigerとLeopardでほとんど変わってない気がするから基本どちらでも行けそう。
でも一つだけ質問。
display dialog~以下の各品詞ごとの羅列の部分を実際に登録したい単語列に入れ替えるの?
このスクリプトだとその情報を抽出してRubyでテキストファイルをユーザーのデスクトップに作成しそのファイルをベースに辞書登録を行うようにしか見えないが....
0476名称未設定
2009/02/21(土) 17:14:43ID:k0Jn4bRS0ムービーを書き出す片手間に書いてたもんだから使い方書くの忘れてた。
display dialog 以下のずらずらっと書いてあるのは記入例です。
ダイアログにこの記入例が出るので、それを参考にして下の入力欄に
読み,登録したい単語,品詞
の順に書き込んで
OKを押してください。
「ぐぐる,ググる,五段動詞」みたいな感じで。
Rubyは生成するテキストファイルのコードを
(念のため)UTF-16にするのに使ってるだけです。
ASだけでも同じことはできるんだろうけど
ファイルアクセス使うのが何か面倒で…。
ちなみにうちの環境はLeopardね。
俺はスクリプトメニューに入れて使ってるけど
もちろんアプリケーションとして使ってもOK。
0477名称未設定
2009/02/21(土) 17:32:12ID:4G3ITV8D0やたらとエラーが出ると思ったらそのせいか。
0478名称未設定
2009/02/21(土) 17:32:47ID:4G3ITV8D0もしかしてスクリプトの中の¥はバックスラッシュだったりする?
0479名称未設定
2009/02/21(土) 17:43:34ID:4G3ITV8D0こんま,",¥",無品詞
だぶるくぉーと,¥"¥"¥"¥",無品詞
の部分でコンパイルエラーになるんだが...
0480名称未設定
2009/02/21(土) 20:41:34ID:47MMjVt00"/Library/Scripts/Folder Action Scripts/Image - Duplicate as PNG.scpt"
を特定のフォルダにフォルダアクションとして設定しているんだけど
多数(10個以上程度)一度にフォルダに入れると途中で止まってし
まいます。
特にエラーが起きている風もないんだけど、、、
0481479
2009/02/21(土) 20:56:17ID:4G3ITV8D0こんま,",¥",無品詞
だぶるくぉーと,¥"¥"¥"¥",無品詞
の2行を削除して残りの¥をバックスラッシュになおしたら動いた。
あとdefault answerのあとの",,"の部分は", ,"の方が分かりやすいな。
私見だが。
0483名称未設定
2009/02/21(土) 21:10:49ID:k0Jn4bRS0送信が一足遅かった…
>あとdefault answerのあとの",,"の部分は", ,"の方が分かりやすいな。
そういやその部分の半角スペースは無視されるんだよね。
そのことを忘れないためにもその方がいいかも。。。
まあ細かいところはお好みで。
品詞ごとの例とかもね。
上のやつはことえりヘルプの中のをほぼそのまま使ってるけど、
あの部分に何を書こうと動作は変わらないから
わかりやすいように直して使ってください。
0484474
2009/02/22(日) 11:42:50ID:h259Mcwl0元スクリプトに意見したりすなボケ死ね
って激しく思った
0485名称未設定
2009/02/22(日) 19:06:16ID:PonWBSMG00486名称未設定
2009/02/22(日) 19:29:43ID:d37E2LC/00487名称未設定
2009/02/23(月) 04:54:46ID:arfcVvPz0ポッドキャストの更新なら、updateAllPodcasts でいけるのですが、アプリの場合がわからなかったもので。
よろしくお願いします。
0488SideTrash
2009/02/24(火) 22:03:30ID:39UR9TzU0解消してやることはできませんか。
http://work.to.it/software/sidetrash/index-en.html
重要:"SideTrash"にエイリアス(またはsoft-link)をドラッグすると、
Important: if you drop an alias or a soft-link onto SideTrash icon,
エイリアスではなくオリジナルのファイルがゴミ箱に移動してしまいます。
the original file will be trashed and not the alias.
この問題の解決策をご存知の方は教えてください。
If you know how to solve this issue, please contact me.
"SideTrash"の本体は、以下のようなAppleScriptです。(続く)
0489SideTrash
2009/02/24(火) 22:04:01ID:39UR9TzU0----------------------------------------------
on open of fileList
tell application "Finder"
set volumeKind to kind of the startup disk
repeat with oneFile in fileList
if (kind of oneFile) as string is equal to volumeKind then
eject oneFile
else
move oneFile to trash
end if
end repeat
end tell
end open
on run
tell application "Finder"
activate
try
--- go to trash
set target of Finder window 1 to trash
on error error_message
--- new window with trash
open trash
end try
end tell
end run
----------------------------------------------
--- Written by Paolo Portaluri
0490名称未設定
2009/02/24(火) 23:02:57ID:qAaIgqFJ0そーゆーこと。
ぐぐれかすーって言っておいてあげて。
on open
tell application "Finder"
set fileList to selection
set hoge to item 1 of fileList
move hoge to trash
end tell
end open
こんな感じでとったらどう?
何に使うのか理解してないけど、普通にrunハンドラの中に書いて、
コンテクストメニューに当てたほうが使いやすいんじゃないかな?
0491名称未設定
2009/02/24(火) 23:59:07ID:Fnd+h1Hw0selection使うと、
無条件に最前面ウインドウ内で選択中のオブジェクトが捨てられるので危険かもよ。
0492名称未設定
2009/02/25(水) 01:48:59ID:/rpDFEA/0ほう、こういう仕様になってたのか。
on open of fileList
の時点で fileList にはオリジナルのファイルの方が
収められちゃってるんだね。
じゃあその後の部分でどうこうしても意味無いな。
Studioでドラッグ&ドロップに対応したアプリを
作ってみたことがあるんでそれで試してみたけど、
ウィンドウにドロップした場合はエイリアス自体が、
アプリケーションアイコンにドロップした場合は
オリジナルのファイルが得られるようだ。
0493名称未設定
2009/02/25(水) 09:23:28ID:jLfLEwug0ドロップレットってことは選択してアプリに落とすんだよ?意図してやってるのに危険もなにも無いでしょ。
それこそゴミ箱の存在が危険になるよ。
昨日はオープンハンドラに脊椎反射してしまってカキコしたけど、今ソース読んでみた。
フィルタリングして特定ファイルを処理してるんかと思ったら。これってただのゴミ箱じゃん?
なんでわざわざ書くんだろ?ゴミ箱使うかコマンドdeleteか右クリックすりゃよいのに。
0494名称未設定
2009/02/25(水) 09:41:07ID:WBXil1uZ030intかデュアルモニタ、ワンボタンマウス、ショートカット嫌い。こういう人向でしょ。
0496名称未設定
2009/02/26(木) 13:47:16ID:/Pl7kI450on adding folder items to this_folder after receiving these_items
tell application "Finder"
repeat with aItem in these_items
delete aItem
end repeat
end tell
end adding folder items to
0498名称未設定
2009/02/26(木) 13:56:28ID:8z5uiXZ30以下のコードをどうすれば動くのかアドバイスをお願いします。
やりたいことは、入力した文字列を含むフォルダを、検索して、その中のファイルをコピーする、です。
setのところですでに引っかかってしまってます。
tell application "Finder"
activate
display dialog "製番を入力してください" default answer ""
set seiban to text returned of result
--前回製番のフォルダがあるかどうかチェック
set seibans to every item of folder "P-job" of folder "output" of disk "Genera" that (seiban as text) is in name
display dialog (count seibans)
repeat with obj in seibans
set tgtFile to file "0001-Top.JTF" of folder folder -1
duplicate tgtFile to folder "HFRoot:Oce-2:"
delay 5
end repeat
end tell
0499名称未設定
2009/02/26(木) 18:05:58ID:H0HZqmsc0特定のメールに関して自動返信したいのですが以下のスクリプトでは何の反応もありません
using terms from application "Mail"
on perform mail action with messages theMessages for rule theRule
tell application "Mail"
repeat with theMessage in theMessages
set aReply to reply theMessage opening window yes
save aReply
end repeat
end tell
end perform mail action with messages
end using terms from
repeatの中をサンプルのAppleのウェブサイトを表示するやつに差し替えるとちゃんと表示されるのですが・・・
メールの中身に応じて返信の文章を加工したいのでMailの返信機能よりもスクリプトを使いたいと思ってます
対策というか正しい書き方がわかる方がいらっしゃいましたらご教示ください
0500名称未設定
2009/02/26(木) 21:45:43ID:tf6yrkdf0selectionは最前面のウィンドウでの選択項目を指しているけど、
Finderアイテムをドラッグする場合ってそのウィンドウが必ずしも最前面とは限らないんだよね
>>491の指摘はそういう意図かと
という事を踏まえてドロップアイテムとFinderのselectionを無理矢理合わせる方法は思いついたんだが、
その方法では結局エイリアスファイルには対応できないので意味が無い…
全ウィンドウのselectionを回収してエイリアスファイルが無いか確認すれば可能かもしれないけど、
フォーカスがぐるぐる回るのはあんま実用的では無いよねぇ
0501名称未設定
2009/02/27(金) 02:31:09ID:aglmUdik0自分で解決する方法も憶えた方がいい
エラーになったところより後ろは全部省いて、エラーになったところは更に分解する
さてどこでエラーになるのかな
disk "Genera"
folder "output" of disk "Genera"
folder "P-job" of folder "output" of disk "Genera"
every item of folder "P-job" of folder "output" of disk "Genera"
every item of folder "P-job" of folder "output" of disk "Genera" that (seiban as text) is in name
set seibans to every item of folder "P-job" of folder "output" of disk "Genera" that (seiban as text) is in name
0502名称未設定
2009/02/27(金) 02:43:02ID:aglmUdik0> set tgtFile to file "0001-Top.JTF" of folder folder -1
folder folder -1 ってコンパイル通る?
0503名称未設定
2009/02/27(金) 03:35:32ID:EFQWo3vf0>repeat with aItem in these_items
>delete aItem
>end repeat
ここは単に
delete these_items
でいいんじゃない?
にしても面白い変数名の付け方するね。
0504名称未設定
2009/02/27(金) 10:07:34ID:cnLaFbvz0>501、502さん、ありがとうございます。
分解して調べてみて、やっとスペルミスに気づきました。
ディスク名が間違ってました。はずかしい
入力した文字列を含むフォルダを検索することまではできました。
が、コピーする対象をセットできず奮闘中です。
>set tgtFile to file "0001-Top.JTF" of folder folder -1
↑を、set tgtFile to file "0001-Top.JTF" of folder "folder -1 "
に変えましたが、これではだめでした。
seibans の中のobj の中の、"folder -1"フォルダの中の、"0001-Top.JTF"ファイルをtgtFileにセットしたいのです。
set tgtFile to file "0001-Top.JTF" of folder "folder -001" of me
としてみたら、
appication "Finder"をタイプ string に変換できません。
というエラーがでてしまいました。
ちなみにobj自身をgtFileにセットすることはでき、コピーすることはできてます。
なんかもう少しのような気がします。
アドバイスあれば引き続きお願いします。
0505名称未設定
2009/02/27(金) 10:11:22ID:cnLaFbvz0エラーメッセージが違ってました。
file "0001-Top.JTF" of <<class cfol>> "folder-001"をタイプreferenceに変換できません。
でした。
0506名称未設定
2009/02/27(金) 10:20:24ID:cnLaFbvz0実況みたいですいません。
set tgtFile to file "0001-Top.JTF" of folder "Folder-001" of obj
で解決できました。
これだけで仕事がものすごく楽になります。
お世話になりました。
0507488
2009/02/28(土) 03:03:27ID:CebBBIIC0省くけど、もちろんくだらない理由であり、
必要度で言えばもちろん、かなり低い。ないならないで別にいい。
でもちょっと置いてみたくて、Homeの「.Trash」のエイリアスを作り、
「.」を取ってゴミ箱のアイコンを貼ってデスクトップ右下隅に置いてました。
それでまあまあ満足(そもそも必要度低いんだし)だが、
強いて言えば欠点がふたつある。
1:起動ボリューム以外にあるアイテムをドラッグするとコピーになる。
2:ボリュームのイジェクトには使えない。
「別ボリュームからは使わなきゃいい」んだし
「イジェクトには使わなきゃいい」んだけど、たまに、ついやっちゃう。
で、最近「SideTrash」を知りました。これには上記の欠点がない。
しかしエイリアスの扱いについてデインジャラスな欠陥がある。
この件では意外に盛り上がってくれたようでみなさんありがとうございます。
しかし日本の英智を結集しても無理なのか・・・
>>496を試してみたけど、「.Trashのエイリアス」と同じ欠点がある。
引き続きこのスレ覗くので、
どなたかが天才的な解決策を発見されることを期待します。
期待するばかりで申し訳ない。
0508名称未設定
2009/02/28(土) 03:52:01ID:5qJ0Z5Az0DragThingを購入してゴミ箱をデスクトップにおくのがオススメ。
DragThingユーザの内、デスクトップにゴミ箱を表示するのに
使ってる人間は約20%くらいいる。(俺リサーチによる調べ)
0509479
2009/02/28(土) 06:39:04ID:tusqZGXT0シェアウェアでこんなのあった。
bin-it
http://www.fastforwardsw.com/binit/
12.5ドルならDragThingよりは安いはず
でもボリュームのアンマウントに使えるかは未確認
0510名称未設定
2009/02/28(土) 08:47:04ID:H3QYeF6l0Dockを下側に置いてる時は右いっぱいに寄せていた。
通常はセンタリングされるけどこれでOK。
0511名称未設定
2009/02/28(土) 13:19:32ID:Od4bhtxF0>>488もこのことに触れているけど
イメージだけ表示されるWindowが作れれば、あとはAppleScript Studioで作成可能
(DragThing、bin-it 両者もWindow内のイメージにドラッグドロップしている。)
イメージだけ表示されるWindowを作るには、...Carbon?(の様な気がする)
特別仕様のWindowを作る方法がわからん。オレには無理だ...orz
追記…アイコンにドラッグドロップでファイル管理をしようとした場合、他にも不都合な点があって、
ひな形に設定しているファイルを勝手に複製して、複製した方を選んでしまう。
ファイル管理には使わない方がいいと思う。
0513名称未設定
2009/03/01(日) 02:36:25ID:emrRc1U90そういう事では無いのかな?
そういえばドラッグ&ドロップ関係のイベントって使ったこと無いな
今度やってみよっと
0514名称未設定
2009/03/01(日) 10:11:43ID:TnjXyS+p00515名称未設定
2009/03/02(月) 02:42:45ID:yFs6o5gb00516名称未設定
2009/03/04(水) 14:16:27ID:2NgDZ+ZS0>do shell script "ruby -rnkf -e 'print NKF.nkf(¥"-w16B -xm0¥", $*[0])' " & quoted form of theWords & " > ~/Desktop/j_i_s_h_o_t_o_r_o_k_u.txt"
この行、ターミナル用のコマンドに nkf がなかったんで
わざわざRubyを使ったんだけど、iconv の方を使って
do shell script "echo " & quoted form of theWords & " | iconv -t UTF-16 > ~/Desktop/j_i_s_h_o_t_o_r_o_k_u.txt"
こっちの方がシンプルでよかったかな、と今更だが。
0517名称未設定
2009/03/06(金) 00:50:31ID:aPPVeAWG0Cocoaでイメージだけ表示するウィンドウは作れたんだけど、
このウィンドウはタイトルバーがないので、ドラッグで移動させるには自分でコード書かなきゃいけないらしい
でやってみたんだけど、ドロップ処理と競合してるのか上手く動いてくれなかった
ドラッグできる部分とドロップできる部分を分ければ動くっぽいのだが
全部Objective-Cで書けばどーにかなるのかなぁ
0518名称未設定
2009/03/07(土) 00:42:01ID:SbUlu+Ap0誰かなにか知ってたら教えてください
tell application "System Events"
tell network preferences
-- 全ての設定の名前のリスト作成
set locList to (every location)
set nameList to {}
repeat with aLoc in locList
set nameList to nameList & (name of aLoc)
end repeat
-- 現在の設定の名前を取得
set currentName to (name of (current location))
end tell
end tell
-- ユーザが名前から選択
activate
set chooseResult to (choose from list nameList with prompt "ネットワーク環境を選択" default items {currentName} without multiple selections allowed and empty selection allowed)
try
set selectName to (first item of chooseResult)
on error
return 0
end try
-- 選択した名前に切り替える
tell application "System Events"
tell network preferences
set (current location) to (location selectName) --これが実際は効いてない
--(name of (current location)) --でもこれは切り替え後の名前を返してはいる
end tell
end tell
0519名称未設定
2009/03/07(土) 02:25:33ID:hXH4a81Y0name of every location
では通らないのか
0520名称未設定
2009/03/07(土) 17:27:12ID:i52yTfP90network preferences object は current user のものだ、と書いてあるから多分無理。
元々 system wide なものだから、system の設定のコピーなんだろう
>>519
型が違う
name of item 1 of every location な
0521名称未設定
2009/03/10(火) 11:25:45ID:ELqaet4+0set aFile to (choose file) as text
tell application "Adobe Photoshop CS3"
open file aFile
end tell
と処理した時に、フォルダやファイル名に全角数字や()があると
“ファイル 不特定のオブジェクトが見つかりませんでした”
とエラーが出てしまうのですがどう対処すればよいのでしょうか?
環境はOS 10.4.11
0522名称未設定
2009/03/10(火) 12:40:24ID:g5tPUcRm0as textが多分原因
---
set aFile to (choose file)
tell application "Adobe Photoshop CS3"
open aFile
end tell
---
じゃだめかい?
0524名称未設定
2009/03/10(火) 13:51:31ID:ZtHNMoSd0OS同じだがエラー起きないよ。
0525名称未設定
2009/03/10(火) 15:25:33ID:ELqaet4+0複数のマシンで試したんですけどやっぱり動きません……
1バイトだけなら動くんですけどね~
で、色々やってましたら
イラストレーターなら全角数字や全角パーレンが
入ってても開きました
ムムム、これは……?
0526名称未設定
2009/03/10(火) 15:51:42ID:ZtHNMoSd0こっちのPhotoshopはCS1なので、もしかするとそういうことなのかも。
0527名称未設定
2009/03/10(火) 16:34:38ID:ELqaet4+0CS1が入ってるマシンで試したらあっさり動きました
CS3め~~~~~~~~
お騒がせしました
色々ありがとうございました
0528名称未設定
2009/03/10(火) 16:40:42ID:jduE+5AY0ちなみにCS4でも駄目だった。
また不思議な事に123.jpgと123.jpgがあった場合、
123を指定したにも関わらず123が開く。
なんだろね。
0529名称未設定
2009/03/11(水) 00:51:43ID:hBq3cjAN0current locationを変更してもpreferences.plistは変更されない事から、
network preferencesでの切り替えは無理っぽいので、defaultsを使って直接書き換える
更に書き換えるだけだと変更はされるが有効にならないので、networksetupを使う
ついでに名前リスト生成は>>519で可能
というわけで、ちぃと強引だが一応できた
tell application "System Events"
tell network preferences
set nameList to name of locations
set currentName to name of current location
end tell
end tell
choose from list nameList with prompt "ネットワーク環境を選択" default items {currentName} without multiple selections allowed
if result is false or item 1 of result is currentName then
return
else
set selectName to item 1 of result
end if
tell application "System Events"
tell network preferences
set current location to location selectName
set selectId to id of current location
end tell
end tell
do shell script "sudo defaults write /Library/Preferences/SystemConfiguration/preferences CurrentSet /Sets/" & selectId with administrator privileges
repeat with theService in paragraphs 2 thru -1 of (do shell script "networksetup -listallnetworkservices")
do shell script "networksetup -setnetworkserviceenabled " & quoted form of theService & " on"
end repeat
0530名称未設定
2009/03/11(水) 00:54:29ID:hBq3cjAN0Leopard限定になっちゃうし
0531名称未設定
2009/03/11(水) 01:48:58ID:6EL/JQSO0自分も興味があったので検証してみた。
Leopard上のPhotoshop CS3でも全角ファイル名は開けないみたい。
Ver.6なんかは全角ファイル名でも開いているので,CS3のバグのような気がする。
あと全然関係ないけど,choose fileの結果はaliasクラスの値が返ってくるのに,
display dialogで結果を表示させると,なぜかalisというクラス名が表示される。
今気がついたんだけど,バグかなこれ?
0532名称未設定
2009/03/11(水) 02:16:37ID:hBq3cjAN0POSIX path of (choose file)
do shell script "open -a 'Adobe Photoshop CS3' " & quoted form of result
0533名称未設定
2009/03/11(水) 08:55:26ID:VR0lCmu00元に戻ってしまってドツボに嵌まったのを思い出した。
それはそれとして、回避策はないのかな。自分はCS2なんで検証できず。
0535名称未設定
2009/03/11(水) 10:05:35ID:V6fpi6WP00536名称未設定
2009/03/11(水) 10:08:38ID:yCagSJRU0>>532
shell script は試そうと思ってうまく出来なかったんですけど
tell application "Finder"
open aFile
end tell
で開かせた事があって
これだとフォトショップで開く事になるんですけど
保存の際にエラーになるんです
だから結局はこれでやっても処理は継続できないかな……
知恵貸してもらっておいて申し訳ないです
0537名称未設定
2009/03/11(水) 10:43:50ID:8zhPSfdZ0検証してわかったんだけど,openとopen file,パスを直接記述するか変数に入れるか,
でも挙動が違うみたい。自分も初めて知った。
0539名称未設定
2009/03/11(水) 11:42:44ID:V6fpi6WP0本当だ、って試さんと書いたんかい。実はそうなのだ。
set hoge to (choose file)
set hoge to hoge as Unicode text
tell application "Finder" to open file hoge using (application file "Adobe Photoshop CS3.app" in folder "Adobe Photoshop CS3" in folder "Applications" in startup disk)
保存の際にエラーってことなら無理かもだけど。一度こんなの試してみてもらえるかな?
0540名称未設定
2009/03/11(水) 12:45:36ID:yCagSJRU0開けました
でも保存できません
開くのは抜け道?あるけど
保存は何も思いつかない……
javascriptはどうかなと今朝思い立って
ググってやってみたけど開けなかった
0541名称未設定
2009/03/11(水) 13:10:47ID:VR0lCmu00Finderに名前を元に戻させる、かなあ。
0542518
2009/03/11(水) 22:30:43ID:hV+fJwFN0>>519 そうですね。repeatする必要ありませんでした。
>>520,529 やはり無理なんですね。
current locationがr/oになってないのでできるのかなと期待したのですが。
で、Appleメニューから選択する方法にしてみました。
日本語&UIスクリプティング限定ですがこれでできました。
0543518
2009/03/11(水) 22:31:12ID:hV+fJwFN0tell application "System Events"
tell network preferences
set nameList to (name of every location)
set currentName to (name of (current location))
end tell
end tell
-- ユーザが名前から選択
activate
set chooseResult to (choose from list nameList with prompt "ネットワーク環境を選択" default items {currentName} without multiple selections allowed and empty selection allowed)
try
set selectName to (first item of chooseResult)
on error
return 0
end try
-- 選択した名前に切り替える
tell application "System Events"
set frontProcess to (first item of (every process that frontmost is true))
tell frontProcess
tell first menu bar
tell menu bar item "Apple"'s menu "Apple"
tell menu item "ネットワーク環境"'s menu "ネットワーク環境"
tell menu item selectName to click
end tell
end tell
end tell
end tell
end tell
0544名称未設定
2009/03/12(木) 06:23:41ID:5YNKczeZ0開くことを確認。
>>540
うちのPhotoshop CS3で試してみたら保存できた。
ファイル名は関係なさそう。Leopardで確認。
0545名称未設定
2009/03/12(木) 09:19:58ID:BSiFn71/0どんなエラーでてるん? save document コマンドで変なフルパス渡してるんじゃないの?
>>539 で開いて >>532 で開かないってのもおかしいよね?なんか根本的に知識足りてないとかない?
open file のとこしか書いてないけど全体を見せてくれたら助言出来るかもだよ?
0546名称未設定
2009/03/13(金) 00:11:29ID:OLNuIInyOFinder(>>536>>539)やshell(>>532)で開く事は可能で、その後手作業で編集して保存するのも特に問題無くできた
OSは10.4.11/10.5.6の両方でPhotoshopはもちろんCS3
ファイル名は"(123).psd"として、編集内容はレイヤー増やしたり削除したりしてcommand-s実行
そもそもスクリプト使わず手作業で開いた後ならちゃんと保存できてるのだろうか、とか
別名で保存すらできないのだろうか、なんて事を考えてしまうのだが、
状況を再現できない事にはこれ以上何とも云えませんなぁ
それとも俺が勘違いしてるだけで、>>545の言う様にスクリプトで保存までやってんのかな?
だとしたらそこはGUI Scriptingに置き換えるとか、幾らでも逃げ道はありそうだが
>>536
ちなみにshellのopenコマンドでは -a 'Finder' とか書いているのでもない限りFinderは関与しないので、
もしまだ>>532を試してないのだったらやるだけやってみる事を勧めておくよ
0547名称未設定
2009/03/13(金) 00:35:54ID:RY5WwQqCOLeopard + CS4体験版(うちにはCS、CS2しかない…)
test(001).epsというファイルを用意して539で開いた後、
save cuurrent document --> ちゃんと保存される。メデタシ。
save cuurrent document as Photoshop EPS in aFile
-->これもちゃんと保存された…と思いきや、test(001).eps というファイルが
出来てる! 勝手にドキュメント名が半角になっちまってるではないか。
で、in aFile を外してみると、当然のことながらダイアログ は出るが、
元のファイル名のまま上書きされた。しかし面倒だ、スクリプトの意味が無い。
GUIスクリプト書かねばならんのか…
面倒くさいんで、新規保存のアクションを作って do action でやらせたら
ファイル名は元のまま保存された。ふう、難儀なもんだ。
0548521
2009/03/13(金) 13:05:31ID:N22ZBqD00昨日は仕事が忙しくてあまり試せなかったのですが
文字パレットのUnicodeの半角・全角形が入ってるとダメっぽい
FF00~どこまでかは未検証
POSIX path of (choose file)
do shell script "open -a 'Adobe Photoshop CS3' " & quoted form of result
tell application "Adobe Photoshop CS3"
activate
set docRef to the current document
set Getpath to file path of docRef
set Sendpath to Getpath & "_.eps" as Unicode text
--別名保存をするためダミーでつけてます
set aOptions to {class:EPS save options, encoding:high quality JPEG, preview type:eight bit TIFF}
save current document in file Sendpath as Photoshop EPS with options aOptions appending no extension with copying
close current document saving no
end tell
保存まで入れたものです
これを実行しますと開くのは問題ありません
保存の際、ファイル名に特定の全角があるものは半角にされてしまい
フォルダ名にあるのは『フォルダ 不特定の~』とエラーが出てしまいます
当然、半角のみのパスなら問題なく保存されます
これは改めてわかった事なのですが、
フォルダ名にあるのとファイル名にあるのでは挙動が違うみたいです
後だしじゃんけんで怒られそうですが
元々はASSで作っておりまして、一度は出来たと思っていたのですが
エラーが出るよと使用者に言われて
検証していったらPhtoshopのopenに行き着いたので
簡略化して質問してしまいました
0549名称未設定
2009/03/19(木) 16:03:23ID:sWEDU9rC02.元ファイルの場所にファイル名を"XXX.拡張子"に変更した複製を作成
on open (inFiles)
set theFile to item 1 of inFiles
tell application "Finder"
set theFolder to container of theFile
set theNewFile to duplicate theFile to theFolder without replacing
set name of theNewFile to "XXX.拡張子"
end tell
end open
一つだけなら処理できるのですが、これを複数ファイルのドロップに対応させるにはどのように記述すれば良いでしょうか?
0550名称未設定
2009/03/19(木) 16:21:35ID:gh/Y7KwX0end repeat
0551名称未設定
2009/03/19(木) 17:05:07ID:sWEDU9rC0有り難うございました。
挿入する場所がいまいちわからなかったのですがうまく行きました!
0552名称未設定
2009/04/01(水) 12:40:12ID:i9A41uXD00553名称未設定
2009/04/11(土) 18:28:36ID:E/Ke3yel0あと読み込むスレのURL入れるダイアログをいつでも出せるようにしていただけるととてつもなくうれしいです。
0554名称未設定
2009/04/12(日) 16:16:13ID:eCja8I9i0アラームの設定の仕方を教えて下さい。
sound alarmやopen file alarmなどのクラスは辞書(iCal.sdef)に載っているのですが、
スクリプトを実行するためのクラスが見当たりません。
make new `run script' at end with properties {trigger date:current date, script name:"sample"}
こんな感じをイメージしていたのですが,参考になるサイトも見つからなくって...
0555名称未設定
2009/04/12(日) 20:09:46ID:VRZcuAEG0やってみると、open file alarms として登録されてるっぽいな
ここで指すスクリプトが、スクリプト形式でないといけないのか、
アプリケーションとして作っておかないといけないのかは、>>554がレポートしてくれることを望む
0556名称未設定
2009/04/13(月) 13:02:49ID:ABtawuno0>applescriptからicalのeventまたはtodoに"スクリプトを実行(run script)"する
>アラームの設定の仕方を教えて下さい。
iCalのカレンダーからスクリプトを実行するんじゃダメなのか?
applescriptからiCalを呼んで更にapplescriptを呼び出す意味がよくわからないのだが…
0557名称未設定
2009/04/20(月) 12:25:14ID:8MTahNtV0InDesignはだいじょうぶなんですけどね。
結局、解決方法として、開く場合は同じようにPOSIX pathであつかい、保存する場合は、
homeフォルダにダミーの俺様一時フォルダと一時ファイルを作り、
Finderでリネームしてからmoveして上書きさせるという方法にしました。
すっきりしなくてしばらく悩んでたけどここを見て頭の中の整理ができました。ありがとう。
0558名称未設定
2009/04/20(月) 22:32:27ID:DJFzfGbq0話が出てた頃、長いアク禁状態で書き込めなかったんだけど、
do javascript で一応回避できたよ(10.4.11 CS3)。
まあ、あまり真剣に検証はしてないけど
----
set aFile to choose file
set aFile to quoted form of POSIX path of aFile
tell application "Adobe Photoshop CS3"
--open
set aJsOpen to "
var aDoc = new File(" & aFile & ");
open(aDoc);"
do javascript aJsOpen
--EPS SAVE
set aJsSave to "var docRef=documents[0];
var epsOptions = new EPSSaveOptions();
epsOptions.encoding=SaveEncoding.JPEGHIGH;
epsOptions.preview=Preview.EIGHTBITTIFF;
docRef.saveAs(new File(docRef.fullName + '_.eps'),epsOptions);"
do javascript aJsSave
--close
close current document saving no
end tell
----
0559名称未設定
2009/04/21(火) 10:53:16ID:G/XoDJ6w0おぉ、javaで保存いけますね。Illustratorでも確認しました。その他の色々もいけるかも?
Adobe関連の新しい部分はASとVBは更新せずjavaだけになるという話ですし、
これからは中身をできるかぎりjavaでやるかなー。やるきでてきました。
0560名称未設定
2009/04/21(火) 10:59:56ID:8kyWcLOc0豆腐の角に頭をぶつけて死ぬのがオススメ
0561名称未設定
2009/04/21(火) 11:36:04ID:G/XoDJ6w00562名称未設定
2009/04/21(火) 12:42:21ID:kPLxhmON00563名称未設定
2009/04/21(火) 12:53:04ID:G/XoDJ6w0とりあえず色々となんだかいけそうになってきたよ。ありがとう。
0564名称未設定
2009/04/21(火) 12:56:18ID:BzQNW88n0何かかわいそうになってきたので、括弧つけて略した
java script (JS); Java (Java); 全く別の言語だから注意するように。
ジャバといえば風呂釜…じゃなくて、Sun が買収されましたなぁ。
0565名称未設定
2009/04/21(火) 13:02:48ID:G/XoDJ6w0恩を仇で返すような書込みだったんですね。以後気をつけます
0567名称未設定
2009/04/21(火) 16:21:33ID:s/8jjmoQ04GB程度ごとに振り分ける単純な処理を自動化ようと思ってます。
できるだけ均等になるように、とか、
組み合わせを事前に計算して、とかができればいいんですが、
難しいので、とりあえずシーケンシャルに処理させるように組みました。
が、フォルダ容量を加算する、
という単純なところで、エラーが出たり出なかったりして、思うように動作をしてくれません。
加算できない時があるのは、なぜでしょうか?
0568名称未設定
2009/04/21(火) 16:23:39ID:s/8jjmoQ0tell application "Finder"
activate
set nDivFolder to 0 --分割フォルダ数を初期化
repeat
set DivFolderVol to 0 --分割フォルダ容量を初期化
--新規に分割フォルダを作成し、ターゲットにセットする
set nDivFolder to (nDivFolder + 1)
try
set DivFolder to make folder at "Macintosh HD:BackupFolder:4GB単位で振り分け:" with properties {name:((month of (current date) as integer) & day of (current date) as string) & "-" & nDivFolder}
on error errText
beep
display dialog "分割フォルダを作成できません"
exit repeat
end try
set tgtFolders to every item of folder "作業終了" of folder "BackupFolder" of disk "Macintosh HD"
if (number of tgtFolders) = 0 then
display dialog "該当データするデータはありません"
exit repeat
end if
0569名称未設定
2009/04/21(火) 16:26:16ID:s/8jjmoQ0repeat with obj in tgtFolders
--フォルダ容量をsizeDataに設定する
set sizeData to size of obj
try
--分割フォルダ容量にフォルダ容量を加算する
set DivFolderVol to (DivFolderVol + sizeData)
on error errText
beep
display dialog "分割フォルダ容量にフォルダ容量を加算できません" & return & "DivFolderVol = " & DivFolderVol
exit repeat
end try
--分割フォルダに、ターゲットフォルダを入れると、4.2GBに収まるか?
if DivFolderVol < 4.5E+9 then
--分割フォルダに移動する
move obj to DivFolder
else
display dialog "容量をオーバーします"
set DivFolderVol to (DivFolderVol - sizeData)
end if
end repeat
end repeat
end tell
0570名称未設定
2009/04/21(火) 17:20:53ID:UWZ3EL1T0話し合ってたのはここじゃなかったか。つい最近どっかで色々書いたけど。
サイズがもらえないんだよね?他にもクラスもらったらカタカナとかいろいろ困ったものだ
System Events の中でやる。
tell application "System Events" to set sizeData to size of obj
一度プロパティをセットしてそこからもらってくる。
set hoge to properties of obj
set hoge to size of hoge as integer
こんな感じを試して欲しい。ちなみに私は10.5.6。
何が帰ってきてるかイベントログを出しながらいろいろやってみると良いのだ。
0571名称未設定
2009/04/21(火) 18:22:12ID:s/8jjmoQ0試してみました。
> System Events の中でやる。
> tell application "System Events" to set sizeData to size of obj
現象は変わりませんでした。
> 一度プロパティをセットしてそこからもらってくる。
>set hoge to properties of obj
>set hoge to size of hoge as integer
hogeを、sizeData に変えて試してみたところ、
「missing valueをタイプ integerに変換できません」
というAppleScriptエラーが出てしまいました。
イベントログを出しながら、というのがわからないので調べてみます。
遅れましたが、こちらの環境は、OXS 10.4.11です。
0572名称未設定
2009/04/22(水) 00:35:43ID:72Y7WtJy0>>564
×Javascript
×Java Script
○JavaScript
>>571
スクリプトエディタの下部で、結果ではなくイベントログを選んで実行してみる
0573名称未設定
2009/04/22(水) 03:47:30ID:9KCuLn0o0missing value が出るのは Finder がそのデータを持っていない時。
つまりフォルダーのサイズは常時計算されていないってことだと思う。
その "作業終了"フォルダーをリスト表示で開いておいて、
Finder の[表示]-[表示オプションを表示]で
このウィンドウのみ、全てのサイズを計算にチェックを入れておけば、
フォルダーに中身の合計容量が表示されるので、それから実行すれば
エラーは出ないかも。
あるいは、missing value が出たら、ちょっと待って、再取得すればOKかもしれない。
missing value は他の変数に代入したり計算しようとするとエラーが起こるので、
それを try文で捕まえて、もう一度ループさせるとか。いや、たんにメッセージだして
終了させて、もう一度手動で再実行すればいいのか。
あるいは、サイズ取得に StandardAdditions の info for を使えば行けるかも。
set fileInfo to info for (obj as alias)
set sizeData to sizeData + (size of fileInfo)
こんな感じ?
あと、休止してるドライブとか、遅いネットワーク越しとかだと、タイムアウト
してエラーになるようなこともあるんで、場合によってはそう言う対策も必要かも。
と、ちょっととりとめもなく…
0574名称未設定
2009/04/22(水) 03:52:04ID:9KCuLn0o0間違えた
×set sizeData to sizeData + (size of fileInfo)
○set sizeData to size of fileInfo
だね
0575名称未設定
2009/04/22(水) 04:04:31ID:4h7RmYLW0だけどねえ。
0576名称未設定
2009/04/22(水) 09:32:50ID:DwUsCRRs0サイズを調整して入れる」ことが目的ならディスクイメージを作ってそれを
分割するのが良いんじゃないだろうか?
hdiutilにディスクイメージの分割機能があるので分割したままでマウントも
できるし。
コマンドラインに抵抗があるなら(スレ的にそれはないか)DMGConverterが
フロントエンドとしてある。
0577名称未設定
2009/04/22(水) 09:34:15ID:DwUsCRRs0hdiutilにディスクイメージの分割機能があるし、分割ディスクイメージなら
分割したままマウントできるし。
0578名称未設定
2009/04/22(水) 09:34:18ID:56XqzhhX0SmallTalk、Next Step、C言語 なんかも許容できない人と見たw
こまけぇことはいいんだよ
0579名称未設定
2009/04/22(水) 09:45:50ID:qwOiPX0/0それよりAppleScriptとActionScriptを待ちがえるほうが嫌。
0580名称未設定
2009/04/22(水) 12:01:06ID:eLwgTwLC0どっちかしか使ってないから区別がつかないんだろうな
0581名称未設定
2009/04/22(水) 12:16:09ID:c0rUZZVk0スクリーンショットを撮るスクリプトを書き、アプリ化
して保存しました。
そのアプリを実行すると、それがアクティブになってしまい、
撮りたいウィンドウが非アクティブの状態で撮影されて
しまいます。
これを回避する方法を教えてください。お願いします。
0582名称未設定
2009/04/22(水) 12:20:40ID:ni9Ii53400583名称未設定
2009/04/22(水) 13:13:29ID:YD0+zBI20set myPngPOSIXpath to (POSIX path of (home as alias) & "Desktop/mySC.png") as Unicode text
end tell
tell application "目的のアプリ"
activate
end tell
do shell script "screencapture " & myPngPOSIXpath
0584名称未設定
2009/04/22(水) 13:20:00ID:eLwgTwLC00585名称未設定
2009/04/22(水) 15:43:15ID:oiZ0etmK0>573
ありがとうございます。
これですんなりいけました。
0586名称未設定
2009/04/22(水) 18:53:30ID:ICJtJeVG0そうですね、すみません
>>583
その「目的のアプリ」をスクリプト実行前に
アクティブだったアプリにしたいのです。
特定のアプリならいいんですが、毎回変わる
ものなので・・・
0587名称未設定
2009/04/22(水) 20:02:27ID:YD0+zBI20tell application "Finder" to set myPngPOSIXpath to (POSIX path of (home as alias) & "Desktop/mySC.png") as Unicode text
tell application "System Events" to set visible of processes whose frontmost = true to false
tell application "System Events" to set visible of processes whose frontmost = true to false
do shell script "screencapture " & myPngPOSIXpath
0588名称未設定
2009/04/22(水) 20:41:31ID:jmWII8kE0ScriptMenuみたいにfrontに出ないユーティリティーからscript実行する。
どうしてもアプリケーションにしたいならInfo.plistにLSBackgroundOnlyを
設定してbackgroundで実行する。
0590名称未設定
2009/04/22(水) 21:41:02ID:ICJtJeVG0ありがとうございました。
これをヒントにがんばってみます!
>>589
そんなことは頼んでないと思いますが。
どうやれば適切な質問になったのでしょうか?
0591名称未設定
2009/04/22(水) 21:46:56ID:y31/uTER0>>582をはじめ過去ログ見ればわかるだろ
まずはどこまで書けたかを晒し、それを添削するというのがこのスレのスタイルだ
0592名称未設定
2009/04/22(水) 23:20:41ID:kURH2FYG0どうやれば適切な質問になったのでしょうか?(キリッ
それすら考えられない馬鹿が何いきがってんだよ
0593名称未設定
2009/04/22(水) 23:42:36ID:HyNMQeQ20>>1
>【注意】
>安直なスクリプト作成依頼、丸投げはやっちゃダメ! わからない点、エラーが解決できない点について、スクリプト片を添えて質問しよう。
1くらい読んでるよね?
0594名称未設定
2009/04/23(木) 00:05:11ID:lNNc0y1j0>>>589
>そんなことは頼んでないと思いますが。
>どうやれば適切な質問になったのでしょうか?
適切な質問の方法としては、回答者に対して否定的な文章を書かないことがある。
もっと正確に言うと、否定的な意味のある言葉を使わずに文章を書くべき。
質問している(=人にお願いをしている)人から「そんなことは頼んでない」
なんて上から目線とも取れるような文章が出てきては、回答しようという気がそがれてしまう。
書き込み前に投稿する文章を自分で声を出して呼んでみて、自分の上司や先生にも同じ
言い方/書き方をするのか、と考えてみると良いよ。
0596名称未設定
2009/04/23(木) 01:46:22ID:NERf7AVq0そして各板,それに続くスレッド個々に独自のルールがある。
それぞれの目的でそれぞれのスレッドが立ち、そのスレッドに興味ある人たちが集まる。
でもそのルールは強制じゃない。偉そうに質問解答するのも自由。多少なら荒らすことも可能。
ただ、端から見れば低俗な人が来たなって思うだけ。規制がかかるだけ。ただそれだけのこと。
気に入らないレスがあるなら、いちいち反応しないでスルーすればいいだけの話。
0597名称未設定
2009/04/23(木) 01:56:29ID:YYCPFwhG0あとはわかるな?
0598名称未設定
2009/04/23(木) 12:17:01ID:c0enMtgx0>適切な質問の方法としては、回答者に対して否定的な文章を書かないことがある。
>質問している(=人にお願いをしている)人から「そんなことは頼んでない」
>なんて上から目線とも取れるような文章が出てきては、回答しようという気がそがれてしまう。
「回答者に対して」って書いてあるけど、明らかに >>590 は回答者に
対して言ってないよね。>>587,>>588で既に回答をもらっていて、
回答もしないでルールを押し付けてくる>>589に対して言ってるだけ。
そもそも>>594は「そんなことは頼んでない」という発言に対して
疑問を投げかけている、つまり>>590以前の質問に関する質問の仕方
については何も言っていない。>>594は全く答えになってないんだよ。
分かるかな?あと、自分の上司や先生と2chは同じものだと
本気で思ってる?>>594は言ってることがめちゃくちゃ。
あのさ、確かに>>590はスクリプトを晒してから質問しなかった
のは反省すべき。でも、端から見ていると >>594みたいに
回答もできないのにピントのずれた的外れなレスをつけたり、
>>592みたいにわざわざ (キリッ みたいな文言をつけくわえて
粋がっている奴らのほうがよほど「低俗」に見えるよ。
>>594,>>592は反論があったら遠慮なくどうぞw
0599名称未設定
2009/04/23(木) 12:38:18ID:Q/06Zh550私憤をはらしたいのかしらんが当事者でも無いのに混ぜっ返すな
589がルールを押し付けてる様に見えてるお前が一番低俗だよ
0601名称未設定
2009/04/23(木) 14:17:49ID:coHpjbSb0恥の上塗りだな
0602名称未設定
2009/04/23(木) 21:01:14ID:E1/9Y5jB0どこで読んだのかまったく思い出せん…。老人力がつき始めて困るわあ
0603名称未設定
2009/04/23(木) 21:07:08ID:qlfXGITq0ぴよまるさんがよく名前出すから思えたw
0604名称未設定
2009/04/23(木) 23:24:42ID:E1/9Y5jB0ありがとう、どこで読んだか思い出しました。確認したら人名はウィリアム・クックでした。
「Macでプログラミング」スレでオブジェクト指向プログラミングの話になっていて、
そこで紹介されていたサイトの中で「クックも AppleScript の設計者ではありますが」云々
というかたちで触れられていたのでした。
http://pc11.2ch.net/test/read.cgi/mac/1216824430/794
AppleScriptについての論文をみてみると(この論文自体ウィリアム・クックによるものですが)、
開発メンバーの中にクックの名前はありますが、Chris Espinosaの名前はありませんね。
論文の謝辞には名前があげられてるのに、なぜだろう…。
ちなみに開発メンバーの中には日本人の名前もありますね。
http://www.cs.utexas.edu/~wcook/Drafts/2006/ashopl.pdf
0606名称未設定
2009/04/26(日) 18:24:42ID:zhEj7A+E0quicktimeで自動エンコさせるスクリプトを組んでいるのですが、現在エンコ中か否かの判断をファイルサイズで判定しようとしています。
二回の判定の間にdelayを入れてますが、何故か測定値が二回とも同値で返ってきてしまいます。
原因のわかる方いらっしゃいますでしょうか?
以下、該当部分だけ抜き出します。
tell application "Finder"
set firstdata to size of file "change.mov"
end tell
delay 300
tell application "Finder"
set seconddata to size of file "change.mov"
end tell
if seconddata = firstdata then (以下省略)
0608名称未設定
2009/04/26(日) 19:07:24ID:m06JOqFF0しかも不可視属性で。
ターミナルで確認出来るよ。
0609名称未設定
2009/04/26(日) 19:20:43ID:t5z6VwIc0なぜそのような面倒をしなくてはいけないのかよくわからない。
0610名称未設定
2009/04/29(水) 14:42:31ID:DarRGFRi0http://www.startly.com/products/quickeys/mac/4/
0611名称未設定
2009/05/01(金) 20:51:03ID:AObOhZeI0EXCEL2004のVBAでapplescriptを実行する際に
MacScript ("download.scpt")
と実行するのですが
download.scptに引数を持たせたいとき
MacScript ("download.scpt world")
にしてもエラーが出てしまいました
MacScriptの中の実行しようとするスクリプトに引数を持たせたいときどうすればいいか
対処方法を知ってる方が忌ましたら教えていただけないでしょうか
よろしくお願いいたします
0612名称未設定
2009/05/01(金) 22:51:54ID:4QK2oGBF0アップルスクリプトには、引数を指定できない。
シェル関数を使えば、引数の指定が出来るので、それで代用すれば?
やりたい事が、何なのか判らないので具体的どうしろとは言えないが。
0614名称未設定
2009/05/02(土) 01:40:31ID:pIVluPwb00615名称未設定
2009/05/02(土) 21:58:35ID:VNFqXEXPOていうかそもそもコマンドラインの概念がないMacではいわゆる引数なんてのもなかったところにAppleScriptだのターミナルだのが入ってきたからこういう質問が出るんだよなぁ。
まぁASには世話になってるし、便利だから否定はしないんだけど。
これ以上は哲学論になりそうだからこの辺で。チラ裏すまそ
0616名称未設定
2009/05/03(日) 21:16:47ID:jMJr40Ab0いまはめちゃくちゃ。
0617名称未設定
2009/05/06(水) 18:18:42ID:88NaZlCL0>applescript側に特定のテキストファイルやセルから引数を読み取る処理を入れておけばいい
クリップボード経由でも引数を渡せる
--clipboard is something like "book1;1500"
set text item delimiters of AppleScript to ";"
set hikisuuList to the clipboard
set mono to text item 1 of hikisuuList as text
set nedan to text item 2 of hikisuuList as number
ブラウザーから引数を渡して,appleScriptを実行することも可能。すごいことができる!
http://www.apple.com/applescript/linktrigger/
0618名称未設定
2009/05/08(金) 19:19:41ID:Q/b1ZXLGiコマンド+aで全選択し、コマンド+cでコピーする
という処理はどの様なapplescript になりますでしょうか。
よろしくお願い致します。
0619名称未設定
2009/05/08(金) 20:12:32ID:yArLlEst0>>1
>【注意】
>安直なスクリプト作成依頼、丸投げはやっちゃダメ! わからない点、エラーが解決できない点について、スクリプト片を添えて質問しよう。
0620名称未設定
2009/05/08(金) 20:49:35ID:iCuTc15f0というか調べてないだろ
0621名称未設定
2009/05/08(金) 22:30:55ID:WFRjsTTt0documentのsourceかtextをset the clipboard toとかした方がええんでない?
0622名称未設定
2009/05/09(土) 07:00:30ID:oMS6MlVs0do practice by yourself
end tell
0623名称未設定
2009/05/09(土) 12:47:06ID:W+fM2Fc80end of line があるべきところですが unknown token が見
つかりました。
0624sage
2009/05/09(土) 14:57:35ID:1jJZLE260>という処理はどの様なapplescript になりますでしょうか。
私は618ではありませんが,この程度の仕事を有料(10万円?)で
請け負う業者は,日本にありますでしょうか? 私も時々,お金を
支払ってもよいので,助けてもらいたいことがありますので。
0625名称未設定
2009/05/09(土) 15:11:14ID:ZfNrnr3O00626名称未設定
2009/05/09(土) 16:53:49ID:pKuXQG/5Oこの程度の仕事を10万円でよければ俺が請け負うけど
0627名称未設定
2009/05/09(土) 17:50:24ID:OcpHrPQ80>>618
つか金掛けていいなら、Quickeysとかと併用した方が手軽に作れるぞ。
0628624
2009/05/09(土) 17:59:39ID:1jJZLE260情報ありがとうございます。
>>618 のような依頼を一番安く請け負う人を捜すオークションのような
ものがあれば,利用する人は多いのではないでしょうか?
例:
オークション開始時間:5月9日11時
出品(?)者:helpme3342@yyyy.com
開始価格:10万円
現在の価格:8万5千円
入札者:macprogrammer124@xxxx.com
入札件数:8件
オークション終了時間:5月19日19時
仕事内容: >>618
納期:6月19日
支払い方法:商品納入後3日以内に銀行振り込み
0629名称未設定
2009/05/09(土) 18:39:23ID:gOokyMgW0とかあったら>618程度の簡単なスクリプトなら暇な時に作るかもしれない。
何か作るのは好きだけど普段はあまりネタが無いので。
ちなみに>618はオートメーターでできそう。
0630名称未設定
2009/05/09(土) 18:50:32ID:OcpHrPQ80このスレ見てると、奇特というかなんというか、よくそこまでって人間が多いからな。
他のスクリプトスレ、プログラミングスレに比べて、格段に多い印象を持つのは
AppleScriptが頼む方、作る方ともに手軽だから何だろうが。
つか2chで一番勝手にスクリプトを作ってくれるスレじゃね、ここ?
0631名称未設定
2009/05/09(土) 22:00:48ID:W+fM2Fc80それやると将来プログラム単価が下がってソフト業界が危ないかもしれない。
>>618
「 Macのこんなソフト・アプリを探してます」スレで目的のアプリなければ
AppleScriptで作ってくれる場合(も)あるよ。
0632名称未設定
2009/05/12(火) 23:27:37ID:FPEttIxO010.5.6と内蔵のapache2とPHP5.2.6。safari3.2.1。localで動かしてる。
いろいろとやってみたのだが。例えば(記号化けるかも)こんなので
<?php echo shell_exec('sh test.sh'); ?>
#!/bin/sh
ls -la
shファイルがこれならば大丈夫。動く。でもASの1行を足すと動かんようになる。読み込み途中で止まる。
osascript -e 'tell application "System Events" to choose file'
ターミナルでshはちゃんと動く。
他も思いつくことはいろいろやってみたけど、どの書き方でもPHPからAS呼んだ時点で止まる。
環境が今の環境しかなくて、私の環境が悪いのか、書きかたが悪いのか解らんのです。
誰かおしえてくださいませ。
0633名称未設定
2009/05/13(水) 02:35:32ID:FD/JG1F7O0634名称未設定
2009/05/13(水) 08:56:06ID:sV0y9G9b00635名称未設定
2009/05/13(水) 09:22:02ID:QmqTEE2h0あー。適当に書いただけ。別にイベントやりたい訳じゃなくて例だよ。
#!/bin/sh
osascript << EOF
tell application "Finder"
activate
end tell
EOF
例えばこんなんでも同じ。動かないんよ。
0636633
2009/05/13(水) 11:20:45ID:FD/JG1F7Oターミナルからtell抜きでchoose file実行すると-1713エラーになっちゃうので、
何等かのアプリにはtellしないとダメかもしんない
多分本題とも無関係だ…
php知らない癖に余計なレスして申し訳ないです
0637名称未設定
2009/05/13(水) 12:44:38ID:24+G55b80ttp://developer.apple.com/documentation/MacOSX/Conceptual/BPMultipleUsers/Concepts/SystemContexts.html#//apple_ref/doc/uid/20002208-116501-BAJBHGEJ
Frameworks Available in the Root Session
Many system frameworks depend on the window server for part of their implementations. (中略) However, if you are writing a daemon or other type of program to run
in the root session, there is no window server process with which to communicate. As a result, many higher level frameworks cannot be used at all.
ttp://developer.apple.com/technotes/tn2005/tn2083.html#SECDAEMONS
Daemons
(前略) A daemon cannot display any GUI; more specifically, it is not allowed to connect to the window server. A web server is the perfect example of a daemon.
0638632
2009/05/13(水) 13:13:56ID:BTTOhXxR0うん。ためしに open /Applications/TextEdit.app やってみても動かなかった。
ASの問題じゃなかったんだ。セキュリティだったんだね。
launchd と Daemon か。勉強してみる!!!ありがとーー!!!
0639624
2009/05/13(水) 20:21:17ID:HPdBwNRb0これが可能なので,
>ブラウザーから引数を渡して,appleScriptを実行することも可能。すごいことができる!
>http://www.apple.com/applescript/linktrigger/
SafariからPHPやperlで次のようなCGI(=AppleScript)が実行可能
seekdvd://com.taro.AppleScript.seekdvd?time=321&DVDname=matrix1
私はSafariからこのAppleScriptにタイムコードとDVDの名前を送って,Apple DVD Player(ソフトウェア)に映画の場面を呼び出しています。
機能が豊富なSafariからローカルのAppleScriptが呼べるので,非常に便利。
0640624
2009/05/13(水) 20:28:51ID:HPdBwNRb0間違いに気がついたので修正。
>SafariからPHPやperlで次のようなCGI(=AppleScript)が実行可能
>(1) seekdvd://com.taro.AppleScript.seekdvd?time=321&DVDname=matrix1
正しくは,html+javascriptのファイルから直接,(1)のようなAppleScriptが
実行出来る。同じhtml+javascriptファイル内に,perlやPHPを呼び出すコード
を入れることも可能。
0641名称未設定
2009/05/13(水) 23:25:37ID:xdtAikh90#!/usr/bin/php
<?php
system("osascript -e 'tell application \"System Events\" to choose file'");
?>
これは動くよ
0642632
2009/05/14(木) 00:11:14ID:2AAUctmY0うーと、うんと。shellから呼ぶのはできるんよ。やったのはshellだよね?
phpの中からshell_execで呼んだ時のことなんよ。
ちなみにshだけじゃなくて他のターミナルプログラムでもだめなん。
だからたぶん >>637 さんのだと思うん。で、がんばって読もうとしてる。
>>624さんのどうやって読むの?seekdvd://って何のアプリで実行できるん?たろーさん?削ってもみえない。
ぐぐったら音楽関係?うーーー。わからん。もう少しヒント欲しいかも。
英語ページ。単語は辞書引いたらわかる。でも文章になると理解するんに時間かかる。いや理解できんほうが多いんよ。
なきそう。頭悪いんよ。私。ゆっくり勉強する。解ったら報告する。
今日は飲みにつれてかれたから駄目かも。でも1時間だけ頑張る。
0643名称未設定
2009/05/14(木) 00:35:15ID:8H56Jb2/O酔い覚ましてまともな文章書けるようになってから来いや。
これだから酔っ払いは嫌いなんだよ。
0644632
2009/05/14(木) 00:37:17ID:2AAUctmY0ごめん連カキ。少しパニクり収まりました。酔いはまださめんけど。
上のリンクに解決策が書いてあるのだけは理解しました。>>637さんのと合わせてゆっくり読んでみます。
仕事なんてやんないでずっと勉強だけやってればいい人に(←いないって。そんなひと)生まれたかったなー。週末に燃えるぜ!!!
0647624
2009/05/14(木) 13:26:29ID:nlDw7ho+0>seekdvd://って何のアプリで実行できるん
これはAppleScriptをjavascriptのwindow.open(URL,...)
または,<a href=URL ...>appleScript1</a>のようにして,
Safariから呼び出すときのおまじないです。
英文の説明通りに,AppleScript内のInfo.plistの編集が必要です。
AppleScript歴13年の私にも,Info.plist編集は初めての作業で,
最初は不安でしたが,上手く動き,大感激です。
この機能は魅力的です。
0648名称未設定
2009/05/17(日) 09:33:34ID:K73s2t5c0そのapple.comのページ削除されてるんだけど、その機能使って大丈夫なの?
セキュリティホール作りそうな機能だな、ってのが第一印象だ
0649名称未設定
2009/05/17(日) 10:23:19ID:giB4EXQ90http://www.macosxautomation.com/
に移動されてるみたいだ。
自動化関連でまとめてみましたというかドメイン名長いなおい。
0650名称未設定
2009/05/17(日) 11:53:40ID:vVr4QXRk0機能としてはいいんだけど,CGIとは呼ばないんじゃないか?
CGIはあくまでもサーバ側で動くものという理解なんで。
AppleScriptで.cgiのアプリを作る方法が昔あったけど,今でも使えるのかな?
0651名称未設定
2009/05/17(日) 12:00:31ID:ETJhil530Mother
http://www.mugginsoft.com/mother
どうもサーバーサイドAppleScriptってことらしい。
ぴよまるさんのブログで知った。
ttp://piyo.piyocast.com/piyocolumn/2008/applescriptmother.html
0652名称未設定
2009/05/18(月) 02:26:43ID:Gh046Y190スクリプターズミーティング?だっけ。
AppleScriptのCGIで作られてる掲示板サイトがあったよね。
0653640
2009/05/18(月) 06:37:25ID:ckzORXVl0>CGIはあくまでもサーバ側で動くものという理解なんで。
おっしゃる通りです。引数が...?x=aaa&y=bbb... と渡せる
ので、間違ってCGIと表現してしまいました。
0654名称未設定
2009/05/19(火) 15:22:18ID:q0trasev0起動した場合と、単にダブルクリックで起動した場合で、処理を変えたいのですが、
起動時に押されているキーを取得する方法ってありますか?
0655名称未設定
2009/05/19(火) 16:30:08ID:yhfqDKrC0ttp://macscripter.net/viewtopic.php?id=19065
0657名称未設定
2009/05/21(木) 15:01:33ID:pv3/B7PX0OS9では動くのですが、OSXではうまくいきません。
複数のファイルのファイルネームを新旧のテキストファイルに従ってコピーリネームをかけるものです。
どのへんがおかしいのかヒントを頂けないでしょうか?
tell application "Finder"
make new folder at desktop with properties {name:"copy folder"}
select folder "copy folder"
open selection
set afolder to choose folder with prompt "複製したいファイルのあるフォルダは?"
activate
try
set text item delimiters of AppleScript to return
set text_1 to read (choose file with prompt "旧テキストファイルを選択" of type "TEXT")
set text_2 to read (choose file with prompt "新テキストファイルを選択" of type "TEXT")
repeat with i from 1 to (count text item of text_1)
set my_item to text item i of text_1
set newname to text item i of text_2
set thefiles to (every file of entire contents of folder afolder whose name is my_item)
duplicate thefiles to folder "copy folder" of desktop
select file my_item of folder "copy folder"
set name of selection to newname
end repeat
end try
set text item delimiters of AppleScript to ""
end tell
0658名称未設定
2009/05/21(木) 16:14:30ID:fhY7OPvr0旧OSデフォルト: \r (0x0d)
新OSデフォルト: \n (0x0a)
0659名称未設定
2009/05/21(木) 16:30:31ID:pv3/B7PX0ありがとうございます。読込むテキストはOSXで作成したものですので
改行の文字コードでは無いのではと思いますが・・・。
0660名称未設定
2009/05/21(木) 16:47:00ID:fhY7OPvr00661名称未設定
2009/05/21(木) 17:38:33ID:JUeQ7uQJ0とりえあずどこで引っかかって、何てエラーが出てるかぐらいは書いたら?
0662名称未設定
2009/05/21(木) 17:43:13ID:TrXAWxZN00663名称未設定
2009/05/21(木) 17:53:50ID:LSY4s3VX0select file my_item of folder "copy folder"
set name of selection to newname
を
set name of file my_item of folder "copy folder" to newname
と一行にすればいいかも。
あと同じように最初の2~4行部分もいったん選択させてまた選択部分を探させるとかより
open (make new folder at desktop with properties {name:"copy folder"})
とか、
set myCopyFolder to make new folder at desktop with properties {name:"copy folder"}
open myCopyFolder
とかするようにしたほうが無難だし色々便利だよ。
0665名称未設定
2009/05/21(木) 18:55:47ID:QmjsjipI0repeat内をこんな感じで
repeat with i from 1 to (count of paragraphs of text_1)
set my_item to paragraph i of text_1
set newname to paragraph i of text_2
set thefile to file my_item of afolder
set newitem to duplicate thefile to folder "copy folder" of desktop
set name of newitem to newname
end repeat
0666665
2009/05/21(木) 19:20:37ID:QmjsjipI0ちょっと添削
テキストを改行で区切るのにparagraphsを使うと
delimiterが必要なくなるよ。
>set thefiles to (every file of entire contents of folder afolder whose name is my_item)
フィルタ使って絞り込んで例えファイルが1つだったとしてもthefilesには
リスト形式で入るのでファイルそのものの名前を変更するには
set name of item 1 of thefiles to newnameとかやらないとダメ
set thefile to file my_item of afolder
とすればthefileに直接ファイルが入る。
あと忘れてたけどtryはrepeat内に入れないとダメ
テキストにはあるけど実際には存在しないファイルがあった場合など
継続してくれない。
0667名称未設定
2009/05/21(木) 19:32:09ID:pv3/B7PX0皆様ありがとうございます
テキストリスト読込みまでは出来ているようなのですが、リネームがうまく行えずに終了する感じです。
エラーも返さずにリピートもされません。結果 copy folderに始めのコピーファイルが一つ残っている状況です。
665様ありがとうございます。
duplicate thefiles to folder "copy folder" of desktop
select file my_item of folder "copy folder"
set name of selection to newname
この3行が問題だったのですね。そういえば変数の収め方を変えるとうまくいった事がありました。
詳しい添削もありがとうございます。全て無知な私には『うっそー!そうだったの』という内容です。
改めて咀嚼させていただきます。
試行錯誤を繰り返しているうち、レスが遅れ申し訳ありませんでした。
またよろしくお願いいたします
0668632
2009/05/27(水) 22:43:47ID:mbQsFiLB0規制に巻き込まれ返事遅れてすいません。
今回のPHPからのGUIを含んだASの実行は、サーバサイドでのon adding folder で処理しました。
もちろん教えていただいた、seekdvd(動きました。すごいな)もlaunchdも暇を見て勉強します。がんばります。
見捨てずに応援お願いします。
0669名称未設定
2009/05/31(日) 17:56:35ID:nC+csEpV0http://www.macosxautomation.com/applescript/linktrigger/index.html
を使ってみたけどいろいろ応用できそうでいいことを知りました。
これに関する細かいtipsとして
Info.plistにLSUIElementをstringで1を追加するとスクリプトを実行した時に
バックグラウンドで起動してアプリが表示されません。
しかし、他のAppleScript製アプリケーションが起動していると
このスクリプトを実行した時にそのアプリケーションが手前に来てしまいます。
そこでInfo.plistのCFBundleSignatureを適当に書き換えて(半角英数4文字でユニークなもの)
Info.plistと同じフォルダにあるPkgInfoをテキストエディタで開いて
後半4文字を上で書き換えたものにするとAppleScript製アプリケーションが起動していても
それが手前に来る現象が無くなります。
上記書き換えの後にはFinderに書き換えたことを知らせる為に
書き換えたスクリプトをいったんデスクトップに移動して
元に戻すなどの作業が必要な場合があります。
0670名称未設定
2009/06/01(月) 22:09:02ID:5re3dwDY0しかも大半のコードはすでに予約済み。
この問題を解決するため,CFBundleIdentifierでドメイン名と同じコード体系を使えるようになった。
0671名称未設定
2009/06/01(月) 22:46:14ID:nuIVfTra0他のアプリ見たらPkgInfoが無いのもあるんだね。
PkgInfoは書き換えなくても消したらOKかな
0672名称未設定
2009/06/03(水) 19:28:58ID:B4sZ0VE/00673名称未設定
2009/06/04(木) 14:41:58ID:fxthYjgt0do shell script "~/app -v"
を、ログイン項目に入れて自動実行したいのですが
スクリプトエディタがでてきてしまいます
フォーマットをアプリケーションにしてみるとうまく実行できなくて困ってます
助言お願いします。
0674名称未設定
2009/06/04(木) 15:13:25ID:VYstycJf0どううまく実行できないのかを詳しく
それとOSバージョンを書く
0675673
2009/06/04(木) 15:22:59ID:fxthYjgt0appにすると
&1を取り出すことはできません。
編集 OK
とでます
OKを押せば実行できてるようなのですが、
あまり気持ちよくないし、そこは完全自動にしたいのです。
0676名称未設定
2009/06/04(木) 15:24:42ID:fxthYjgt0↓
& a m p ; 1
0677名称未設定
2009/06/04(木) 16:40:21ID:fxthYjgt0まず、appを置く場所がよくなかったみたいで移動したら問題なく起動しました(とあるアプリのパッケージ内
このコードのまま起動するとrunを押さないと動いてくれなかったので
do shell script "~/app -v &"
にしたら自動で起動してくれるようになりました。
スレ汚しすいません
0678名称未設定
2009/06/07(日) 07:38:08ID:h6jE2aK/0スリープさせることってできるでしょうか?
10.5.6/intelです。
0679名称未設定
2009/06/07(日) 09:01:53ID:ATf/9vvT0ログアウトした時点で実行権は手放してるような…
0680名称未設定
2009/06/07(日) 09:30:23ID:d3VbnpDx0AppleScriptではスリープだけさせて
コンパネでスリープからの復帰時にログインウインドウを表示させるオプションをONにすればいいんじゃね?
0681678
2009/06/07(日) 22:56:25ID:h6jE2aK/0>>679
説明不足ですみません。
ログアウトはせずにファストユーザースイッチで
ログインウィンドウにする場合でした。
その場合も実行はできないかのかも知れませんが・・。
>>680
ああ、もしAppleScriptでコンパネの設定を変更できれば、
ログインウィンドウを出さない復帰(在席中、待機時間がすぎて自動でスリープする場合)と
ログインウィンドウを出す復帰(離席などでスリープさせる場合)を区別できてよさそうですね。
0682名称未設定
2009/06/08(月) 00:11:58ID:8Pyc4iK00・UI Scriptingが有効
・日本語
・メニューバーにファストユーザースイッチ表示
(しかも右のほうにあるとかなりウザい動き)
という限定された条件だけど、ログインウィンドウを出すまで。
tell application "System Events"
tell process "SystemUIServer"
tell first menu bar
set menuExtraList to every menu bar item
repeat with aExtra in menuExtraList
try
tell aExtra
click
try
tell front menu
tell menu item "ログインウインドウ..." to click
return 0
end tell
on error
click
end try
end tell
end try
end repeat
end tell
end tell
beep
end tell
0683名称未設定
2009/06/08(月) 00:22:57ID:73cBRrcn0ファストユーザスイッチでログインウィンドウを表示した後スリープ
do shell script "/System/Library/CoreServices/Menu¥¥ Extras/User.menu/Contents/Resources/CGSession -suspend"
tell application "System Events" to sleep
0684名称未設定
2009/06/08(月) 00:26:41ID:73cBRrcn00687名称未設定
2009/06/13(土) 00:30:20ID:vE7EViQwO「Safariで最前面のウインドウに含まれるタブのURLを抜き出し、Mailに貼付け、下書きに保存する」スクリプト書いたけど、うpしてもいいですか?
母艦で閲覧中のページをiPhone等で閲覧するときに便利かと思ったけど(そして実際便利)
0688名称未設定
2009/06/13(土) 04:13:37ID:v6WiuQp700689687
2009/06/13(土) 21:06:23ID:kR6bttbH0なお、使用にあたっては、1行目のGmailの部分を変更してください。あとは見ていただくとわかると思います。そんなに難しいことはしていません。
--ここから--
property acc : "Gmail"---お使いのIMAPアカウント名
my makeNewMessage(getUrls(), "URLs " & getCurrentDateTime("+%y%m%d_%H%M"))
(* 以下、関数群 *)
--最前面WindowのtabのURLをテキスト形式(デリミタ:改行)で取得
on getUrls()
set asdlm to AppleScript's text item delimiters
set AppleScript's text item delimiters to {return}
tell application "Safari"
tell front window
return (URL of every tab as string)
end tell
end tell
set AppleScript's text item delimiters to asdlm
end getUrls
--与えられたパラメータをもとにメールメッセージを作成、保存 パラメータ:本文とサブジェクト
on makeNewMessage(body, subj)
tell application "Mail"
set newMessage to (make new outgoing message with properties {subject:subj, content:body, visible:true, account:acc})
save newMessage
end tell
end makeNewMessage
--現在の日付・時刻を取得。シェルスクリプトを使用。だってAppleScript単体だとめんどくさいんだもん
on getCurrentDateTime(opt)--opt:dateコマンドに渡すオプション
return (do shell script ("date " & opt))
end getCurrentDateTime
--ここまで--
0690名称未設定
2009/06/14(日) 00:23:58ID:F9xi/s+50フォルダアクションスクリプトを書いていてちょっと引っかかりました
やろうとしていることは、フォルダにファイルがドロップされたら、そのファイルの内容を調べ、内容にあったファイル名にする、というものです
あまりAppleScriptに慣れていないので、フォルダアクションで取得したファイルのリストをC++で書いたコマンドラインアプリにわたし、リネームしようとしています
で、その前段階としてこのようなスクリプトを書きました
on adding folder items to this_folder after receiving added_items
set p to POSIX path of added_items
do shell script "mv" & space & p & space & p & ".`date +%H%M%S`"
end adding folder items to
フォルダアクションとして適当なフォルダに割り当て、ファイルをドロップしてみると延々とリネームされます
どうやらリネームされることで「新しいファイルが加わった」と判定され、このスクリプトが呼び出されるようです
リネーム前にロックファイルを作成し、ロックファイルがあった場合は削除して終了、ない場合はリネーム、ということも考えたのですが
1ファイルのドロップで2回動作するのがスマートではないな、と
あるいはdropletにし、リネーム後にフォルダへ移動ということも考えたのですが、内容解析のロジックは一つなのですが分類用のフォルダは複数あるので
dropletもあまり有効ではありません(ログファイルを週ごと、月ごと、あるいは適当な単位でフォルダに入れて分析するイメージです)
ファイル名が変更されたことを拾わないのが一番良いのですが、どうもそれらしいことはできないようで、こまっています
皆さんならどうしますか?フォルダアクションでやろうとすることが間違いでしょうか?
0691名称未設定
2009/06/14(日) 01:03:43ID:rL2Y4BEK00692名称未設定
2009/06/14(日) 04:58:37ID:GbfflDsr0移動してしまえば当該フォルダへの追加というイベントは拾わなくなる気が。
前段階だけやってるからハマっているように私には見える。
0693名称未設定
2009/06/14(日) 11:53:09ID:aUwSj36e0フォルダアクションで、ファイルが追加された時に、日付のフォルダを作って
そこに移動するってスクリプトはよくあるけど、フォルダ作っても新しいファイルが
追加されたとは認識されないよ。
いくつか気になる点が…
added_items は、ファイルのリスト (複数ファイルが入る可能性あり) なんだけど、
考慮されてないっぽい
.DS_Store や Icon^M みたいな、Finder が勝手に作るファイルを考慮に入れてない
→ どうやってフォルダアクションが延々動いてるって確認した?
0694690
2009/06/14(日) 22:18:43ID:F9xi/s+50遅くなりましてすみません
説明不足でした
やりたいことは、テキストファイルの内容を分析し、内容にあったファイル名にする、です
テキストファイルは、例えばApacheのログであったりTomcatのログであったり、そのほか適当なアプリケーションのログであったりします
テキストファイルが何のログかは分析しないので、APACHEフォルダやTOMCATフォルダや適当なアプリフォルダを作り、そこにドロップすることでフォルダクションスクリプトが動いて分析し
リネームされたファイルがそのフォルダの中にある、という動作を想定していました
分析内容は日毎のアクセス件数の平均の多寡によりOKやNGと言ったような感じです(実際はもう少し複雑なのでC++で作成しました)
前段階のスクリプトは、AppleScriptに慣れていないので、とりあえずShellScriptを呼び出す方法を理解したくて書いてみただけです
が、AppleScript側というかフォルダアクション側から見れば、フォルダアクションの結果、フォルダにドロップされたファイルの名前が変更される、ですので
前段階のスクリプトで充分検証可能だとおもったのです
0695690
2009/06/14(日) 22:20:15ID:F9xi/s+50>>691
>>692
自分の想定ではフォルダアクションを設定したフォルダに入れておきたいのですが、やはり設定したフォルダから移動するのが一般的でしょうか?
分析するアプリケーションの種類が少数であれば良いのですが、いずれ増やしていくつもりなので、1つのアプリに付き2つのフォルダというのはちょっと贅沢かな、とおもっています
>>693
>added_items は、ファイルのリスト (複数ファイルが入る可能性あり) なんだけど、
適当なテストのつもりでしたので、ここではリストであることは無視していました
>.DS_Store や Icon^M みたいな、Finder が勝手に作るファイルを考慮に入れてない
これは想定外でした
がC++の方で拡張子を指定(.logだけ処理)としていたので、特に問題はないかとおもっています
>→ どうやってフォルダアクションが延々動いてるって確認した?
前段階のスクリプトをフォルダアクションとして設定し、そこにファイルをドロップするとAppleScriptが実行されるたびにドックにアイコンが表示されたので
延々と実行されているのだ、と認識しました
ターミナルを立ち上げ、そのフォルダに移動してlsを連打し、ファイル名の後ろに時刻がどんどん付け足されてファイル名が長くなっていくのも確認しましたので
フォルダアクションを設定したフォルダの中でリネームするということは「新しいファイルが加わった」と判定されるのではないか、とおもったのです
0696名称未設定
2009/06/14(日) 23:41:22ID:12ThMYRE0フォルダ内のファイル数を記録しておいて、変わらなければ何もしないようにするとか。
スマートじゃないね。頭悪いんでこの程度しか思いつかん。スマン
0697690
2009/06/15(月) 00:34:30ID:ShPQmIPm0検証ありがとうございます
AppleScript内で完結していれば何の問題もないということは、ShellScriptが起動した時点で別プロセスとなっている為、イベントが発生する、ということなのでしょう
同プロセスで起動することも出来ないですし、C++の方で分析した結果をAppleScriptに返してAppleScriptでリネームしてみます
読んでくださった方、書き込んでくださった方、本当にありがとうございます
もう少しAppleScriptで遊んでみます
0698名称未設定
2009/06/15(月) 05:06:42ID:3+Uz5go00C++のコマンドでは、変更後になるべきファイル名を返すようにして
リネームの処理はAppleScriptにやらせるのだとどうなるでしょうか。
コマンドの結果はdo shell script の戻り値として得られます。つまり
set newName to do shell script "yourCommand "
0699名称未設定
2009/06/15(月) 05:08:37ID:3+Uz5go00AppleScriptでのリネームは
tell app "Finder"
set name of theFile to newName
end
こんな感じです。
0700692
2009/06/16(火) 00:03:33ID:VeIPeggb0実際、C++で処理する方が実行速度は稼げるけど、そこまで必要なければ、というか、AppleScriptと連携させるのであれば、寧ろファイル操作はASに任せてもいい気が。
つかファイル名じゃなくて、ファイル種別によって予め決めた終了コードを返し、AS側で分岐させるかな、俺なら
0701名称未設定
2009/06/16(火) 00:29:56ID:xRcB0s0l0launchd Agent使えばfolder監視もできる。
http://developer.apple.com/macosx/launchd.html
~/Library/LaunchAgents/com.apple.FolderActions.folders.plistを
見れば判る様にLeopardではFolderAction自体launchd Agentを使ってる。
0702690
2009/06/16(火) 00:51:09ID:6K94KIQ60>>698
>>700
現在はAppleScriptでフォルダアクション→C++で解析→解析結果を拾ってAppleScriptでリネーム、という流れにして、想定通りに動くようになりました
0704名称未設定
2009/06/16(火) 00:59:04ID:ZEmWLU6h0上のソースを実行しても,うちのLeopard環境(10.5.7)では値がかえってきません。
同じLeopard環境で上のソースが問題なく実行できるという方はいますか?
0705名称未設定
2009/06/16(火) 01:47:24ID:JK7Z2RtGO>>704
基本的な事だが、まずはこれを確認
ttp://piyocast.com/as/archives/269
0706名称未設定
2009/06/16(火) 07:44:51ID:ER9HQYNK0最初にそこを確認しましたけどダメでした。
補助装置にはチェックが入ってて >>704 で確認してもtrueということで。
0707名称未設定
2009/06/16(火) 09:59:41ID:05VgSyEgPスクリプトってできますか?
0708名称未設定
2009/06/16(火) 10:44:44ID:byiJ9M1d0スクリプトエディタ以下を記述して、アプリケーションで保存。
tell application "Finder" to sleep
0709707
2009/06/16(火) 11:14:01ID:05VgSyEgPありがとうございます。
できました。
0710名称未設定
2009/06/16(火) 11:19:24ID:byiJ9M1d0多分、言語を英語にしないと、そのままじゃ動かない。
そこの tell list 1 の直後に以下のコードを追加して処理を見れば原因が分かると思うよ。
repeat with i in every UI element
log (description of i) as string
end repeat
うちの環境(10.5.7)では、上記コードで例えばアプリケーションなら "アプリケーション Dock 項目" という文字列が返ってきた。
Leopardになってから、description の値に日本語翻訳が入ったのかもしれない。
というわけで、取得できるようにするには tell list 1 ~ end tell の処理を下記のようにすれば良いかと。
--アプリケーション
set apList to title of every UI element whose description is equal to "アプリケーション Dock 項目"
--登録された書類
set docList to title of every UI element whose description is equal to "書類 Dock 項目"
--最小化されたウィンドウ
set winList to title of every UI element whose description is equal to "しまわれたウインドウ Dock 項目"
ちなみに、フォルダを登録している場合は、下記のようにすればよさげ。
--登録したフォルダ
set folderList to title of every UI element whose description is equal to "フォルダ Dock 項目"
--returnを下記に変更
return {apps:apList, docs:docList, wins:winList, folders:folderList}
0711710
2009/06/16(火) 12:03:39ID:byiJ9M1d0連投スマン。
10.4でも正しく動作させるには tell list 1 ~ end tell の処理を下記のようにした方が良いはず。
--アプリケーション
set apList to title of every UI element whose subrole is equal to "AXApplicationDockItem"
--登録された書類
set docList to title of every UI element whose subrole is equal to "AXDocumentDockItem"
--最小化されたウィンドウ
set winList to title of every UI element whose subrole is equal to "AXMinimizedWindowDockItem"
なぜなら、description の意味は「説明」。
説明が日本語だろうが英語だろうが空欄だろうが問題ないはず。
そんな説明を「種類」を抜き出す処理に使っているのは、推奨できないと思う。
その種類を表すプロパティが UI element の場合は subrole のようだ。
というか System Events の用語説明の subrole に書いてあるのね…。
an encoded description of the UI element and its capabilities
(適当訳:UIエレメントとその性質をコード化した)
0712名称未設定
2009/06/16(火) 12:46:11ID:JK7Z2RtGO頓珍漢な事を書いてすまない
>>710の言う通り英語でしか動かないね
descriptionはローカライズされているようだ
言語依存しないようにwhose以下を
whose subrole is "AXApplicationDockItem"
whose subrole is "AXDocumentDockItem"
whose subrole is "AXMinimizedWindowDockItem"
てな感じで書いてみてもいいかな
0713名称未設定
2009/06/16(火) 12:48:59ID:JK7Z2RtGO俺カコワルイ
0714名称未設定
2009/06/16(火) 14:18:42ID:Q058B9BW0以前は、そのためのapplescriptが付属していたような・・・
分かる方いたら教えてください。
ググりましたが解決しませんでした。
0715名称未設定
2009/06/16(火) 20:59:07ID:05VgSyEgPスクリプトエディタ1.6(OS9)で、「全てのウインドウを閉じる」の
スクリプトを書いたんですけど、構文エラーが出ます。
tell application "Finder"
close every Finder windows
end tell
どう直せばいいのでしょうか?
0716名称未設定
2009/06/16(火) 21:04:56ID:EnX+FFUl0close every window
end tell
0717名称未設定
2009/06/16(火) 21:23:49ID:05VgSyEgPありがとう
0719名称未設定
2009/06/17(水) 11:35:30ID:3O0cPPFX0素直に凄い
ttp://piyocast.com/as/archives/733
0720名称未設定
2009/06/17(水) 22:58:00ID:eqljvYl600721名称未設定
2009/06/24(水) 16:39:56ID:X8F7KQmY0大量もしくは巨大なファイルをコピーすると、
コピーが完了する前に、フォルダアクションが立ち上がってしまいます。
立ち上がってしまうのはしょうがないのですが、
コピーが終了するのを検知して処理を開始したいのですが、
可能でしょうか?
0722名称未設定
2009/06/24(水) 16:47:56ID:eiA3HxO00荒技ですまん
---
tell application "Finder"
set theWins to name of windows
if theWins does not contain "コピー" then
(* コピー終了後の処理 *)
end if
end tell
---
0723名称未設定
2009/06/24(水) 18:20:39ID:pWLsWSc10何か回避方法はないでしょうか?
javascriptでやろうとしましたが、jsの方は文字化けしないのですがページ番号の取り出し方がわかりません。
0724名称未設定
2009/07/01(水) 10:55:08ID:5a5vkrF10a.jpg, b.JPGと混合したファイルをドロップすると、
・拡張子が大文字の".JPG"の場合".jpg"に変更。
・もしくは拡張子が大文字なら小文字へ。
どちらか簡単な方でよいのでどなたか教えていただけませんか?
0725名称未設定
2009/07/01(水) 11:03:18ID:yVm3oP8r0つRenamer4Mac
0726名称未設定
2009/07/01(水) 12:16:10ID:qz6hN3AM0"選択されたFinder項目を取得"→"Finder項目の名前を変更"の組み合わせでOK
"テキストを置き換える"にして検索文字列をJPG,置換文字列をjpgにすればいい
大文字/小文字を無視のチェックは外しておくこと
0727名称未設定
2009/07/01(水) 13:24:08ID:5a5vkrF10X.JPGを選択したら
選択されたFinder項目を取得
になったが先がわからない・・
0728名称未設定
2009/07/01(水) 20:07:26ID:t/oRihd90Automatorはワークフロー作成した後にファイルを選択して実行
単純に拡張子だけ大文字→小文字にするスクリプトならこんな感じ
on open DROPS
tell application "Finder"
repeat with I in DROPS
set OLDXTN to name extension of I as text
set LENGTHOFXTN to number of characters of OLDXTN
set NEWXTN to do shell script "echo " & OLDXTN & " | tr '[A-Z]' '[a-z]'"
set FILENAME to text 1 thru -(LENGTHOFXTN + 1) of (name of I as text)
set name of I to FILENAME & NEWXTN
end repeat
end tell
end open
0730名称未設定
2009/07/02(木) 14:16:14ID:g9DhaeoR0あまりいい方法とは思えないが、うちではこんな感じ。
フォルダアクションを設定したフォルダで
ls -l を実行すると、コピー中のファイルとコピー済みのファイルとで
パーミッションが違うのがわかる。
すべてのファイルのパーミッションがコピー済みの状態になるまで
repeatでls -l を繰り返して、コピー中かどうかを判定してる。
0731名称未設定
2009/07/02(木) 16:09:18ID:PPcna6kK0最後の置き換えボタンの所でエラーが起こります。
最後の所を"キャンセル"に変えるとエラーは起こりませんが、キャンセルも実行されません。
activate application "InDesign CS_J"
tell application "System Events"
tell process "InDesign CS_J"
click menu item "別名で保存..." of menu 1 of menu bar item "ファイル" of menu bar 1
click button "保存" of window "別名で保存"
click button "置き換え" of window 1
end tell
end tell
0732名称未設定
2009/07/03(金) 01:05:03ID:DHN2wJRV0それから、
click button "置き換え" of window 1
ってあるけど、of以下っているのかな?
見当違いだったらスマソ
0733名称未設定
2009/07/03(金) 01:56:38ID:kh9Cn6vBOボタンによる状態遷移がノータイムとは限らないから、
何らかのウェイトは置いた方がいいかもね
>>732
activateはapplicationに対する命令だから、
System EventsのElementsであるapplication processには直接影響しないよ
前でも後でも記述上問題無いけど、どちらかってーと前に書いた方が無難
あとof window 1を省くとprocess直下にbuttonがある事になっちゃうので、
それは構造上ありえないんじゃないかな
予想だとwindowではなくsheet、例えば
button "置き換え" of sheet 1 of window "別名で保存"
…だったりとか?
0734名称未設定
2009/07/03(金) 02:04:12ID:yJyiGUBh0click button "保存" of window "別名で保存"
delay 0.3
click button "置き換え" of window 1
で解決
0735名称未設定
2009/07/03(金) 09:26:49ID:lU7fMxEu0ありがとうございます。
結論から言うと、>734さんの方法で上手くいきました。
ただ、delayだと0.3とは限らずエラーが起きる場合もありそうなんで、
もっと確実に回避できる方法って無いでしょうか?
で、言われたことも検証してみました。
一行目のactivate application "InDesign CS_J"は取るとエラーが起きました。
click button "置き換え" of window 1のof window1も削除するとエラーが起きました。
UI scriptは初めてで全くわからなかったんで、
UI Browser(demo)の吐き出したコードを元にやっています。
ただ、tell processの部分の"InDesign CS_J"はUI Browserの出すコードでは"Adobe InDesign"となってて、
そのままだと上手く動かなかったんで変更したんですよね。
0736724
2009/07/03(金) 10:26:20ID:ryg47w4R0ご親切に有り難うございます。
あなたは今日から私の神です。
>>729
shupapan愛用してるが各設定のドロップレットを保存できればいいんだが。。
0737名称未設定
2009/07/03(金) 10:51:41ID:WDd3QFI30高いんだしAdobeのDTPソフトとMacは昔からの付き合いなんだしねえ
0738名称未設定
2009/07/03(金) 15:18:12ID:5UQuM/kF0久しぶりにInDesign CS3開けてみた。普通にsaveコマンド効くよ?確かCS2も4もいけた記憶が。
Adobeもちゃんと頑張ってると思う。無印開けたことなかったから知らなかったけど対応してなかったのか。
0739名称未設定
2009/07/03(金) 15:41:38ID:lU7fMxEu0saveコマンドしかなかったので、別名で保存はできないのかと思い込んでいましたが
試してみたらできました。
まあ今回はUI scriptingを試す機会にもなったので良しとしておきます。
お騒がせしました。
0740735
2009/07/03(金) 15:42:44ID:lU7fMxEu0>739は735です。
0741名称未設定
2009/07/04(土) 00:55:52ID:TSGA7cJhO先述の様に恐らくbuttonが(ていうかwindowが)表示される前にclickしようとしてエラーになってるので、
確実に存在する状態まで待つか、エラーにならなくなるまでclickし続ければいい
前者はdelay以下の代わりに
repeat until exist button "置き換え" of window 1
end repeat
click button "置き換え" of window 1
後者は同じく
repeat
try
click button "置き換え" of window 1
exit repeat
end try
end repeat
更に完璧を期するならenabledを調べたり、イロイロやる余地はある
0742名称未設定
2009/07/04(土) 01:02:39ID:TSGA7cJhOexistではなくexistsだっけか
あと書いてお置いてなんだけど無限ループは何かと危なっかしいから、
あんまり使わない方がいいかも
0743名称未設定
2009/07/05(日) 01:33:26ID:zOlSNB6s0やりたいことは以下の通りです。(iPodでアルバムを発売年順に並べるため)
1.曲情報の「年」を取得
2.それをアルバムのオリジナルと結合し、「並び替え」項目の「アルバム(読み)」に入れる 例:アルバム名”Carol” → アルバム(読み)"1988Carol" のようにしたい
ttp://blog.chibiegg.net/2009/06/29_20_337.htm を参考にして書いてみたのですが、数曲でエラーになったり、エラーは出なくても数曲は変更できなかったりします。スクリプトは以下の通りですが、どうすればうまくいきますか?
display dialog "iTunesで選択した曲の「アルバム(読み)」項目に年を入力します" buttons {"NO", "OK"} default button 2
set button_a to button returned of result
if button_a = "OK" then
--iTunesのスクリプト
tell application "iTunes"
try
set name_list to {}
set select_track to a reference to selection
if select_track as list is {} then return
repeat with i in select_track
set end of name_list to i
end repeat
repeat with i in name_list
set original_year to year of i
set original_album to album of i
set new_tag to original_year & original_album as string
set sort album of i to new_tag
end repeat
on error
display dialog "エラー発生" buttons {"OK"} default button 1
end try
end tell
display dialog "終了" buttons {"OK"} default button 1
end if
0745名称未設定
2009/07/05(日) 11:13:14ID:zOlSNB6s0どうもありがとう。試してみました。確かにエラーは出なくなりましたが、変更されないものがあるのは変わりませんでした。(約200曲でテストし、変更されないものが3割程度)
delay を 3 にしても症状は変わらず。
iTunesを見ていると、タグが変わると同時にどんどんソート順が変わっていくので、その分delay をかなり長く取らないといけないかもしれません。
0746名称未設定
2009/07/05(日) 13:30:53ID:lxajQgtH0なんだかとても無駄が多い気がする。
シンプルにこんな感じではどう?
display dialog "iTunesで選択した曲の「アルバム(読み)」項目に年を入力します" buttons {"NO", "OK"} default button 2
set button_a to button returned of result
if button_a = "OK" then
--iTunesのスクリプト
tell application "iTunes"
try
set selectionList to selection
repeat with theTrack in selectionList
set original_year to year of theTrack
set original_album to album of theTrack
set new_tag to (original_year & original_album) as string
set sort album of theTrack to new_tag
end repeat
on error
display dialog "エラー発生" buttons {"OK"} default button 1
end try
end tell
display dialog "終了" buttons {"OK"} default button 1
end if
0747743
2009/07/05(日) 19:04:44ID:zOlSNB6s0すばらしい!何度やっても成功します。
実行速度も大幅アップ。どうもありがとうございました。
確かに、上のループは無駄ですね。勉強になりました。
これを、iTunesでCD取り込んだ直後に必ず実行、のように設定するのは可能なのでしょうか。
0748735
2009/07/06(月) 10:15:00ID:U/rFKgL/0ありがとうございます。
今回は結局saveが使えましたが、今後の参考にさせて頂きます。
確かに無限ループは余り使いたくありませんが・・・。
0749名称未設定
2009/07/06(月) 16:21:42ID:Ik2H/7TsPこのページの「20.起動時爆音問題、解決」に載ってるスクリプトなん
ですけど、システム終了項目に入れてる方は、うまく動作してるん
ですけど、システム起動項目にいれている方のスクリプトが、起動時
に長時間待たされたあげくにエラーが出てしまって、スクリプトがうま
く実行されません。
以前はうまく動作していたのですが、エラーが出る原因は何なんで
しょうか? 一度電源を落として翌日からも、ずっとエラーが出ます。
0750名称未設定
2009/07/06(月) 16:46:18ID:fVf8P5jC00751名称未設定
2009/07/06(月) 17:52:21ID:Ik2H/7TsPG4 MDD、OS9で、「イベントの終了メッセージ待ちしてて
タイムアウト」みたいな感じです。
0754名称未設定
2009/07/08(水) 01:16:54ID:cRl0ctE+00755名称未設定
2009/07/08(水) 07:30:24ID:QE8yPRRm0そのスクリプト、Standard Additions(標準機能追加)OSAXを使っているだけなので
Finderに tellするブロックは要りません。
set volume 0 --これだけで動作するはずです。
> 以前はうまく動作していたのですが、
ということなので
Standard Additions又は、標準機能追加 OSAXがシステムフォルダ内の
スクリプティング機能追加フォルダに入っているかどうか。
入っているなら、壊れている可能性も有るのでこのファイルを入れ換えてみて下さい。
それでもダメなら新しいAppleScriptに全部入れ替え
AppleScript 1.8.3(Mac OS 9.1or later)
http://docs.info.apple.com/article.html?artnum=120128
0756名称未設定
2009/07/08(水) 08:58:03ID:3mb+Ej5b0入門サイトでもいいです。
プログラムやサーバ管理の経験は多少ありますが、スクリプト関係の知識と経験が絶無なので、勉強したいな、と…。
0757名称未設定
2009/07/08(水) 09:54:09ID:b+wp8kF40入門サイトは
>>1のAppleScript PARKとAppleScript Lab.<http://www.drycarbon.com/applescript/>;とか。
シェルスクリプトは板違い。UNIX板へ。
0758名称未設定
2009/07/08(水) 11:33:11ID:P9ybUUcePありがとうございます。
なぜか、最近、自然に治ってたんですけど、ついでに、Finder tellの
ブロックを削除してシンプルにしたら、起動後の有音確認のbeepの
実行が速くなりました。良かったです。
0759名称未設定
2009/07/08(水) 11:35:31ID:P9ybUUceP入門書では、「AppleScriptでゼンマイびゅんびゅん」って
いうのが定番みたいです。
旧、新で3冊くらいあるみたいなので、注意してください。
0760名称未設定
2009/07/09(木) 00:01:13ID:8F5914Al0そんな中でMacPeopleがAppleScriptの特集を組んでくれたのはよかったな。
0761名称未設定
2009/07/09(木) 01:32:29ID:LBYGlg+y0はオレのバイブル。今ではボロボロになってる。
調べたら入手困難だった…
どんな本でも載ってるサンプルコードをそのまま打ち込んで
実行して効果を実感することが大事。
0762名称未設定
2009/07/09(木) 01:56:01ID:345a/I1p0http://www.tonbi.jp/AppleScript/dic/
AppleScript PARK / Dictionary(リファレンス)
これじゃだめですか?
0763757
2009/07/09(木) 07:08:34ID:BQfQLCeR0このリファレンスはよくまとまっているよね。本として出版してほしいくらい。
>>757で挙げた2つのサイトでAppleScriptのほとんどを学んだ気が。
0764名称未設定
2009/07/10(金) 00:30:12ID:pMycUAML0シェルでいうと$0(basename $0)みたいなもの
#!/usr/bin/osascript
return do shell script "basename $0"
としても
`sh'
しか戻ってこなくて...
0765名称未設定
2009/07/10(金) 01:12:45ID:Bg8+qFg20path to me でスクリプトの alias 型の参照が取得できる。
OS 10.5から、スクリプトエディタで編集中でも正しくスクリプトのファイルパスを取得するよ。
http://www.seuzo.jp/st/Other/AS2.0.html
他参考
http://www.tonbi.jp/AppleScript/tips/Alias/RelativePath.html
http://slashdot.jp/~azk/journal/423903
#この質問はFAQだな。前のスレでもあったし。
0766名称未設定
2009/07/15(水) 00:20:17ID:/C23je9T0アップルスクリプトってなに?
0767名称未設定
2009/07/15(水) 00:38:55ID:V0/3mzQ+0ざーっくり言うとMacを操作できる簡易なプログラム言語。
これでわからないなら「ざっくりマンデー」に質問してみてくれ。
0768名称未設定
2009/07/16(木) 13:11:05ID:YP6jCy5H0次のスクリプトをスクリプトエディタで動かすと正常に動作するのに、アプレットとして起動すると正常に動作しません。
以下、具体的なスクリプトです。
---
set asdlm to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set a to (path to me as text)
display dialog text item -2 of a--(*)
set AppleScript's text item delimiters to asdlm
---
スクリプトエディタで動かすと、(*)の結果は"Script Editor.app"となります。
しかし、アプレットとして動かすと、"Can't get text item -2 of ~"となります。
この原因がさっぱりわからないのです。どなたか理由をご存じの方、理由を教えていただけると幸いです。
よろしくお願いいたします。
0769名称未設定
2009/07/16(木) 14:32:25ID:+mLgvKU80AS2.0.1 OS10.5.7 この環境で問題なしだったよ。
システム壊れてるかも。あたらしい環境作ってためしてみなー。
0772名称未設定
2009/07/16(木) 17:37:37ID:HdWSG8bM0set theText to theText & {return} & {return} & {return} as string
こういう書き方以外に、return×3をスマートに表す方法ってあります?
0773735
2009/07/16(木) 18:06:30ID:x8lJBa4h0set theText to (theText as string)&"¥r¥r¥r"
0774名称未設定
2009/07/16(木) 18:31:37ID:HdWSG8bM0レスどうもです。
試してみたところ、動作は問題ないのですが、
set theText to (theText as string)&"
"
こんな感じで、スクリプトエディタ上ですでに改行された状態になってしまいました…。
0775名称未設定
2009/07/16(木) 18:32:15ID:YP6jCy5H0set theText to theText & rr(3)
---
(* 改行をt個つける関数rr *)
on rr(t)
set a to ""
repeat t times
set a to (a & {return})
end repeat
return a
end rr
0776名称未設定
2009/07/16(木) 18:39:58ID:HdWSG8bM0おお、サブルーチンカコイイ!
set theText to theText & my rr(3)
でいけました。
改行をたくさん使う時に便利そうですね ψ(‥ ) メモメモ...
0777775
2009/07/16(木) 18:47:05ID:YP6jCy5H0まぁ無駄レスにならんでヨカター
0778名称未設定
2009/07/17(金) 11:13:04ID:anQozH4tOset AppleScript's text item delimiters to ":" as Unicode text
とするとアプレットのままでも動いたよ
ただしアプレットの場合はpath to meの結果に最後の":"がつかないから、
アプリ名を表示するのが目的なら表示側も変えないといけないけど
display dialog text item -1 of a
>>772
>>set theText to theText & {return} & {return} & {return} as string
この書き方がそもそも冗長ではあるよね
リスト化も文字列化も必要無いので、これでいい
set theText to theText & return & return & return
スマートとは言えなさそうだが、こんな書き方もできる
set theText to theText & ≪data utxt000D000D000D≫
≪data utxt000D000D000D≫には、本当はas stringかas Unicode textが要るんだけど、
前にくっつけるtheTextに倣って自動変換してくれる
0779772
2009/07/17(金) 19:00:15ID:5kj6daby0>set theText to theText & return & return & return
>set theText to theText & ≪data utxt000D000D000D≫
上の方がシンプルでわかりやすいので、こちらを使うことにします。
下の方は改行に限らず、特殊な文字を表す時に使えそうですね。
とても参考になりました。ありがとうございます。
0780名称未設定
2009/07/22(水) 11:45:03ID:dHg3SDD700781名称未設定
2009/07/22(水) 21:32:38ID:eHBDZj5u0tell application "Finder"
open file "/Users/xxxxxx/Library/Preferences/ATOK21/ ユーザー辞書" using "/Library/Application Support/JustSystems/ATOK 2009/Support/ATOK DicUtility.app"
end tell
と試行錯誤をしてみたのですが、どうしてもエラーが返ってきてしまいます。
「&1を取り出すことはできません。」
何卒ご教示お願いいたします。
0782名称未設定
2009/07/22(水) 23:57:08ID:G8RvuAiW0その用途はAutomatorでいけると思う
あとATOKとかにApplescript対応を求めるのが間違い
0783名称未設定
2009/07/23(木) 00:09:37ID:XA7F6mFV0set pref to ((path to preferences) as string)
tell application "Finder"
open file (pref & "ATOK22:ATOK22ユーザー辞書1")
end tell
のようにすればうまくいったよ。
0785名称未設定
2009/07/25(土) 13:30:04ID:aHQwJDQy0tell application "System Events"
set tm_plist to value of contents of property list file "/Library/Preferences/com.apple.TimeMachine.plist"
(|BackupAlias| of tm_plist)
end tell
と書いてみました。これを実行すると結果として
«data ****0000…略…0000»
が出ます。これをalias型か何かのファイル参照にできないでしょうか?
as alias としても失敗します。
結果をスクリプトにコピペして
«data alis0000…略…0000»
と書き換えて実行するとボリュームを指すaliasに変わってくれるのでaliasデータである事は
間違いなさそうなのですが。OS 10.5.7です。
0786(・∀・)
2009/07/25(土) 17:43:09ID:zeKJUHlO0valueで取り出してはいけなかったような。
以下はiTunesでTracksを取り出す例。この記述を参考に。
set trs to property list item "Tracks" of contents of property list file "~.xml"
0787名称未設定
2009/07/26(日) 12:57:28ID:Iyj+Iql80力づくだが……
>>785
力づくだが……
set tempFilePath to "/tmp/backupAliasTemp"
set tempFile to POSIX file tempFilePath
tell application "System Events"
set backupAlias to property list item "BackupAlias" of contents of property list file "/Library/Preferences/com.apple.TimeMachine.plist"
set tempFileHandler to open for access tempFile with write permission
try
write ((text of backupAlias) as Unicode text) to tempFileHandler
end try
close access tempFileHandler
end tell
set timeMachineVolume to POSIX file (do shell script ("ruby -e \"require 'nkf';puts NKF.nkf('-mB -w', File.read('" & tempFilePath & "'))\" | strings | tail -n 1; rm " & tempFilePath))
0788785
2009/07/26(日) 16:13:05ID:EUIADagx0値を取るにはいずれどこかでvalueを見る必要があると思います。
Rootのvalueから見てくか末端までvalueを見ないかの違いではないかと
ちなみにこうやっても同じでした
tell application "System Events"
set tm_plist to (contents of property list file "/Library/Preferences/com.apple.TimeMachine.plist")
set volume_data to (property list item "BackupAlias" of tm_plist)
(value of volume_data) as alias
end tell
>>787 2回もの「力尽く」でありがとうございます。(ちなみに辞書.appによると ちから「ず」く のようです…)
これも結構無理矢理ですが、こんなやり方でもできました。実行すると数秒待たされますw
set xml_string to (do shell script "defaults read '/Library/Preferences/com.apple.TimeMachine' 'BackupAlias'")
-- xml_string は "<00000000 021a0002 000…ffff 0000>" なので16進文字だけにする
set hex_text to ""
repeat with c in xml_string
if (c is in "0123456789abcdef") then set hex_text to (hex_text & c)
end repeat
-- 'alis' data として変換させる
run script "«data alis" & hex_text & "»"
ちなみにこれ、バックアップボリュームをマウントしてない時だとなぜか、
alias "/Volumes/Time Machine バックアップ"
などという存在しないものを返してきます。
0790名称未設定
2009/07/26(日) 17:36:48ID:EUIADagx0スクリプトエディタの結果からBathyScapheにコピペ。
エンコードがどうたらで書き込めないのでさらにFirefoxにコピペして書き込んだらなぜかこうなりました…
0791名称未設定
2009/07/26(日) 17:43:07ID:3iI9f40r0たぶんスクリプトエディタが濁点を正しく処理&表示できてない
ひらがなとカタカナの区別も出来ないらしいし
ttp://piyocast.com/as/applescriptiydhye105e/oeeeyyyyeieeice/
を参照
0792名称未設定
2009/07/27(月) 19:10:15ID:EK04TzG60前スレでも書いたけど、AppleScript2.0のUnicode文字比較はカレントロケールの
基準で行われるから、System Preferences > Internationalのソート順設定で
結果が変わって来る。例えば下の比較
{"is" = "IS","is" = "is"} -- {ASCII小文字=ASCII大文字,ASCII=Fullwidth}
Locale English --> {true,false}
Locale Japanese --> {true, true}
Locale Turkish --> {false, false}
となる。驚いたことにトルコ語の"i"の大文字は"I"じゃないから全く一致しない。
AppleのAS担当者はUnicodeのこういう面全く知らないんだろうね。デフォールトでは
共通ロケール使い、considering localeでカレントロケール使う様な仕組みが欠けてる。
0793名称未設定
2009/07/27(月) 19:37:44ID:PO2+vvtv0そう思うならフィードバックしてやればいいやん
こいつ思い出す http://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html
言ってることはまともか知れんがぶちぶち鬱陶しい
0794名称未設定
2009/07/27(月) 21:18:12ID:XPiUmNgd00795名称未設定
2009/07/27(月) 21:37:04ID:2L03+vlh0YooEditのマルチファイル検索にはよくお世話になった
完全スレ違いにつきsage
0796名称未設定
2009/07/27(月) 21:45:32ID:XPiUmNgd00797名称未設定
2009/07/29(水) 11:58:51ID:4KzMEEYk00798名称未設定
2009/07/29(水) 21:08:59ID:WQ65Oyq60または,アプリの親になるスクリプトだけ呼べる?
このあたりはappletの方が自由度が高いような気がする。
0799名称未設定
2009/07/30(木) 10:57:51ID:zCgjq0OMO/Contents/Resources/Scripts/*.scpt としてパッケージされているので、
run script やら load script で直接指定してやれば好きなように扱えるよ
仮に AppleScript Application を theApp という名前で作ってルートに置き、
theHandler というハンドラを呼ぶ場合はこんな感じ
set theScript to load script ("/theApp.app/Contents/Resources/Scripts/theApp.scpt" as POSIX file)
theHandler() of theScript
0800名称未設定
2009/07/30(木) 19:26:14ID:xkR6r4CJ0load script はAppleScript Text File (*.applescript) を読み込めない。
0801名称未設定
2009/07/30(木) 22:32:03ID:bmnIxIER0POSIXにする必要はないだろ。
それにアプリの位置をはじめに特定しなきゃいけない。
set theScript to load script file ((path to my application as string) & "Contents/Resources/Scripts/theApp.scpt")
tell theScript
theHandler()
end tell
そもそも.scptと.applescriptは完全に性質が違うし,パッケージとは本質的に関係ない。
アプリの中にある実行ファイルは.scpt
0803799
2009/07/31(金) 01:22:18ID:diPjS/wxO*.scpt や *.applescript を AppleScript Studio でビルドすると、
/Contents/Resources/Scripts/ 以下に *.scpt として保存される
*.scpt だから load script できるよ
…ってな事を最初の3行で書いたつもりなんだが伝わらないもんだな
わかりづらくて申し訳ない
状態としては実行専用でバンドル保存した時と同じ
ルートに置いたのは単なる例だね>>802フォロー感謝
そのアプリがどこにあるか不定だとするなら、>>801の様な書き方になるのかな
POSIXパスをエイリアス化してるのは、個人的な習慣なので流して下さいな
ってか今試せないんだけど>>801みたいな書き方できるのかな
参照文字列とPOSIXパスの混在はおかしいような…?
0804名称未設定
2009/08/01(土) 00:18:12ID:eiSCELPW0アプリをルートに置く?変態!
>参照文字列とPOSIXパスの混在はおかしいような…?
うっかりしてたぜ。試さずに直打ちだったからな。
set theScript to load script file ((path to my application as string) & "Contents:Resources:Scripts:theApp.scpt")
tell theScript
theHandler()
end tell
でよろ。
0805名称未設定
2009/08/01(土) 01:14:06ID:rgFGbau00それに実際ルートにファイルを置いて実験する事はよくあるんだけど、
その程度の事で変態よばわりされるのは心外だなぁ
ピンと来なかったから流したけど my applcation てのも初めて見た
my が指しているのはスクリプトオブジェクトだから、application とは続かんのでは
>>797は「外部のスクリプトから」と言っているし、呼び出す側のスクリプトとは無関係
特にアプリ名を弄ってなければ application "theApp" かな、この場合
0806名称未設定
2009/08/10(月) 20:26:04ID:tROgkyMR00807名称未設定
2009/08/12(水) 20:45:18ID:6/lEY3pP0本を出してくれ
0808名称未設定
2009/08/14(金) 11:45:42ID:t1Qawg8h0.appファイルを作り,
特定の拡張子のファイルをクリックすると作ったスクリプトファイルを実行させたいのですがうまくいきません.
'''
on open theFiles
end open
'''
というような何もしないスクリプトを作り,
特定の拡張子を持つファイルの「情報を見る」メニューでアプリケーションを指定し実行することはできました.
他のファイルにも関連付けたいのですが,
「すべてを変更」ボタンをクリックすると,
関連付け先が元々指定していたアプリケーションに戻ってしまいます.
例えば,*.txtであれば,ボタンを押すと「テキストエディット」というように戻ってしまいます.
何もメッセージが出ないく上記のようなミニマムコードでも発生するので,お手上げ状態です.
どなたかご教示ください.
ちなみに,他のアプリ(*.txtにCarbon Emacs)では関連付けることはできました.
0809(・∀・)
2009/08/14(金) 12:53:11ID:Ydvl0xHm00810名称未設定
2009/08/14(金) 12:56:26ID:Qqv11JBA0Info.plist
CFBundleDocumentTypes
例: /Applications/TextEdit.app/Contents/Info.plist
0811名称未設定
2009/08/14(金) 17:45:30ID:y1kvroUD0「スペースを含む文字列」が格納された変数を
渡すには、どうすればいいでしょうか?
do shell script "perl " & perlPath
これ↑で変数perlPathに格納されたパスに置かれた
Perlスクリプトを実行したいのですが、
パスにスペースが含まれると、
それ以降が「2番目の引数」と見なされてしまいます。
環境はMac OS X 10.5.7です。よろしくお願いします。
0812名称未設定
2009/08/14(金) 18:15:54ID:GteGzGkb0quoted form of
0814808
2009/08/14(金) 21:47:55ID:t1Qawg8h0すみません.
OSXのバージョンは10.5.8です.
>>810
ありがとうございます.
スクリプトをアプリケーションバンドルとして保存し,
TextEdit.appのInfo.plist内の拡張子txtに関する値をコピーし,CFBundleDocumentTypes 配列に追加しました.
しかし,状況は依然変わりません.
0815名称未設定
2009/08/14(金) 21:55:02ID:+VcvW3Pr0再起動あるいは再ログインした?
それでもおかしいならば手順がおかしいがどこかで間違ってることになるので、
後はこちらを熟読してください。
http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html
0816808
2009/08/16(日) 02:44:57ID:bos/Izjb0再起動もしました.
念のため新規作成してみました.
手順は下記の通り.
1. スクリプトを書く
2. アプリケーションバンドルとして保存する
3. CFBundleDocumentTypes配列に拡張しtxtに関する値を追加
4. txtファイルを右クリックし「情報を見る」メニューで,
アプリケーションを指定し「すべてを変更」ボタンをクリック
5. 指定していたアプリケーションが元に戻ってしまうorz
という感じです.
ドキュメント読んで出直してきます.
0817名称未設定
2009/08/16(日) 04:22:31ID:raj8GWeT0・アプリを保存し直すか ←うろ覚え
・アプリを一旦別フォルダに移すか ←うろ覚え
・ターミナルでlsregister -fで更新するか ←ググって
・そっくり再構築してしまうか ←これもlsregisterでできるけどググって
0818名称未設定
2009/08/16(日) 06:38:26ID:wyWiCqwg0CFBundleDocumentTypesは変える必要はなく、
CFBundleIdentifierを追加するだけでいいと思います。
以下の手順で確認しました。再起動・ログアウトはしてません。
(OS 10.5.8)
[1] スクリプトエディタで以下のスクリプトを書いて、
フォーマット:アプリケーションバンドル
オプション:全てチェック外す
で保存。
on open file_list
repeat with f in file_list
display dialog f as string
end repeat
end open
[2] [1]で保存したドロップレットのパッケージ内のInfo.plistをProperty List Editorで開いて
Key「CFBundleIdentifier」Value「com.apple.jp.droplet.test」を追加して保存。
(※CFBundleIdentifierについては他のアプリも参考になると思います)
[3] テキストエディットで適当なテキストファイルを作成(拡張子はtxt)。
[4] [3]で作成したテキストファイルをFinderで選択し、情報ウインドウで、
「このアプリケーションで開く」の「その他...」から[1]のドロップレットを選択し、
「すべてを変更...」もクリック(&OK)する。
[5] [3]で作成したテキストファイルをダブルクリック。[1]で保存したドロップレットが動作する。
[6] ちなみに、テキストエディットで新たにテキストファイルを作成と保存し、
ダブルクリックしても、[1]で保存したドロップレットが動作する。
0820名称未設定
2009/08/18(火) 03:54:59ID:d2BwqLTK0質問に興味があるですが "Date Added" Fieldを
好きな日付けで書き換えられるようなスクリプトは
海外にも無いようで、Macの日付を戻したりして
入れ替えたり、とてももローテクで面倒でした
こちらの詳しい方はどう思われますか
>ソートするのに追加日でしているのですが、なぜか古いファイルが
>同日になってしまい同じジャケットがバラバラ出てきて悩んでおります。
>削除して入れ直すには数が多いのでスクリプトでアルバム単位変更できないかと
>Doug's AppleScriptなど探してみてはいるのですが、見落としているのか
>みつかりません。
>Added Date を変更する方法解る方いらっしゃいませんでしょうか?
0821名称未設定
2009/08/18(火) 05:31:47ID:O2qHJ4wa0で触れられてたと思ったけど
0822名称未設定
2009/08/18(火) 23:04:55ID:XK6x6+6J0起動後に Control-Return でフルスクリーンに出来る
のだけど iTerm の設定があるのかと ~/Librarys/Preferlence/net.sourceforge.iTerm.plist 当たりを葬ってみたけど挫折。
残るは iTerm.app に ^Return に相当する事を Apple Script で実現できないものかとスクリプトエディタとにらめっこしてみたが・・・・あああっ。
iTerm Hopme の Script サンプルを見ても、カラーを買えたりとかでフルスクリーン On /Off をコントロールを見つけることができなかった。
スクリプトというより iTerm のコントロール、それも起動の時フルスクリーンにしたい・・をどうすればお助けとを。よろしくお願いしまふ。
0823名称未設定
2009/08/19(水) 00:37:08ID:GCsKUHSv0を選んで(ユニバーサルアクセスの設定変えろ言われるかもしれないけど)iTerm
でフルスクリーンにするコマンドをたたいてみること。
あとは、アプリケーション立ち上げを追加するだけで目的のワークフローができる。
0824名称未設定
2009/08/19(水) 05:11:11ID:k7nMVCkA0tell application "iTerm"
if (count of terminal) is not 1 then return
if (count of session of front terminal) is not 1 then return
end tell
tell application "Finder" to set screenBounds to bounds of window of desktop
tell application "iTerm" to set windowBounds to bounds of front window
if windowBounds is not screenBounds then
tell application "iTerm" to activate
tell application "System Events" to keystroke return using command down
end if
bash だとして、以下を .bash_profile に記載
if [ "$TERM_PROGRAM" = "iTerm.app" ]; then
osascript $HOME/Desktop/itermfullscreen.scpt
fi
ただ、
起動時と、ウインドウ無しからウインドウを開いた時を区別できない、
遅い、
Spacesがあるとどうなのかわからない(10.4なもんで)
0825名称未設定
2009/08/19(水) 09:34:18ID:xpOLjwyfiあ、ありがとう。これからやってみる。
0826名称未設定
2009/08/19(水) 10:20:14ID:82znTTCqiScript上手くいきました。感激です。
組み込みに使うので立ち上げてイベント送るのみではじめます。ただ、やはり色んな状態を想定すること、勉強になります。
今は、Script眺めてるだけでアップアップだけど、せっかくのサンプル、これからじっくり理解したい。
途方に暮れてた(大袈裟?)のでマジ感謝です。
AppleScript 奥が深い。
0827名称未設定
2009/08/19(水) 22:07:57ID:xFoqMzlJ00828名称未設定
2009/08/19(水) 22:09:01ID:P++cE7Id0MidiPipe使用。Midiフットコントローラでページの切り替えができるため大変便利です。
iTunesの曲も切り替えられます。とりあえずできたので載せてみます。
--MidiPipeでMidiフットコントローラによるUI操作のためのAppleScript
--現在の機能 一番上のウィンドウの戻る進むとiTunesの戻る進む
--
--AListでMessageを取得する
--Midiフットコントローラからの情報、item 1 192はProgram Change、item 2 は音色番号
--音色番号を元に切り替えを行う
on runme(message)
tell application "System Events" -- 一番上のウィンドウに戻る進むのコマンド
if (item 1 of message = 192) and (item 2 of message = 0) then key code 123 using command down -- ⌘→
if (item 1 of message = 192) and (item 2 of message = 1) then key code 124 using command down -- ⌘←
end tell
0829名称未設定
2009/08/19(水) 22:09:41ID:P++cE7Id0tell application "iTunes" -- iTunesの次の曲、前の曲 (リピート時でも移動可能)
if (item 1 of message = 192) and (item 2 of message = 4) then
set currentPlaylist to current playlist --現在のプレイリストを取得
set currentSongRepeat to song repeat of current playlist --現在のリピート情報を取得
set song repeat of currentPlaylist to 0 --リピートを切に設定
next track --次のトラックへ
set song repeat of currentPlaylist to currentSongRepeat --リピート情報を元の情報に設定
end if
if (item 1 of message = 192) and (item 2 of message = 3) then
set currentPlaylist to current playlist --現在のプレイリストを取得
set currentSongRepeat to song repeat of current playlist --現在のリピート情報を取得
set song repeat of currentPlaylist to 0 --リピートを切に設定
back track --トラックの始めに戻る
set song repeat of currentPlaylist to currentSongRepeat --リピート情報を元の情報に設定
end if
end tell
end runme
0830名称未設定
2009/08/19(水) 23:11:06ID:TcrzqjAk0iTerm で助けてもらったものです。質問させてください。
on runme(message)
-- body
end runme
この括りは runme の message の呼び出しと message はどこから・・(ここから判らないっす)
message の 0, 1, 3, 4 は MidiPipe からの音色情報を代用しているという事?
tell application "System Events"
-- item 1, item 2 というのは System Events のキーワード?
-- key code 123 useng command down
-- ⌘→を押したのと等価ということですか?
end tell
currentPlaylist の取得ですが、これって何ですか
(あまりにも素人質問ですいません)
後、このシンタックスって、最後は慣れですかね?
(くだらない質問ですいません。これはパスしてください)
0831名称未設定
2009/08/20(木) 01:11:14ID:ZBXl4WV1O横槍ですまないがちょっと性急に過ぎやしないか
質問内容を見る限り、正直まだ他人様のコードを読み取れる段階とは思えない
テンプレをひととおり、或いはせめてAppleScript PARK辺りだけでも読んでくる事を勧めます
0832名称未設定
2009/08/20(木) 08:12:16ID:8NKD9fZJiApple Script PARK いってきます。
0833名称未設定
2009/08/26(水) 12:55:24ID:UT+ZadVY0AppleScript Studioの事でお尋ねします
それまで問題なくビルド・実行出来ていたスクリプトが
ある時を境に
¬のところでは
Expected expression but found unknown token. (-2741)
コマンド /usr/bin/osacompile が終了コード 1 で失敗しました。
≠のところでは
Expected メthenモ, etc. but found unknown token. (-2741)
コマンド /usr/bin/osacompile が終了コード 1 で失敗しました。
とエラーが出るようになってしまいました
どういった原因が考えられるでしょうか?
0834名称未設定
2009/08/26(水) 17:22:49ID:BkHeLdT300836名称未設定
2009/08/27(木) 04:02:50ID:cbglxXbv00837名称未設定
2009/09/03(木) 01:26:55ID:Q4oKYJOD0--もしかしたら専用の命令があるかもしれないけど。10.5、10.6で動きました
tell application "Finder"
set theScreenSize to get bounds of window of desktop
set theScreenWidth to item 3 of theScreenSize
set theScreenHeight to item 4 of theScreenSize
end tell
if theScreenWidth is 1440 then
set theNewSize to "1024 768"
else
set theNewSize to "1440 900"
end if
--http://www.macosxhints.com/article.php?story=20090413120929454
set theScript to "
require 'osx/cocoa';
display = OSX::CGMainDisplayID();
mode = OSX::CGDisplayBestModeForParameters(display, 32, ARGV[0], ARGV[1], nil);
config=nil;
result = OSX::CGBeginDisplayConfiguration(&config);
config = result[1];
if 0 == result[0] then
OSX::CGConfigureDisplayMode(config, display, mode);
OSX::CGCompleteDisplayConfiguration(config, 2 );
print 'change';
end
"
do shell script "/usr/bin/ruby -e " & quoted form of theScript & " " & theNewSize
0838名称未設定
2009/09/04(金) 00:58:40ID:9GqtYbtS0そういうスクリプトつくれますか?
スクリプトはAppleScriptでもJavaScriptでも可。
電子辞書は国語辞書や漢字辞書で、
スクリプトで操作できるものを購入しようと調べましたがわからなかったので、
どの電子辞書を前提でも可。
具体的な内容は、テキストに書かれている大量の単語を、
辞書で検索して意味などをテキストに書き出すという作業です
0839名称未設定
2009/09/04(金) 03:06:48ID:AtlUaXKv0もしやるならGUI スクリプティングだろうけど、どこまでできるかわからない(単語を選択してサービスメニューから辞書引きはそこそこできるかも?だけど)
0840名称未設定
2009/09/04(金) 12:14:06ID:YWJx89YP0egbridge Uni2付属の電子辞典ビューアにlookupってコマンドがあるね。
でも、いまからegbが入手できないという問題が…。
ちなみに、コトノコはASに完全に未対応だった。
--egbridge Uni2付属の電子辞典ビューア
tell application "DictionaryViewer"
activate
lookup for "辞書"
end tell
tell application "System Events"
key code 48 --Tabキー
keystroke "a" using command down --全選択
keystroke "c" using command down --コピー
end tell
これで、"辞書"という内容を検索して、表示された意味を全コピーするところまではできた。
あとは、
・意味内容一行目の見出し部分を取り出して読みやすく加工
・それをテキストエディタにペースト
・引きたい単語をリスト形式で変数に取り込んで、repeat with~in~でループさせる
こんな処理を付け加えれば良さそう。
0841名称未設定
2009/09/04(金) 12:29:41ID:YWJx89YP00842名称未設定
2009/09/04(金) 22:45:15ID:nUYUxVxi0これはもはやAppleScriptではない...
0844名称未設定
2009/09/05(土) 00:59:07ID:hQMec1Px0ありがとうございます。
egbridge Uni2は手に入らなさそうですね。Jammingをちょっと見てみます。
0845名称未設定
2009/09/05(土) 11:46:21ID:QymRaNX90どうしろと
0846名称未設定
2009/09/05(土) 12:57:59ID:hqWAS12H0>ttp://mycometg3.blog.so-net.ne.jp/2009-09-05
IB3.2でdefaultを書き換えて、使えばいい。
0847名称未設定
2009/09/05(土) 15:58:04ID:PQZGDKO600848名称未設定
2009/09/05(土) 16:29:09ID:A/UzNj2OP0849名称未設定
2009/09/05(土) 20:29:20ID:WdLCdU6t0http://developer.apple.com/mac/library/releasenotes/ScriptingAutomation/RN-AppleScriptObjC/index.html
0850名称未設定
2009/09/05(土) 20:50:30ID:be+wMAR70既存の文法を拡張せずにObjCのオブジェクトを継承できたりしてASSなんかよりずっと良い
0851名称未設定
2009/09/05(土) 23:05:45ID:ej1h2E+O0しかし,これからどうなるんだ...
0852名称未設定
2009/09/05(土) 23:30:17ID:be+wMAR700853名称未設定
2009/09/05(土) 23:39:14ID:DIop7y1uiSet theDate to (class "NSDate")'s |date|()
log theDate's description()
0854名称未設定
2009/09/05(土) 23:43:02ID:6qHVmxV70Objective-Cそのまま使う方がずっと簡単だと思うんだが?
0855名称未設定
2009/09/06(日) 00:07:31ID:vNiNb+rl00856名称未設定
2009/09/06(日) 00:45:48ID:de0Txa+C00857名称未設定
2009/09/06(日) 02:12:09ID:vNiNb+rl0set theDate to current application's class "NSDate"'s |date|()
log theDate
current applicationがミソ
あとdescriptionメッセージは別になくても平気
0858名称未設定
2009/09/06(日) 02:33:41ID:BnE4l9Ao0ドロップレットを作成する簡単な方法はなくなったの?
0859名称未設定
2009/09/06(日) 03:17:38ID:vNiNb+rl00860名称未設定
2009/09/06(日) 09:33:35ID:PTAKa/triしてみた。コツをなかなかつかめない。
Idleハンドラが動かないのでNSTimer
使ってみた。
Bindingが使えるのはおもしろいな。
0861名称未設定
2009/09/06(日) 11:43:38ID:LuSTT5iG0普通のアプリっぽいこともできるのかな?
0862名称未設定
2009/09/06(日) 11:59:23ID:vNiNb+rl00863名称未設定
2009/09/06(日) 12:22:01ID:BnE4l9Ao0Dockアイコンがドロップを受け付けてくれない……。
Info.plist を
http://miff.blog.so-net.ne.jp/2009-05-11
のように書き換えてみると,Finderのアイコン上へはドロップできたけど,
やっぱり Dock アイコンへはドロップできない。
どうするのが正しいのでしょうか?
0864863
2009/09/06(日) 12:44:22ID:BnE4l9Ao00865名称未設定
2009/09/06(日) 13:03:02ID:vNiNb+rl00866名称未設定
2009/09/06(日) 13:04:58ID:VyLvyVqf0これらの単独または上記の順番で連続して実行。
0867名称未設定
2009/09/06(日) 13:34:55ID:zEN1Hafm0スクリプトエディタで書く普通のスクリプトをObj-Cでも書けるようにしてくんねえかな
昔JavaScript版どっかが作ってたけど
いや、Obje-C++みたいに、というかさらに混在できるようにしちゃうとか
Objective-C++AS
予約語が重なりそうだな
</妄想>
0868名称未設定
2009/09/06(日) 13:51:46ID:vNiNb+rl00869名称未設定
2009/09/06(日) 14:48:46ID:+Cg2k6Qb0>ttp://mycometg3.blog.so-net.ne.jp/2009-09-06
面白いね。これ。
0870名称未設定
2009/09/07(月) 18:59:05ID:SsOr1JYe0スクリプトを起動したら入力待機して、1文字入力したら、それを変数に格納したいのです。
0871名称未設定
2009/09/08(火) 01:13:51ID:O0UZeph10--別スレでCGEventSourceKeyStateでチェックできると見たので。keycode2charの行を分割したので一行に結合してください
tell application "System Events" -- アクティブなアプリでキーを拾わないように
set theAppNameList to name of processes whose frontmost is true
set theAppName to item 1 of theAppNameList
activate
end tell
set thePressKey to my getPressChar()
tell application theAppName to activate -- 元のアプリに戻る
display alert thePressKey
on getPressKeycode() -- キーを押しているのを見つけるまでループ
set theRubyScript to "require 'osx/cocoa'
while(1)
for i in 0..126
if OSX::CGEventSourceKeyState(0, i)
print i
exit(0)
end
end
sleep 0.1
end"
set theResult to do shell script "/usr/bin/ruby -e " & quoted form of theRubyScript
return theResult as number
end getPressKeycode
on getPressChar() -- keycode2charには記号など抜けているキーがあります。間違いもあるかもしれません。
set keycode2char to {"a", "s", "d", "f", "h", "g", "z", "x", "c", "v", 0, "b", "q", "w", "e", "r", "y", "t", "1", "2", "3", "4", "6", "5", 0, "9", "7", 0, "8",
"0", 0, "o", "u", 0, "i", "p", "Return", "l", "j", 0, "k", 0, 0, 0, 0, "n", "m", 0, "Tab", "Space", 0, "delete", 0, 0, "Command", 0, "Shift", 0, "Alt", "Ctrl",
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "F5", "F6", "F7", "F3", "F8", "F9", 0, "F11", 0,
"F13", 0, "F14", 0, "F10", 0, "F12", 0, "F15", 0, 0, 0, 0, "F4", 0, "F2", 0, "F1", "Left Arrow", "Right Arrow", "Down Arrow", "Up Arrow"}
set theKeyCode to getPressKeycode()
return item (theKeyCode + 1) of keycode2char
end getPressChar
0872名称未設定
2009/09/08(火) 01:17:59ID:O0UZeph10コマンド押しながら起動したら処理分けるとかに使えるかもしれない
set theResult to my getModifierKeys()
log theResult
on getModifierKeys()
set theRubyScript to "require 'osx/cocoa'
event = OSX::CGEventCreate(nil)
mods = OSX::CGEventGetFlags(event)
print mods,' '
if (mods & 0x00020000) != 0
print 'shift '
end
if (mods & 0x00040000) != 0
print 'control '
end
if (mods & 0x00080000) != 0
print 'option '
end
if (mods & 0x00100000) != 0
print 'command '
end
"
do shell script "/usr/bin/ruby -e " & quoted form of theRubyScript
end getModifierKeys
0873名称未設定
2009/09/08(火) 01:19:24ID:+3aA31Hn0日本語名のフォルダに入っているファイルではうまく動いてくれません。どうしたらいいですか?
OSは10.5.8です。
スクリプトはこんなかんじです。
on open drop_items
repeat with curItem in drop_items
tell application "Safari"
set itempath to POSIX path of curItem
set URL of tab 1 of front window to itempath
end tell
end repeat
end open
0874名称未設定
2009/09/08(火) 03:14:12ID:Tv2i7/JY00875名称未設定
2009/09/08(火) 03:25:31ID:Tv2i7/JY0set itempath to POSIX path of curItem
↓
set itempath to quoted form of (POSIX path of curItem)
これじゃだめかい?
0876名称未設定
2009/09/08(火) 23:13:07ID:YZ3C8W070素直にURL使った方が早いかも
10.6で確認
on open drop_items
repeat with curItem in drop_items
tell application "System Events"
set itempath to URL of curItem
end tell
tell application "Safari"
set URL of tab 1 of front window to itempath
end tell
end repeat
end open
0877873
2009/09/08(火) 23:58:57ID:+3aA31Hn0>>876さん
ありがとうございます。
>>876さんの書かれたスクリプトで出来ました。本当にありがとうございました。
0878名称未設定
2009/09/09(水) 21:44:46ID:1O7J4flE0それはすでにAppleScriptでありながらAppleScriptではない。
0879名称未設定
2009/09/11(金) 08:51:39ID:WxzErIRi0AS-ObjCで、DragAndDropを受け付けるコードを書こうとしたが
最初のDraggingEnterd_()でビット演算(AND)が必要な箇所があって、
手が止まってしまった。
ObjC
if (sourceDragMask & NSDragOperationGeneric) {
return NSDragOperationGeneric;
}
AS
・・・
AppleScriptって、今だにビット演算使えないのか・・・
0880名称未設定
2009/09/13(日) 01:06:53ID:4appDlQC0AS-ObjC ってそうなんだ
イベントつなぐのが楽になってるのかと思ってた
0881名称未設定
2009/09/13(日) 04:40:12ID:xhAgFv6VPコメント欄に書いてあるリリース日を説明欄にコピって
説明欄でソートしたらリリース日順に並べられるようにするAppleScriptを作るのに今までかかった。
全くのプログラム初心者なので色々なサイトのを借りてきて切り貼りさせてもらったけどなんとか期待通りの挙動になった…
0882名称未設定
2009/09/13(日) 04:42:18ID:xhAgFv6VP0883名称未設定
2009/09/13(日) 11:01:53ID:KkddvEMq0真意のわからん投稿だが完成おめでとう。
ところでそれはこのスレでは初心者レベルなのか.....質問がしにくくなった.......
一定時間間隔で空きメモリの量を確認して,規定量以下になったらメモリを食っているアプリを終了させて,liberamemory(auto)とかを走らせようと思っています。
ここで質問なのですが。liberaを走らせる部分は単純に
tell application "Libera Memory Auto3"
activate
end tell
で、liberaは起動すると自動で処理を開始し,処理を終わらせると勝手に終了するので,起動させるだけでいいのですが
アプリが勝手に自動終了しようとするところでエラーがでるみたいです。イベントログだとこんな感じです。
tell application "Libera Memory Auto3"
activate
current application
"Libera Memory Auto3 でエラーが起きました:接続が無効です。"
こんな風に自動で処理を進めて勝手に消えていくアプリの場合,どのように書けばいいのでしょうか。
すみません,低レベルかもしれませんがよろしくお願いします。
0884(・∀・)
2009/09/13(日) 11:33:16ID:C0joxKVM00885名称未設定
2009/09/13(日) 11:41:40ID:QxE5LHfg0do shell script "/usr/bin/purge"
man purgeも読んでね。
0886名称未設定
2009/09/13(日) 14:32:03ID:E536R0Uc0ignoring application responce
end ignoring
で囲む。
または
try
end try
で囲む。
なんてのは?
0887883
2009/09/13(日) 17:37:33ID:KkddvEMq0activate消すと起動しませんよね......
>>885
ご指摘ありがとうございます。
シェルスクリプトに関しても全くの無知でして。勉強になりました。
うまく併用させてみたいと思います。
>>886
try~end try でできました!
ありがとうございます。m(_ _)m
0890名称未設定
2009/09/14(月) 22:30:46ID:oBw14roh0掌田さんあたりがわかりやすい入門書出してくれんだろうか
0891名称未設定
2009/09/15(火) 07:52:49ID:RPQKMNww00893名称未設定
2009/09/15(火) 16:14:41ID:6SUSyBKT00894名称未設定
2009/09/15(火) 17:11:48ID:EXK1+Zxt00896名称未設定
2009/09/15(火) 21:21:24ID:YMDNfyXT0ASS覚えたからというだけの話なんだ
0897名称未設定
2009/09/15(火) 22:30:32ID:RPQKMNww0うちにもそれとぜんまいビュンビュンあるけど、今読み返してみるとやっぱりメチャクチャだわ
0899名称未設定
2009/09/17(木) 02:49:26ID:7uBdTuPX00900名称未設定
2009/09/17(木) 19:35:09ID:5fOLsob600902名称未設定
2009/09/17(木) 22:26:43ID:9ISfMQA40>>901はそれがいいたいのかと。
と言うだけじゃアレなんでヒントだけ示せば、nバイト削除=(n+1)バイト目から読み込んで書き込むということだから read from文使えばいいだろう。
あとはわかるな?
>>901
IDがnHK
0903名称未設定
2009/09/18(金) 02:49:37ID:dF8NJ+Je0も簡単で
0904名称未設定
2009/09/18(金) 02:53:19ID:JPJU8UqJ0簡単だけど、時間が稼げない気がする
以前、do shell script("touch"~とopen for accessでファイルを100個だか500個だかの作成をループで回して時間計ったことがあるけど、open for accessの方が圧倒的に速かった
まぁ最近の機種だとそうでもないかもしれないけど
0905名称未設定
2009/09/18(金) 03:27:59ID:dF8NJ+Je05個か10個か、スクリプトも使い捨て/使い切りと思ってさ
0906名称未設定
2009/09/18(金) 08:10:15ID:Xs8mCu3S00907879
2009/09/18(金) 09:56:06ID:Xs8mCu3S0code:
on conv10to2(INPUT)
-- 8 bit, Decimal to Binary String translation
-- ex: in:5 out:"00000101"
set {str2, val} to {"", INPUT}
repeat while val > 0
set str2 to ((val mod 2) as text) & str2
set val to (val div 2)
end repeat
return (characters -8 thru -1 of ("00000000" & str2)) as text
end conv10to2
set NSDragOperationGeneric to 4
set myINFO to conv10to2(7)
{myINFO, (character -NSDragOperationGeneric of myINFO) > 0}
output:
{"00001000", true}
0908名称未設定
2009/09/18(金) 19:25:28ID:xFgjt65u0あるディレクトリより指定日以降に変更、追加されたファイル抽出>他のマシンの指定ディレクトリにリストア
display dialog "フォルダより差分ファイル抽出、上書きスクリプト" buttons {"Cancel", "Restore", "Archive"} default button 3
set retText to button returned of result
if retText = "Restore" then
myRestore() of me
else if retText = "Archive" then
myArchive() of me
end if
on myRestore()
--指定tarファイルを指定フォルダにリストアします。
choose file "アーカイブファイルを選択してください。"
set tarFilePath to POSIX path of result
set tarFilePath to (quoted form of tarFilePath)
choose folder "リストア先のフォルダを選択してください"
set restFolderPath to POSIX path of result
set restFolderPath to (quoted form of restFolderPath)
do shell script "cd " & restFolderPath & "; tar xvpf " & tarFilePath
end myRestore
続く
0909908
2009/09/18(金) 19:27:54ID:xFgjt65u0--指定日付より後にモディファイされた書類を、デスクトップにアーカイブします。
set myDeskTopPath to path to desktop folder
set myDeskTopPath to POSIX path of myDeskTopPath
choose folder
set myFolderPath to POSIX path of result
display dialog "何日前からをデスクトップにアーカイブします。" default answer "30"
set myDate to text returned of result as integer
if myDate < 0 then return
set myDate to (current date) - myDate * days
set myDate to ((year of myDate) as integer) & "-" & ((month of myDate) as integer) & "-" & ((day of myDate) as integer) as Unicode text
set myFolderPath to (quoted form of myFolderPath)
set tarPath to (quoted form of (myDeskTopPath & myDate & ".tar"))
set myDate to (quoted form of myDate)
do shell script "cd " & myFolderPath & "; tar -cpl --newer-mtime " & myDate & " -f " & tarPath & " ./"
--不正ファイル名チェック?--force-localオプションは、この書式では使えませんでした。後日勉強。
--do shell script "cd " & myFolderPath & "; tar -cpl --newer-mtime " & myDate & " --force-local -f " & tarPath & " ./"
set hoge to tarPath & " に保存しました。" as Unicode text
display alert hoge
end myArchive
0910名称未設定
2009/09/19(土) 01:04:54ID:fjEnmgv000911名称未設定
2009/09/19(土) 18:24:06ID:6nVF67/a0語句を選択してAmazonやらYouTubeやらで検索というASを下記を改変しつつ作っているのですが
open location "http://http://find.2ch.net/?BBS=2ch&TYPE=TITLE&STR=" & surl & "&ie=EUC-JP&oe=EUC-JP"
とすると開いたページで文字化けしてしまいます
解決策をご教示願います
--選択した語句でgoogle検索
set cb to the clipboard as record
tell application "System Events"
tell application process "Safari"
tell application "Safari" to activate
delay 0.5
keystroke "c" using command down
delay 0.5
set surl to the clipboard
end tell
end tell
set the clipboard to cb
if surl contains return then set surl to do shell script "echo " & quoted form of surl & " | sed s/" & return & "//g"
if surl contains " " then set surl to do shell script "echo " & quoted form of surl & " | sed s/" & quoted form of " " & "/" & quoted form of "+" & "/g"
tell application "Safari"
open location "http://www.google.com/search?client=safari&rls=ja-jp&q=" & surl & "&ie=UTF-8&oe=UTF-8"
end tell
0912911
2009/09/19(土) 18:29:44ID:6nVF67/a0>open location "http://http://find.2ch.net/?BBS=2ch&TYPE=TITLE&STR=" & surl & "&ie=EUC-JP&oe=EUC-JP"
open location "http://find.2ch.net/?BBS=2ch&TYPE=TITLE&STR=" & surl & "&ie=EUC-JP&oe=EUC-JP"
0913名称未設定
2009/09/19(土) 18:59:26ID:Rap9QQE20こんな感じで文字コード変換した後にURLエンコードしたらOK
set theText to "ラブプラス"
set theScript to "print rawurlencode(mb_convert_encoding($argv[1], 'EUC-JP','UTF8'));"
set theEncText to do shell script "php -r " & quoted form of theScript & " " & quoted form of theText
open location "http://find.2ch.net/?BBS=2ch&TYPE=TITLE&STR=" & theEncText
10.6だったらAutomatorのサービス用の検索ひな形をAutomatorスレに書いたので
これ使うとテキストを選択したときのコンテキストメニューから検索できるようになる
0914名称未設定
2009/09/19(土) 19:02:00ID:AjXA6wu+0http://www.tidbits.com/matt/default.html#applescriptthings
http://www.tidbits.com/matt/downloads/SearchTidBITSAsoc.zip
自分で定義したObjCクラスをインスタンス化して、AppleScriptから
使っているそうです。
0915911
2009/09/19(土) 20:08:33ID:6nVF67/a0ありがとうございます!
お察しの通り、10.6でテキストを選択>コンテキストメニューから検索
の作業をしていたところです。
QuickSilverがダメダメで途方に暮れていたので助かりました。
0916名称未設定
2009/09/23(水) 05:20:45ID:mHdOAya10クリップボードに何も入っていない時、エラーにならないために以下のような3行を入れていました
if (the clipboard) is {} then
set the clipboard to ""
end if
しかし、OS10.5.6あたりから突然「エラー25131」が表示され、この3行が使用できなくなりました。
ぜひ、回避方法をご存知の方は教えていただけないでしょうか?
よろしくお願いいたします。
0918名称未設定
2009/09/23(水) 09:48:59ID:mHdOAya10try
set cb to the clipboard
on error
set the cb to ""
end try
としたら、うまくいきました。ありがとうございます。
マジで助かりました!
0919名称未設定
2009/09/23(水) 11:47:43ID:pld8dcYT0keychain辺りのバグは直っているのか?
0920名称未設定
2009/09/26(土) 05:56:09ID:uXS75+MN0あるページをSafariで表示し、
そのページを定期的に更新(例えば30分おきなど)し、
更新するたびにそのページのスクリーンショットを撮る。
という一連の作業を自動的にやってくれるようなことがスクリプトで可能であれば、
教えていただけないでしょうか。
0921名称未設定
2009/09/26(土) 06:35:13ID:hjP5EEwK00922名称未設定
2009/09/26(土) 06:40:39ID:uXS75+MN0ではけっこうです
0923名称未設定
2009/09/26(土) 06:44:16ID:HC0zHsja0AppleScript書けなくてもAutomatorで出来そうだな
0924名称未設定
2009/09/26(土) 06:50:49ID:uXS75+MN0Automaterに挑戦していましたが、
自分の動作を記録させてSafariを更新させることができました。
あとAutomaterに入ってるスクリーンショットを撮る動作をその後に追加しましたが、
やはりそれを例えば30分置きに実行するというのが不可能っぽいです。
ググるとcronとかいうのを使って定期実行してる人もいるみたいですが、
チンプンカンプンです。
それに定期実行のスタートと終了を、アプリケーションを起動くらいシンプルなものにしたいので、
ターミナルでcronを使うというのはちょっと違うかなと思いまして。
やはりXcodeなどでプログラミングした方がいいんですかね・・。
0925名称未設定
2009/09/26(土) 08:28:09ID:uXS75+MN0>>920は忘れてください。
>>923さんレスありがとうございました
0926名称未設定
2009/09/26(土) 13:21:47ID:v6tnP4iz00927名称未設定
2009/09/26(土) 13:30:04ID:7AJ/V1wc00928名称未設定
2009/09/26(土) 15:07:13ID:wIZ3SGKZ00930名称未設定
2009/09/26(土) 17:08:07ID:KYGTqK6L0いちいち応戦すんなよ
もう黙ってろ
0931名称未設定
2009/09/26(土) 17:18:51ID:100nMdRE0>>1にある、
>【注意】
>安直なスクリプト作成依頼、丸投げはやっちゃダメ! わからない点、エラーが解決できない点について、スクリプト片を添えて質問しよう。
これを読んでいない、もしくは理解できていない上に、
自作スクリプトを発表する意志すらないのであれば、
このスレに書き込む資格はない。
とっとと出ていって欲しい。
0933名称未設定
2009/09/26(土) 17:36:04ID:nhXhp6NX00935名称未設定
2009/09/26(土) 18:43:09ID:ydLGr6SL00936名称未設定
2009/09/26(土) 20:31:52ID:QE+wYwnt0英語だけど、分かりやすいビデオが置いてある。
>ttp://www.macosxautomation.com/applescript/develop/
InterfaceBuilderとかXcodeとか、使ってないひとにはこれ見て
もらった方が早いよ。
0937名称未設定
2009/10/01(木) 22:10:11ID:37QaXFn10ダイアログボックスを作りたいと思ってるんだけど、もうそんなの
やってるって人いますかね。
0938名称未設定
2009/10/02(金) 02:14:26ID:L+9RMJbk0http://wakabamac.blog95.fc2.com/blog-entry-785.html
このページのサンプルのアプリ名だけを変えて作りました。
AppleScriptで起動させたアプリを通常のログイン項目オプションの"隠す"と同じように
ウインドウを表示させないようにしたいと思っているのですが、どなたか方法を教えていただけませんでしょうか?
0939名称未設定
2009/10/02(金) 02:18:59ID:WRY5kmZj0tell application "System Events"
set visible of processes whose name is "Safari" to false
end tell
0940名称未設定
2009/10/02(金) 02:24:24ID:03zFY9jW00942名称未設定
2009/10/04(日) 17:42:52ID:SYx3/svw00943名称未設定
2009/10/04(日) 20:10:16ID:j2TT7lJ30前に調べたけどよくわからなかったなぁw
たぶん current application を使うのが正しいというか普通だと思う。
これは2語で定義された定数としてわざわざ用意されているもの。
my application は、書き出したスクリプトアプリケーション自身の内部で
自分自身に対して activate や quit をしたい時に tell節と一緒に使われる例が
あるみたいだけど、たぶん大抵は current application で足りると思う。
文法的にみると my application は my+クラス名になっているわけで、
そんな表現に意味があるのか?
似たような表現で my document なら、スクリプタブルなアプリケーション上
(たとえばScriptEditor上)でなら、documentオブジェクトの一覧が得られたりするんだけど、
これはたぶん Standard Suite の applicationクラスの documentエレメントが帰されてると
理解すべきだろうし、
………。
なんてところで思考停止しているw
まあ、my application や my document はありそうな文節だけど、
その実体を考えるとよく分らない。なら、間違いのないだろう
current application や documents of current application を使おう
と言うのが現時点の自分の解釈かな。
0944名称未設定
2009/10/11(日) 21:55:18ID:wBFwomFd00945名称未設定
2009/10/13(火) 02:55:48ID:Pc4UImqk0ないでしょうか。
自前でソートプログラムを組んでみたものの,日本語のことを考えて作ろうとすると
とたんに難しくなってしまうので,Scripting Additionsで代用しようと思っています。
0946名称未設定
2009/10/13(火) 23:31:00ID:Pc4UImqk00947名称未設定
2009/10/15(木) 20:10:58ID:7B1FElCm0埋め込み画像を選択してグレースケールに変換するスクリプトを
書こうとしているのですが、変換は do script でアクションを指定してやるとして
レイヤーがロックされていた場合にエラーになります。
あるアイテムの親のレイヤーのロックをはずす処理はどう書けばよいでしょうか?
0948名称未設定
2009/10/15(木) 22:09:52ID:mPxrVekl0tell application "Adobe Illustrator"
tell document 1
if locked of layer "レイヤー 1" is true then
set locked of layer "レイヤー 1" to false
end if
end tell
end tell
0949947
2009/10/15(木) 22:55:32ID:7B1FElCm0ありがとうございます、でもそうじゃないんです
tell application "Adobe Illustrator"
tell document 1
tell raster item 1
set selected to true
do script "convertGray" from "mySet" without dialogs
delay 1
end tell
end tell
end tell
という感じのをファイル拾ってループ回そうとしてたんですが
raster item 1 の乗っているレイヤーにロックがかかっていてエラーになるので
乗っているレイヤーを指定する方法(名前を知る方法)?が知りたかったんです
0950名称未設定
2009/10/15(木) 23:11:23ID:mPxrVekl0で分かるはずですが…。
0952名称未設定
2009/10/16(金) 01:50:52ID:ER7xwyai0ドキュメント上で何かを選択した後で、
get properties of selection
取得できる全ての属性を一覧できる。
0953名称未設定
2009/10/16(金) 12:51:43ID:Pb3J39Vs0set locked of every layer to false
ではじめに一括で解除してはダメなのでしょうか?
0954名称未設定
2009/10/16(金) 20:38:48ID:1g+K/xUZ0会社の知的財産だからここには出せないけど
(新規ドキュメントにペースト)
(画像の解像度を調節する)
(書き出しコマンド)
こんなヤツです。
0955名称未設定
2009/10/16(金) 20:41:56ID:QZcFjrHn00956名称未設定
2009/10/16(金) 23:32:00ID:1g+K/xUZ0サーセン
0957名称未設定
2009/10/16(金) 23:46:36ID:/Vccu3Qz00958947
2009/10/17(土) 00:46:08ID:neKQRchY00959947
2009/10/17(土) 00:52:41ID:neKQRchY0>>953
そういう処理思いつかなかったです
コピペ野郎だからどっちにしろ書けなかったし…
0961名称未設定
2009/10/18(日) 00:33:09ID:AuXydGcw0「あるサイトからURLを抽出して一定の文字列を削除してtextファイルに保存」
というのをやりたいです。
前半と後半はAutomatorにまかせるとして、文字列の編集が出来ないようなので、
AppleScriptを勉強しようとおもいましたが全く分かりません。
下記はAutomatorで自動的に挿入される文です
on run {input, parameters} (←これで前のアクションの結果を受け取っているのでしょうか?)
hogehoge (←参考になるサイト教えて下さい)
return input
end run
宜しくお願いします
0962名称未設定
2009/10/18(日) 00:42:14ID:u8zvA7ej0>参考になるサイト教えて下さい
http://www.google.com
0963名称未設定
2009/10/18(日) 06:50:32ID:skbFfy910sed 's/対象の文字列//g' とか
対象の文字列に記号があったりすると / を他のに変えとくとかエスケープするとか必要になるけど
0964名称未設定
2009/10/18(日) 08:27:04ID:xH+fTvgb0プログラムの知識が全くないなら、プログラムを勉強してください、という助言以外ない
ここにいる人たちには、助言を求めているのではなく、丸投げしているようにしか見えないよ
0965名称未設定
2009/10/18(日) 10:28:55ID:KI6xb+aF0>>963
sedとcurlでやると良いよね
Perl, Python, RubyなどのLLでもいいけど
0967名称未設定
2009/10/18(日) 11:45:57ID:zggL/kKR0http://www.automatedworkflows.com/software/automator_actions/textedit.html
にテキスト用アクションがあったよ
0970名称未設定
2009/10/18(日) 16:38:27ID:JLr0Acuq0わかりにくいところだし,ぐぐるキーワードもわかりにくい。
イベントによるデータのやり取りやパイプ的な処理は,多くのAppleScriptの定型処理的なスクリプトと
比較して,多少なりとも発想の転換が必要になると思う。
それをすべて本人の努力で,というのは酷かもしれない。
0971名称未設定
2009/10/19(月) 23:55:44ID:YbfIruDg0でぐぐったらここがヒットしたよ↓
ttp://piyocast.com/as/archives/category/application_control/url-access-scripting/
0972961
2009/10/19(月) 23:56:54ID:aZIuS5EW0抽出して置換…程度に思っていたのですがそう簡単に行かないみたいですね
色々試してみます。
0973名称未設定
2009/10/20(火) 09:30:30ID:2GnlbUpf0--少し質問が漠然としてるみたい。文字列の検索置換をASだけでやりたいのかな?URLをいじるのが主?
--たとえばURLのクエリーを省いた文字列が欲しい。で、ASだけで書きたいならこんな感じ。
set myStrings to "http://www.google.co.jp/search?q=applescript"
set splitChara to "?"
set findPos to offset of splitChara in myStrings
set retString to characters 1 thru (findPos - 1) of myStrings as Unicode text
log retString
--文字列の検索置換のASオンリーなら昔はこんなのを使ってた。今は外部で正規使うけど。
--myStringsのクエスチョンマークを文字に
replaceString(myStrings, splitChara, "QUESTION")
log result
--- Search and replase
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
--参考になれば嬉しい。
0974名称未設定
2009/10/20(火) 13:36:32ID:ZfIbwzZ100975名称未設定
2009/10/20(火) 14:40:14ID:R3HQI4zQPTextCommands 入れればいいのに。
0976名称未設定
2009/10/21(水) 01:49:04ID:Lo5P01LD00977名称未設定
2009/10/21(水) 03:52:50ID:eOQuYF9o0今まさにASを学ぼうとしてる961にとっては、
973を読み解くのもためになると思うよ
0978973
2009/10/21(水) 07:53:04ID:d0yLUJa50AS批判のみなさま。確かに私もいまは外でやるのが普通になってしまったけど、
でも、基本覚えておいて損はないし、てか、offset of 系とかは絶対に他言語でもつかうじゃん。
マッチしたレコードを表示するしないに正規つかう?indexOf使うでしょ?圧倒的に早いじゃん。
delimiters系もASの使い方はちと特殊すぎるけどこれも必須だよ。
>>973に書いたの(textとcharactersの変換さりげなくやってるのも見逃さないで)と
reverse(後ろからはないもんね)を覚えて応用すればテキスト処理のほとんどがASのみでできるよ。
--reverse sample
set myStrings to "http://www.google.co.jp/search?q=applescript"
set myListStr to characters of myStrings -->リストにする
set tempStr to reverse of myListStr as Unicode text -->ひっくり返す
set findPos to offset of "/" in tempStr --> offset of は最初に見っけたところだけ。
set retString to characters findPos thru (length of tempStr) of tempStr
set retString to reverse of retString as Unicode text -->ひっくり返してテキストに
朝っぱらから何をしておる?会社いかなきゃ、かなり下がってるからあげとくね。
0979名称未設定
2009/10/21(水) 08:14:53ID:X2P6RHEq0例えば変数STRに格納している文字列をTextEditに入力する時
tell "TextEdit"
tell window 1
keystroke STR
end tell
end tell
ではいけないのでしょうか?
上記だと「&1を取り出すことができません」とエラーが出ます。
基本的な質問ですみません。
0980名称未設定
2009/10/21(水) 09:09:18ID:EpoV8NWa0set STR to "applescript"
set the clipboard to STR
tell application "TextEdit"
activate
tell application "System Events"
keystroke "v" using {command down}
end tell
end tell
とか書くのだけど、まずはリファレンス本を買ってみましょう、ググってみましょう。
でないと、一生書けないよ?
0981名称未設定
2009/10/21(水) 14:56:21ID:ijC2VJEn00982名称未設定
2009/10/21(水) 15:15:07ID:l6nJD7fz0/Applications/AppleScript/Example Scripts/UI Element Scripts/Key Down-Up.applescript
/Library/Scripts/UI Element Scripts/Key Down-Up.applescript
見るといいよ
0983名称未設定
2009/10/21(水) 15:22:21ID:l6nJD7fz0うち10.4なんで10.5以降で構成が変わってたらスマン
0984名称未設定
2009/10/21(水) 21:13:02ID:uUZ2pM5W0AppleScript アップルスクリプト 質問、発表 4
http://pc11.2ch.net/test/read.cgi/mac/1256127156/
0985名称未設定
2009/10/21(水) 21:38:37ID:6o3eLBOJ0初めて見た。
いつからこんなのあった?
0987名称未設定
2009/10/22(木) 00:11:39ID:m2rL1+bb0うまくいかない時は1行ずつバラして確認する
これ基本中の基本
ただし tell ~ end tell は間違ってても文法的なエラー以外は出ないので、
まずは tell を抜いた状態で確認する
0988名称未設定
2009/10/22(木) 00:52:42ID:zYrS/AZb0OS8.5時代には既にあったと思う。
0989名称未設定
2009/10/22(木) 01:50:20ID:oPeAWYAb00990名称未設定
2009/10/22(木) 13:31:34ID:OtVFtJe20http://pc11.2ch.net/test/read.cgi/mac/1256127156/l50
0991名称未設定
2009/10/22(木) 20:58:13ID:QFOz7M3O00992名称未設定
2009/10/23(金) 17:54:30ID:zaZ2Ikhi0>>979 ではありませぬが、テキストエディットってpasteコマンドがないのですね。
なんのこっちゃ
あと、念のため「tell document 1」も入れた方がいいかも。
0993名称未設定
2009/10/23(金) 21:35:24ID:thf9MbZW0実際は application "System Events" を application "TextEdit" で囲んでも全く意味ないので、
document 1 で囲む必要も別にありません
もし keystroke を使わずにやるのなら、
document 1 の text や insertion point を駆使する事になるけど
レス数が950を超えています。1000を超えると書き込みができなくなります。