おもろい、めずらしいアップルスクリプト発表会 5 http://pc11.2ch.net/test/read.cgi/mac/1067367790/ 1 名前: 1 Mail: 投稿日: 03/10/29 4:03:00 ID: poGphYMe 【前スレ】 おもろい、めずらしいアップルスクリプト発表会 4 http://pc.2ch.net/test/read.cgi/mac/1026844857/l50 おもろい、めずらしいアップルスクリプト発表会 http://pc.2ch.net/test/read.cgi/mac/971295440/l50 おもろい、めずらしいアップルスクリプト発表会 http://mentai.2ch.net/mac/kako/957/957215209.html 面白い&便利なアップルスクリプト http://mentai.2ch.net/mac/kako/962/962044994.html ・OSXのスクリプトに関してはこちら 「AppleScript,Perl,Shell」OS Xでスクリプトスレ http://pc.2ch.net/test/read.cgi/mac/1055091471/l50 ・関連スクリプトのまとめ ttp://members.tripod.co.jp/obto/script/script.html 【入門サイト】 AppleScript入門 ttp://www.apple.co.jp/applescript/begin/index.html AppleScriptTutor(掌田津耶乃氏) ttp://www.netjoy.ne.jp/~tuya/AppleScriptTutor/ AppleScript Lab(狩野正嗣氏) ttp://www.drycarbon.com/applescript/ AppleScript Beginner's(JinJin氏) http://homepage.mac.com/jinjin/applescript/ 2 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 4:05:00 ID: poGphYMe 訂正。 3スレ目はこちら http://pc.2ch.net/mac/kako/971/971295440.html 3 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 4:06:00 ID: poGphYMe >>俺 乙。 4 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 4:08:00 ID: Le8Lbcg7 >>1-3 乙 5 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 11:49:00 ID: VPUjhqSj 乙 前スレ、早くも落ちてしまいますた。 6 名前: 名称未設定 Mail: sage 投稿日: 03/10/29 16:27:00 ID: ksJyDnW1 前スレ、何レスまで行ったの? 7 名前: 名称未設定 Mail: 投稿日: 03/10/29 21:25:00 ID: x8Lfg8ud 次スレ用にとっておく? 8 名前: 名称未設定 Mail: 投稿日: 03/10/30 18:50:00 ID: k74TLggK http://kfn.ksp.or.jp/~gauche/MacTweaks/Hiragino/ こちらに載っている 補足情報(2001/07/03)  ATMで「画面上でフォントの縁をスムージング」を指定するのはアンチエイリアス機能を使うためですが、256色モードではこ の機能が効果を発揮しません。フルカラーでお使いください。また、アピアランスで「Finder 表 示用フォント」を変更しても再起動するとデフォルトの[Osaka]に戻ってしまうことを確認しました。Finder 表示用フォントまで 変更したい方は、起動のたびに指定するかAppleScriptを書いて自動化する必要があります。 これに載ってるフォントを切り替えるスクリプト教えてください〜 9 名前: 名称未設定 Mail: sage 投稿日: 03/10/30 22:13:00 ID: A/dW7GY3 アピアランスコンパネの用語説明を見るといいよ 10 名前: 名称未設定 Mail: sage 投稿日: 03/10/31 9:57:00 ID: bWcBwzfT >>1 乙 >>6 987くらいかな 11 名前: 8 Mail: 投稿日: 03/10/31 16:52:00 ID: IJy4rfCH tell application "アピアランス" set views font to "ヒラギノ丸ゴ Pro W4" set views font size to 12 end tell 自分でここまでは発見出来たのですが、実行するとアピアランスコンパネが開いてしまいます。 アピアランスコンパネを開かないで変更するにはどうしたらよいのでしょう??? 12 名前: 名称未設定 Mail: sage 投稿日: 03/10/31 16:56:00 ID: gAJtODe8 閉じれば? 13 名前: 8 Mail: sage 投稿日: 03/10/31 17:03:00 ID: IJy4rfCH >>12 アピアランスコンパネの画面がでないようにしたいんです. tell application "アピアランス" set views font to "ヒラギノ丸ゴ Pro W4" set views font size to 12 quit end tell ってしたら閉じるんですけど、コンパネの画面が前面に来てしまうんです。 出ないようには出来ないのでしょうか?? 14 名前: 名称未設定 Mail: 投稿日: 03/11/07 2:27:00 ID: BA/EK9Ls 保守 15 名前: 名称未設定 Mail: 投稿日: 03/11/08 14:56:00 ID: Q0UkXung MOをイジェクトさせるスクリプトを書いてファンクションに割り当てたんだけど Finderがアクティブになっちゃうのね。 んで、たとえばイラレ使っててMOを取り出した後に、イラレをアクティブに戻す ってのはどうやればいいですかね? 16 名前: 名称未設定 Mail: sage 投稿日: 03/11/08 16:29:00 ID: GWab+I4n >>15 Finderの用語辞書のProcessにある、frontmostを使えば出来るよ。 17 名前: 名称未設定 Mail: sage 投稿日: 03/11/08 19:38:00 ID: tuIppE8x OSA Menuから使うようにすれば? 18 名前: 名称未設定 Mail: 投稿日: 03/11/14 23:47:00 ID: dptsBLX8 safariからURLドラッグすると、pdf作成してくれるようなスクリプトありますか? メニューでもいいけど。 19 名前: 名称未設定 Mail: sage 投稿日: 03/11/15 0:34:00 ID: ZMQ9BJj9 >>18 コマンド+P 20 名前: 名称未設定 Mail: sage 投稿日: 03/11/15 8:38:00 ID: nqhcQ6el >>19 スクリプトかメニューでって言ってるでしょ!! >>18 メニュー→プリント 21 名前: 名称未設定 Mail: sage 投稿日: 03/11/17 11:50:00 ID: T1hRDMws pdfを作成そのものをASにしろというのは、まずむりかと。 そんで、探し物なら他でどうぞ。 22 名前: 名称未設定 Mail: 投稿日: 03/11/18 1:07:00 ID: Y/Tpel1D >>18 ぺn 23 名前: 名称未設定 Mail: 投稿日: 03/11/20 13:58:00 ID: PMWDp00v 選択された文字列を取ってくるのはSystem Eventsを使えばいいんでしょうか? 具体的にはSafariで選択した文字列を取ってきてURLに加工したいんですが。 24 名前: 名称未設定 Mail: sage 投稿日: 03/11/22 0:51:00 ID: OUmtzoIY >>23 keystrokeでコマンド+Cをポストしてクリップボードから文字列とりだせばよいんでないか? Quickeysと組み合わせた方が簡単だけど。 25 名前: 名称未設定 Mail: sage 投稿日: 03/11/23 5:50:00 ID: MVXaa5es >>23 以前からそれやってます OS9にiCabでCMScript使って、、だけど コンテクストメニューから出来ると便利です Safariでもittecみたいなの使って出来ないかな 26 名前: 名称未設定 Mail: sage 投稿日: 03/11/23 14:19:00 ID: Yqo8QCc5 CMScriptって便利なのにほとんど普及しなかったね。 iCab+CMScriptは漏れも使ってまつ。 27 名前: 名称未設定 Mail: sage 投稿日: 03/11/23 17:04:00 ID: Lw3zqp/z >>25 コンテクストメニューでいいなら OnMyCommandCM http://free.abracode.com/cmworkshop/on_my_command.html ってので選択した文字をゲットできますが AppleScriptだけでは無理なので結構めんどくさいですね。 日本語が絡むとさらにめんどくさくなるけど 一回テンプレートになる物を作ればあとは楽になるかな。 わたしはPerlで書いてます。 ・選択文字をgooの和英、英和辞書で検索する ・選択文字をGoogleで検索する ・選択文字の中からURLっぽい部分を探して開く ってのが今は登録されてます。あんまり使ってないけどね 28 名前: 名称未設定 Mail: sage 投稿日: 03/11/25 0:29:00 ID: aUEej+l+ CMScript、私も使ってますよ。特にFinderで。 必要なメニューだけが出てくるのがいいですね。 FinderでOSAメニュー開くとズラッと並んじゃうようになったんで、 OSAメニューの方はほとんど使わなくなりました。 29 名前: 名称未設定 Mail: sage 投稿日: 03/11/25 2:07:00 ID: k1OBoONd 特にFinderで、っていうよりFinder以外ではいまひとつ使えないのが欠点だからな。 対象項目によって出現するしないを制御できるのが便利だよね。 30 名前: 名称未設定 Mail: 投稿日: 03/11/28 13:16:00 ID: jSQA3gr7 5になってから伸びないね 31 名前: 名称未設定 Mail: sage 投稿日: 03/11/29 1:15:00 ID: pDrLkXiZ なんかさびしいんで外出ネタをひとつ 以前、別スレで発表したWindows Media 連続再生メタファイルを作るスクリプト。 パンサで使えますかねえ? on open file_list tell application "Finder" set file_list to (sort file_list by name) as list set current_folder to container of item 1 of file_list set wvx_text to "" repeat with wm_file in file_list set wvx_text to wvx_text & "" & return end repeat set wvx_text to "" & return & wvx_text & "" set wvx_file to (make file with properties {creator type:"Ms01"} at current_folder) as alias try open for access wvx_file with write permission write wvx_text to wvx_file close access wvx_file on error close access wvx_file end try end tell end open 32 名前: 名称未設定 Mail: sage 投稿日: 03/11/29 1:34:00 ID: pDrLkXiZ ついでに「abc1.wmv」みたいなファイル名を「abc01.wmv」みたいに書き換えるスクリプト。 on open file_list tell application "Finder" set suf_fix to text returned of (display dialog "拡張子" default answer "") set old_delim to AppleScript's text item delimiters repeat with cur_file in file_list set file_name to name of cur_file set AppleScript's text item delimiters to suf_fix set file_name to text item 1 of file_name set AppleScript's text item delimiters to old_delim if (character -1 of file_name) is in {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} then if (count file_name) = 1 then set name of cur_file to "0" & character -1 of file_name & suf_fix else if (character -2 of file_name) is not in {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} then set name of cur_file to plain text 1 thru -2 of file_name & "0" & character -1 of file_name & suf_fix end if end if end repeat end tell end open 33 名前: 名称未設定 Mail: sage 投稿日: 03/11/29 1:51:00 ID: pDrLkXiZ メタファイル関連のスクリプトをもうひとつ Windows Mediaの特定の箇所だけをリピート再生 on open file_list tell application "Finder" set wm_file to item 1 of file_list set current_folder to container of wm_file set start_time to (text returned of (display dialog "開始秒" default answer "0")) as integer set start_time to "" & return set duration_value to (text returned of (display dialog "再生秒数" default answer "30")) as integer set duration_value to "" & return set repeat_count to (text returned of (display dialog "再生回数" default answer "3")) as integer set repeat_count to "" & return set wvx_text to "" & return & start_time & duration_value & "" & return & "" & return set wvx_text to "" & return & repeat_count & wvx_text & "" & return & "" set wvx_file to (make file with properties {creator type:"Ms01"} at current_folder) as alias try open for access wvx_file with write permission write wvx_text to wvx_file close access wvx_file on error close access wvx_file end try end tell end open 34 名前: 名称未設定 Mail: sage 投稿日: 03/11/30 12:47:00 ID: gvIvCxOP そういえば、ここって「発表」するスレだったのね。 35 名前: 名称未設定 Mail: sage 投稿日: 03/12/07 8:32:00 ID: Gm019T9q いきなり落ちそう、保守 36 名前: 名称未設定 Mail: 投稿日: 03/12/13 1:56:00 ID: yPjIq1fK 捕手 37 名前: 名称未設定 Mail: 投稿日: 03/12/14 7:21:00 ID: lkBo6yEa 質問ですが、 bpmカウンターというのをapple scriptで作る事は可能ですか? === bpmカウンターとは、 bpm、beat par minute(1分間にビートを何回刻んだかを表した数字) を計測する装置で、大体4~8回程度、タップするとbpmを計算して表示してくれる。 38 名前: 37 Mail: sage 投稿日: 03/12/14 7:31:00 ID: lkBo6yEa 4~8回程度って書きましたが、 2度目のタップからbpmを表示し続けるのもあるし(タップ毎に表示が変わる) >>37で書いたように、例えば8回タップした後にbpmを表示するのもあります。 39 名前: 名称未設定 Mail: sage 投稿日: 03/12/14 7:48:00 ID: ZTyrmCaJ >>37 キータイピングを検知するOSAXを使えばできそう 40 名前: 名称未設定 Mail: sage 投稿日: 03/12/15 11:57:00 ID: z2UwB5Sk >>37 iTunes-BPM inspectorは? iTunesで再生しているトラックに限るが。 41 名前: 37 Mail: sage 投稿日: 03/12/16 22:07:00 ID: 9rS7HNe+ >>39 OSAX? 参考書買って来ます。。 >>40 ほとんど、12インチなのと、リッピングもしないんで 今のとこ使えないんだけど、情報ありがとうございます。 42 名前: 名称未設定 Mail: sage 投稿日: 03/12/21 2:22:00 ID: kkS2ZyF1 ストップウォッチと計算機のほうが早いね・・・ 43 名前: 名称未設定 Mail: sage 投稿日: 03/12/26 0:05:00 ID: GgyQCNfN ほしゅ 44 名前: 名称未設定 Mail: 投稿日: 04/01/01 13:05:00 ID: EsbC9NKJ おめでた保守 45 名前: 名称未設定 Mail: 投稿日: 04/01/08 9:27:00 ID: KBAeJUO6 >>42 BPMカウンタの用途を考えるとその方法は手数が多すぎて実用的じゃないね BPMカウンタ使用時ってのは恐らく曲を再生しながら他の作業もしているはず 例えば、2枚のレコードのテンポ(BPM)を合わせたりとか だから2回のタップで即座にBPMが表示される様な仕組みでないと使ってられない >>37 OS XのAppleScriptStudioならApplicationクラスにon keyboard downイベントがあるんだけど 46 名前: 名称未設定 Mail: sage 投稿日: 04/01/09 3:05:00 ID: LJf6up8F アップルスクリプトの同期の正確さってどのぐらいなんだろ・・・ まあ厳密さは要求されないけどさ。 47 名前: 名称未設定 Mail: sage 投稿日: 04/01/09 9:52:00 ID: oXHUApl+ >>37 市販のBPMカウンタ買った方が良いと思うよ 操作性とか携帯性とか考えると BOSSのDB-12とかマジおすすめ 板違いレススマソ 48 名前: 名称未設定 Mail: 投稿日: 04/01/19 0:47:00 ID: IknwxPKd ほしゅ だけでは申し訳ないので、一応 keydownはJonユs CommandsやS穫di's Additions あとはGetMilliSecなどのOSAX使えば出来ると思いまつ。 しかし、keydownなんぞで苦労するとは… やはりHyperCardは偉大だなと今更ながらに思う今日この頃。 49 名前: 名称未設定 Mail: sage 投稿日: 04/01/23 22:03:00 ID: VFBfTDmz 質問なんですけど、特定階層のフォルダに命令を与えるには、どうすればいいでしょうか? 上層のウィンドウさえ開いていれば set fList to every folder of window 1 repeat with obj in fList open obj end repeat これでいけるんですが、 というか、特定階層だけじゃなく、階層の深さ別に別々の命令を実行させたいのですが。 50 名前: 名称未設定 Mail: sage 投稿日: 04/01/25 3:12:00 ID: lC2PYkkR >>49 鳶嶋工房さんとこのAppleScript/Tips/Basic/複数参照に有ったものを ほとんどそのまま利用して… tell application "Finder" activate set theFolder to choose folder repeat with fdepth from 1 to 3 if fdepth = 1 then open theFolder -- 1階層目の処理 else if fdepth = 2 then -- 2階層目の処理 else if fdepth = 3 then -- 3階層目の処理 end if set theFolder to (a reference to (folders of theFolder)) if contents of theFolder = {} then exit repeat end repeat end tell こんな感じでしょうか? if文はスマートじゃないのでハンドラやスクリプトオブジェクトなどを使って 工夫してみて下さい。 51 名前: 名称未設定 Mail: sage 投稿日: 04/01/25 23:14:00 ID: uNSIwcAB >>50 なるほど。ありがとうです。 ご教示いただいたサンプルとは関係ないんですが、 複数のフォルダを開き、その1つ1つ対してウィンドウ操作の命令を与えようとすると、 命令がずれますね。 ウィンドウ位置などを統一しようとすると、避けられない問題でしょうか。 52 名前: 名称未設定 Mail: sage 投稿日: 04/01/26 6:50:00 ID: JW20HDbz >>51 命令がズレると言うのが良くわからないので スクリプト書いてもらえませんか?  一応、ココ「発表会」だし。 もしかして、window 1とかで操作対象指定してます? そういう事ならcontainer window of 〜 とかを使って下さい。 open thefolder repeat with thisfolder in thefolder set view of (container window of thisfolder) to 2 end repeat こんな感じで、どですか。 操作するウィンドウが無いとエラーになるので その可能性が有る場合は操作直前にウィンドウの存在チェックするか 又はエラー構文など用意しておいた方がいいですよ。 53 名前: 名称未設定 Mail: sage 投稿日: 04/01/26 19:58:00 ID: bhb/aScW >>52 ズレるというのは、複数ウィンドウの各階層ごとに与える命令が、 複数ウィンドウの連続open動作に、追随しないという意味で書きました。 で、ウィンドウの指定には、 window 1 window of insertion location の両方で試行錯誤していました。container window of thisfolderは、 set position命令を受けつけないので。 今は、>>50のif下を open theFolder set position of window 1 to {361, 78} --階層ごとに数値が変わる こうしていますが、複数ウィンドウを次々に開ききった後の 一番上のウィンドウだけしか、動かないです。 set position式をrepeatしても同じです。 54 名前: 名称未設定 Mail: sage 投稿日: 04/01/26 20:01:00 ID: bhb/aScW 最初から、何をやろうとしているのか全部書けばよかったです。 すいませんでした。 特定階層のフォルダに(←>>50で解決) open命令を与えて開き、 set positionでウィンドウの左上位置を指定する。 (ここまで正常に動けば、close windowを追加) これをやろうとしています。 55 名前: 名称未設定 Mail: sage 投稿日: 04/01/27 0:09:00 ID: hQYd7SzG container window ofを受け付けないというより theFolder の中身が1つの時はリストにならないので repeatを受け付けないのだと思います。 あと、目的がそういう事ならIF文より計算かpropertyで指定する方がいいかも。 ということで>>50のif構文を以下の様なスクリプトに置き換えてはどうですか set X to 60 + (fdepth * 30) set Y to 40 + (fdepth * 30) --適当に set folderlist to (open thefolder) as list --強制的にリスト化 repeat with thisfolder in folderlist set position of (container window of thisfolder) to {X, Y} end repeat 56 名前: 名称未設定 Mail: sage 投稿日: 04/01/27 7:04:00 ID: 1guJgef9 >>55 なるほど。これは簡潔ですね。 ただ、新しい問題が起きました。 これを実行すると、上層フォルダの仕分けに関わらず、同一階層の全フォルダを 一度に開こうとするので、Finderメモリ割り当て量か、命令結果の待ち時間を オーバーすることが多くなります。 同時に開くフォルダの数を少なく抑えるために、上層フォルダ別にopen~closeを 完了するか、深めの階層のフォルダをターゲットにしてシーケンスを実行するかで 今夜帰ったら作ってみます。 57 名前: 名称未設定 Mail: sage 投稿日: 04/01/28 0:44:00 ID: uKDpV+a2 windowが開いて無いとエラーになってしまいます。 これを避けるためにFinderのresultが来るのを待つ必要が有るため 速度が遅いのは最初から覚悟していました。 時間が掛り過ぎる場合はtimeoutを調整して下さい。 操作対象のwindowが確実に開いているなら ignoring application responses で実行速度をあげる事も出来るでしょう。 なんでopenしたfolderを位置設定だけしてすぐ閉じるのか良くわからなかったんですが、 朧げながら、あなたのやろうとしている事が分って来た様な気がします。 もしかすると、opening folderなどのフォルダアクションが利用出来るかもしれません。 フォルダアクションはスクリプトで任意のフォルダに付け外し出来ますので… 出来たら、ここにスクリプトを書き込んでみて下さい。 58 名前: 37 Mail: sage 投稿日: 04/02/03 1:55:00 ID: F+mU8OWZ >>45,47 bpmカウンタは持ってるんですが、複数あればより正確に測定できるという目的と ただMacで、やってみたいなって理由です。 あらかじめbpmは測定してフロア用のはだいたい覚えてるし、ジャケにもシールで貼ってるんですが アンビエントのdjする時はけっこうbpmの管理って大変で。 最初、スパコラで作りたいな。って思ったんですが もともと他のパッチを修正して使うぐらいしかできないので 0から作るのは無理でした。 時間ができたらオブジェクト指向のプログラムの本でも買ってがんばります。 亀レススミマセン レスありがとう。 59 名前: 名称未設定 Mail: 投稿日: 04/02/08 14:37:00 ID: NwubDhVf OS9なんですけど日時設定って実現できませんか? 電池が切れたMacにNTPで自動修正させたいんですが、 1904年の状態だとTCP/IPが動作しないんで、 起動時に最近の適当な日時に設定したいんです。 60 名前: 59 Mail: sage 投稿日: 04/02/08 15:08:00 ID: NwubDhVf Akua SweetsっていうOSAXでできました。 ほかにも機能もりだくさんでうれしいかぎりです。 61 名前: 名称未設定 Mail: sage 投稿日: 04/02/08 15:08:00 ID: sJR8dOR4 >>59 とりあえず、そういうOSAXが無いか探してみる 62 名前: 59 Mail: sage 投稿日: 04/02/08 15:09:00 ID: NwubDhVf >>61 レスどうも^^ 63 名前: 名称未設定 Mail: 投稿日: 04/02/08 15:16:00 ID: stC4Ysw3 自己IPの取得法を教えてくらさい 10.3 64 名前: 名称未設定 Mail: sage 投稿日: 04/02/08 15:26:00 ID: sJR8dOR4 >>62 かぶったw >>63 OSXはこちらの方がよいかと 「AppleScript,Perl,Shell」OS Xでスクリプトスレ http://pc.2ch.net/test/read.cgi/mac/1055091471/l10 たぶんターミナルでサクッと出来ると思うよ 65 名前: 名称未設定 Mail: sage 投稿日: 04/02/17 15:12:00 ID: JY+/mNmS ★ 66 名前: 名称未設定 Mail: sage 投稿日: 04/02/19 15:30:00 ID: B+hO59+t ネタがないので面白くも珍しくもないけどいいっすか? tell application "Finder"  set tr to (choose from list {"Shut down", "Restart", "Sleep", "Quit", "StartupDisk"} with prompt "Tell Finder to..." default items "Shut down" with empty selection allowed) as text  if tr = "Shut down" then   shut down  else if tr = "Restart" then   restart  else if tr = "Sleep" then   sleep  else if tr = "Quit" then   quit  else if tr = "StartupDisk" then   open "omaesama:System:Library:PreferencePanes:StartupDisk.prefPane:"  else   error number -128  end if end tell 俺はF4に割り当てて使ってます。 67 名前: 名称未設定 Mail: sage 投稿日: 04/02/20 6:46:00 ID: 8CcmdAge control + EJECTで良いじゃん。 68 名前: 名称未設定 Mail: sage 投稿日: 04/02/20 7:12:00 ID: tLtYgDE2 >>66 Super Shut Down 1.0.2 ttp://www.bajram.com/downloads/softwares/ 69 名前: 66 Mail: sage 投稿日: 04/02/20 16:22:00 ID: g3gGCAo6 >>67 終了系のキーコンビネーションは知っているけど使いたくないので。 「ボタン一つで」かつ「マウス使わず」終了系のメニューを実行させたいって のがもともとのコンセプトです。 >>68 というわけでこのソフト良さげですね。対応するメニューのイニシャル打てば 選択できるっぽいし。しばらく使って様子を見た上で乗り換えます。 ありがとう。 70 名前: 名称未設定 Mail: 投稿日: 04/02/27 0:09:00 ID: gZ2P+Hvr 保守 71 名前: 名称未設定 Mail: sage 投稿日: 04/03/06 12:43:00 ID: KY9cA+nV 保守 72 名前: 名称未設定 Mail: 投稿日: 04/03/11 22:38:00 ID: 58GlCs9q こらー なんでこんなに寂れてる!!! 73 名前: 名称未設定 Mail: 投稿日: 04/03/19 23:45:00 ID: Zsj2gS20 あるスクリプトを書いて、スクリプトエディタから「実行」すると、正常に実行される。 しかしそれをアプリケーション形式で保存してダブルクリックで実行すると、 途中で実行が終わって不完全なまま終了してしまう。 何が原因なんだろう・・・? バグ? OSX10.3.3です。 74 名前: 名称未設定 Mail: 投稿日: 04/03/20 1:45:00 ID: FafNnvhk とにかくあげる 75 名前: 73 Mail: 投稿日: 04/03/21 14:08:00 ID: Jd4rCgHr 日本語関連のバグが原因だったようで、 OSXスクリプトスレにあった下記の方法を試したら正常に動作しますた。 FAQ: アプリケーションに保存すると日本語が使えません (1) 保存時の「フォーマット」を「アプリケーションバンドル」に。 (2) Finderで「Japanese.lproj」という名前の空フォルダを作っておく。 (3) Finderで(1)で保存したアプリを選択し、   情報を見る=>言語=>追加で、(2)のJapanese.lprojを選ぶ。 76 名前: 名称未設定 Mail: 投稿日: 04/03/24 23:58:00 ID: 1eVmXpxf DVDプレーヤで指定した時間へ飛んで再生するスクリプト。 標準でついてる「Go To Time...」だと、時間を入力する際に、1時間14分35秒なら「01:14:35」 のように入力しなければならず面倒(「11435」と入力すると「11435秒」と解釈される)。 このスクリプトなら「11435」と入力すれば1時間14分35秒に、「845」と入力すれば8分45秒に 飛べるのでコロンを入力する手間が省けます。 「スクリプト」形式で保存して、「ホーム/ライブラリ/Application Support/DVD Player Scripts」 に入れてください。 tell application "DVD Player" set et to elapsed time set h to round (et / 3600) rounding down set et to et - 3600 * h set m to round (et / 60) rounding down set s to et - 60 * m set t to text returned of (display dialog "Go to time" default answer (h & m & s as string)) if t as number < 10000 then set t to ("0" & t as string) if t as number < 1000 then set t to ("0" & t as string) set {h, m, s} to {(character 1 of t), (character 2 of t & character 3 of t), (character 4 of t & character 5 of t)} if (h as number) > 0 then set h to (3600 * h) if (m as number) > 0 then set m to (60 * m) set elapsed time to h + m + (s as number) end tell 77 名前: 名称未設定 Mail: sage 投稿日: 04/04/03 13:49:00 ID: dwufcYEl ほしゅ 78 名前: 名称未設定 Mail: 投稿日: 04/04/06 12:09:00 ID: ilrATQYG 関連スクリプトのまとめが見れません。 79 名前: 名称未設定 Mail: sage 投稿日: 04/04/06 12:12:00 ID: ilrATQYG http://members.at.infoseek.co.jp/obto/script/script.html 見れました 80 名前: 名称未設定 Mail: 投稿日: 04/04/07 20:39:00 ID: 0Z7zTZDb URLの一部を抽出して、他のURLにくっつけたいのですが。 81 名前: 名称未設定 Mail: sage 投稿日: 04/04/07 21:14:00 ID: KsLP6+bk (゚Д゚)ハァ? 82 名前: 名称未設定 Mail: 投稿日: 04/04/07 21:31:00 ID: 0Z7zTZDb 例えば、このスレの1067367790 って部分だけ抜き出して、 他のある特定のURLの後ろにくっつけてそのページを表示したいんですけど。 83 名前: 名称未設定 Mail: sage 投稿日: 04/04/07 22:12:00 ID: Ck9yXmv5 質問はスレ違いじゃないかと思うんだが? 84 名前: 名称未設定 Mail: 投稿日: 04/04/07 23:28:00 ID: gxWOtCUh >>82 例えばこんな感じかな tell application "Safari" set hokanourl to "http://nantara/kantara/" set motonourl to URL of document 1 --仮に"http://pc3.2ch.net/test/read.cgi/mac/1067367790/l50"とかなら set AppleScript's text item delimiters to "/" set nukidasi to text item -2 of motonourl open location hokanourl & nukidasi end tell 85 名前: 名称未設定 Mail: 投稿日: 04/04/07 23:59:00 ID: 4sMS9gyn ありがとうございます。 set AppleScript's text item delimiters to "/" set nukidasi to text item -2 of motonourl この部分を .netより前の一単語を抜き出すとか、 もっと具体的に指定することは可能ですか? 86 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 0:02:00 ID: OkyIjWvD テメエで書く気はこれっぽちもないわけですかそうですか 87 名前: 名称未設定 Mail: 投稿日: 04/04/08 0:24:00 ID: IKoY4Fxp >>85 set AppleScript's text item delimiters to "/" set nukidasi to (text item 3 of motonourl) set AppleScript's text item delimiters to "." set nukidasi to (text item 2 of nukidasi) こんな感じの考え方で 88 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 5:26:00 ID: o3sv/8Qy 今更だけど、発表会というより講習会だねぇこりゃ 89 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 11:52:00 ID: IUguQvfL まあいいんじゃないの。 人の書いたスクリプトをもとに自分なりにああしたいこうしたいと思って学ぶものだし。 90 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 12:52:00 ID: nH/2skOJ このスレって伝統的に半々ってところじゃない? 91 名前: 名称未設定 Mail: 投稿日: 04/04/08 21:16:00 ID: GPnFjvWJ >>87 わかりやすいサンプルありがとうございます。 一応思った通りのものは出来たのですが、 コンパイルしてCMScriptで使おうとしても反応しないのですが、 CMScriptで使う場合に変えなければならない部分があるんでしょうか? 92 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 23:14:00 ID: 2AZZr05f 徹底して教えてくんだな。 もう放置ってことで。 93 名前: 名称未設定 Mail: sage 投稿日: 04/04/08 23:58:00 ID: ShgSub30 >>91 ttp://homepage.mac.com/tkurita/scriptfactory/Monologue/CMScript/ この辺を参考に。 94 名前: 名称未設定 Mail: sage 投稿日: 04/04/09 12:39:00 ID: xDraMp8X 何となく厚顔無恥、という単語が頭に浮かんだ。 95 名前: 名称未設定 Mail: sage 投稿日: 04/04/09 22:51:00 ID: +1StqS8h 聞かれても無視してちゃスレが盛り上がらないじゃん。 つーか、91が一連のやりとりで作ったスクリプトを発表してみれば、 丸く収まる。 96 名前: 名称未設定 Mail: 投稿日: 04/04/09 23:11:00 ID: hpBeVwpn さぁ、、、、、、、発表シル! 97 名前: 名称未設定 Mail: sage 投稿日: 04/04/10 0:01:00 ID: pq/Yb/8X そんな発表なんて厚顔無恥な真似は出来ないっす。 しかしながらアドバイスを下さった諸先輩方には感謝の念を禁じ得ません。 煽って下さった方々の新たなスクリプトの発表を期待しつつ 私はこの辺で失礼したいと思います。では 98 名前: 名称未設定 Mail: 投稿日: 04/04/13 0:42:00 ID: qxPmDXY3 >>97 発表しなければ逆に「単なる教えて君」で厚顔無恥だと思うよ。 99 名前: 名称未設定 Mail: sage 投稿日: 04/04/16 13:08:00 ID: PXijATwO >私はこの辺で失礼したいと思います。では これって、食い逃げじゃないか。 ネットというものはギブ&テイクでなりたってんだぞっていう 10年も前の話を蒸し返したくなった。 100 名前: 名称未設定 Mail: sage 投稿日: 04/04/16 13:29:00 ID: 4UZlskxQ まぁ餅搗け。こういうタイプはヒット&アウェイだから多分もうこのスレにはいない。 文句を言っても無意味っしょ。マターリいきましょ。 #彼が旋毛をまげたのも俺が「厚顔無恥」なんて言葉を持ち出したせいだろうし。 ちょい反省。 101 名前: 名称未設定 Mail: sage 投稿日: 04/04/16 18:25:00 ID: 4ET29Dtj http://www.excite.co.jp/dictionary/japanese/?search=%E6%97%8B%E6%AF%9B&match=beginswith&itemid=13660700 (´・∀・`)つ〃∩ヘーヘー 102 名前: 名称未設定 Mail: 投稿日: 04/04/19 12:34:00 ID: Q0aIRuCr ヤフオク自動ログインスクリプトを創って下さい。 103 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 13:22:00 ID: zzIuLqbI 作成してくれた人にあなたはどういう対価を支払えますか? 104 名前: 名称未設定 Mail: 投稿日: 04/04/19 13:49:00 ID: Q0aIRuCr 当スレッドの繁栄を保証いたします。 105 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 17:11:00 ID: o/T8j0k6 103のレスがないので本日のマネーの虎はここまでです。 106 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 17:48:00 ID: iHugRxj+ safariのブックマークを名前順にソートするスクリプトなんてありませんかね?・・・ 107 名前: 名称未設定 Mail: sage 投稿日: 04/04/19 23:10:00 ID: KDo8/S8v >>104 具体性が不足しています。その「保証」を実現するための明確かつ可能なプランを 提示してください。 108 名前: 106 Mail: sage 投稿日: 04/04/20 14:42:00 ID: cl+YINft ないか・・・OTZ 109 名前: 名称未設定 Mail: 投稿日: 04/04/21 4:19:00 ID: 5i36Zz3m >>102 アップルスクリプトじゃなくて、ブックマークレットと呼ばれてるものらしいけど、 俺は↓のようなのをお気に入りに入れてるんだけど、 if (window.location == 'http://my.yahoo.co.jp/'){ document.fm.login.value='ここにID'; document.fm.passwd.value='ここにPASSWORD'; document.fm.submit(); void(0) } もちょっと汎用性があるように誰か改良して欲しい。 110 名前: 名称未設定 Mail: sage 投稿日: 04/04/21 15:21:00 ID: mI2L8YeC >>109 無理です。諦めて下さい。 111 名前: 名称未設定 Mail: sage 投稿日: 04/04/21 15:43:00 ID: MTYa/os+ >>109 かういふ生パスワードをブックマークファイルに保存するやうなマネは よゐこのみなさんはしない方がよいでせう。 112 名前: 名称未設定 Mail: sage 投稿日: 04/04/21 18:05:00 ID: UGUyi4lY >>109 こっちの方がいいかも。 http://pc3.2ch.net/test/read.cgi/mac/1047361032/l50 113 名前: 名称未設定 Mail: 投稿日: 04/04/24 16:43:00 ID: 8KPeuyyk エキサイトの日英翻訳スクリプトを使かっているのですが 翻訳結果を新たに開いたウインドウに表示するのではなく 同じウインドウの異なるタブに表示するにはどこを変えれば 宜しいのでしょうか? 114 名前: 名称未設定 Mail: sage 投稿日: 04/04/24 17:09:00 ID: 2GKHy+dd >>113 browser側で設定する。 115 名前: 名称未設定 Mail: sage 投稿日: 04/04/24 21:13:00 ID: eD0CU/V2 >>113 まず、使ってるブラウザを教えなさい。 116 名前: 名称未設定 Mail: 投稿日: 04/04/25 0:23:00 ID: 9Yq/c+u7 >>114 それは既に設定してあって、タブで開かれるスクリプトもあるのです。 >>115 iCabです。 117 名前: 名称未設定 Mail: sage 投稿日: 04/04/25 0:46:00 ID: V61mzlbT >>116 OpenURL "www.apple.com" toWindow -2 で新規タブで開くよ。 118 名前: 名称未設定 Mail: 投稿日: 04/04/25 0:49:00 ID: NzKP49F8 >>116 ここにあるjavascriptをホットリストに入れてじゃ駄目? 俺これ重宝してるよ ttp://freezone.kakiko.com/bookmarklets/ 119 名前: 名称未設定 Mail: 投稿日: 04/04/26 12:02:00 ID: nuDH+nw0 >>102 javascript: document.forms[0].passwd.value='パスワード';void(0); setTimeout('document.forms[0].Login.click() ',1000);void(0); bookmarkletだけど。 120 名前: 名称未設定 Mail: sage 投稿日: 04/05/11 19:56:00 ID: Zrr/Ybg/ 「AppleScript,Perl,Shell」OS Xでスクリプトスレって鯖移転で消えた? 121 名前: 名称未設定 Mail: sage 投稿日: 04/05/11 20:43:00 ID: L85+hApk >>120 消えたね。たぶん。 もしかして漏れはマカー用だから見えないのか?w 122 名前: 120 Mail: sage 投稿日: 04/05/11 21:23:00 ID: Zrr/Ybg/ >>121 俺もマカー用w pc3鯖には978まで残ってるね。手許のログは983まで。pc5鯖じゃもう見られない。 123 名前: 名称未設定 Mail: 投稿日: 04/05/12 15:22:00 ID: xsrqZv8M OS X用の新スレは立たないの? ここと併合するの? 124 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 15:54:00 ID: MJ8sMq4E アップルスクリプトだけ併合して、その他は別に立てるのがいいんじゃない? アップルスクリプトが2つあるのはややこしいよ。 このスレもともとクラシック専用じゃないし、もう「OSXで」って時代じゃないでしょ。 OS9の場合はそのことを書くようにすれば? 125 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 17:14:00 ID: RJoyG+7b AppleScriptとPerl、Shellの組み合わせって微妙に違和感あったから AppleScript オンリーのスレが出来るのは賛成なんだけど、そうなると「おもろい、めずらしい」 という括りが邪魔な気が。AppleScriptがカタカナ表記なのも正直ちょっと……。 最近このスレも停滞気味だし、いっそAppleScript総合スレってのができると嬉しい。 #「AppleScript,Perl,Shell」OS Xでスクリプトスレ自体、結構重宝してたんだけどね。 126 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 18:33:00 ID: /6tuWuza スレタイどおりの機能はしていないが、これをやめると 作って作ってクレクレスレに成り下がるので。 127 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 18:54:00 ID: Yt9Adumd スレタイに違和感はあるけど、伝統ってことで。。。 それに、他にAppleScriptスレ作らなければ嫌でも総合スレになるのでは? 128 名前: 新しく作るんならこんな感じ? Mail: sage 投稿日: 04/05/12 19:06:00 ID: p5lOPGy5 [製作依頼]AppleScript-総合-アップルスクリプト[すんなゴラァ] AppleScriptを語るスレです。 AppleScriptの発表、質問なんかあったらどうぞ。 製作依頼は原則的に受けません。自分で頭ひねろう。 関連スレはこちら ・おもろい、めずらしいアップルスクリプト発表会4 http://pc.2ch.net/test/read.cgi/mac/1026844857/l50 前スレはこちら ・「ご主人様ご命令を!」OSXでスクリプトスレ http://pc.2ch.net/test/read.cgi/mac/1010546884/l50 ・「AppleScript,Perl,Shell」OSXでスクリプトスレ http://pc5.2ch.net/test/read.cgi/mac/1055091471/l50 参考リンクは>>2-5あたり 129 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 19:08:00 ID: p5lOPGy5 ★AppleScirpt参考リンク★ ・AppleScriptリファレンス--古いけどAppleScripterの聖典 ttp://store.sbpnet.jp/isbn/1011/preface.html ・AppleScriptタコ入門 ttp://www.macos.com/octopus/ ・ビブロスのプログラム ttp://www.dd.iij4u.or.jp/~banban/program/program.html ・ちゃらんぽらん ttp://www1.odn.ne.jp/~cge02410/index.html ・鳶嶋工房(Tobishima-Factory) ttp://homepage1.nifty.com/ton_b/ 130 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 19:09:00 ID: p5lOPGy5 ★その他★ ・mi スクリプト書きに便利なエディタ AppleScript、Perl、C言語、その他色々の言語に便利な機能が付いたエディタ。 ttp://www.asahi-net.or.jp/~gf6d-kmym/ ・Scriptmenu AppleScript、シェルスクリプト、Perlスクリプトをメニューバーから実行できる。 ttp://www.apple.com/applescript/macosx/script_menu/ ・SystemOSAX シェルコマンドをAppleScirptから実行できるスクリプティング機能拡張。 めちゃくちゃ便利。SAMPLEも勉強になる。 ttp://www.bekkoame.ne.jp/~iimori/sw/systemOSAX.html 131 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 19:41:00 ID: RJoyG+7b >>128-130 お〜、乙。個人的には【クレクレ】〜【厳禁!】の方がいいかと思ったり、制作依頼は「原則禁止」じゃなく「絶対禁止」にした方が気持ちよく常駐できるかと思ったり。 ところでいつの間にか「AppleScript,Perl,Shell」OSXでスクリプトスレ復活してるね。 新スレ立てる必然性が弱くなった気もするけれど、総合スレがあればやはりありがたい気がするので、総合スレ新規立ち上げに一票。 私見だが、将来的には ・AppleScript総合スレ ・作品発表系の本スレ ・OSXで〜&「AppleScript,Perl,Shell」OSXで〜スレを統合してスクリプト全般スレ ・Xcode&DeveloperTools等、開発環境総合スレ なんてラインナップになると嬉しいかも。 132 名前: 名称未設定 Mail: sage 投稿日: 04/05/12 20:22:00 ID: 8wRb9hTH 作るんなら、スクリプト総合スレが先だろ。 AppleScript総合スレが「OSXでスクリプトスレ」の次スレってのも変だし。 133 名前: 名称未設定 Mail: 投稿日: 04/05/12 20:37:00 ID: 6KRlDQAn 他板から移ってきました。くだらない質問ですいません! AppleScriptで、Classicの起動有無チェックや、停止、起動は制御できるのでしょうか? Classic内フォントフォルダのフォントを出し入れするScriptを作っているのですが、 出し入れの前にClassicを停止し、出し入れが終わったらClassicを起動させるようにしたいのです。 OSX10.3.3です。どうかみなさん、よろしくです。 134 名前: 名称未設定 Mail: sage 投稿日: 04/05/13 1:48:00 ID: 28c+VHmE >>133 tell application "System Events" processes end tell "Classic Support" の有無でclassicが起動しているかどうかを調べられる。 name of processes でやったほうが処理は楽だけど。 classic起動アプリは"Classic Startup" という。 135 名前: 名称未設定 Mail: 投稿日: 04/05/13 3:45:00 ID: 86L1jYdM 最近OS Xに乗り換えはじめたばかりです。 OS 9で使っていたスクリプトをOS Xに持ち込んだら、  empty (trash of disk "ABC") ここで「"trash of disk "ABC""が取得できません」とエラーがおきるので、  empty trash にしたらいけました。 OS 9での指定はおかしかったのかな…? あと、  duplicate selection to disk "Disk123" with replacing ってやったら、OS 9時代と違ってコピーされたファイルの修正日が変わっちゃうんだね。 バックアップだから修正日も同じがよかったのに…( ´・ω・) ショボーン 136 名前: 名称未設定 Mail: sage 投稿日: 04/05/13 13:54:00 ID: 4SoX1ZPm >>134 どうもありがとうございました。 すみません、もっと頭を使うようにします。 137 名前: 名称未設定 Mail: sage 投稿日: 04/05/16 11:05:00 ID: YXVzPiE3 すっげぇ久々にアップルスクリプト触る必要が出たので 昔使っていたリファレンス本探したらみつからない………… 138 名前: 名称未設定 Mail: 投稿日: 04/05/21 6:23:00 ID: FxyGEABa なんだかよくわかんないけど、 逆ギレののたん置いていきますね    ∋oノハヽo∈     (`?D´ ) <なんに!    O^ソ⌒とヽ    (_(_ノ、_ソ 139 名前: 名称未設定 Mail: sage 投稿日: 04/05/21 15:31:00 ID: istz2+O/ モーオタイラネ 140 名前: 名称未設定 Mail: sage 投稿日: 04/05/24 2:17:00 ID: p3nMqvQ/ 教えてください。 OSX 10.2.8で、System Events 経由で他のアプリケーションの特定の menu item の enabled 属性を調べたいのですが、うまくいきません。 tell application "System Events"  tell process "Jedit4"     tell menu "編集" of menu bar 1       get enabled of menu item 1     end tell   end tell end tell みたいな感じ。position とかsizeとかどうでもいい属性はきちんと取り出せる のに、enabled属性だけはgetすると、 "System Events でエラーが起きました: NSCannotCreateScriptCommandError" になって、成功しません。どうすればいいんでしょうか? 141 名前: 名称未設定 Mail: sage 投稿日: 04/05/25 3:15:00 ID: jTw5tg6X tell application "System Events" tell process "Jedit4" tell menu "編集" of menu bar 1 get every menu item whose enabled is true end tell end tell end tell 142 名前: 名称未設定 Mail: 投稿日: 04/05/25 16:48:00 ID: IPgUFLHd すいません、質問です。 QuarkXPress3.3Jを、OSXのClassic環境で動作させているのですが、 AppleScriptで、例えばPictureBoxのプロパティを得ると、 bounds:《data FRMS0038B1630038B16300C66CDA00C66CDA》 みたいになってしまいます。 通常ならbounds値は、 bounds:{100mm,100mm,100mm,100mm} のようなリストで帰ってくるはずなのですが……。 これはOSXのClassic環境では仕方のないことなのでしょうか? それとも、設定が必要とか……。 143 名前: 140 Mail: sage 投稿日: 04/05/25 19:49:00 ID: tXI8j9IS >>141 どうもです。でもそれもやはり同じエラーが出て蹴られるんだな。 get every menu item whose name is "カット" なら問題なく通るのに、enabled属性の時だけ蹴られるんですわ。なんでenabledだけ、 いつものような書式が通用しないのか理由がわからん。 これってひょっとして私のところだけ? 他の人のところでは、enabledも他の属性 同様に扱えてるんですか? 私のところでは対象アプリケーションはJedit4だけでなく とも、なんであっても同じように蹴られるんですが。 ==================== で、なんとか自己解決しました。 get (properties of menu item "カット") as list copy item 10 of the result to x みたいに、属性レコードを一度リストに変換してitemを取り出せばできました。 でも、なんでこんな回りくどいことしなければならないのだろう? 144 名前: 名称未設定 Mail: sage 投稿日: 04/05/25 22:20:00 ID: jTw5tg6X うちは10.3.3なので、>>141で無問題。 145 名前: 140 Mail: sage 投稿日: 04/05/25 22:31:00 ID: At2kt0Mx >>144 そうですか。じゃあ10.2のSystem Eventsの不具合かもしれませんね。 146 名前: 名称未設定 Mail: 投稿日: 04/05/28 23:05:00 ID: 6JAp8G/3 PowerBook G3のOS X 10.3.3で、LCDの明度を変更する(暗くする)スクリプトを考え中です。 とりあえず、 tell application "System Preferences" activate end tell tell application "System Events" tell process "System Preferences" click menu item "ディスプレイ" of menu "表示" of menu bar 1 delay 10 click radio button "ディスプレイ" of tab group 1 of window "カラー LCD" delay 1 set value of slider 1 of group 2 of tab group 1 of window "カラー LCD" to 0.1 end tell end tell っていうのは作ったんですけど、実行速度が遅くって... tell application "System Events" key code hogehoge end tell っていうスクリプトで、明度↓キーを押せないかと考えたんですが、キーコードが分からず。 107(F14?)を指定してやるとそれらしい表示は出るんですが、明度が下がらない。 困ったんでどなたかアドバイスください。 147 名前: 名称未設定 Mail: sage 投稿日: 04/06/05 22:29:00 ID: iCy5XZqT ★ 148 名前: 名称未設定 Mail: age 投稿日: 04/06/12 4:59:00 ID: P6SALBfl 149 名前: 名称未設定 Mail: sage 投稿日: 04/06/19 16:23:00 ID: RSTkpEgg なぁ、誰かそろそろ「スクリプト総合スレ」立ててくれよん。(´・ω・`) 150 名前: 名称未設定 Mail: sage 投稿日: 04/06/19 22:47:00 ID: cOPzDllr 建前だけでも発表会にしておかないと作ってクレクレスレに成り下がります。 151 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 3:38:00 ID: zeKayWJw safariで使えるscript一覧がみたい!ってときどこを探せばよいですか? 152 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 3:50:00 ID: BbguurDB >>151 用語説明なら スクリプトエディタのメニュー「ウインドウ」の「ライブラリ」で表示できる ウインドウにSafariがあるならそれをダブルクリック。無ければ追加する。 もしくはSafariをスクリプトエディタにドロップ。 153 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 4:21:00 ID: oDTtpw2D >>151 スクリプトエディタで shift+command+L 154 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 11:05:00 ID: zeKayWJw >>150,151 thx ハゲミマス。 155 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 22:37:00 ID: 2uyxcqOt AppleScriptでHomeにある Desktop Library Music Public Documents Movies Pictures Sites あたりのフォルダを参照するのって"Macintosh HD:Users:〜ってずらずら書くしかないの? 156 名前: 名称未設定 Mail: sage 投稿日: 04/06/26 22:58:00 ID: ah2QLxOg /Library/Scripts/Navigation Scripts/Open Special Folder.scpt を見る。 157 名前: 名称未設定 Mail: 投稿日: 04/07/05 22:38:00 ID: ZVhnPpmI (´・ω・`) 158 名前: 名称未設定 Mail: sage 投稿日: 04/07/14 0:21:00 ID: jHw/7rkj /Library/Scripts/(´・ω・`)/Navigation Scripts/ 159 名前: 名称未設定 Mail: sage 投稿日: 04/07/14 15:05:00 ID: gjBqyPmm yahooのログインスクリプトSafariで使えないぞ どうにかしてくろよ 160 名前: 名称未設定 Mail: 投稿日: 04/07/16 13:16:00 ID: 0SBEIijE 良スレ 保守age 161 名前: 名称未設定 Mail: 投稿日: 04/07/23 2:47:00 ID: G/iPxOOn 昔、Dialogue Editorをイジってヘンな警告メッセージを出す AppleScript、ってなかったでしたっけ? 「あなたの脳ミソに重要な欠陥が発見されました。修復はできません。」みたいな。 162 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 17:33:00 ID: NnwVfnmZ display dialog "「あなたの脳ミソに重要な欠陥が発見されました。修復はできません。」" 163 名前: 名称未設定 Mail: 投稿日: 04/07/25 23:26:00 ID: G9SMYOeh ここは[発表のスレですが、他に適当なスレが見当たらないので ここに書かせてもらいます。10.3.4を使ってます。 ライブの音源(録音、配布はすべて許可されていました) をたくさんダウンロードしたのですが、曲名が日付になっています。 01-2004-06-21.wav 02-2004-06-21.wav ... そして、正しい曲名がはいったテキストファイルもいっしょに ダウンロードしました。iTunes(v4.6)で手作業で曲名を 変更していますが、これをアップルスクリプトをつかって テキストファイルから曲名を読み込ませて一気に変更 するにはどうしたらいいでしょうか? テキストファイルのなかみはこんな感じです。 01 song1.wav 02 song2.wav ... 164 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 23:27:00 ID: cb5ukQFx >>162 不可能 手作業でやれ 165 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 23:38:00 ID: zNojXqcY awk 166 名前: 名称未設定 Mail: 投稿日: 04/07/25 23:47:00 ID: Ln2StDlC 順番はその通りなの? 01-2004-06-21.wav = 01 song1.wav 02-2004-06-21.wav = 02 song2.wav という事? て言うか、共通する部分が有れば良いけど。 だったら可能だよ。 やり方としてはまず、元ファイル名をリストに取って、 変更したいファイルネームの入ったファイルを開いて、リストに取って。 んで、共通する部分でsortして、 リピートして名前変えて行けば良いんじゃん? 漏れだったらperlだな。 167 名前: 名称未設定 Mail: sage 投稿日: 04/07/25 23:49:00 ID: cb5ukQFx >>166 彼はAS何も知らないと思う。 レスしたなら最後まで面倒見てあげてね。 168 名前: 名称未設定 Mail: 投稿日: 04/07/25 23:54:00 ID: Ln2StDlC >>167 なんで? 169 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 0:05:00 ID: a+E/jU6y >>163 どうしたらいいでしょうか?じゃなくて作りなさいよ。 易しい記述でできるから。実際俺はよく使ってる。 必要なのはiTunesのリストの取得とファイルのオープン/クローズだけ。 170 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 0:21:00 ID: qkSDcJBR ん〜、30分考えてみたが、 オカシイナ。 >>164 >不可能 >手作業でやれ これは嘘、出来るもの。 >>167 >彼はAS何も知らないと思う。 >レスしたなら最後まで面倒見てあげてね。 何故163がASを何も知らないと言うのか、意味が分からん。 >>163 は >一気に変更するにはどうしたらいいでしょうか? こう言っている。 だから考え方を言っただけだし、これ以外の方法も何通りでもある。 漏れなら、perlでsortしながらglob()して、ファイルをopenして、… レスしたから全部面倒を見る? オマイそうしているのか? だとしたら、良い香具師だな。 嘘つきではあるが。 171 名前: 163 Mail: 投稿日: 04/07/26 1:07:00 ID: CMN4F3GW みなさん、レスありがとうございます。 >>166 >順番はその通りなの? >01-2004-06-21.wav = 01 song1.wav >02-2004-06-21.wav = 02 song2.wav >という事? そういうことです。 ちなみにASのことはほとんど知りません。 他のスクリプト言語は昔少しだけかじったことがありますが、 ほとんど忘れています。 >>169 >易しい記述でできるから。実際俺はよく使ってる。 もしさしつかえなければ、あなたが使っているスクリプトを ここにのせていただければ感謝いたします。 172 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 1:28:00 ID: rGfsDYwK >>171 まず作ったスクリプト、できたとこまで晒してみた方が早いかと (できてるなら) 173 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 1:35:00 ID: 45QR3iXr ここは一切努力したくない人は受け入れられないスレです。 もっともそれを承知でクレクレ言ってる節もあるが。 174 名前: 163 Mail: 投稿日: 04/07/26 1:59:00 ID: CMN4F3GW >>173 まあここはスクリプトの質問スレではないですもんね。 昔使ったスクリプトの本をさがしてトライしてみます。 こまったら質問にきますね。 175 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 3:50:00 ID: rGfsDYwK 何だ結局クレクレ房か 176 名前: 名称未設定 Mail: 投稿日: 04/07/26 19:59:00 ID: 1LuHabEM すいません、質問です。 スクリプトエディタから実行すると正常に実行できて、 アプリケーション形式で保存してダブルクリックで実行 するとエラーになるという現象が起きてます。 >75 に10.3.3での解決方法がありますが、うちは10.2.8のせい か、「アプリケーションバンドル」で保存や情報を見る=> 言語=>追加が出来ません。解決方法を御存じの方がいらっ しゃいましたら御教授願います。 (10.3にする、ってのはなるべくさけたいです) 177 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 20:51:00 ID: 45QR3iXr 晒せないのか? 178 名前: 名称未設定 Mail: sage 投稿日: 04/07/26 23:07:00 ID: DTt+8Jxx エラーの内容くらい晒してくれないとどうしようもない。 そのスクリプト自体を晒してくれるのが一番良い。 179 名前: 176 Mail: 投稿日: 04/07/27 11:41:00 ID: 5hk3Umg9 >178 根本的な解決には至らなかったのですが、一応目的は達成した ので報告します。 tell application "SystemSound Extension" activate open file "Shutdown.SSIDoc" end tell tell application "Finder" activate shut down end tell サウンドファイルを鳴らしてからシャットダウンするスクリプト です。SystemSound ExtensionはSystem7サウンドファイル を鳴らすアプリで、これ入れとけばシャットダウン時に音が鳴る って聞いたんですが、ダメなのでスクリプトを書きました。 で、新規作成でアプリケーション形式で保存・実行すると エラーになるので、HDにあったKuGoShutdownという スクリプトをコピーして上記のスクリプトをコピー・上書き 保存したら、正常に動作するようになりました。 長文失礼しました。 180 名前: 名称未設定 Mail: sage 投稿日: 04/08/06 22:32:00 ID: jFIExWeW ★ 181 名前: 名称未設定 Mail: 投稿日: 04/08/19 19:58:00 ID: t6Toq4HR なるほど 182 名前: 名称未設定 Mail: 投稿日: 04/08/24 13:43:00 ID: Fgl/d5RW 質問なんですがちょうど良いスクリプトスレがないのでお願いします。 do shell scriptについてなのですが、 tell application "terminal" do script " " end tell の場合ように、shell scriptに処理はまかせてapple Scriptで処理を継続する方法は ないでしょうか? try timeout と ignoring applicatiron responsesを試したのですが、 どちらも処理が終わるまで戻ってきませんでした。 terminalを立ち上げたくないんですけど、仕様なんですかね…? 183 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 14:02:00 ID: iO9BUeXU >>182 ttp://developer.apple.com/ja/technotes/tn2065.html Q: スクリプトの出力に非常に時間がかかります。 結果が出た時点でそれを読むにはどうすればよいですか? A: これについても、方法はありません。 do shell script は、コマンドが完了するまで戻ってきません。 ただし、対処法としては、コマンドをバックグラウンドで実行し(次の Q&A を参照)、 出力をファイルに送信し、ファイルが完成したらファイルを読むという方法があります。 Q: バックグラウンドサーバプロセスを開始したい場合、do shell script に コマンドの完了を待機させないようにするにはどうすればよいですか? A: 「do shell script "command > file_path 2>&1 &"」を使います。 do shell script は、結果なしで直ちに戻り、AppleScript スクリプトは シェルスクリプトと並行して実行します。シェルスクリプトの出力先は file_path になります。 出力に関心がない場合は、"/dev/null" を使用します。AppleScript からの バックグラウンドプロセスの取得や操作は、直接的にはサポートされていません。 184 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 16:00:00 ID: Fgl/d5RW >>183 ありがとうございます。そこのページは読んでいたのですが、見落としていました。 で、やってみたのですが、 Q: 1 つの do shell script で複数のコマンドを使用するにはどうしたらよいですか? A: 1 回の呼び出しで複数のコマンドを実行するには、次のようにセミコロンでコマンドを区切ります。 これとの共存は出来ないみたいですね。複数コマンドの最後に付けただけでは戻ってきませんでした。 こりゃ、terminal立ち上げないと駄目かな。 185 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 17:15:00 ID: sLkeE8wQ >>184 試してないけど、こんな感じで入れ子にできないかなw do shell script "osascript 'do shell script "command a;command b"' > file_path 2>&1 &" 186 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 18:40:00 ID: G2fUZM82 >>184 よーわからんけど、普通に ; の代わりに & じゃ行かんの? 187 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 18:44:00 ID: G2fUZM82 コマンド列を全体で、ってこと? (a; b)& とかは? 188 名前: 名称未設定 Mail: sage 投稿日: 04/08/24 19:05:00 ID: Fgl/d5RW >>185 ""大杉とスクリプトエディタに怒られました。 だめっぽいです。 >>187 うほ!できた。普通に括弧使えたんですね。知らなかった(w &で並行処理ができるってのもさっき調べて知りました。 ただ今回の場合処理の順番が重要なので&だと駄目だったんですよね。 これを機にshell scriptもきちんと勉強することにします。 ありがとうございました。 189 名前: 188 Mail: sage 投稿日: 04/08/26 22:02:00 ID: QvvKFSXb また質問なんですけどいいでしょうか? 今度はdelayコマンドなんですけど、これって馬鹿みたいにCPU喰うんですけど、 仕様でしょうか? appleScript Studioで使うと消費しないみたいなんですけど、 will finishing launchと組み合わせて使うとやっぱりCPU喰いまくる模様。 do shell script "sleep" でやるとCPUの消費は回避できたんですけど、 今度はdo shell scriptから戻ってこないので、操作不能に陥って、 途中で処理を終了させたいような場合にどうしようもなくなってしまいます。 CPUを喰わずに数秒間処理を待たせる方法って無いでしょうか? 190 名前: 名称未設定 Mail: sage 投稿日: 04/08/26 22:23:00 ID: EQg8eC6u >>189 sleep 10とかは? 191 名前: 188 Mail: sage 投稿日: 04/08/26 23:03:00 ID: QvvKFSXb ごめんなさい。中途半端に書いちゃいましたね。 もちろん do shell script "sleep 秒数" でやってます。 ファイルを監視して、サイズの増加がなければ処理を続行するというスクリプトで、 repeat until ファイルA = ファイルB ファイルA delay 10 (またはdo shell script 〜) ファイルB end repeat こんな感じでやってます。 この状態で、delayなら他のオブジェクトをクリックしたら処理を中断する といったことが出来るのですが、代わりにCPUを馬鹿食いする。 do shell scriptだと、CPUを喰わない代わりにRepeatを抜けるまで操作不能で強制終了しか 手段が無くなるといった状況です。 192 名前: 名称未設定 Mail: sage 投稿日: 04/08/26 23:27:00 ID: Lu6c7XBI on idle return 秒数 end idle だと軽いという話もあるようですが 193 名前: 188 Mail: sage 投稿日: 04/08/27 0:34:00 ID: MfOmeuVx 普通にコマンドを二つ並べただけでは処理が早すぎてファイルの増加を 捉えられないため、ファイルの増加を捉えるにはチェックする2点間の時間差を 作る必要があります。 idleの使い方がいまいちわからないのですが、 調べた限りではidleに挟まれたスクリプトを延々続ける 常駐スクリプトを作るためのものですよね。 となると時間差を儲けるためには利用できないような…。 idleを呼び出して待機させるみたいな使い方って出来るのでしょうか? idle ファイルA do shell script "sleep1" ファイルA' return 30 end idle (ファイルABは不適切だったので変更しました。) これでCPUの消費を抑えつつ30秒に一回チェック(但し一秒間固まる) という風にできるのでなんとかごまかしにはなるのですが、 プログレスバーとかを利用するとその都度止まるのでやはり目立ちますね。 う〜ん…。 194 名前: 名称未設定 Mail: 投稿日: 04/08/27 20:02:00 ID: 5v0uKj1E 質問です。 普段使わないパーティションをアンマウントする スクリプトはどう書けば良いのでしょうか? 10.3.5です。 以前、たしか10.1.5のころは tell application "Finder" activate eject disk "普段使わないHD" end tell でいけてた気がするんですけど、10.3.5だとできない、 ひさびさにXをさわっているので、よくわからない… 教えてくんですみません。 195 名前: 名称未設定 Mail: sage 投稿日: 04/08/27 22:55:00 ID: DSSUIhBx とりあえず do shell script "diskutil unmount /Volumes/ボリューム名" 196 名前: 194 Mail: sage 投稿日: 04/08/27 23:32:00 ID: 5v0uKj1E >195 ありがとうございます!できました。 けど、アンマウントするまでにけっこう時間(10秒くらい)がかかりますね。 197 名前: 名称未設定 Mail: sage 投稿日: 04/08/31 12:15:00 ID: S2i7lRIG >>193 delay 10 じゃだめ? 198 名前: 188 Mail: sage 投稿日: 04/08/31 18:21:00 ID: n5TGMAoP >>197 もしかしてdelayで馬鹿みたいにCPUを喰うのはうちだけですか? AppleScript , Delayあたりでぐぐって見たんですけど、 CPU消費に関する記述を見つけれられず。 海外のフォーラムで一件、CPUを消費しないようなことが書いてあったのですが、 たとえば、 repeat delay 10 beep end repeat だけでもうちでは半分以上のCPUを消費してます。同時に別の重い処理をさせたいので これだとお話にならないんですよね。 今のところ、インジケータなどの動きが鈍くなるのは諦めて、 idleとdo shell script "sleep 〜"の組み合わせでごまかしてるんですが…。 199 名前: 名称未設定 Mail: sage 投稿日: 04/08/31 19:26:00 ID: e7wf23hk >>198 試してみました。 CPU食いまくりです。 10.3.5 200 名前: 名称未設定 Mail: sage 投稿日: 04/08/31 19:32:00 ID: RL3JPk34 >>198 CPU消費を気にするくらいならアップルスクリプトは卒業した方が良いよ。 201 名前: 188 Mail: sage 投稿日: 04/08/31 20:06:00 ID: n5TGMAoP >>199 やっぱそうですか。仕様なのかな? >>200 う〜ん、趣味のレベルなのでそれを言われると辛い(笑) 入門用にはApple Scriptってわかりやすくて良かったと思います。 (未だにファイル参照とかでなんでうごかねーんだよ!とかしょっちゅうですが…) Apple Scriptで出来るようなことは、shell Scriptで大抵出来るのでしょうか? 今回いくつかの箇所で利用しているので、次はこの辺りに手をつけようかとは 思っているのですが…。 202 名前: 名称未設定 Mail: sage 投稿日: 04/09/02 4:10:00 ID: fHTzBjY9   /(_,  (、 )   )/ AppleScript 203 名前: 名称未設定 Mail: sage 投稿日: 04/09/02 5:20:00 ID: Jd5S/g7D ファイル増加捉えるなら、フォルダアクション使こたら? 204 名前: 名称未設定 Mail: sage 投稿日: 04/09/02 22:42:00 ID: AgJghtpE >>202 Safariでずれてる。 xていうか、OS Xでまともなノンプロポーショナルフォントがないような気が... 205 名前: 名称未設定 Mail: 投稿日: 04/09/05 2:47:00 ID: M+cmEJlO キーボードのコマンドキーと上の列の数字を擬似的に押す Scriptはできまんのん? 206 名前: 名称未設定 Mail: sage 投稿日: 04/09/05 4:38:00 ID: +FH99fMK tell application "Finder" to activate tell application "System Events" tell process "Finder" keystroke "N" using command down end tell end tell 207 名前: 名称未設定 Mail: sage 投稿日: 04/09/05 4:40:00 ID: +FH99fMK あ、間違った。こっちだ。 tell application "System Events" tell process "Finder" keystroke "#" using {command down, shift down} end tell end tell 208 名前: 名称未設定 Mail: sage 投稿日: 04/09/12 16:23:24 ID: G03Za5Ed text -5 thru -1 of "123456789" が "56789" になるという書き方をさっき知りました。 items -3 thru -1 of {1, 2, 3, 4, 5} もできるのですね。 209 名前: 名称未設定 Mail: 投稿日: 04/09/14 9:18:54 ID: 09iP1ErF AppleScript Studioで初期設定を利用する方法について教えてください。 on will finish launching theObject try set str1 to contents of defult entry "field1" of user default set contents of cell "field1" of matrix "form1" of window "Main" to str1 on error make new default entry at end of default entries of user defaults with properties {name:"field1" ,contents:""} end try end will finish launching on will quit theObject set str1 to contents of cell "field1" of matrix "form1" of window "Main" set contents of dafault entry "field1" of user default to str1 end will quit これで起動時に初期設定ファイルを読み込んでcellに文字を入力するのは 理解できたのですが、ラジオボタンやポップアップボタンで同様に初期設定を 利用するにはどうしたらよいのでしょうか。 state of 〜 とか title of 〜 とかに変更してやってみてはいるのですが動いてくれません。 210 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 0:58:38 ID: DbtHs2Q3 >>209 will finish launchingでは読み込んだのをproperty変数に代入するだけにして launchedでコントロールをセットするようにしてみれば? 211 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 18:01:51 ID: zXjUXSSN スクリプト関係の質問をしたいのですが、そういうスレってないですか? タイトルからは見つからなかったんですが。 スレ汚しですみませんがちょっと教えてください。 212 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 18:21:57 ID: XTXzTDIJ 以前は、OS Xでスクリプトスレとかあったけど消えた。 213 名前: 209 Mail: sage 投稿日: 04/09/15 21:19:25 ID: mpexBGZ+ >>210 色々試したところ、popup buttonについてはコントロールの理解がイマイチだったようで、 set contents of popup button "popup1" of window "Main" to str2 でいけました。 ただ、ラジオボタンはうまく動かないので、(この辺も私の理解が甘いだけだとは思うのですが…) 得られるtrue,falseからそれぞれのボタンを起動時に個別にON OFFすることで対応しました。 launchedは使いませんでしたが、別で処理させる参考にさせていただきました。 ありがとうございました。 214 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 21:23:49 ID: dBgMYZZi >213 true,false は as boolean を付けて明示的にboolean値として default entry に書き込んでやればよい。 as boolean を付けないと、次にdefault entry から読み出すときに boolean 値として取り出せなくなって、ラジオボタンのstateをset するときにうまくいかなくなる。 215 名前: 211 Mail: sage 投稿日: 04/09/15 22:31:45 ID: zXjUXSSN 無さそうなのでちょっと教えてください。 Mail.appで指定のメールをスクリプトから表示させたいのですが 何か方法はありますか? 216 名前: 名称未設定 Mail: sage 投稿日: 04/09/15 22:40:18 ID: Y4o2eOOG >>215 辞書は見てみたの? 217 名前: 名称未設定 Mail: sage 投稿日: 04/09/16 0:10:03 ID: ll1/7IA1 tell application "Finder" to shut down 218 名前: 名称未設定 Mail: sage 投稿日: 04/09/16 6:24:59 ID: cCQwtS+V スクリプトから表示、ってとこの意味がわからん。 219 名前: 215 Mail: sage 投稿日: 04/09/16 17:54:09 ID: oFS8A0dj >>216 一応見ました。 messageクラスがメールの参照ですよね? これを外部から参照する方法と、ウィンドウで表示(選択でも良いですが)する方法が分かりません。 前者はmessage viewerなどでselected messagesで取り出すくらいしかわからなかったです。 メールボックス内の番号とかでメッセージの参照を取り出せないもんでしょうか? 後者は簡単にできそうなのにさぱーり見つかりません。 ここを良く見ろ、程度のヒントで良いのでよろしくお願いします。 >>218 分かりにくくてすみません。 Mail.appを前に持ってきて指定のメールを表示させる、ということです。 「何日までに返事をしなくてはいけないメール」を表示するスクリプトを作って、 cronで自動表示させるとかそんな感じのことをやってみたいわけです。 220 名前: 名称未設定 Mail: sage 投稿日: 04/09/17 17:56:22 ID: s1RVMjq/ >>219 辞書の message viewer に selected mailboxes と selected messages があります。 リスト形式なので注意、あと動かない場合はバグです。 221 名前: 名称未設定 Mail: sage 投稿日: 04/09/17 19:12:41 ID: qWgoraYN アイコン表示でぴっちり並べるスクリプト tell application "Finder" set thePath to folder "my:hd:folder:" set theIconSize to 64 set theTop to 50 set theLeft to 50 set theXMax to 6 set theFiles to (files of thePath) set theX to 1 set theY to 1 repeat with theFile in theFiles set position of theFile to {theLeft + theX * theIconSize, theTop + theY * theIconSize} set theX to theX + 1 if theX > theXMax then set theX to 1 set theY to theY + 1 end if end repeat end tell 222 名前: 名称未設定 Mail: sage 投稿日: 04/09/26 5:16:06 ID: f5zIxPkz ★ 223 名前: 名称未設定 Mail: 投稿日: 04/10/02 14:28:57 ID: d9+dOidu OS10.3 でシステム終了をAppleScriptで実行したいのですが、出来たらファンクションキーに割り当てられると どなたか使っている方がいたら教えてください、お願いします。 224 名前: 名称未設定 Mail: sage 投稿日: 04/10/02 16:47:35 ID: wEwo/pjv ファンクションキーに割り当てることの意義がわからんが、Keyboard Maestroでも 買ったら? 225 名前: 名称未設定 Mail: sage 投稿日: 04/10/02 16:55:36 ID: 4i3TFRo2 tell application "Finder" to shut down 226 名前: 名称未設定 Mail: age 投稿日: 04/10/02 19:20:04 ID: kgEAA4v6 OS9でクリッピングファイルを作るコマンドって無いのでしょうか? Finderからfileをmakeして、クリエーターとファイルタイプを それぞれ"drag"と"clpt"に変えてみたのですが、Finderから開けませんでした。 クリッピングファイル作成のコマンドを教えてください。 227 名前: 名称未設定 Mail: sage 投稿日: 04/10/02 19:40:31 ID: MG1WP7kQ Tanaka's osax 228 名前: 226 Mail: sage 投稿日: 04/10/02 20:08:04 ID: kgEAA4v6 >>227 "MT Write Clipping" でいけました。THX! 229 名前: 名称未設定 Mail: 投稿日: 04/10/02 20:54:08 ID: I2LNiOMX > 217 ありがとうございました。 230 名前: 名称未設定 Mail: 投稿日: 04/10/07 10:12:06 ID: m8rgYK90 UI Elementなんですけど、Safariで表示させたページ上のフォームなどはAppleScriptでは扱えないんでしょうか? Inspectorでは見えてるのに探してもみつからないorz 231 名前: 名称未設定 Mail: 投稿日: 04/10/07 20:57:06 ID: Cjni9kAp >>230 答えになってないかもしれんが、do JavaScript "..." in document ... で扱える。 ここら辺を参考に http://www.apple.com/applescript/safari/ 232 名前: 名称未設定 Mail: sage 投稿日: 04/10/08 0:39:22 ID: IIC+pTPt >>198 解決してるかな。 スクリプトのままだと思い切りCPUパワーを食いますが 「アプリケーション」等にすれば問題なかったです(うちで約2%)。 >>206なんと、OSXだと純正で命令方法があるんですね。 >>230ちょっとInspectorで覗いたけど textfield 、 scrollarea 等の扱いがよくわからなかったです。 「アプリケーションパッケージ」にしたらスクリプト途中の quit (me)を受け付けませんね。 無理矢理解決したけど。 233 名前: 198 Mail: sage 投稿日: 04/10/09 21:46:33 ID: bAxtWyCz >>232 お、本当ですね。バグなのかな? 結局、idleが使いにくいのと、indicatorが元気に回るとこれまた妙に CPUを喰うので、do shell script "sleep"一本でやることにして、 反応が鈍くなるのは諦めました。 ちなみに作ったのはこれです。スクリプト内容は公開してませんが、 AppleScriptと基本的なshell scriptの組み合わせで書きました。 http://homepage.mac.com/tarak/AccelerCoder/index.html で、一応delayに置き換えてみたんですけど、やっぱり駄目ですね。 AppleScript Studioの場合、スクリプト自体はアプリケーション形式に ならないみたいだから駄目なのかな? 234 名前: 非通知さん Mail: sage 投稿日: 04/10/10 10:22:21 ID: MB8bCHWK スクリプトの中でquitすると、古いスクリプトアプリケーションではアプリ自身がquitするが、 Studioアプリではアプリの中の1オブジェクトのスクリプトがquitするだけなのかも。 tell my application to quit でいけそうな予感。 だれか検証して。 235 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 11:28:20 ID: Y84ktt85 quit my application 236 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 12:04:33 ID: kMxucGfV AppleScript Studio アプリケーションでも quit でアプリ自身がquitしてるけどなぁ。 237 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 21:52:06 ID: h4mMySUs >>236 うちのも単にquitでアプリが終了したよ。 ところで質問なんですけれども。 AppleScript Studio で popup button を使いたいのですが ポップアップに含まれる項目を設定する方法がわかりません。 デフォルトで「item1」〜「item3」というのが設定されているのですが、 これを変更するにはどうすればよいのですか? 教えてちょうだい。 238 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 21:57:54 ID: bFirPcIR >>237 「変更」の具体的な内容を書け。 あと、「教えてちょうだい」ではなく「教えてください」だな。 239 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 22:03:51 ID: h4mMySUs こっちでも叱られた─────!! ていうか同じひとじゃん! 最初からポップアップにある「item1」〜「item3」ってのを 例えば「あ」「い」「う」「え」にしたいんだけど。 説明ベタ?ですまんね。おねがいだから教えてください。 240 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 22:05:09 ID: LfejAz8I 最近DragThingで遊ぶためにいろいろ調べたのでそのメモ ・画像ファイルのアイコン'icns'を読み込む方法 Satimage.osaxが必要 http://www.satimage.fr/software/en/scripting_additions.html set icnsData to (load resource -16455 type "icns" from theFile) tell application "DragThing" set full trash icon to icnsData end tell で設定できます ・画像ファイルにアイコンをつける方法 tell application "Image Events" launch set theImage to open theFile save theImage with icon close theImage end tell ・画像データの種類を変換する方法 GraphicsImporter OSAXをつかう http://www.azug.gr.jp/~h-abe/freeware/gio/index.ja.html set theTiff to giconvert theImage type "TIFF" iTunesのアートワークの形式も好きな画像タイプに変換できる -- これらを組み合わせるとiTunesで再生中の曲のアートワークを DragThingのゴミ箱アイコンに設定できた 241 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 22:14:08 ID: bFirPcIR >>239 PopUpButton に MenuItem を追加するには、 PopUpButton をダブルクリックして Menu を表示させた状態で InterfaceBuilder の Cocoa-Menus パレットにある Item を その表示された Menu にドラッグ&ドロップする。 MenuItem に表示される文字を変更するには、 変更したい MenuItem をダブルクリックする。 こういうことが訊きたいのか? 242 名前: 名称未設定 Mail: sage 投稿日: 04/10/10 22:24:32 ID: h4mMySUs >>241 おおっ、まさにそれが聞きたかった! なるほどメニューを表示させた状態で設定するんですね。 InfoパネルのAttributesから設定できなかったので コード内から直接いじくるしかないのかと思ってました。 どうもありがとう。多謝。 ちなみにコード内からset ~ とかでいじくる方法はないんでしょうか? 243 名前: 名称未設定 Mail: sage 投稿日: 04/10/12 19:38:12 ID: uKbR7eDJ >240のImage Eventsで画像アイコンをつける方法は 画像を再圧縮するのでjpgとかに使うと劣化しますので注意してください。 244 名前: 名称未設定 Mail: sage 投稿日: 04/10/12 22:35:05 ID: LpjzlUgf 最近、カキコを読んで「ああ、あの人だな」とわかることがある... 狭い世界だから... 245 名前: 名称未設定 Mail: sage 投稿日: 04/10/17 0:04:01 ID: tRjBl8pe >>240 アイコンのことなんですがtiff2icnsってtiff画像をicnsに変換できる コマンドがあるのを知りました。 set theTiffPath to POSIX path of "どっか:foo.tiff" do shell script "tiff2icns " & (quoted form of theTiffPath) みたいにやると変換できました。 ただ日本語ファイル名だと変換できないようです。 エラーはでてませんがicnsもできてません。 なんとかならないのかなあ。 246 名前: 名称未設定 Mail: 投稿日: 04/10/24 13:13:01 ID: rw3ptXbP age 247 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 3:14:49 ID: rR2cymuu 2バイト文字に限らずファイルパスってのは普通は囲むだろ。 248 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 3:56:35 ID: rR2cymuu という話ではないのか、、、スイッチの-noLargeだな。 249 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 5:51:23 ID: EhC+PGLP 発表会スレなのに、ほかに関連スレが無いようなので質問させていただきます。 AppleScript Studioアプリに非標準UNIXコマンドをパッケージ内にバンドル したいのですが、アプリの設置パスを獲得する方法はないでしょうか。 250 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 6:42:08 ID: rR2cymuu >>249 アプリの設置パスって path to current application とか? バンドルならまんま bundle があるし。 AppleScriptKit を見ればわかるでしょ。 251 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 18:52:40 ID: x+qjW0Wy プレーンなテキストファイルのドラドロで原稿用紙換算できるAppleScript作ろうと勉強中なんだけどwebにある情報だけじゃどうにもならんですた なんかそこに至る為のお勧めな本とかありませんか。 技量はベーマガ世代でPHPでシンプルな掲示板くらいなら作れてCocoa+Objective-Cでヘボなシューティングゲーム作った事がある程度です。 252 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 19:16:21 ID: piCvLv0u N88BASIC以来のほぼ0から初めましたが 「AppleScript Programming for Mac OS X」(掌田津耶乃著・ソシム刊)は AppleScriptの基礎的な部分の解説が充実しててわかりやすかったですね。 アスキーから出てる「AppleScript Studioでゼンマイびゅんびゅん!!」の方は Cocoaアプリ作成例集といった感じですた 253 名前: 名称未設定 Mail: sage 投稿日: 04/10/25 20:53:00 ID: BBr9rcmX >>250 プロジェクトのResourcesに'gawk'をドラップして、 set gawkPath to ((POSIX path of (path to current application)) & "Contents/Resources/gawk") set content of text field "tv" of window "wi" to (do shell script gawkPath & " '{print $0}' " & targetFilePath) こんな感じでOKでした。ありがとうございます。 単体で機能するフロントエンドが作れますねぇ。うれしい。 http://developer.apple.com/ja/technotes/tn2065.html ところで、AppleScriptKit(用語辞典?)の中をGrepするにはどうしたらよいんでしょう。 AppleScriptKit.asdictionaryをスクリプトエディタで開いても、 左のコラムでは展開しているクラスやコマンドにしかヒットしないし、 右のコラムでは単ページ検索になってしまいます。 なんかこれ使いにくいですよねえ? >>252 僕も掌田津耶乃氏のページを見てやっています。 本も欲しいですね。 254 名前: 名称未設定 Mail: sage 投稿日: 04/10/26 14:32:36 ID: wJ/lC24p >>252 レスどもです。 「AppleScript Programming for Mac OS X」所望してみます。 255 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 5:55:31 ID: yfjLVJw4 AppleScript Studioで作ったアプリのウインドウを、 常に最上位に表示するにはどうしたらよいんでしょうか。 ヘルパーアプリを作っているんですけど、それがネックで……。 トグルできるといいんですけどね。 ゼンマイびゅんびゅんに載っているっぽい感じですが。 週末には買おうと思いますが、ご存知の方がいらしたら教えてください。 256 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 6:38:24 ID: 7qCTI3vX >>255 フローティングウインドウにしたいなら set floating of window "hoge" to true で逝けるかと。ググり情報なんで違ったらスマソ。 以前作りかけたアプリで使ったのに削除してたよorz 何か作る度にWebと睨めっこするのは効率が悪いな。 自前でリファレンス作ってまとめなきゃならんか……。 257 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 9:45:01 ID: yfjLVJw4 ググりキーワードをありがとうございます。 "最前面"とか"常に最上位"とかでググってました。 > set floating of window "hoge" to true これだけでは何かダメだったです。 とりあえず、最前面に固定することには成功しました。 question about global floating window http://lists.apple.com/archives/applescript-studio/2004/Jun/msg00178.html on awake from nib theObject set floating of theObject to true set hides when deactivated of theObject to false end awake from nib こういうハンドラを書いて、windowのAppleScriptのActionにNibのawake from nib のチェックボックスをONにすればOKでした。 後で作り途中のヘルパーアプリに適用してみようと思います。 ありがとうございます。 258 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 10:35:11 ID: JYWwq5Zn AppleScript Studioで progress indicatorの最大値最小値の設定をしたくて以下のようなコードを書きました。 1: tell progress indicator "indi1" 2: display dialog "aaa" 3: set minimum value to 1 4: display dialog "bbb" 5: set maximum value to 100 6: display dialog "ccc" 7: end tell しかし3行目でも5行目でも NSCannotCreateScriptCommandError (10) というエラーが出てしまいます。 これはテスト用に数字を決め打ちしていますが、実際に作りたいアプリケーションの中では 最大値が時によって変わるため、どうしてもコード上で最大値最小値の設定をしたいのです。 どこか「その書き方間違ってるだろ!」とか「ここの設定見てみろ」とかありましたら ご指摘願います・・・ OSは10.3です 259 名前: 名称未設定 Mail: sage 投稿日: 04/10/28 16:52:16 ID: wVbz5O7P >>258 構文はあってる。 思うに progress indicator オブジェクトまでのパスが通って無い。 オブジェクトのある Windows もしくは Sub View に tell してないでしょ。 260 名前: 258 Mail: sage 投稿日: 04/10/28 19:30:04 ID: JYWwq5Zn レスありがとうございます。自分勘違いしてました。 2行目のdialogが表示されてれば、1行目のtellは通っているものだと思っていました・・。 確認したところパスが通ってない部分(凡ミス)を発見し 修正して無事動きました。 アホな質問ですみませんでした・・。 レスいただけて助かりました。重ね重ね感謝です。 261 名前: 255 Mail: sage 投稿日: 04/10/28 23:39:04 ID: yfjLVJw4 >>256 無事常に最上に表示されるヘルパーアプリになりました。 ありがとうございます。 262 名前: 名称未設定 Mail: sage 投稿日: 04/10/30 7:13:33 ID: /PQwgGPn >>256 サンプルアプリ作ってわかりやすいファイル名で保存しとくというのも手かと。 263 名前: 255 Mail: sage 投稿日: 04/10/30 8:39:21 ID: PYKcwNWu 立て続けで恐縮ですが、InDesignで既に選択されたオブジェクトを選択から外 すのはどうやるのでしょうか。用語を見ると、 select: Select this ^Object select reference -- 割愛 [existing selection replace/add to/remove from] -- How to handle the existing selection このようになっており、 select someItem with existing selection とやると、選択に追加していくことができるのは分かるのですが、 > replace/add to/remove from これはメソッドではないようなので、select と existing selection 、そして その他の修飾語で実現すると思うのですが、よく分かりません。グループ化さ れたアイテムを複数選択し、その中から操作対象を特定条件で選択。あとはア ナログ操作、みたいなことをやろうと思っています。 よろしくお願いします。 264 名前: 名称未設定 Mail: sage 投稿日: 04/10/30 16:25:29 ID: IwTOxAem 初心者レベルですが、こんなん作ってみました。 tell application "Finder" display dialog "何と言わす?" & return & "日本語はローマ字で入力" with icon note default answer "" buttons {"OK"} default button 1 set SPEACH to text returned of result say SPEACH as text display dialog "んで、コレど〜するよ?" with icon note buttons {"どうもしない", "AIFFで保存"} set Ans to result if button returned of Ans is "どうもしない" then return else if button returned of Ans is "AIFFで保存" then display dialog "ファイル名を決めれ" & return & "(英数字限定)" with icon note default answer "SPEACH" buttons {"OK"} default button 1 set FN to text returned of result say SPEACH as text saving to {(FN as string) & ".aiff"} display dialog "HDの第一階層にいるよん" with icon note buttons {"OK"} default button 1 end if end tell 声はシステム環境設定のスピーチでデフォルトの声で設定されているものになります。 日本語を喋らせるにはちとコツが必要です。 「son na koto yori tyotto ki i te ku da sa i yo」とするよりは、 「son na koto yori chotto key te ku dasigh yo」とするカンジに、 ローマ字そのまんま入力するよりは、発音の近い英単語を組み合わせる方がいいです。 なお、OS10.3でしか動作確認しとりません。 265 名前: 255 Mail: sage 投稿日: 04/10/30 18:56:13 ID: PYKcwNWu >>264 がんばってますね。 激しく学習のモチベーションになるので、 AppleScript Studioも平行してみるといいですよ。 >>263 自己レスですが、CSの3枚目のCDに付いていたサンプルの中に、 select nothing という表現を発見しました。 select nothing with existing selection という表現も可能ですね。selectionから参照を取った後、 select nothing で選択解除、あとは地道にselectしていく というのでも目的は果たせそうです。 unselect みたいなメソッドがあるといいんですけどね。 266 名前: 255 Mail: sage 投稿日: 04/11/01 5:20:40 ID: L8OLmO4Y InDesignばっかりで申しわけないです。 最前面のウインドウをサイクルさせるスクリプトを作ったのですが、 set myUnSortedWindowList to windows で取得できる参照のリスト(?)の順序が不定なのでソートしたいのです。 いい方法はあるでしょうか。普通にやろうとすると、型変換に失敗 してエラーになってしまいます。一応、下記で問題はないのですが、 ソートできればスッキリするだけに、ちょっとお聞きしてみました。 267 名前: 255 Mail: sage 投稿日: 04/11/01 5:32:46 ID: L8OLmO4Y --InDesignのウインドウを実行の度にサイクル表示する --InDesignのダイアログで、タブブラウザみたいに --ウインドウ選択みたくするのもいいかもですね。 property previousCurrnetItem : 1 property CurrnetItemNumber : 1 property myUnSortedWindowList : {} tell application "InDesign CS_J" if (CurrnetItemNumber is not equal to (count of windows)) or (myUnSortedWindowList is equal to {}) then set myUnSortedWindowList to windows set CurrnetItemNumber to (count of windows) end if if previousCurrnetItem is greater than (count of myUnSortedWindowList) then set previousCurrnetItem to 1 end if try bring to front (item previousCurrnetItem of myUnSortedWindowList) on error set myUnSortedWindowList to windows bring to front (item previousCurrnetItem of myUnSortedWindowList) set previousCurrnetItem to previousCurrnetItem + 1 return end try set previousCurrnetItem to previousCurrnetItem + 1 end tell 268 名前: 名称未設定 Mail: sage 投稿日: 04/11/01 6:12:23 ID: ufV1fFkM >>266 InDesign を持っていないので出来るかわかりませんが、 window の id を取得して地道に並べ替える手が使えるのでは。 269 名前: 255 Mail: sage 投稿日: 04/11/01 12:40:12 ID: L8OLmO4Y >>268 それがよくわからないのですよ。 参照がよくわかってない証拠です。 tell application "InDesign CS_J" windows end tell > layout window id 28009 of document "名称未設定-1" ↑windowsからはこんな山椒が返ってきます。で、 tell application "InDesign CS_J" set myWindows to windows repeat with i in myWindows set end of documentNameList to (name of i) end repeat こんな風にnameは取得できるのですが、(id of i)が取得できないのです。 nameは一意とは限りませんからねぇ。 (window id of i)とか、(layout window id of i)も試したのですが。 こんな基本すらできない自分が悲しい。 270 名前: 255 Mail: sage 投稿日: 04/11/01 12:42:04 ID: L8OLmO4Y ■おまけ Microsoft Excel(2004)で>>267と同じことをするスクリプト……っていうかコマンド。 iKeyなどでExcelのApplication in Front(Ver1系で言うSet)に割り当てると至極便利。 というか、標準であるのかな。ショートカット。ちょっと調べた限りではないみたい だけど。 tell application "Microsoft Excel" activate next of active window end tell 271 名前: 名称未設定 Mail: sage 投稿日: 04/11/01 14:40:05 ID: ufV1fFkM >>269 用語辞書は知ってますよね。 set myWindows to windows properties of front of myWindows これで属性一覧を取得した中に id は入ってませんか? これらが参照できる筈の属性なんですけど。 272 名前: 255 Mail: sage 投稿日: 04/11/04 13:52:14 ID: FBqNktlS >>271 結局ふつーの方法は無いようです。 do shell script で標準出力として値をもらって、 加工する方法を某せうxーさんのBBSで教えてもらいました。 わりと瞳孔が開く思いです。まさにこのスレの主旨に近い感じかと。 set window_id to word 4 of (do shell script "echo 'tell application \"InDesign CS_J\" to get layout window 1' | /usr/bin/osascript") 273 名前: 名称未設定 Mail: age 投稿日: 04/11/05 8:23:50 ID: nNsLenx+ Script Debugger超絶便利で、ほかに勝る存在も無いようなので 買おうかと思うんですが、アンチエイリアスが切れなくて、 フォントが変えられない部分の表示が見辛くて仕方ありません。 これって何とかならんもんでしょうか。 274 名前: コピペ推奨 Mail: 投稿日: 04/11/05 8:29:09 ID: Qvz7AgN/ ▲911が自作自演の可能性は? http://news17.2ch.net/test/read.cgi/news5/1080481431/l50 275 名前: 255 Mail: sage 投稿日: 04/11/08 5:32:04 ID: C7TaNx2p すいません。たびたび失礼します。 Global floating window 化には成功したんですが、 Global floating window 化したウインドウをクリックしても、 タスクがスイッチしないようにはできないでしょうか。 親アプリとシームレスなヘルパーアプリにしたいのです。 REALbasic ではウインドウのプロパティにある Global floating window を ON にすると簡単にできるのですが、 できれば AppleScript Studio で作りたい……。 Interface Builder の NSPanel のプロパティに、 Non activating Panel (Panel Only) というそのものズバリの ものがありますが、これは AppleScript Studio では、 現状無効なようです。 Info.plist の Expert View に LSUIElement のキーを作り、 Value を 1 にするとバックグラウンドで動くアプリになりますが、 これは Face Less なアプリを作るための属性のようで、 Dock に表示されず、ウインドウも出てこなくなってしまいます。 276 名前: 名称未設定 Mail: sage 投稿日: 04/11/09 11:01:39 ID: MS4Vk1ag 新規の質問なんですが、お邪魔します。 propertyを並列的に書くことって、できるんでしょうか? リストから名前を選ぶと、名前に対応した個人データ(URLなんですが)を クリップボードに収める、というスクリプトを作って使ってるんですが、 名前とデータを別々のpropertyに収めています。 property nameList : {"あ","い","う"} property siteList : {"A","B","C"} これを {"あ" "A",ノ "い" "B",ノ "う" "C"} というように書きたいんです。 IMの辞書登録とファイルメーカーでも同じものを作ってますが、 一番使っているのがこのスクリプトなので、なるべくこれを 編集しやすくしたいのです。 277 名前: 名称未設定 Mail: sage 投稿日: 04/11/09 18:56:55 ID: gd/e3JdJ 「keystroke」(>>207)は、ショートカットにしか対応してないのですか。 キーボードを自由に打たせる、 例えばテキストエディットで文字を入力したり、削除deleteしたりする方法はありませんか。 シェアウェアではあるようですが。(Script Palette) 278 名前: 名称未設定 Mail: sage 投稿日: 04/11/09 19:17:54 ID: Iql0iAGa >>277 tell application "System Events" tell process "System Events" key code 38 using {control down, shift down} --日本語入力に keystroke "watasiha" key code 49 --スペース key code 36 --return keystroke "neko" key code 40 using control down --k key code 36 --return keystroke "desu" key code 36 --return delay 4 key code 51 --delete key code 51 --delete key code 51 --delete key code 51 --delete key code 51 --delete key code 51 --delete end tell end tell 入力はクリップボードに入れてペーストさせた方がいいと思う 279 名前: 名称未設定 Mail: sage 投稿日: 04/11/09 22:23:22 ID: iHIIM52z >>276 こんな感じ? property theLists : {{"あ", "A"}, {"い", "B"}, {"う", "c"}} property theRecords : {{name:"あ", data:"A"}, {name:"い", data:"B"}, {data:"c", name:"う"}} display dialog item 1 of (item 1 of theLists) display dialog item 2 of (item 1 of theLists) display dialog name of (item 1 of theRecords) display dialog data of (item 1 of theRecords) display dialog name of (item 3 of theRecords) display dialog data of (item 3 of theRecords) 280 名前: 名称未設定 Mail: sage 投稿日: 04/11/10 0:39:16 ID: ktiGuBya >>278 すっげ! 281 名前: 名称未設定 Mail: sage 投稿日: 04/11/10 18:34:04 ID: 6t5+IuSh >>279 ありがとうございます。 これは、それぞれの入れ子の1つめ (theRecords内のnameにある「あ,い,う」の3つのデータ全部、といったようなもの) だけをリスト化することはできますか? ↓は使用しているスクリプトです。 property nameList : {"あ", "い", "う"} property siteList : {"A", "B", "C"} set theName to (choose from list nameList) as string if theName is not "false" then try repeat with i from 1 to number of siteList if item i of nameList is theName then exit repeat end repeat end try set the clipboard to item i of siteList display dialog (the clipboard) end if 282 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 0:05:26 ID: avdf/Eq1 >>281 property theLists : {{"あ", "A"}, {"い", "B"}, {"う", "c"}} property theRecords : {{name:"あ", data:"A"}, {name:"い", data:"B"}, {data:"c", name:"う"}} set nameList to {} repeat with i from 1 to length of theLists set nameList to nameList & item 1 of item i of theLists end repeat set nameList to {} repeat with i from 1 to length of theRecords set nameList to nameList & name of item i of theRecords end repeat なんかスマートじゃない、、、 283 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 4:30:29 ID: suhFhJaV よくわからんけど、こんなんしたいのかね? property theRecords : {{name:"あ", URL:"A"}, {name:"い", URL:"B"}, {name:"う", URL:"C"}} set theNameList to {} repeat with i in theRecords set end of theNameList to name of i end repeat set theName to (choose from list theNameList) as string repeat with i in theRecords if theName = name of i then set the clipboard to URL of i end repeat display dialog (the clipboard) 284 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 5:01:16 ID: suhFhJaV 良いか悪いかはわからんが、おいらは外部にテキスト作って読ませるほうが好き。 (てきすとふぁいる) あ,A い,B (すくりぷと) tell application "Finder" set theRecords to {} set filenum to open for access file "てきすとふぁいる" try repeat set end of theRecords to read filenum using delimiter "," before return end repeat end try close access filenum end tell set theNameList to {} repeat with i in theRecords set end of theNameList to item 1 of i end repeat ・ ・ ・ 285 名前: 名称未設定 Mail: sage 投稿日: 04/11/11 13:38:54 ID: pWJTbFsz そもそも面倒なAppleScriptだけで作ってるのかな? AppleScript Studioならリストから対を取得すれば済む事だし。 286 名前: 名称未設定 Mail: sage 投稿日: 04/11/12 9:41:11 ID: BEYhNaaO >>282 >>283 >>284 ありがとうございます。なんか、できました。できたかも。 とにかく、入れ子にできるのは知らなかったです。 >>285 勤務先のが、お古のOS9機でして。 287 名前: 名称未設定 Mail: sage 投稿日: 04/11/13 1:59:29 ID: KHTuzFTh マウスクリックを AppleScript で実行することは可能なのかな? 288 名前: 名称未設定 Mail: sage 投稿日: 04/11/13 4:03:07 ID: T254oc/V >>287 OS9ではCursor OSAX,S穫di's Additionsなどが有ります。 289 名前: 名称未設定 Mail: sage 投稿日: 04/11/15 4:19:55 ID: 8u1xX1hE ScriptDebuggerのDebugモードで動いて、Debugモードを外すと動かなくなるのっ て何なのだろう。デバッグできねーじゃん!! あと、ScriptDebuggerでコンパイルできて、ScriptEditorでコンパイルできな いのがある。 あと、コメントでエラーが出ることがある? わけわかんねー!! 290 名前: 名称未設定 Mail: sage 投稿日: 04/11/20 8:12:06 ID: 3zze8c2Y スクリプトエディタの2バイト文字の処理は最悪で毎度腹が立つ。 291 名前: 名称未設定 Mail: sage 投稿日: 04/11/20 17:09:22 ID: WIEoO1BY そうか? StringとUnicode textを使えば問題ないと思うけど。 292 名前: 290 Mail: sage 投稿日: 04/11/23 11:28:09 ID: kaBH1AF/ スクリプトエディタでプログラムを書いているときに; コンパイルできない時の指摘部分選択がずれる。 日本語がうまく入力できない時がある。(後ろに「-」等を書いておくと行けるけど) >>291どうすればよいでしょ。 293 名前: 名称未設定 Mail: sage 投稿日: 04/11/23 11:43:50 ID: kaBH1AF/ 上とは別の話です; 「常にこのアプリケーションで開く」でファイルを開くと、 タイプやクリエータは変更されず、リソースフォークが追加される。 (10.3.5にて /勘違いされていることがある) それでファイルの整理として、 リソースは嫌いなので削除するとともに、if文を羅列したドロップレットで、  set file type of obj to "JPEG"  set creator type of obj to "prvw" などとやるんだけど、aif等(他の音声形式も?)には命令が効かず、何の変更もされない。 何が悪いのでしょうか? 294 名前: 名称未設定 Mail: sage 投稿日: 04/11/23 14:33:03 ID: dr/z3RuG >>292 俺の場合AppleScriptStudioでファイル文字数を数えるスクリプトなんだけど、 濁点とかを一文字と数える場合があるらしくはまった。 規則性がイマイチはっきりしなくて対処に困ったんだけれど、 あまり意味のなさそうな部分にもひたすらstringを突っ込んだらうまく数えられるようになった。 でも凄く見にくいスクリプトになっちゃったので、俺も日本語のうまい使い方を教えて欲しい。 295 名前: 名称未設定 Mail: age 投稿日: 04/11/23 18:31:01 ID: fXXVAEK6 tell文のネストについて教えてください。 tell app "InDesign CS_J"  tell app "Microsoft Excel"  end tell end tell こういうネストはダメなんざんしょうか。 tell app "InDesign CS_J"内では、メソッドやオブジェクトはInDesign のものとして扱われるのでダメだと分かるのですが、 スポット的にこの束縛から逃れる方法は無いでしょうか。 tell app "InDesign CS_J"  my useExcel() end tell on useExcel()  tell app "Microsoft Excel"  end tell end useExcel ハンドラ化してもダメでした。 296 名前: 名称未設定 Mail: sage 投稿日: 04/11/23 20:02:28 ID: eVOwJ40A >295 別にダメなことはないと思うけど、全てをinDesignのtellブロックに 押し込む必要もないでしょうかね。 on run  tell application "InDesign"   …   …  end tell  tell application "Excel"   …   …  end tell  tell application "InDesign"   …   …  end tell end run Script 全体を包むのはInDesign へのtell ではなく、run ハンドラ という意識を持って。 297 名前: 名称未設定 Mail: sage 投稿日: 04/11/23 23:13:11 ID: fXXVAEK6 >>296 ありがとうございます。いちいち閉じて交互にやればいいんですけど……。 InDesignのオブジェクトの中に再帰的に中に入っていって、ループで調べつつ 最後に出てきたものにEXCELから取ってきたデータを流し込み、また次へ行くと いう流れなもので、そういう交互の流れにはしにくいんですよね。 結局動いたのですが、動かなかったのはScriptDebuggerのDebuggingをONにして いたからのようでした。なんで動かないのか分からず、髪の毛をかきむしりな がら先走って書き込んでしまい申し訳ないです。 tell application "Microsoft Excel"  Select Row ((Row of Selection) + 1) end tell 例えば、上のようなOne Linerが、Debugging OFFの状態では動くのに、ONだと 動かないといった具合です。(Excel X for Mac) > Microsoft Excel got an error: row 5 doesn't understand the select message. ScriptDebuggerの調子が悪いんですかね。メチャクチャ便利なんですが。 動かないといえば、最初のは動くのに次のが動かないのが謎。 tell application "Microsoft Excel"  Select Row ((Row of Selection) + 1) end tell tell application "Microsoft Excel"  tell worksheet 1 of workbook 1   Select Row ((Row of Selection) + 1)  end tell end tell 298 名前: 名称未設定 Mail: sage 投稿日: 04/11/23 23:42:33 ID: eVOwJ40A >297 あ、動いたんだ。動かないのは変だなぁと思ってたから それはそれでよかった。。 ScriptDebbugerとの相性は持ってないから何とも言えないが、 一行スクリプトなら tell application "Excel" to Select Row hogehoge と、正に一行で書いてみたら通らないかな。試しに。 299 名前: 名称未設定 Mail: 投稿日: 04/11/27 21:03:37 ID: Ctmsh+4I Dialog Directorでダイアログ作るときに front above 〜ってすると、常に特定のアプリの前面に ダイアログを表示できて、便利だったんだけど AppleScript Studioで同じようなことする方法あります? 過去ログに常に最前面にする方法があったけど 特定のアプリの前面ってのがわからないんです。 300 名前: 名称未設定 Mail: sage 投稿日: 04/11/27 22:13:21 ID: kcjMJLOP ScriptDebbugerを使っている方に質問です。 ScriptDebbuger v106JはOS9にてよく使っていましたが、現在のv.308+OSXの日本語の相性はどうですか? デモ版を入れてみたところメニューやウィンウタイトルなどが文字化 けするようですが、その他の不都合などあれば教えてください。 301 名前: 255 Mail: sage 投稿日: 04/12/01 2:07:44 ID: M3RYh2dz >>298 今試してみたら、どっちでも動きます……。 いろいろ試しているうちに、どっがおかしくなっていたのかな。 何が何やら……。おかしくなったらログアウトするか再起動してみます。 302 名前: 255 Mail: sage 投稿日: 04/12/01 2:27:10 ID: M3RYh2dz >>299 僕が思い付くのは、常にfrontmostを監視する常駐スクリプトを別に走らせて おき、ターゲットアプリがactiveになったら、もしくはdeactiveになったら、 AppleScript Studioで作ったヘルパーアプリ(?)に対してtellしてやる、という ものです。例えば、以下をアプリケーション形式かつ終了しない設定で保存し 実行すると、それを行なう常駐アプリになります。動作は確認しています。 303 名前: 255 Mail: sage 投稿日: 04/12/01 2:27:53 ID: M3RYh2dz --起動時に一回だけ変数をグローバル宣言/初期値を代入 global oneTimeFlag set oneTimeFlag to true --以降起動中は間欠実行 on idle   if (((path to of frontmost application) as Unicode text) contains "Your Host Application Name") then     --ホストアプリケーションがfrontmostになったら実行     tell application "Your Applecation Name"       set floating of window 1 to true       set hides when deactivated of window 1 to false       if oneTimeFlag is true then         activate         set oneTimeFlag to false       end if     end tell   else     --frontmostがホストアプリケーションでなかったら実行     tell application "Your Application Name"       set floating of window 1 to false       set hides when deactivated of window 1 to true       set window 1 to last window       set oneTimeFlag to true     end tell   end if   return 5 end idle 304 名前: 255 Mail: sage 投稿日: 04/12/01 2:46:45 ID: M3RYh2dz 上記のスクリプトは、そのAppleScript Studioアプリ内に記述することができ ることも分かりました。つまり、on idleハンドラをAppleScript Studioアプリ 内に書けるということです。上記をただ書いただけだと不満が出ると思うので 改良は必要ですが……。 tell application "Your Applecation Name" ↓ tell window "wi" などとして、自分のウインドウオブジェクトに対してtellします。 on idleを置くことで、通常の処理とは別に、バックグラウンドで別のことをさ せられるんですね。初めて知りました。on idleを使うスクリプトは専用に作る しかないと思ってました。これはスクリプトの幅が広がるなぁ。 305 名前: 255 Mail: sage 投稿日: 04/12/01 3:09:59 ID: M3RYh2dz >>300 変数やリスト、レコードに日本語が入っていても、それが変数モニタ上で文字 化けして見られないということはないようです。 ソース内の文字列、コメントに日本語を使う際、カーソルを右に移動するとき 「1バイト文字、2バイト文字」というならびがあった場合、2バイト文字の間に 入ってしまうことぐらいですかね。 例えば「aあ」という文字のならびで、行頭から行末に向かってカーソルを移動 していくと、aの次にカーソルが移動するのは「あ」の1バイト目と2バイト目の 間です。行末から行頭に向けての移動では問題ないようです。 マウスでの指定は常に正常なので、困ったらマウスでポイントを移動するなり、 選択範囲を作ります。 あとは、特定の環境でフォントの設定が予期せずデフォルトに戻ってしまう、 ということを経験しています。 既に指摘されているように、フォント設定ができないところでは文字化けしま すね。あと文字が小さい!! 小さい上にアンチエイリアスがかかるのでMac OS X上では辛いです。 結構困るのは用語説明が文字化けしてしまうこと。本文に日本語が使われてい るのを見たことがないので使う分には困りませんが、アプリケーション名が日 本語のものについては、開いてみないことには何だか分かりません。 306 名前: 名称未設定 Mail: 投稿日: 04/12/01 11:05:24 ID: qTzsl7tX すいません、かなり今更なんですが、 tanaka's osaxの使用方法に関する資料を探しています。 特に文例みたいなものを探しています。Web/書籍問いません。tanaka's osaxに 辞書は付いていますが、辞書だけですぐ使い方が分かるほどのレベルではないのです…。 OSXが使えればPerlなんかで済ませられるんですがOSXを使えない環境で スクリプト制作をしなければならないもので。 307 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 11:19:07 ID: m/bP4cH+ >>306 何を作るのかわかりませんけど、Mac Perlではダメですか? 308 名前: 名称未設定 Mail: 投稿日: 04/12/01 11:29:56 ID: QYMIqq8Q tell me to run 309 名前: 300 Mail: sage 投稿日: 04/12/01 12:00:18 ID: kZHOTIgD >>305 ご回答ありがとうございます。 Open Recentなどの日本語ファイル名が化けるのは意外に不便ですが、実質 上スクリプト作成には問題がないようですね。 >あと文字が小さい!! 確かに!ふと気づくと梅干し食ったような顔になっているときがありますw >>306 ソフトバンクから出版されている「AppleScriptリファレンス」に幾つかの コマンドについて田中氏本人による用例、解説がのっています。 もしくは、ご存知かもしれませんが田中氏のフォーラムがありますのでそち らで聞いてみるのも良いかと思います。 http://mtlab.ecn.fpu.ac.jp/webcon.mtxt 310 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 12:22:57 ID: Js4nfbxz ありがとうございます。 AppleScriptリファレンス探してみます。フォーラムは知ってはいるのですが 私のような初心者が厨な質問をするのは失礼かと思いまして…。 Macperlは使えないのですよ。会社で使うので新たにソフトをインストールするのは 色々手続きが面倒で…。 tanaka's osaxはすでに入っている環境なので。 311 名前: 300 Mail: sage 投稿日: 04/12/01 13:35:33 ID: kZHOTIgD >>310 確認してみたら「AppleScriptリファレンス」に掲載されているコマンドは MT Parse CGI, MT Pack CGI, MT List Files, MT Parse, MT Pick Strings, MT Pick Linesの六つだけでしたorz   でも何かと役に立つリファレンス本なので持ってても損はしないかと思いま す。それにしてもそろそろOSX対応版が出ねーかなあ、出ねーだろなあ... 312 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 18:55:03 ID: PCpTKVdU たしかにOSXオンリーな辞書は欲しいかも。いまのソフトバンクパブじゃ そういうの出す体力ないかもしれないけど。 313 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 20:41:05 ID: m/bP4cH+ OSのバージョンが細かく上がったりする度に状況が変わってるというのも 出しにくい一つの原因では。 314 名前: 名称未設定 Mail: sage 投稿日: 04/12/01 21:11:38 ID: X5ZVM1fr >>310 自分が参考にしているのはこれくらいです Tanaka's osax 2.0 の解説文書 http://mtlab.ecn.fpu.ac.jp/mySamples/Tanaka_osax_2.txt.sit (2.0.1とは少し違う部分も有るようです) Tanaka's osax に関する覚書1 http://mtlab.ecn.fpu.ac.jp/webcon.mtxt$030123081933.html 315 名前: 277 Mail: sage 投稿日: 04/12/01 21:14:02 ID: SxbH7PCw >>278ありがとう。 でもテキストエディット上で動かしたところ、カタカナ化がうまく行かないです。 (ことえりだし手打ちなら行ける) 316 名前: 名称未設定 Mail: sage 投稿日: 04/12/02 2:43:20 ID: zJfSc9// >>314 さんくすです。解説文書参考になりますね。 317 名前: 名称未設定 Mail: 投稿日: 04/12/03 1:12:09 ID: BY+ylefZ >>304 ていねいな回答ありがとうございます。 個人的にはon idleハンドラってこれまでなんとなく避けてたんです。 OS 9までは常駐アプリってうっとうしい感じがあったので。 今はそんなこと気にしてないくせに、自分では気づかなかったです。 作成中のスクリプトに組み込んでみます。 318 名前: 255 Mail: sage 投稿日: 04/12/03 5:08:14 ID: ncAXmMZ+ >>317 InDesignのヘルパーアプリを作っていて、そういう動作ができるのがベストだ な、と思っていたのでついでですよ。おかげで勉強になりました。 僕も常駐アプリをうっとおしがる方です。用が無いときにも定期的にアップル イベントが飛んでいるのは気持ち悪いですし。 それより、REALbasic でウインドウのプロパティにあるGlobal floating windowをONにしたとき相当のGlobal floating windowにする方法は無いですか ねぇ。これを設定したウインドウは、クリックしてもタスクスイッチしないん ですよね。あたかも親アプリのツールパレットであるかのようになります。 319 名前: 名称未設定 Mail: sage 投稿日: 04/12/03 10:11:16 ID: wkeVnTpA REALbasicスレあるよー REALbasicってどうもいつもREALbasic本体にバグがつきまとう感じで 好きじゃなかったけど今は直ってるのかな。 320 名前: 名称未設定 Mail: sage 投稿日: 04/12/03 12:12:31 ID: fNDUM7/r REALbasicの開発状況が改善でもされなけりゃバグは出つづける。 321 名前: 名称未設定 Mail: sage 投稿日: 04/12/03 12:29:17 ID: bo7qMwm1 もうだめぽですか? OSXだとXCodeでアップルスクリプトにGUI簡単に付けられるしね。 322 名前: 名称未設定 Mail: 投稿日: 04/12/05 12:23:34 ID: 8PM9ZCD+ すいません、質問させてください。 エクセルファイルをCSVファイルに変換して保存したいのですが、 数が多く、またCSVファイルにしたものを他のアプリケーションで 別の処理を行わせたいため、AppleScriptで組もうと以下のようにしてみました。 property inFile : alias "Mac:aaa.xls" tell application "Microsoft Excel" set aaa to open workbook workbook file name ((inFile as text) as Unicode text) save workbook as aaa filename "Mac:aaa.txt" file format CSV Mac file format end tell 変換してくれません…。 どこが駄目なのでしょうか。 323 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 12:33:55 ID: vDPlr+JC >322 >どこが駄目なのでしょうか。 質問の仕方とか。情報が足りない。 で、Excelを持っていないのでExcelのAppleScript辞書が見られないのだけど、 openやsaveのその妙な構文、それで合ってるの? 324 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 13:43:19 ID: 9CQS5XqL 自身と同階層のテキストファイルを読み込ませるにはどうすればよいですか。 path からうまく item扱いにできません。 325 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 14:45:20 ID: IAHU0GHs >>324 read ((((path to me) as string) & "ファイル名") as alias) これじゃダメ? 326 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 14:49:28 ID: IAHU0GHs ミスった。。。 read ((((path to me) as string) & ":" & "ファイル名") as alias) 327 名前: 300 Mail: sage 投稿日: 04/12/05 15:04:11 ID: PVyAN4oG >>322 先ずExcelのスクリプトは全くやった事がないのでやっつけですまんが、 ちょっと辞書を見てみたところ... 3行目は単純に open inFile では駄目なの? でもって 4行目さっぱり意味が分からん。単純に save workbook 1 in (inFile as string &".csv") as CSV では駄目?ひょっとして何か他の理由があるのかなあ。 ただこのままだとファイル名が aaa.xls.csv となってかっこ悪いので拡張子をかえるサブルーチンを作った方が良いと思うがまあそれはおいといて。 でその後に close workbook 1 saving no でワークシートを閉じる。 これで取り敢えずCSV形式で保存できると思うが。 もし貴殿の意図と違ってたら御免。 328 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 15:21:00 ID: SFbSuPon >>326 それじゃあ、アプリ本体のパスも入っちゃうよ。 set thePath to path to me as string set oldDelim to AppleScript's text item delimiters set AppleScript's text item delimiters to ":" set thePath to (text items 1 thru -2 of thePath) as string set AppleScript's text item delimiters to oldDelim read ((thePath & ":" & "ファイル名") as alias) Finder使えばもっと簡単だけど 329 名前: 名称未設定 Mail: sage 投稿日: 04/12/05 16:09:16 ID: LhlHIRwI うまく読み込めました! >>328 read ((thePath & ":" & "ファイル名") as alias) これで行けました(意味が分からないけど) >set thePath to (text items 1 thru -2 of thePath) as string → set thePath to (text items 1 thru -3 of thePath) as string path末にコロンが潜んでいる?ようです。 delimiter処理も知りませんでしたが これ単体としては文字扱いのままでも支障無しでした。 330 名前: 名称未設定 Mail: 投稿日: 04/12/05 20:17:09 ID: 8PM9ZCD+ >>323,>>327 すいません、環境をきちんと書いていませんでした。 使用OSは10.3.4、Excelのバージョンは2004です。 結論から言うと>>327さんの記述で保存することが出来ました。 今後の参考までに質問までの経緯を書いておきます。 >>327さんで書かれているopen,saveコマンドは、Standard Suiteのものです。 ただ、openは問題なく出来たのですが、他のアプリケーションと同じように saveコマンドを使おうと、save document 1 や save window 1 と記述してみたのですが、エラーが出てしまいました。 (save のみなら上書き保存として可) (エラー内容:window 1はsaveコマンドを認識できませんでした、となる。) そこで他にファイルを保存するコマンドがないかと探すと、Microsoft Excel Suiteに open workbookとsave workbook asというコマンドがありました。 二つともExcel独自のコマンドなのでしょう。 辞書が見られない状態ならば>>323の言う通り、妙な構文と感じると思います。 つづく 331 名前: 322 Mail: 投稿日: 04/12/05 20:18:00 ID: 8PM9ZCD+ 名前入れ忘れた。(汗) ではつづき 辞書のない人のためにコマンドの説明をします。 カッコのないところは必ず記述、[]は任意に記述、()はユーザが記述するところです。 open workbook   workbook file name (Unicode text) 以下省略 Result : workbook Unicode textのところは要はファイルのパスです。 Unicode textにしたいがために>>322ではas Unicode textにしています。 (as textは要らないですね) resultでworkbookを返してくれるので、saveの時に確実に 開いたものを指定するためにopenではなくopen workbookを使用しました。 save workbook as (workbook)   [filename (Unicode text)]   [file format (add in file format/CSV file format/CSV Mac file format/...] 以下省略 >>322ではUnicode textでパスを記述して、file formatでファイルの形式を指定しています。 ...で省略していますが、いろんな形式に保存できます。これはsaveでも出来ます。 ただsave workbook asは(open workbookでもそうですが)エクセルの機能をフルに使えます。 省略していますが、パスワードを指定したり、読み取り専用にしたりするオプションを つければ、openやsaveだけでは出来ない細かな指定が出来ます。 今回はファイルの形式を変えるだけなので、saveで良かったですね。 つづく 332 名前: 322 Mail: 投稿日: 04/12/05 20:18:52 ID: 8PM9ZCD+ つづき 質問するに至った理由は、 (1) Excelは開いたファイルをwindowやdocumentではなく、  workbookとして保持する事に気付かなかった。 (2) save workbook asがファイルの形式の指定通りに保存してくれなかった。 の2点です。 (1)は完全に失念しておりました。 (2)について、文法的にはコンパイルを通して実行も出来ているし、ファイルの保存も出来ている。 ただしCSV形式にはならかった、と。 何が悪かったかは>>327さんが今回の目的を達成するための、別の方法を利用しての答えを 言ってくださったので、結論は分からずじまいです。 ApplescriptとExcelの情報が日本語では皆無に等しいため、 まとめさせていただきました。 >>322さん、>>327さん、回答ありがとうございました。 333 名前: 322 Mail: 投稿日: 04/12/05 20:20:28 ID: 8PM9ZCD+ おまけ ここは発表のスレなので、上記を作るまでに作ったサブルーチンを一つ。 最初はGUI Scriptingを利用して作成しようとしてました。 GUI Scriptingを利用して、メニューの選択を行うサブルーチンです。 当然ユニバーサルアクセスをONにしないと使えません。Panther以上です。 メニュー番号での指定は出来ませんので、 言語環境が切り替わると、突然使えなくなります。(汗) pickAppには、アプリケーションの名称を指定(例;"Script Editor") pickListには、メニューの項目名のテキストをリスト形式で指定 (例:{"スクリプトエディタ","スクリプトエディタについて"}) systemPickMenu("Script Editor", {"スクリプトエディタ","スクリプトエディタについて"}) on systemPickMenu(pickApp, pickList) tell application pickApp to activate tell application "System Events" set pickItem to menu bar 1 of application process pickApp repeat with i from 1 to (length of pickList) if i = 1 then set pickItem to menu bar item (item i of pickList) of pickItem else set pickItem to menu item (item i of pickList) of menu (item (i - 1) of pickList) of pickItem end if end repeat pick pickItem end tell end systemPickMenu 334 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 19:33:09 ID: qM8QEzat スクリプトスレここだけになってるんで、 質問していいでしょうか? ひさしぶりにスクリプト触ったら、基本から忘れてるし、 サブルーチンもライブラリ化してなかったから一々作らないといけないし、 OS Xの仕様の罠にかかって疲れました。 環境はOS X 10.2.8 AppleScript 1.9 スクリプトエディタ 1.9 作ろうとしたのは単に『Finderのあるウインドウの中のファイルのリストをテキストに書き出す』というもの。 1行にファイル名、作成日、修正日、サイズ、コメントを入れて テキストはAppleScript内部で作るのではなくてデータをJedit4に渡すようにしました。 ところがFinderのファイル名か何かがclass『utxt』になっているらしく、これが『as text』などを使っても変わらないらしくて Jeditに渡すところでエラーになります。 どうにかならんでしょうか・・。 335 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 19:51:27 ID: 4g+BzK2W as string は? 336 名前: 255 Mail: sage 投稿日: 04/12/06 20:13:53 ID: Fmmo6R4v >>334 as Unicode textですかね。 OS Xではtextと使い分けないといけないようです。 >>303でも使ってますが、文字列照合でもハマるので覚えて覚えておいた方がいいですよ。 つまり、textとUnicode textを比較しても一致しません。 337 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 20:39:34 ID: qM8QEzat いえ、えっと、utxtから普通のテキストにしないといけないと思うので、 as Unicode textではないように思います。 やはりダメでした。 338 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 21:03:07 ID: qM8QEzat すいません。問題のスクリプトをここにペーストして、 検証・添削してもらっていいでしょうか? 339 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 21:56:11 ID: +0o5LVL7 Unicode変換にはTEC.osax、比較にはCompareUnicode.osaxてのが有ったと思う。 340 名前: 334,338 貼っちゃいます Mail: sage 変数名が変なのは見逃して 投稿日: 04/12/06 21:57:23 ID: qM8QEzat tell application "Jedit4" activate set aDoc to make new document end tell tell application "Finder" activate set windowName to name of window 1 set lastNumber to number of items of window 1 repeat with itemNumber from 1 to lastNumber set aFile to item itemNumber of window 1 set aRecord to "" as text set aRecord to name of aFile & tab & size of aFile & tab & my date2Str(creation date of aFile) & tab & my date2Str(modification date of aFile) & tab & comment of aFile & return tell application "Jedit4" activate set aRecord to aRecord as text --display dialog class of aRecord insert aRecord at end of aDoc end tell end repeat end tell on date2Str(dateTypeData) set monthList to {January, February, March, April, May, June, July, August, September, October, November, December} set theMonth to (month of dateTypeData) repeat with aNum from 1 to 12 if item aNum of monthList is theMonth then exit repeat end if end repeat return aNum as string end date2Str 341 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 22:32:08 ID: mRHUEHgG >>340 ちゃんと動くみたいだよ。 342 名前: 340 Mail: sage 投稿日: 04/12/06 22:49:56 ID: qM8QEzat >>341 Σ(・_・) マジですか。 よろしければ環境等教えていただけませんでしょうか。 私の環境(10.2.8 AppleScript 1.9?)では > insert aRecord at end of aDoc のところで、 『Jedit4でエラーが起きました:一部のデータを目的のデータ型に変換できません』 となります。 スクリプトエディタ上からの実行です。 343 名前: 名称未設定 Mail: sage 投稿日: 04/12/06 23:05:48 ID: mRHUEHgG >>342 マジっす OSX10.3.6 + AppleScript1.9.3 + Jedit 4.2.3 スクリプトエディタ2.0上で実行 finkのフォルダをスキャンさせてJeditの書き込まれた結果をそのままコピペ bin8.542373E+6911 etc3500.0911 faq.ja.html1.32403E+599 fink1.8015807E+7911 include2.73065E+5911 lib1.189513E+7911 sbin1.865264E+6911 share1.0915443E+7911 src0.099 var7.957421E+6911 他のフォルダも試しましたが日本語化けもないですよ。 344 名前: 340 Mail: sage 投稿日: 04/12/06 23:08:42 ID: qM8QEzat >>343 検証&報告ありがとうございました。(_ _) 盲点でした・・・。 Jedit4を4.2.0r0から4.2.3r0にアップデートしたところ 動くようになりました。 何だったんだぁ・・。 疲れた。 orz さてこれからサブルーチンとかちゃんと仕上げないと。 そう言えばAppleScript関係のMLも見なくなってるから、 10.3になって変わった事とか調べてないなあ。 改良とかあったんだろうか。 345 名前: 255 Mail: sage 投稿日: 04/12/06 23:20:52 ID: 9mNIMMGC あら、解決しちゃいましたか。自分のところで書いてみたものです。 repeat with hoge in list形式にするには以下のようにすればいいみたいです。 tell application "Finder" if not (exists window 1) then return end if end tell try tell application "Jedit4" set tempDoc to make new document end tell on error return end try tell application "Finder" set myFileName to name of window 1 repeat with i in (every item of window 1 & {}) set tempText to (name of i & tab & creation date of i & modification date of i & tab & size of i & tab & comment of i & return) tell application "Jedit4" insert tempText at tempDoc end tell end repeat end tell tell application "Jedit4" set name of tempDoc to "Folder_" & myFileName & "_File_List.txt" end tell 346 名前: 340 Mail: sage 投稿日: 04/12/06 23:34:38 ID: qM8QEzat >>345 おお!すっきりきれいなコードですね。エラー処理もしてあるし、 変数の名前もカッコ(・∀・)イイ! > every item of window 1 & {} の 『& {}』がミソなのでしょうか? これは一体どういう事なのでしょうか? けっこう知られてるTipsなのでしょうか。 347 名前: 255 Mail: sage 投稿日: 04/12/06 23:56:27 ID: 9mNIMMGC set theList to 2 & {}で、{2}というリストになります。Finderのevery item of window 1のresultがリストじゃないみたいなので、リストにしてます。 自分は最近になってXからAppleScriptをいじりはじめたのでいつからかは分か らないですが、Mac OS Xから、 ((month of (current date)) as number) こんな感じで月を数値化できるようになったそうです。 10.3から変わった点というのは把握してないですが、Mac OS Xから、というこ とならまだいろいろありますよね。 348 名前: 340 Mail: sage 投稿日: 04/12/07 0:05:19 ID: L5iLS6TS >>347 ぐっはー。 中断してる期間も含めてだけどキャリア10年近くなろうとしてるのに、 ぜんぜんわからんかった。 orz 色々ありがとうです!(・∀・) その情報の源はどこですか?やっぱりMLとか? 349 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 0:39:42 ID: bU+L+ncZ (month of (current date)) as numberは知らなかった。 &で似たようなやつだと set x to "a" & 1 --> "a1" set x to 1 & "a" -- > {1, "a"} set x to "b" & {1, "a"} --> "b1a" set x to {1, "a"} & "b" --> {1, "a", "b"} などなど &で結合すると第1オペランドのクラスに変換され、第1オペランドがlistやstring でもなければかってにlistとして結合します。 AppleScriptはこういう事を勝手にやってくれ、それはそれで便利だけど時としてそ れでどつぼにハマります、今も昔もorz 350 名前: 255 Mail: sage 投稿日: 04/12/07 1:46:56 ID: kjM0M1Mw >>348 monthのas numberについては、APPLESCRIPT 1.9.2かららしいですね。 http://www.apple.com/applescript/releasenotes/192OSX.html 確か、ここを読んで知った気がします。 http://www.asahi-net.or.jp/~va5n-okmt/factory/applescript/as_zaregoto/ "string" & {} / number & {}という表現の初見はどこだったか忘れてしまいま した。Web上だったと思います。 自分の情報源は、大抵の場合においてGoogleですよ。 情報が古いページが多いですが、AppleScript Studioについて言及しているペー ジは新しい情報を置いていることが多いです。 MLはおっくうなので入っていません。 本は最近AmazonでAppleScriptと名の付くものを買いまくってますが、 今のところ頻用するのは「AppleScriptリファレンス」です。 コレクションに加えるべく「AppleScript言語ガイドム英語表現形式」を買おう と思っているのですが、「AppleScriptリファレンス」がある以上、 恐らくは不要のものである上、相場が高くて悩み中。 351 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 2:22:16 ID: L5iLS6TS (month of (current date)) as number は10.2.8じゃダメみたいですた。 352 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 2:23:34 ID: L5iLS6TS ありゃ。お返事来てたのに気付かずズレた書き込みしてしまった。 orz 353 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 2:34:48 ID: EnGxPlt3 >>350 > 「AppleScript言語ガイド 英語表現形式」 昔ダウソしたpdfもあるけど、これって、Xcodeとかインスコすると見られる奴じゃ なかったっけ? 354 名前: 255 Mail: sage 投稿日: 04/12/07 3:42:57 ID: kjM0M1Mw AppleScriptKit.asdictionaryのことですか? これはAppleScript Studioのものですね。 http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/AppleScriptLanguageGuide.pdf 内容的には上記のものでしょうが、「AppleScript言語ガイド 英語表現形式」 は日本のアップルから出ていた書籍で、日本語で書かれているはずです。 日本語版のpdfもあったんですかね? うpキボンヌ。 355 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 3:45:06 ID: L5iLS6TS 新しいのって言ったら、「ぜんまいびゅんびゅん」はOS Xが出た後に改訂版が出なかったですっけ? ところで、Jeditの用語のsuspendってどんな時に使うんだろう。 って試してみればいいんだけど・・。 ハイパーカードで画面の変化を隠して動作を速くするようなのがあった気がするけど、そういうのとは違うのかな。 356 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 11:26:14 ID: +/FTYqH9 スクリプトマニュアル読め。 357 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 22:23:10 ID: Tg7BQRJ2 as number ちょうど作ってる部分だから助かる。 weekday は無理か。 358 名前: 名称未設定 Mail: 投稿日: 04/12/07 23:33:18 ID: S20VFWzT Macintosh HD9.2/フォルダA   このフォルダAの中にある全てのファイル(pdf)をプリントアウトする、 というようなスクリプトってありませんか? 359 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 23:39:40 ID: NRq0bMya ある 360 名前: 名称未設定 Mail: sage 投稿日: 04/12/07 23:44:45 ID: eCYeY7Cq 月の as number って逆はできないのかなぁ? 361 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 0:01:30 ID: XF6w7z/w ちょっとちがうけど weekday of (current date) as text ↓ "Wednesday" 362 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 0:19:23 ID: Q3YmnXXu >>360 無精せずにハンドラ定義しませう >>361 これコンパネの設定に関係なく英語の長い曜日名みたいですね。 363 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 0:39:33 ID: y96g/90f >>359 おしえて 364 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 1:06:12 ID: D2tEr0a2 >363 まずサンプルはどの程度探したのかと問いたい。apple.comで検索したキーワードとかもあわせて聞きたい。 365 名前: 360 Mail: sage 投稿日: 04/12/08 1:25:16 ID: ydK11mTi >>362 なんかくやしいんだよねw date ({2004, " ", 12, " ", 31} as string) で数字から直に date を作れるのに 書式の影響で汎用では使えない 366 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 1:54:49 ID: y96g/90f >>364 プリントアウト フォルダ 全て ファイル スクリプト こんな感じのキーワードでググッたけども、めぼしいものにあたらない。 apple.comでサーチですか。 それはやってなかった。 さて script print out これでサーチしてみましたが、やはりみつからない。 367 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 2:03:13 ID: JHLewExG >366 プリント方法より「AppleScript 基礎」とかで検索して AppleScriptの基本を学んだ方が早いんじゃない?>>1のリンクとか。 あと、「アウト」は要らないよ。プリント。print。 print 命令はrequired suite…全アプリが必ずサポートしているから、 焦点は「どうやって特定のフォルダにあるすべてのpdfファイルを参照するか?」 ということになるでしょう。 repeat ループでフォルダの全ファイルを見て、 name属性やcreator、file type属性をチェックしてpdfだったら print すればいいんじゃないかな。 368 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 2:09:27 ID: Q3YmnXXu 印刷と言えば、MLや掲示板で頻出の質問が、セレクターをどうするか。 369 名前: 名称未設定 Mail: sage 投稿日: 04/12/08 21:23:11 ID: rHd1qJSG http://www.apple.com/software/ http://www.apple.com/jp/software/ 米アップルにはPantherの次にAppleScriptがあるのに日アップルにはAppleScriptがないショボーン。 Downloadのところとかちょっとバージョンが違ってるようだけど、どうなんだろ。。。 370 名前: 名称未設定 Mail: sage 投稿日: 04/12/09 8:49:29 ID: umW4eyDo >>366 フォルダ開く セレクトオールPDF セレクションから名前を貰う プリントできるアプリにわたして印刷 ここまで言えばあとはできるっしょ 371 名前: 名称未設定 Mail: sage 投稿日: 04/12/11 11:08:46 ID: kfmjvZvI >>365 -- AS date -> ISO8601 format ((current date) as <>) as string -- ISO8601 format -> AS date "1997-07-16T19:20:00" as <> as date 372 名前: 名称未設定 Mail: sage 投稿日: 04/12/12 19:16:55 ID: jaxA0+RB 驚いたな。かなり融通が利くじゃないですか・・・ 373 名前: 名称未設定 Mail: sage 投稿日: 04/12/12 20:16:32 ID: zh5VyTvy ISO8601 formatなんてのがあるんだ。 色んなモノで使われてるんでしょうか? 日付の後の『T』って何?タイム?時間と日付の区切りかな。 374 名前: 360 Mail: sage 投稿日: 04/12/12 22:44:25 ID: JTeQS373 >>371 動かないけど?なんか必要なの? 375 名前: 名称未設定 Mail: sage 投稿日: 04/12/12 22:57:04 ID: g70v/5cA >>374 <<と>>を半角のに置き換えてる? 化けると思うけど "1999-07-16T19:20:00" as ?class isot? as date 376 名前: 360 Mail: sage 投稿日: 04/12/12 23:08:59 ID: JTeQS373 >>375 あんがとうごいた 377 名前: 360 Mail: sage 投稿日: 04/12/13 0:24:05 ID: 16exasSr OS9.1では動かなかったけど、 XML-RFC and SOAP Suport 絡みなんかなあ? だとすると10.1あたりから使えてたのかも。 TZの付かない時間表記はISO的には 問題ありそうな気もするけど、 こっちの目的には使えそう。さんくす 378 名前: 371 Mail: sage 投稿日: 04/12/13 7:54:08 ID: Kr19iChX >>373 http://www.w3.org/TR/NOTE-datetime http://www.ietf.org/rfc/rfc3339.txt >>377 TZの扱いはバグってます。Appleにバグレポートよろ。 AS dateの内部形式はUTCじゃなくてローカルだから、TZ無 しをローカル扱いするのは悪いと思えないが、TZを扱えな くて良いとは言えない。 379 名前: 名称未設定 Mail: sage 投稿日: 04/12/20 20:08:41 ID: 5SU4olvI OSXにおいて、ユーザーのホームディレクトリのサイズを知りたい場合、 tell app "System Events" to get size of folder "/Users/アテクシ" すればいいわけですが、結果は"1.2345E+5"となります。 as integerすれば、"123450"としてえられますが、 より大きな数字の場合は前述の書式になってしまします(´・ω・`)。 お手軽に整数を得られませんか? ShellScriptの中で使う予定というか、AppleScriptと混在するかもなので、 Unixなコマンドでも可です。 クリスマスイブが休日なのに一人で過ごす漏れに間の手を!! 380 名前: 名称未設定 Mail: sage 投稿日: 04/12/20 20:28:32 ID: rW2XcJnZ du -ks $HOME とか? du -hs $HOME とか? 381 名前: 名称未設定 Mail: sage 投稿日: 04/12/20 20:45:56 ID: 5SU4olvI アリガ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・*トウサン 382 名前: 名称未設定 Mail: sage 投稿日: 04/12/21 1:35:26 ID: +UXZcmyK 純粋に文字列表記で使うだけなら良いけど、ASのintegerは 2^29が最大だからディスク容量の計算では簡単にオーバー フローするよ。 "536870912" as integer -- error 383 名前: 名称未設定 Mail: sage 投稿日: 04/12/21 5:55:32 ID: z0kiRC8x >>382 対策ありますか? 384 名前: 名称未設定 Mail: sage 投稿日: 04/12/21 9:45:03 ID: AZsSIEDs integerつかわなきゃいいんじゃ? 385 名前: 名称未設定 Mail: sage 投稿日: 04/12/21 18:42:51 ID: /y9RBT52 doubleの文字化フォーマットを自由に指定できないのが問題の本質だから、 変な方向で解決を図ってはダメ。Cならローカライズ数値表記を得るAPIを呼 ぶだけだが、ASだと簡単なフォーマッタを自分で書けばよろしいかと。 on r2s(x) if (x < 1000) then return x as integer as string return r2s(x div 1000) & "," & characters -3 thru -1 of ("00" & (x mod 1000 as integer)) end r2s on sizeof(x) tell application "System Events" return size of x end tell end sizeof --r2s(9.87654321E+6) r2s(sizeof(path to home folder)) 386 名前: 名称未設定 Mail: sage 投稿日: 04/12/22 2:09:43 ID: rd5/iTIJ う・・。じゃがやと動かへん・・。 どこをどう変えたら・・。 ああ自分のアホさがうらめしい。 387 名前: 名称未設定 Mail: sage 投稿日: 04/12/22 7:23:44 ID: tLNkJgA1 on r2s(x) if (x < 1000) then return (round x rounding down) as string return r2s(x div 1000) & "," & characters -3 thru -1 of ("00" & (round (x mod 1000) rounding down)) end r2s as integerの動作は怪しいね。これだとOS9でも動くので大丈夫では。 388 名前: 386 Mail: sage 投稿日: 04/12/22 12:42:45 ID: rd5/iTIJ 10.2.8で>>385を Script Editor上で実行した時のエラーですが、 まず構文確認の段階で 『path to home folder』が通りません。 そこでその部分に 『alias "×○△:Users:××:"』と直接入れると構文は通ります。 実行すると on sizeof(x)の3行目の『size』の部分がハイライトされて 『System Eventsでエラーが起きました:NSCannotCreateScriptCommandError』と実行エラーになります。 System Eventsの用語説明を見たところ、 size of 〜 はできないみたいな気がします。 で、System EventsをFinderに変えると、、 あれ?できた。さっきできなかった気がしたのにな。 すいません。 これから本題の数字のフォーマットについて考えさせていただきます。 ありがとうございます。 389 名前: 名称未設定 Mail: sage 投稿日: 04/12/22 12:58:42 ID: rd5/iTIJ なるほど。size of xの答えなんかはclass realなんですね。 class realだとプラマイ1.79769E+308までOK・・とAppleScriptリファレンスに書いてあったんですが、 さすがに大きすぎるのか、 r2s(1.79769E+308)はエラーになりますた。 390 名前: 名称未設定 Mail: sage 投稿日: 04/12/23 17:13:34 ID: 8qBdA2cc 質問なのですが、AppleScriptで、キー入力ってできないんでしょうか? ぐぐると補助ソフトのようなものばかり出てくるんですが。 391 名前: 名称未設定 Mail: sage 投稿日: 04/12/23 17:25:43 ID: qh6ctVF6 >>390 >278とか 392 名前: 名称未設定 Mail: sage 投稿日: 04/12/24 2:36:00 ID: Hn9wSqaq TigerはAppleScript関係もバグ無しで日本語も快適操作になってるといいなー。 Automatorの影響がどっちに転ぶか・・。 もしAutomatorがAppleScriptジェネレーターなら、AppleScriptをきちんと仕上げない事には話にならないわけで。 AppleScriptを介在しないとしたら、AppleScriptはなおざりにされる可能性も・・。 Terminalもいじらなくてもヨユーで日本語使えるくらいであってほしい。 393 名前: 名称未設定 Mail: sage 投稿日: 04/12/27 4:45:38 ID: boXmZcO+ すいません。純粋なアップルスクリプトではないのですが、 JavaとシェルスクリプトとAppleScriptを組み合わせて メールをチェックしてメールがあったら任意の動作を行わせるというものを作りました。 ソースと手順のテキストをアップしているので、 よかったら見てやってくださいませ。m(_ _)m ttp://mac.oheya.jp/up/src/macroom0320.gz 圧縮はdmg.gzです。 394 名前: 名称未設定 Mail: sage 投稿日: 04/12/27 20:38:18 ID: yKQGCZ66 tell application "Safari" set theURL to (URL of document of window 1) as text set theChar to character 1 of theURL display dialog theChar & " : " & (theChar is "h") end tell 上のスクリプトをアプリケーションとして保存し、 Safariで適当にURLが"http"で始まるページを開いた状態で、 ダブルクリックで実行すると(theChar is "h")がfalseになりますね。 スクリプトエディタのウインドウの実行ボタンで実行すると 正しくtrueになるのでスクリプト自体のバグではなさそうです。 10.3.7でScriptEditorは2.0。ん〜、なんだかなぁ〜。。 395 名前: 名称未設定 Mail: sage 投稿日: 04/12/27 21:28:14 ID: 8s88DMDc >>394 何だかわからんけど、2行目のas text外したら逝けたよ。 396 名前: 255 Mail: sage 投稿日: 04/12/27 21:31:43 ID: 4MllGtox >>394 Unicode text 397 名前: 名称未設定 Mail: 投稿日: 04/12/27 23:18:08 ID: w3uGIU7v 自分ではさっぱり書けないのですが、こんなのを ツールバーに登録したいのですが。 ・finderのウインド上で選択されてるフォルダを「新しいウインド」で表示するスクリプト ・選択されてる対象に関係なく、クリックすると「同じウインドのままで一つ上の階層に移動する」ボタンとして使えるスクリプト おながいしまつ。 398 名前: 394 Mail: sage 投稿日: 04/12/27 23:32:53 ID: r11Dma3w >>395 おおthx. URLがUnicode Textで返って来るのを知っていたから、 後で問題が起きないよう最初からtextに変換しておいたのだが、 それが裏目に出るとは、、、orz ちなみに作っていたのはこんなスクリプト。 tell application "Safari" set theURL to (URL of document of window 1) set thePosition to count of character of theURL set newURL to "" set theFlag to false repeat until thePosition = 0 set theChar to character thePosition of theURL if theChar is "/" then set newURL to "/" & newURL set theFlag to true exit repeat 399 名前: つづき Mail: sage 投稿日: 04/12/27 23:33:18 ID: r11Dma3w else if theChar is in {"0", "1", "2", "3", "4", "5", "6", "7", "8"} then set newURL to (((theChar as number) + 1) as string) & newURL set theFlag to true exit repeat else if theChar is equal to "9" then set newURL to "0" & newURL set theFlag to true else if theFlag then set newURL to theChar & "1" & newURL exit repeat else set newURL to theChar & newURL end if set thePosition to thePosition - 1 end repeat if theFlag then set newURL to (characters 1 thru (thePosition - 1) of theURL as string) & newURL set URL of document of window 1 to newURL end if end tell 400 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 0:48:41 ID: 8sRTLgZB 確かに変だよね "h" はstring型で theChar もstring型に変換してあるはずなのに どうして? 401 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 6:12:12 ID: RmynAZ9E 実行環境として便利そうなのでコピペ http://pc5.2ch.net/test/read.cgi/mac/1100447652/320 AppleScriptのスクリプトメニューをONにして、 ユーザ<ライブラリ<Scripts(無かったら作って)に Applicationsフォルダを作りその中にFinderやAppleWorks等のアプリの名前のフォルダを作る。 アプリ名のフォルダの中にそのアプリで使うAppleScriptを入れておくと、 そのアプリがアクティブの時にアプリ名のフォルダに入れてあるAppleScriptだけが表示される。 AppleScriptを多用するする人には良いと思う。 402 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 6:55:48 ID: pH+pK8Sv >>401 そんなことはこのスレにいる人はみんな知ってると思うけど 403 名前: 名称未設定 Mail: sage 投稿日: 04/12/28 13:50:32 ID: mKqqdX27 >>401 知らなかった。サンクス。 OS9の頃は何かのユーティリティー使ってそういう事してた気がするけど。 つかスクリプトメニュー表示させてるけど全然使ってないや・・・。 (-_-; 404 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 2:46:04 ID: 4isdLE/G さっきは動いたスクリプトが動かなくなるってのが結構あるのがイヤ。 エラー報告が「タイプ1の・・・」とかクソの役にも立たないのもイヤ。 405 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 3:20:07 ID: izRQESSe エラーコード表みたいなものってないのか 406 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 3:31:15 ID: ssrmI0xS エラーコードの意味なんて知ってもまず役に立たんだろ。 407 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 6:56:04 ID: KYPwX0xa >>404 > さっきは動いたスクリプトが動かなくなるってのが結構ある マジで? 単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で結果が違うとかじゃなく? >>405 ちょっと古くなっちゃったけど AppleScriptリファレンスに載ってる。 >>406 try構文で囲んでエラーコードを拾って分岐処理ってのも一応よくある手段。 408 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 13:09:48 ID: 4tQBrVPE <=が実質使えないのがイヤ。 is less than or equal toって毎回忘れるし 409 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 13:37:00 ID: KYPwX0xa > 実質使えない そうだっけ?そんなバグあった? 算術記号は日本語フォントじゃなくて英語のフォントにしといた方がよかった気がする。 410 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 19:33:17 ID: 4isdLE/G >>407 >単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で それ。それが言いたかった。言葉足らずでごめんなさい。 アプリ形式だと実際上バグ追っかけられないのがツラい。 せいぜいダイアログで進行状況表示するくらいか。 >>408 is not greater than ではどうか。 411 名前: 名称未設定 Mail: sage 投稿日: 04/12/29 23:33:44 ID: +lIPQKVh >>409 新規テキストと演算子が欧文フォントになっていてもエラーが起きない? 412 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 5:46:02 ID: H4At5RJU >>411 <=がコンパイル後に≦の半角のやつになるんだけど 和文フォントにこれは含まれてないので 半角の『イ』になっちゃうんだよね? だからスクリプトエディタの編集メニューの 『AppleScriptフォーマット』で 上から2番目の『演算子など』を欧文フォントにしておくと、 コンパイル後にちゃんと≦が出るよね。 (スクリプトエディタのバージョンによってメニューの名前は違うかも) この事を言ってるんじゃなかったらごめんね。 413 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 5:52:06 ID: H4At5RJU >>410 そですねー。。 beepとかダイアログが頼り。 一ヶ所クリアしたらコメントアウトして、また次。 たいへんですよね。 なまじ『イベントログ』がわかりやすいだけにアプリ形式の時は困る。 idleハンドラを使う時なんかはアプリにしてみないとわからんですからね。 普通のデバッガに慣れてる人はAppleScriptStudioを使うと多少はマシなのかな? 漏れはAppleScriptから入ったんで、HyperCardのデバッガの使い方もよくわかんなくて、上記のASのアプリの時のような方法で確認したりしてた。w 414 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 12:44:29 ID: 1VBbbdny Studioは純正AppleScriptからの変更点がいくつかあって変なところでよくハマる。 デバッガが使えるのはいいんだけど、エラー報告は基本的にデタラメのまま。 GUI部品の参照がダラダラと長くなるのもウザイ。 なので漏れはStudioは嫌いです。 415 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 13:57:56 ID: H4At5RJU あーたしかにStudio使うとできない事とかあるみたいですね。 あのできたアプリがパッケージ形式?になってるのがややこしい。 自分自身へのパスとか出すと変だったような気が。 416 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 14:50:41 ID: iIvcEU2E >>400 文字列比較はUnicode textじゃないと意味不明にうまくいかないことがあるで す。判定がおかしいと思ったらUnicode text、これです。 >>410 Script DebuggerでDebuggingをONにした状態で保存したアプレットは、実行時 にScript Debuggerでデバッグできますよ。 Script Debuggerにフックされた状態で起動して、一時停止になります。 その後はステップ実行したりと思いのまま。すべての変数とかも丸見え。 Affrusを買おうかどうしようか迷ってるところです。 あれがあるとScript Debugger同様経過と結果が丸見えなので、Perlの上達も早 い気がします。 417 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 15:47:02 ID: H4At5RJU >>416 やっぱり有償の開発環境はそれ相応の機能があるって事ですね。 あれ?前はフォーサイトが日本語版売ってたような・・。 今フォーサイトのサイトに行ったら無いみたいですね。扱いやめちゃったのか・・。 AppleScriptを本格的に使ってるような人は英語に困らない人が多いって事かな。 (漏れは困ります) そういえばフランスの方のフリーウェアの開発環境もありましたよね? Smileだっけか。 色々機能ありそうだけど使い方よくわかんなくて 結局スクリプトエディタ使ってました。w 何か今見に行ったらお金払うと3Dグラフとか書ける機能が付くみたい?w Affrusというのは知りませんでした。 ttp://www.latenightsw.com/affrus/screenshot.html なんかすごそうですね。 関心空間にもページができてるみたいですね。 うーん。。 Perlというと文字列変換やCGIしか思い浮かばない私^^; 418 名前: Late Night Software社員 Mail: sage 投稿日: 04/12/30 21:02:48 ID: iIvcEU2E フォーサイトは、とうの昔に扱いをやめたようですね。 自分も英語はあんまり分かりませんが、特に英語力は必要ないような。 一度デモを試してみては? 起動して、既存のスクリプトをコピペして、 Command + Shift + Dを押して(Enable Debugging)、Stepボタンを数回を押すだ け。結果を見るのに5分かかりません。しかし、これだけで価値が分かるはずです。 余裕があればFile >> Open Dictionary >> (適当なアプリ、例えばFinder) >> Explorerタブを開いてみてください。これは、開いたDictionaryを持つアプリ の、その時点のすべてのオブジェクトのすべてのプロパティを一覧階層表示し てくれるものです。いちいちテストスクリプトを書いて個々のオブジェクトに tellしてget propertiesで調査していたプロパティを、地引き網のごとく一獲 してくれるわけです。これがあれば初対面のアプリでも乗りこなせますよ。 総じてメチャクチャ見通しがよくなるので、Script Debuggerを使わずに AppleScript を書いてきた期間が長ければ長いほど有難味が分かるはず。 Affrusは、話は簡単でScript DebuggerのPerl版です。 419 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 21:12:59 ID: 1VBbbdny いかん・・・宣伝とはわかっていても・・・ゴクリ 420 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 21:34:45 ID: H4At5RJU 日本語化されてて日本語のドキュメントが付いてきて 日本の住所から日本円で銀行振り込みで簡単に支払いできて納得できる値段なら買うけどね。 まあとりあえず買うのはSmileを試してからでも遅くないと思うよ。 421 名前: 名称未設定 Mail: sage 投稿日: 04/12/30 22:14:06 ID: H4At5RJU すいません。質問なんですが、 今Standard Additionsの辞書見ててふと思ったんですが、 Class URLとかClass Internet addressとかClass web pageって、どんな時にどう出てくるもんなんですかね? 422 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 2:16:03 ID: Qcxym1t3 スクリプトメニューがショートカットキー登録できればなあ・・・ 423 名前: Script Software社員 Mail: sage 投稿日: 04/12/31 2:54:09 ID: KGn9I0Ff >>422 iKeyを使ってみては? http://www.scriptsoftware.com/ikey/ Finderがfrontmostの場合のCommand+D→hogehoge.as TextEditがfrontmostの場合のCommand+D→foobar.as こんなことができます。スクリプトファイルを別に用意しなくとも、iKeyの ショートカット設定の中にスクリプトを書いておくこともできます。 Quickeysを知っているなら、まさにあのまんまの環境です。 2.0からはアプリごとにコンテクストメニューを変えられるようになってます。 もちろんコンテクストメニューからAppleScriptを起動することもできます。 コンテクストメニューをキーボードショートカットで表示することもできます。 424 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 4:48:32 ID: Qcxym1t3 こ、これは・・・まさに理想どおり・・・ゴクリ 425 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 7:40:13 ID: ZR1sj9Te わらた 426 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 13:56:58 ID: ZR1sj9Te おもしろくも珍しくもないけど tell application "Firefox" set URLstr to get ヌclass curlネ of window 1 end tell tell application "Internet Explorer" Activate OpenURL URLstr end tell ↑ Firefoxで今開いてるページ(表に出てるタブだけ) をIEで開くスクリプト 427 名前: 名称未設定 Mail: sage 投稿日: 04/12/31 14:35:07 ID: aEx1M9U9 >>408-412 今は必ず (a>428 ScriptEditor2.0のバグです。International/LanguagesでEnglishを 最上位にしてloginすれば正常に動きます。AppleScriptはplain textを返しますが、NSTextViewで扱うためにUnicode化する所で失敗 している感じです。 ScriptDebuggerはWASTEベースなので問題無く動きます。 430 名前: 名称未設定 Mail: sage 投稿日: 05/01/02 14:37:40 ID: lUu2TB5G >>428-429 知らなかった。>>427で回避できるのかな。 431 名前: 名称未設定 Mail: 投稿日: 05/01/03 21:27:40 ID: ODSvvwzf スクリプトの質問スレがないのでここで良いですか? 「current date」で取得した「0000年00月00日 0曜日 0:00:0 00」を 「Mon, 03 Jan 2005 20:36:39 +0900」の形に直したいのですが、 どのようにすればいいでしょうか。 432 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/03 23:00:50 ID: dUGhtQw3 何か違う気もしますが。 set cd to (current date) set str1 to characters 1 thru 3 of (weekday of cd as string) as string if (day of cd) < 10 then set str2 to "0" & (day of cd) as string end if set str3 to characters 1 thru 3 of (month of cd as string) as string set str4 to (year of cd as string) set str5Tmp to (time string of cd as string) if characters -2 thru -1 of str5Tmp as string is "PM" then set str5 to ((((characters 1 thru 2 of str5Tmp as string) as number) + 12) as string) & characters 3 thru 8 of str5Tmp else set str5 to characters 1 thru 8 of str5Tmp end if set timeStr to str1 & ", " & str2 & space & str3 & space & str4 & space & str5 & space & "+0900" 433 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/03 23:02:59 ID: dUGhtQw3 str2のとこはこうしといてください。 if (day of cd) < 10 then set str2 to "0" & (day of cd) as string else set str2 to (day of cd) as string end if 434 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 0:28:34 ID: LOs3VTeg >>433 お手数をおかけして済みませんでした。 435 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 2:26:59 ID: 3OP8JbdV >>421 internet location fileがらみですかね。 でもこれもFinderの力を借りないと開けないみたいですし。 Class URLは、例えばこんな感じです。下記の例では文字列をClass URLにキャ ストした時点でネットワーク経由を見にいってプロパティを生成するようです。 set myGoogle to "http://www.google.co.jp/" as URL set aa to path of myGoogleset bb to scheme of myGoogle set cc to dotted decimal form of host of myGoogle URL "ftp://user:pass@ftp.server.com/" 上記の表記によるftpサーバへのURLだと、user nameとpasswordというレコード が追加されるみたいです。 Internet addressは、Class URLのhost属性のクラスそのものだそうです。 Class web pageはよくわからないですね。 436 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 2:49:38 ID: 3OP8JbdV >>397 ・finderのウインド上で選択されてるフォルダを「新しいウインド」で表示するスクリプト tell application "Finder" set myTarget to selection if myTarget is not {} then set newWindow to make new finder window set target of newWindow to item 1 of myTarget end if end tell 437 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 3:05:38 ID: 3OP8JbdV >>397 ・選択されてる対象に関係なく、クリックすると「同じウインドのままで一つ上の階層に移動する」ボタンとして使えるスクリプト tell application "Finder" set tmpPath to (target of window 1 as Unicode text) set oldDelimiters to AppleScript's text item delimiters try set AppleScript's text item delimiters to ":" set newPath to ((text items 1 thru -3 of tmpPath) & "" as Unicode text) on error set AppleScript's text item delimiters to oldDelimiters end try set AppleScript's text item delimiters to oldDelimiters set target of window 1 to newPath end tell でもこれあなた、Command + ↑でいいんでしょ? まあ分かってて書いたわけですが。 438 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 3:43:57 ID: 3OP8JbdV >>432 テキストの部分抜き出しは from character ? to character ? of〜でしたね。 439 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 8:05:40 ID: Kx7/qYau >>435 その表記のuser nameとpasswordの記述は標準的なもので、http:のwebサイトとかでも使えますよ。 afp:でも使えたかな? 440 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 12:08:33 ID: HiCEb5SX >>435 ありがとうございます。 おおー。"URL文字列" as URL とかできたんですね。 .weblocファイルからURLを取り出したり、 .weblocファイルを作ったりできるんですかね? それできると広がるんだけどな。 .weblocのファイル名をページのTitleにするとか 更新チェックするとか・・。 441 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 18:10:45 ID: 85MfkGAk >>431 current dateは1904年からの積算秒数を返す。これがdate classの実体 0000年00月00日0曜日はそれを現在ユーザが選択しているローカライズ フォーマットに従って文字化した物、表示用には使えるが何が返るか は解らない。 ちゃんとしたAPIを使うのが筋だが、AppleScriptからなら do shell script "date \"+%a, %d %b %Y %T %z\"" as string 辺りが相場でしょう。 442 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 18:15:17 ID: HiCEb5SX 日付のフォーマットの話は>>371のあたりにも。 443 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 18:44:48 ID: 3OP8JbdV >>440 >.weblocファイルからURLを取り出したり、 on open itemList tell application "Finder" repeat with i in itemList set myURL to (location of i as Unicode text) display dialog myURL end repeat end tell end open >.weblocファイルを作ったりできるんですかね? tell application "Finder" set newWebloc to make new internet location file to "http://www.2ch.net/" set name of newWebloc to "2ちゃんねる" display dialog (location of newWebloc as Unicode text) end tell --ちなみにlocationはR/Oです。 444 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 18:50:29 ID: 3OP8JbdV >更新チェックするとか・・。 --次回起動時も値が保存される変数の宣言 property modDate : "" property oldModDate : "" set myURL to "http://www.yodobashi.com/" --curlでヘッダを取ってきてgrepとsedでLast-Modifiedだけ抜き出し。 set modDate to (do shell script "curl -I" & space & myURL & space & "2>&1 | grep Last-Modified | sed -e 's/Last-Modified: //'") as Unicode text --更新日が違ってたらhogehoge&基準更新日の更新 if modDate is not equal to oldModDate then open location myURL set oldModDate to modDate end if 邪道な上に上記はちゃんと機能しないです……。Last-Modified:を返してくる サーバが少ないのと、毎秒更新されてしまうところがほとんどです。Date:フィー ルドも同様。ここは自分がよく理解してないです。適切な更新日時を取得する 方法が分かったら、上記がヒントになるでしょう。AppleScriptだけってのは ちょっと無理。URL Access Scripting Additionでダウンロードしてきて、 open for accessで開いて中身を調査するという方法はあると思いますが、テキ スト関連の機能が貧弱ですからね。 445 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 18:51:03 ID: HiCEb5SX >>443 おお! 446 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 19:09:46 ID: 3OP8JbdV >>432 Time Zoneはリテラルで足しましたが、正式には set myTmpTZ to ((time to GMT) / hours) as integer if myTmpTZ > 0 then if myTmpTZ < 10 then set myTZ to ("+0" & myTmpTZ as string) & "00" else set myTZ to ("+" & myTmpTZ as string) & "00" end if else if myTmpTZ < 10 then set myTZ to ("-0" & myTmpTZ as string) & "00" else set myTZ to ("-" & myTmpTZ as string) & "00" end if end if display dialog myTZ こんな感じですかね。基本的に端数は無いみたいなんで。 447 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 19:42:04 ID: 3OP8JbdV 環境に依存しない月と曜日の算出を書いてみました。 set monthList to {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} set myMonth to item (month of (current date) as number) of monthList set weekdayList to {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"} --"ツェラーの公式による曜日算出" set cd to (current date) set ycd to (year of cd) set mcd to ((month of cd) as number) --1月、2月は前年の13月と14月とみなす if mcd is in {1, 2} then set mcd to mcd + 12 set ycd to ycd - 1 end if set dcd to (day of cd) --(年 + 年/4 - 年/100 + 年/400 + (13*月+8)/5 + 日) mod 7 set myWeekDay to item ((ycd + ((ycd / 4) as integer) - ((ycd / 100) as integer) + ((ycd / 400) as integer) + ((13 * mcd + 8) / 5 + dcd) as integer) mod 7 + 1) of weekdayList display dialog myMonth & space & myWeekDay 448 名前: Late Night Software社員 Mail: sage 投稿日: 05/01/04 19:51:28 ID: 3OP8JbdV (month of (current date)) as numberを使っているので AppleScript"1.9.3"以降に依存してますね。 "言語"に依存しないということで……。 それ以前だとそれぞれの言語が取りうる月の表記を全部比較参照して数値化し ないといけないですかね。本当にAppleScriptって糞ですね(w 449 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 21:43:03 ID: 3OP8JbdV >>445 choose URL というのの返り値としてもClass URLが扱える……と思ったら、resultは単なる stringですね。 set myURL to choose URL myURL as URL 450 名前: 397 Mail: 投稿日: 05/01/04 22:35:44 ID: PL5tAsdN >>436>>437 ありがとうございますた。後ほどやってみます。 >でもこれあなた、Command + ↑でいいんでしょ? もちろん解っててです。たまにどうしても片手だけでなんとかしたいときがあるんで。 451 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 23:15:42 ID: BGUlvB6B >>437 このスクリプト、1つ上の階層を別ウィンドウで開ければ 上の階層へのファイル移動に便利かも。 452 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 23:31:42 ID: z/iPYJlJ うちとこではOS9なので日付やテキスト関連処理はTanaka's osax使ってます。 453 名前: 名称未設定 Mail: sage 投稿日: 05/01/04 23:52:18 ID: 3OP8JbdV >>451 いろいろとエラー処理が必要ですね……。 つっても出たら無視してるだけだけど(w 僕は一つ上の階層にファイルをコピーする場合は、 Command + 3でカラム表示にしてます。 tell application "Finder" set newPath to "" try set tmpPath to (target of window 1 as Unicode text) on error return end try set oldDelimiters to AppleScript's text item delimiters try set AppleScript's text item delimiters to ":" set newPath to ((text items 1 thru -3 of tmpPath) & "" as Unicode text) on error set AppleScript's text item delimiters to oldDelimiters end try set AppleScript's text item delimiters to oldDelimiters set newWindow to make new Finder window if newPath is not "" then set target of newWindow to newPath end if end tell 454 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 0:03:50 ID: iydlByFQ tell application "Finder" to open folder of insertion location つうのをコンテクストメニューに入れて使ってますが これではダメですか 455 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 3:44:30 ID: 4/QiSZMS 社員すげえな! 456 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 10:48:13 ID: 6gxeiD5H >>435,443 location fileから取り出したURL文字列をclass URLにしようとすると 何故か失敗します。 (10.2.8) tell application "Finder" to set itemList to selection repeat with i in itemList tell application "Finder" to set myURL to (location of i as Unicode text) class of myURL set myURL to myURL as string class of myURL set myURL to myURL as URL end repeat 457 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 12:32:58 ID: 6gxeiD5H あるURLのページのタイトルを取り出してみようと下記のような事をしてみたのですが、 これをAppleScriptに組み込もうとdo shell scriptで呼び出すと エスケープが上手くいかないのかちゃんと動きません。 お知恵を貸してください。 curl -s "http://www.yahoo.co.jp" | perl -wne 'if ( m/\(.*)\<\/title\>/ ) {print $1;last}' 458 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 12:44:40 ID: MZsOtLpO お舞いは氏んでろ! 459 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 14:51:06 ID: 6gxeiD5H >>457の回答を引き続きお願いします。 とりあえず自分用という事でシェルスクリプトを別ファイルにしました。 何をするものかというと、 Webブラウザで保存したファイル名がURLになっている.weblocファイルをドロップすると、 ファイル名をページのタイトルにしてくれるドロップレットです。 UTF-8対応のnkfが/usr/local/binにインストールされている必要があります。 あと、スクリプトを置く場所までのパスに日本語が混じってると上手く行かないかも。 製作・実行環境は10.2.8です。 #!/bin/sh export PATH=$PATH:/usr/local/bin curl -s $1 | perl -wne 'if ( m/\(.*)\<\/title\>/ || m/\(.*)\<\/TITLE\>/ ) {$pttl = $1;$pttl =~ s/:/_/g;print $pttl;last}' | nkf -w ↑ これをwebpagetitle.shという名前で保存してchmodで実行できるようにします。(なんていい加減なファイル名) on open itemList set myalias to path to me tell application "Finder" set myFolder to container of myalias set fPath to POSIX path of (myFolder as alias) end tell repeat with i in itemList tell application "Finder" to set myURL to (location of i as string) set fNm to (do shell script fPath & "webpagetitle.sh \"" & myURL & "\"") tell application "Finder" to set name of i to fNm & ".webloc" end repeat end open ↑ 同じフォルダにこれをアプリケーション形式で保存。 460 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 15:44:44 ID: 6gxeiD5H >>459 問題が一つ発覚しました。 Amazonの商品ページのようにリダイレクトがかかる所だと上手く行かないようです。 curlに-Lオプションを付けてもだめ。 なんでやー。 461 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 17:06:08 ID: 4/QiSZMS 何がしたいのかがよくわからん 462 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 18:13:24 ID: 6gxeiD5H >>461 FirefoxとかでURL欄からドラッグして作った.weblocとか、 あとSafariでも場合によるみたいだけど ファイル名が『URL.webloc』になるでしょ? それを、『ページのタイトル.webloc』にしたいんです。 463 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 20:27:14 ID: UWA0ZDBb Safariならfaviconをドラドロすればなるだろ。 464 名前: 名称未設定 Mail: sage 投稿日: 05/01/05 21:07:01 ID: 6gxeiD5H >>463 10.2だと、なっても文字化けとかURLになるとかいい加減っぽいです。 10.3でSafari党の人には不要なものですね。 あと個人的にFirefoxの方がよく使うので。 書き込みついでに、Safariを使ったバージョンを作ったんで貼らせていただきます。 こっちはたぶんどんな時でも問題なく動きます。 欠点は一々Safariのウインドウが開く事。 ところでSafariってOpenURLが用語に無いんですね。 on open itemList repeat with i in itemList tell application "Finder" to set myURL to (location of i as string) tell application "Safari" ヌevent WWW!OURLネ myURL repeat set fNm to name of window 1 if fNm does not contain "名称未設定" and fNm does not contain "を読み込み中" then exit repeat end repeat close window 1 end tell set fNm to do shell script "echo " & fNm & " | sed s/:/_/g" if fNm is not "" then tell application "Finder" to set name of i to fNm & ".webloc" end repeat end open 465 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 0:33:23 ID: ai60fai5 仕事始めで時間が取れないよ。 >ところでSafariってOpenURLが用語に無いんですね。 確かに無いけどこれでいいでしょ。 tell application "Safari" set newDoc to make new document set URL of newDoc to "http://www.google.co.jp/" end tell 466 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 4:26:27 ID: M3mQkVIX do shell script + iKey = 最高のスクリプト環境 467 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 9:34:17 ID: l65dp0ju >>465 おー。そんな書き方ができたんですか。 何かオブジェクト指向っぽい?(←わかってない) 468 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 12:35:42 ID: wXcKn9Iw tabも追加できるよ tell application "Safari"      〜 activate tell application "System Events" tell process "Safari" click menu item "新規タブ" of menu "ファイル" of menu bar 1 end tell end tell end tell 469 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 14:12:52 ID: l65dp0ju >>468 GUI scriptingでんな。 漏れジャガーやさかい使えませんのや。 使いたいー!o( ≧ _ ≦ )o >>465 別スレで、SafariでURLを開く別の方法を書いてる人が居たので書いておきます。 tell app "Safari" open location "URL文字列" end tell でいいんだって。 470 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 15:07:44 ID: wXcKn9Iw >>469 残念! 残念ついでにFirefoxのタブ追加のファンクション。すまん on AddNewTab2Firefox(theURL) set the clipboard to theURL tell application "Firefox" to activate tell application "System Events" tell process "Firefox" key code 17 using {command down} -- cmd + t key code 37 using {command down} -- cmd + l key code 9 using {command down} -- cmd + v key code 76 -- enter end tell end tell end AddNewTab2Firefox Firefoxが起動済みで、ブラウズウィンドが一番上にいないと上手く行かないorz もっといいのがあったら教えてほすぃ 471 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 15:26:51 ID: U6kxFFM+ safariでgoogle検索すると http://www.google.com/search?q=検索語 の様になるのを http://www.google.co.jp/search?q=%E6%A4%9C%E7%B4%A2%E8%AA%9E の様にエスケープしたいのだけど、perlの部分がさっぱり解らないので誰か教えて。 do shell scriptを使ってperlに渡して http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape こんな事をするまでは思いついたんだけど文が書けない…。 472 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 16:05:04 ID: ai60fai5 >>471 それはURLエンコードといいます。 packとかunpackを使うんだったような。 473 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 16:16:55 ID: ai60fai5 つか、書いてあるね。 つか、何が分からないのか分からないよ。 これが分からないということかな? (下記は意味なし) set str1 to "あんまき" set str2 to do shell script "echo " & str1 & " | nkf --mac | " & "perl -e 'while (<>){print $_;}'" 474 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 16:19:46 ID: bzw1F3Mh >>471 スクリプトでSafariからURL取るとエスケープされてましたよ。 tell application "Safari" set theURL to URL of document 1 as Unicode text set theWord to do shell script "perl -e '$_=\"" & theURL & "\"; /q=([^&]+)/; print $1;'" set theGoogleURL to "http://www.google.co.jp/search?q=" & theWord set the clipboard to theGoogleURL --open location theGoogleURL --デコードされて表示される end tell なのでこれは必要なかった set theWord to "まっく" set theEncodedWord to do shell script "perl -e '$_=\"" & theWord & "\"; s/([^0-9A-Za-z_])/\"%\".unpack(\"H2\",$1)/ge; s/\s/+/g; print'" open location "http://www.google.co.jp/search?q=" & theEncodedWord 475 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 16:53:35 ID: l65dp0ju すいません。便乗質問していいですか? >>471の書き込み見て自分も一所懸命やってたんですが、 Perlのシンタックスエラーになっちゃうみたいでダメなんです。 よかったらどこがおかしいか教えてください。m(_ _)m tell application "Safari" to set aURL to URL of document of window 1 set aURL to do shell script "PERL_BADLANG=0;export PERL_BADLANG;perl -we \"$str = '" & aURL & "';$str =~ s/(\\W)/'%' . unpack('H2', $1)/eg;print $str\"" まじまじと眺めて比べても"と'の使い方が逆?くらいなんですが・・・。 めっちゃ基本でしょうか。すいません。 476 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 17:59:52 ID: o5YUh2G/ >>469 ジャガーでも使えるよ。 477 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 19:11:51 ID: l65dp0ju >>476 何かインストールしないとダメじゃなかったですっけ? 今のままだと>>468とかコンパイル通りません。 478 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 19:16:39 ID: 1EgfsqrS 10.3が出てβ版の公開も止めたから無理だろ。 479 名前: 473 Mail: sage 投稿日: 05/01/06 19:23:06 ID: x5ASSsWi >>475 クオートとエスケープがめんどくさいね。 tell application "Safari" to set aURL to URL of document of window 1 set aURL to do shell script "PERL_BADLANG=0;export PERL_BADLANG;perl -we '$str = \"" & aURL & "\";$str =~ s/(W)/\"%\" . unpack('H2', $1)/eg;print $str;'" 480 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 19:24:59 ID: o5YUh2G/ >>477 >>478 10.2.8とかなら標準で入って無かったっけ? システム環境設定>ユニバーサルアクセス>補助装置にアクセスできるようにする で出来ない? 481 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 20:02:15 ID: l65dp0ju >>480 ユニバーサルアクセスでチェックしてから構文確認してみたけどだめでした。 再起動が必要なんですかね? CoreServicesにはSystem Events 1.1.2が入ってます。 用語は Standard Suite、Text Suiteってのがまあ普通にあって、 Disk-Folder-File Suite、Folder Action Suite、Power Suite(電源関係)、Processes Suiteと来て 次にSystem Events Suiteってのがありますが、do scriptとapplicationだけ。 最後にLogin Items Suite。 482 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 21:00:28 ID: l65dp0ju >>479 ほんとに面倒くさいのにチェックありがとうございます。 なんか色々試してみたら、 do shell script "perl -e \"$str = 'abcd'\"" --エラー do shell script "perl -e '$str = 'abcd''" --OK ってところまでしぼれたんですが、何で上がエラーで下がOKなんでしょう?? ターミナルでは % perl -we "$str='abcd'" とすると、str: Undefined variable. ????? 483 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 21:35:14 ID: EEAVD+jS Terminalスレの気温野郎と同じくウゼェ 484 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 21:44:41 ID: M3mQkVIX >>482 (゚д゚) ポカーン 485 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 21:57:38 ID: l65dp0ju (´・ω・`)ショボーン 486 名前: 名称未設定 Mail: sage 投稿日: 05/01/06 22:12:02 ID: M3mQkVIX (・∀・) ユッテミタダケ 487 名前: 471 Mail: sage 投稿日: 05/01/06 23:27:42 ID: U6kxFFM+ ワカラネェヨウワァン>匙投げ な質問に丁寧に答えてくれて ありがとうありがとうとってもありがとう。後でいじってみます。 ちなみにどういう使い方をしようかと思ってたのか説明すると 自分はあるIRC(chatみたいな物)の部屋に常駐してるのですが グーグルの検索結果とかwikipediaとかのURLをIRCに投げると windows側のブラウザだと日本語のurlだと駄目みたいで エンコードしてから送りたかったってだけなんです。 解らないってのはperlがさっぱり解らなかったのと返り値とかどーすんだって事だったのです。 長文レス失礼しました、ホントありがとう。 488 名前: 名称未設定 Mail: sage 投稿日: 05/01/07 1:21:06 ID: c4MmNJWB >>482 >% perl -we "$str='abcd'" >とすると、str: Undefined variable. シングルクオートじゃないと「シェルが」$strをシェル変数として展開しよう とするから。以下をターミナルで試してください。=の前後は空白を開けてはだ めです。 str="abcd" echo "$str dayo" #↑$strが展開される echo '$str dayo' #↑$strが展開されない 489 名前: 名称未設定 Mail: sage 投稿日: 05/01/07 1:24:27 ID: c4MmNJWB >>471 >>482 do shell scriptを使う人は全員ここを読んだ方がいいよ。非常によいドキュメ ントです。というか、読まないとマトモに使えないでしょう。 http://developer.apple.com/ja/technotes/tn2065.html 「quated form of」や「quated form of the POSIX path of〜」、文字コード なんかの重要テク満載。 ただ、with administrator privilegesを使った管理者権限でのスクリプトの実 行は、セキュリティの問題でできなくなったんだっけな? 使ったことがないの でよく分からない。もしできなかったら、そうらしいということにしといてく ださい。 また、do shell scriptを使うなら、少しはShell Scriptを勉強しましょう。以 下を読んでください。Shell Scriptの知識は一生物なので損しないですよ。 http://www.tsden.org/takamiti/shText/ 本ならISBN4-7973-2194-6 490 名前: 名称未設定 Mail: sage 投稿日: 05/01/07 11:15:46 ID: MWuih740 >>488,489 めちゃめちゃありがとうございます! シェルが変数を展開!そうかー・・。 普通にTerminalで打ち込んだ時もシェルスクリプトと一緒ですよね。 perlに引数として渡すものだからperlだけが解釈するんだとしか考えてませんでした。あほだ。 という事は、>>482の上の文も、do shell scriptで呼び出されたシェルにとって展開すべきだけど値のない変数を含んでるからエラー? 必要な事は調べながらやってるつもりだったのですが、全然足りなかったようです。 Googleに頼りすぎてAppleのそのページの事も忘れてました。 orz 勉強します。 491 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 9:05:54 ID: jLt9Z+bf >>481 Dec 2002 Mac OS X Developer Tools に入っている、 System Events 1.2 でないとダメみたいですね。 ただし、300MB・・・ 気が向いたら Developer (フリー) になってDLしてください。 492 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 12:00:33 ID: KINJa0I2 >>491 すいません、援助を求めるような書き方をして、フォローを忘れてました。 その後Googleで検索してたらβ版の10.2向けGUI scripting対応System EventsのUIscriptingbeta.sitをダウンロード出来るところを見つけました。 ある日本語のページから、何故かダウンロードできます。(汗 でもファイルのURL自体は www.apple.com/applescript/GUI/ から始まっているので、サーバから消去し忘れたものなのかも?? あと10.2のパッケージを購入してたのですが、 その中のDev ToolsのCD-ROMにオマケとして入ってるみたいでした。 調査&レスありがとうございます。 いちおーADCのメンバーなんですけど、パスワードとアカウントどこに書いてたかなw 493 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 16:13:23 ID: KINJa0I2 10.2.8 choose fileで決めた名前でテキストファイル開いて短い文を書き込んで閉じる という簡単なスクリプト。 再帰呼び出しとかループとか全然無いんですけど なぜかスタックオーバーフロー・・。 他にも同じような経験した方いらっしゃいますか? 494 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 17:06:58 ID: 8m+pPYhF ファイル書き込みはけっこうコツがいる。 様々な場面に対応して安定して書き込める書き込みサブルーチンを作るのは大変だよ。 とりあえず、今書いているスクリプトの一部でも上げてみては? 495 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 17:30:05 ID: KINJa0I2 >>494 レスありがとうございます。 >>493原因わかりました。 てっきり書き込みの部分でエラーと思っていたのですが、 書き込んだ後にそのファイルのファイルタイプ・クリエータをFinderで設定する所でエラーになっていたようです。 (try構文にひっかからないのでおかしいとは思ったんですが) 『choose file name』の返り値が『file "Mac形式のフルパス"』 なので、これを『as alias』でエイリアス型にしてから (ひょっとして、この段階で作られたファイルの存在も認識される?) Finderに渡したら大丈夫でした。 基本的な事だよなーと思いつつ、以前のOSでもこうだったか思い出せない・・。 AppleScriptリファレンスによると、旧OSでの 『choose file』の返り値はalias型のようです。 移植の障害になるかも? 496 名前: 名称未設定 Mail: sage 投稿日: 05/01/08 21:25:13 ID: LzXH+nMC choose fileとchoose file nameは全然違うもんだろう 497 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 2:16:11 ID: JApCHH+h あれ?OS Xにもちゃんと『choose file』ありますね。 古いコードの流用で手抜きしたのがまずかったか。 orz こんなんばっかや。スレ汚しすいません。 498 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 12:52:42 ID: FVszgUCx ファイル書き込みがめんどいので do shell script & touch を使っちゃう俺は負け組 499 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 13:15:50 ID: JApCHH+h >>498 touchって知りませんでした。ありがとう。 今調べたらtouchって空のファイルを作るだけみたいですけど? テキストファイルだったら、 echo 'なんとかかんとか' > foo.txt で新規ファイル作って書き込みまで一発でできますよね? 500 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 13:24:17 ID: FVszgUCx >>499 いま見たらecho使ってたスマソ。 自分の書いたサブルーチンの内容も覚えてない負け組・・・ 501 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 13:41:40 ID: JApCHH+h ひょっとして、書き込み用のサブルーチンとかライブラリ化してるんですか? 漏れもそういう事しないといかんなーと思いつつ、 テキトーに昔のスクリプトを検索で見つけて 開いてコードをコピペという原始的な事をしてます。 touchはtouchで使い道があると思います。 えーと確かIEか何かでファイルをダウンロードさせる時に 指定先に空ファイルが必要だった気が。 502 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 15:40:47 ID: SNbTZcg7 読み書きのサブルーチンはライブラリ化するべき。 書き込もうとしたらボリュームがロックされていたり、書き込み途中でボリュームがいっぱいになったり、いろいろなハプニングがある。 場合によってはそのままファイルがopenされたままになって次に開けなくなるなど、トラブることがある。 それらに対する対処をぜんぶ盛り込むと読み書き命令はかなり長いサブルーチンになる。 独立したサブルーチンとして使い回ししやすくする方が賢い。 503 名前: 名称未設定 Mail: sage 投稿日: 05/01/09 15:54:23 ID: A+ufYLLP 読み書きにはopen/close不要のOSAX使ってる。 エラー処理も殆ど必要なくて便利です。 504 名前: 名称未設定 Mail: sage 投稿日: 05/01/10 3:40:15 ID: V5GsB8UW >>502 >書き込もうとしたらボリュームがロックされていたり、 >書き込み途中でボリュームがいっぱいになったり、 >いろいろなハプニングがある。 うわ。そういうのマジメにやった事ないや・・。 他人のコードは見た事ある気がするけど。 エラーコードで分岐ですかね。 今のとこ大ざっぱにtry構文で囲んでエラーがあったらcloseさせてるだけっす。 そういえばAppleScript Studioにはファイルの読み書き用のハンドル?が用意されてるみたいで、 それを使えば安全にできそうな気もするんですが、 いまいち使い方がわからない。 505 名前: 名称未設定 Mail: sage 投稿日: 05/01/10 21:40:26 ID: V5GsB8UW 10.2.8でAppleScript Studioで作った 多ブラウザ対応のブックマークユーティリティーです。 ttp://mac.oheya.jp/up/src/macroom0348.gz 10.3.7の方に試してみていただいたところ、 ブックマークを開いた後にアプリが落ちるそうです。 クラッシュログもいただいたのですがわからなくて・・。 とりあえず関係ありそうなところを ignore application responses でくくってみたんですが、どうでしょう。 どなたかに試用していただけると幸いです。 506 名前: 名称未設定 Mail: sage 投稿日: 05/01/11 7:21:55 ID: RvfmBlcs 前のversionと同じ挙動で落ちます。 507 名前: 名称未設定 Mail: sage 投稿日: 05/01/11 10:12:11 ID: yurdvSaa >>506 またまた報告ありがとうございます。 ありゃ(ずこ 何で複雑なブックマーク作成はOKで単純なブックマーク開くがダメなんだろ・・。 速度犠牲にしてブラウザ別の命令に分岐した方がいいのかなぁ。 508 名前: 名称未設定 Mail: sage 投稿日: 05/01/11 15:03:38 ID: nIBENIiR 1 + 1 509 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 2:01:13 ID: CDPbrQ0m ドットシンタックスで参照したい... 510 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 2:46:01 ID: WdZ69FPS 確かに 〜 of 〜 of って参照は表記が冗長ですよね。 メソッド等との区切りも視覚的に分かりづらいし。 あと、親子の順序が逆なのものヤですね。 Child --> Parent (AppleScript) Parent --> Child (ドット記法) DashboardのWidgetもJavaScriptで書くようだし、 いっそのこと、OSAにJavaScriptが使えるようになるといいのに。 でも対応アプリが無いことには意味無しか。 511 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 3:07:20 ID: WZ1UA0Js >>510 例えば、 ttp://www.latenightsw.com/freeware/JavaScriptOSA/ スクリプタブルアプリケーションは自分が扱えるオブジェクトを 辞書として公開し、OSAとAppleEventを使って交信するだけ。 だから、OSAの先の言語がASかJSかとかは関係ない。 オブジェクトが表記・操作できるような言語なら OSAに組み込める可能性はある。 前からとか後ろからとかは、言語の問題でOSAの問題じゃない 512 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 4:24:05 ID: UAHJFjiH 510はコンファブのウィジェットいじった事あるのかなと。 513 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 5:13:53 ID: WdZ69FPS >>511 既にあったのですね……。 つーか、自分、Late Night Software社員を名乗っていたものです……。 なるほど。Scriptableなアプリケーションというものは、 OSAに対応しているというだけで、 特にAppleScriptに束縛されているわけじゃないのですね。 OSAの実体は、AppleEventによるアプリケーション間通信の仕組みだと。 >前からとか後ろからとかは、言語の問題でOSAの問題じゃない これは承知しています。 >いっそのこと、OSAにJavaScriptが使えるようになるといいのに。 のくだりは、言葉通り、AppleScript以外のOSA対応言語(?)があれば解消できる 問題という意味で言っています。 そういう意味じゃ、OSA+JavaScriptってなかなかいいじゃないですか! JeditだろうがFinderだろうが、JavaScriptで制御できるってことですよね。 障壁が高くなって、人に使ってもらうのは望み薄になりますけどね。 >>512 いんや、ないです。 しょぼいエージェントでも作ろうかな、と思いましたが、 グラフィックを用意するのがめんどくさくて萎えました。 登録してないし。 514 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 5:27:25 ID: UAHJFjiH 前はクイッキーズか何かも独自のOSA対応言語を搭載してなかったっけ? 何か違うような気もするが・・。 うーん。 ユーザーランドなんたら言うのは何だったっけ。 515 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 20:29:11 ID: xusk0ph1 現在開いているウインドウのIDや名前などを取得/命令の送信って AppleScriptでできませんか? 516 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 20:49:07 ID: Oxx0AkgQ できるでしょ? 517 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 20:58:59 ID: HmlJEPMl アプリケーションの用語にもよるけど。 Panther なら System Events でも取れるかな。 518 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 21:03:50 ID: oka9PPG4 >>510 parent's child 519 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 23:29:19 ID: UAHJFjiH front most なapplicationを調べられるけど、 その答えにAppleScript自体が返って来ちゃったり。w 520 名前: 名称未設定 Mail: sage 投稿日: 05/01/12 23:31:40 ID: MzPVJ2a8 ユーザーランド・フロンティアもOSA対応言語だったよね。 使ったことなかったけど。 昔はけっこうAppleScript以外のOSA対応言語があったよね。 AppleScriptにも日本語とかフランス語とかあったし。 なつかしー 521 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 0:54:19 ID: ugV7KcoW 日本語から入ったからしばらく両刀だった。w って懐かし話してる場合じゃないや。 こないだ今一番手前に出てるアプリ(or ウインドウ)を調べようとして >>519な感じだったんですけど、 何か解決策ありますか? 522 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 1:21:33 ID: ywey2I13 スクリプトエディタから動かしてるかぎり、どうにもならんかと。 523 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 2:09:37 ID: ugV7KcoW いやえーと、アプリ形式で保存してもそうなるでしょ? 起動したら前に出ちゃうから。 自分を下げる命令とかあったらいいんですけど、 他のをアクティベートするしかないわけで、 そしたら「今一番前のを知りたい」という目的に合わないですよね? スクリプトメニューから実行すると大丈夫なのかな。 でもアプリじゃないと困る事もあるわけで・・。 ほかに手はないですかね。 OS Xになってウインドウばらばらになったから 今のウインドウの順番をリストで取得とかできるようにならないかな・・。 リストだったら自分自身は取得後に消せばいいわけで。 524 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 2:32:02 ID: ZDc2IX21 >>523 クドクドと言い分けじみたことを並べるより、ストレートに何がしたいか つまり何故最前面アプリを調べたいか言うほうが良い 525 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 6:18:22 ID: TuX+SZv8 >>523 >>303 で書いたやつを参照のこと。 on idleハンドラからならfrontmostをチェックできます。 iKeyからの起動でも、frontmostをチェックできました。 RealBasicで、ウインドウをGlobal Floting Windowに設定し、 例えば以下の内容のAppleScript(ファイル名frontmosttest)を作り、プロジェクトに投げ込み。 tell application "Finder" return (name of (every application process whose frontmost is true) as Unicode text) end tell ボタンとEdit Fieldを一つ作り、ボタンのActionイベントに以下のように書い ておきます。 Sub Action() dim var1 as String var1 = frontmosttest EditField1.text = var1 End Sub これでビルドしてボタンを押せば、きちんとfrontmostが取得できますね。 自分自身のfrontmostがtrueにならないGlobal Floting Windowならではの芸当です。 Script Menuからだと、frontmostはSystem Eventsになりますね。 使用目的にもよりますが、現状一番有望なのはiKey経由の起動でしょうか。 あとはちょっとやってないですが、何かに対して(Dock?)System Eventsで Command + Tabを発行してからdelayかけて、取得するっていうのはどうですか。 526 名前: 名称未設定 Mail: sage 投稿日: 05/01/13 15:28:06 ID: ugV7KcoW >>525 レスありがとうございます。 なるほど。Rbでそんな事ができるのですね。 残念ながらRbはとても古いのしか持ってないのですが、 手があるとわかってうれしいです。 AppleScript Studioで同じような事できませんかね。 Global floating Windowは作れないですよね。 on idle回しっぱなしは重いかなーと思うんですが、そんな事もないですか? 5秒間隔にしててもその間隙にユーザーが切り替える可能性もあるのがちょっと痛いですね。 ありがとうございました。 527 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 1:03:11 ID: o7cKmW2A >>526 >AppleScript Studioで同じような事できませんかね。 >Global floating Windowは作れないですよね。 何度かこのスレで質問してますが、どなたもご存知ないようです。 >>257 >>275 >>318 >>257で出してるAppleのAppleScript StudioのMLにおいて話題が 出てます。 さらに詳しい話題が、以下のスレッドで出てます。 http://lists.apple.com/archives/applescript-studio/2004/Nov/msg00040.html ここにある処置をほどこすことでfrontmostに影響を及ぼさないUtility Windowを実現できるようです。目的次第では、これで十分かもしれません。 ただ、この処置を施しても、ウインドウをクリックすると、メニューやキー入 力送信先がAppleScript Studioアプリに移ってしまうらしく、完全なるGlobal Floating Windowの実現はAppleScriptだけではダメで、Cocoaとの (Objective-Cとの?)コンボ(複合記述のことだと思われる)が必要になるとの示 唆があります。回答者も示唆しっぱなしで、その詳しくはMLでは語られていま せん。質問者も結局100%の解決を見ずじまいなようです。 528 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 1:07:07 ID: o7cKmW2A 一つ目のスレッドの質問者は日本人で、シグネチャにURLも出ているので、聞い たら何か分かるかも。 Global Floating Windowを実現できるかもしれないソリューションがもう一つ あります。それはFaceSpanです。MacOS9時代のFaceSpanは、それを簡単に実現 できたそうです。 http://www.facespan.com/facespan/pagespeed/url/features4.0/ これを新たに買ったり覚えたりするよりはREALbasicの方がいいや、ということ で、自分は試用してません。 これ以上は>>526さんが何をしたいのかを推察する情報が開示されていないので、 on idleによる手法がいいとか悪いとか、答えようがないですね。 529 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 7:09:32 ID: 21e8pPms 自身のprocessをfrontmostに出したくなければ、plistでNSUIElementか LSBackgroundOnlyを指示すれば良い。 tell application "Finder" set frontApp to item 1 of (processes whose frontmost is true) end tell tell frontApp name of windows end tell みたいにすればfrontmost processを参照できるが、C/C++でProcess Manager とAppleEventを使ってちゃんとしたコードを書いた方が良い。AppleScript で書く方が難しいし、安定して動かない。 530 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 11:57:39 ID: OaTTOcBT >>527 おお!興味深い情報。英語・・・。がむばって読みます。 >>528 今すぐ何かしたいというんでもないのですが、 たまに使いたくなってはあきらめるという繰り返しというか。 たとえば、最前面のアプリケーションに対して補助パレット的に働くようなものとか。 まぁ相手が明確ならそのアプリに対してtellすればいいんですが。 〜というアプリが最前面なら何かするとか。 >>529 > plistでNSUIElementかLSBackgroundOnlyを指示すれば良い。 をを!? アプリ/Contents/Info.plist ??? いじる所がわかってない時点で触る資格なし?? orz おー。検索すると何か色々出てきました。OMEの開発陣のお話とか・・。 > C/C++で〜ちゃんとしたコード そんな能力があれば・・・。 (´・ω・`) 531 名前: 名称未設定 Mail: sage 投稿日: 05/01/14 23:50:22 ID: ks/+DBO/ >>529 それらを施してなおキーイベント送信先やメニューが AS Studioアプリに切り替わってしまうので、 GUI Scriptingが使えないことになります。 >>530 plistはXcodeのターゲットの中にあります。 Windowsのレジストリエディタで新しいキーを作るようにして設定します。 この辺が理解不能かつRbもFSも眼中にないなら、 iKeyを使うことをおすすめします。 Global Floating Toolbarから ボタンでAppleScriptを起動することも可能です。 特定のアプリがfrontmostの場合だけ Toolbarを表示させるということも可能だったはずです。 あ、でもこれも日本語のドキュメントが皆無か。 532 名前: 名称未設定 Mail: sage 投稿日: 05/01/16 15:44:35 ID: ApFVuSDE スクリプトでなくても構わないのですが、ディスプレイだけをスリープさせる方法はないでしょうか。 寝る前にiTunesを再生したあと、しばらくディスプレイがつきっぱなしになってしまうので… 御存知の方いませんでしょうか。 533 名前: 名称未設定 Mail: sage 投稿日: 05/01/16 15:59:57 ID: b2dqR9y4 >>532 システム環境設定>省エネルギー設定>カスタム>ディスプレイがスリープするまでの時間を別に指定する iBookやPowerBookならF1の明度ボタンで暗くする。 外付けのディスプレイならディスプレイの電源だけ切ってしまう。 534 名前: その1 Mail: sage 投稿日: 05/01/16 18:32:38 ID: sr+u6daI property DimValue : "" --"モニタのスリープまでの分数格納変数" global PW --"管理者パスワード" set PW to "password" if DimValue is "" then set DimValue to my getDimValue() my changeDisplayDialog("1") my changePmset("1") else if DimValue is "1" and my getDimValue() is "1" then my changeDisplayDialog("20") my changePmset("20") set DimValue to "20" else if my getDimValue() is not "1" then if (my getDimValue()) is not equal to DimValue then set DimValue to my getDimValue() end if my changeDisplayDialog("1") my changePmset("1") else my changeDisplayDialog(DimValue) my changePmset(DimValue) end if end if 535 名前: その2 Mail: sage 投稿日: 05/01/16 19:02:06 ID: sr+u6daI on getDimValue() return (do shell script "pmset -g disk | awk '/dim/ {print $2}'") end getDimValue on changePmset(timeToDim) get "sudo pmset -c dim" & space & timeToDim do shell script result password PW with administrator privileges end changePmset on changeDisplayDialog(timeToDim) display dialog ("モニタのスリープまでの時間を" & timeToDim & "分に設定します" as Unicode text) buttons {"OK"} giving up after 2 end changeDisplayDialog その1とその2を合体させてください。モニタのスリープまでの時間をトグルで 切り替えるスクリプトです。 System Preferencesは実質Scriptableじゃないので、GUI Scriptingをせざるを 得ないようです。 pmsetというコマンドがあるので、それで設定してやります。今の設定が30分な ら、1分と30分を実行するたびに交互に設定します。1分以下とか、即時にモニ タを消すことはできなさそうです。元の設定が1分だった場合、20分と1分を交 互に設定するようにしてます。省エネルギー設定で設定を変更した場合、次か らその新しい値と1分とを交互に設定します。 536 名前: 名称未設定 Mail: sage 投稿日: 05/01/16 19:40:47 ID: b2dqR9y4 >>535 pmset -g diskなのは理由があるのでしょうか? これだとノート型だとAC電源の場合とバッテリーの場合の2通り表示されます。 awkは詳しくないのでどっちの結果を拾うかわかりませんが。 pmset -g か pmset -g live なら現在使用中の設定が出ると思います。 537 名前: 名称未設定 Mail: sage 投稿日: 05/01/16 20:03:46 ID: sr+u6daI >>536 特に意味は無いです。ネタ元はapplescript-users mailing listで、そこに載っ てたのをコピペしたというだけの話です。とりあえず動くし、自分じゃ使わな いのでぶっちゃけ調べは適当です。 http://lists.apple.com/archives/applescript-users/2004/Aug/msg00017.html iMac G5なので、いずれの場合もdimは一つしか表示されないです。 538 名前: 名称未設定 Mail: 投稿日: 05/01/17 19:38:08 ID: UoyTYoys, すいません質問です。 AppleScriptからクリッピングファイルを作るにはどうしたらいいのでしょうか。一応 以下のようにするとファイル自体は出来たのですが、これだけでは中身が無いようです。 tell application "Finder" make new clipping to "hogehoge" end tell それと、出来ればテキストクリッピングだけでなくピクチャクリッピングというものも 作りたいのですが、これは可能でしょうか?(実はそもそも見た事ない>ピクチャクリッピング) 539 名前: 名称未設定 Mail: sage 投稿日: 05/01/17 22:46:25 ID: 0f4TU0z4 >>538 OS9だとTanaka's osaxのMT Write Clippingでテキストもピクチャも(URLも)出来ますが。 540 名前: 名称未設定 Mail: sage 投稿日: 05/01/17 23:37:23 ID: UoyTYoys >>539 レスありがとうございます。 環境書き忘れてましたすいませんOS X 10.3.7です。 ググったらこのスレが出てきたりしましたorz >>226で既出だった。。。 Tanaka's osaxというのはOS Xでは無理なのですね……これは残念です。 541 名前: 名称未設定 Mail: sage 投稿日: 05/01/20 23:11:36 ID: CErtLa24 煮詰まってます。 do shell script "curl 'http://www.google.co.jp/'" これだけのスクリプトが、 『一部のデータを目的のデータ型に変換できません』となり実行できません。 なぜ??? 542 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 0:11:48 ID: e6i+sJr3 >>541 試したけど普通に実行できてダウンロードもできてhtmlもげっとできた@OS X 10.3.7 543 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 0:46:03 ID: wBJmQOuD PopUp Buttonで現在選択されているアイテムの項目名を取得するにはどうすればいいんですか? 544 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:09:18 ID: bkZIOcof ここで聞いていいのかな、スレ違いでしたらスマソ テキストから四百字詰の枚数を換算するAppleScriptってありませんかね。 545 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:27:20 ID: gH5JIHoV これを改造してみれ。 ttp://www.artman21.net/product/Jedit3/Jedit3Script.html#anchor96681 546 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:37:44 ID: bkZIOcof ども、助かります。 いい機会だし勉強してみよ 547 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 1:42:46 ID: bkZIOcof ありゃ、開けない ……AppleScript本買ってくるかな 548 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 5:02:48 ID: ASsM4AEP >>542 レスありがとうございます。 どうもdo shell scriptの最終的なリザルトがUTF-8じゃないとエラーになる模様。 10.2.8 549 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 5:04:56 ID: ASsM4AEP >>544 いわゆる2バイト文字である日本語と半角アルファベットが混じったテキストの字数を数えるのはけっこう面倒な気がします。 字数数えてくれるエディタなかったかな。 550 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 5:56:12 ID: 2o7SY2N4 TextInfo.osax 551 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 6:23:25 ID: o/80F/KU これでいいのかな。シングルバイト文字もマルチバイト文字も1文字と数えます。 --クリップボードをUnicode textとして取り出し(Unicode textじゃないと化ける) set myClipboard to ((the clipboard) as Unicode text) --クリップボード内の行数を出す=改行コードの数 set CountOfParagraph to (count of every paragraph of myClipboard) --クリップボード内の文字をバラバラのリストにする set myEveryCharacter to every character of myClipboard --文字数を数え、そこから改行コードの数を引く(改行コードも1字として数えられるので) set numberOfCharacter to ((count of myEveryCharacter) - CountOfParagraph) --さらに400で割り、小数は繰り上げ。 set DivBy400 to (numberOfCharacter / 400.0) set numberOfWritingPad to round DivBy400 rounding up set midStream to (numberOfCharacter mod 400) / 400 * 100 --1文字でもオーバーしたら1枚と数える if DivBy400 < 1 then display dialog "ただいま原稿用紙 " & (numberOfWritingPad as Unicode text) & " 枚以下です。" & return & "(" & numberOfCharacter & "文字 / " & midStream & "%)" else display dialog "ただいま原稿用紙 " & (numberOfWritingPad as Unicode text) & " 枚です。" & return & "(" & numberOfCharacter & "文字 / 最後のページは" & midStream & "%)" end if 552 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 12:52:30 ID: MQc1eGXv >>549 他のは知らないけどmiはバイトじゃなく文字で数えたと思うよ。 553 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 13:35:28 ID: fxhOK5rr >>551 わざわざどうも、とても参考になり助かります。 帰ったら色々挙動など調べてご報告します。 554 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 13:58:57 ID: oumNNSO4 改行後の空白とか考慮するとなると段落ごとに処理しなくちゃならないね。 555 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 14:19:42 ID: B7cXghTH 幅を二十字に設定したエディタに流し込んで行数を数える、とかが一番確実なような。 556 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 14:24:51 ID: fxhOK5rr まあそうなんだけど、ファイル数がだいぶ増えたのとWinにそういうツールが存在しててMacにないというのも寂しいなと思ってた物で。 一度自動化できれば人為的なミスも大部減りますし 557 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 14:55:30 ID: BSPixBnQ >>556 文字コードが固定しているのなら、段落ごとに20文字で割って 20行で割ってってやっていったらできますよ。 それほど難しくないと思うから頑張ってみたら。 558 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 16:41:40 ID: P+EwWvKQ on open theList set theText to read item 1 of theList set n to 0 repeat with i from 1 to count every paragraph of theText set numberOfCharacter to count every character of (paragraph i of theText) set n to n + numberOfCharacter div 20 if (numberOfCharacter mod 20) > 0 then set n to n + 1 end repeat display dialog ((n div 20) as string) & "," & (n mod 20) as string end open on run open (choose file) as list end run 559 名前: 名称未設定 Mail: sage 投稿日: 05/01/21 21:44:22 ID: wevqu65C >>558 そのままだと空の改行をカウントしないんじゃね? 5行めの後に if numberOfCharacter = 0 then set n to n + 1 >>557 TEC OSAX入れるとテキストエンコーディングの判定と変換もできる 560 名前: 名称未設定 Mail: sage 投稿日: 05/01/23 23:12:13 ID: YU6TBoGB http://www.warprecords.com/bleep/ このサイト、試聴するのにとっても便利なんですが30秒で一時停止してしまいます。 もう一度再生ボタンを押せば通して聴けるんですが、この動作をアップルスクリプトでできますか? 561 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 0:41:46 ID: 5R+fZ1VG そこまで微妙なタイミングを要求される動作はちょっと無理ではないかと。 562 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 4:12:41 ID: 9zR/SnHH >>560 僕お得意のon ildeネタ(w 意外と動作良好。 Script Editorで保存するときにアプリケーション形式を指定、 「実行後、自動的に終了しない」のチェックボックスをONにして保存。 GUI Scriptingを使う以上、キーコードを送る際、 Safariを最前面にしないと無理です。Mac OS X10.3以降必要。 --http://www.warprecords.com/bleep/ 試聴Helper --再生/一時停止ボタンにフォーカスを合わせてから実行 on idle tell application "Safari" activate delay 0.5 set myTarget to windows whose name contains ("BLEEP" as Unicode text) set index of item 1 of myTarget to 1 delay 0.5 end tell tell application "System Events" keystroke tab --delay 0.5 keystroke tab --delay 0.5 keystroke return end tell --待機秒数 / 環境に合わせて調整 return 32 end idle 563 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 4:15:12 ID: 9zR/SnHH >--再生/一時停止ボタンにフォーカスを合わせてから実行 Tabを押して、です。再生/一時停止ボタンが黄色くなったらGO! 564 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 7:04:14 ID: 5R+fZ1VG うーん。わくわくするなあ♪ うまく行く事を祈る。 GUI scriptingでactivate待ちとかはdelayを使えばいいのか。勉強になりました。 565 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 19:49:35 ID: oypLhcax >>562 thx. しかしTabでもopt + Tabでも選択出来なかったです。。 566 名前: 名称未設定 Mail: sage 投稿日: 05/01/24 23:53:45 ID: 9zR/SnHH >>565 一度プレイヤーのところをクリックしてからTabを押してください。 なんかもう、まるでダメ男君みたいだね。 567 名前: 名称未設定 Mail: sage 投稿日: 05/01/25 4:13:02 ID: ccE8xFrU >>566 ありがとう。 できました。 >>562 ありがとう。 568 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 8:41:59 ID: DcrUlE5Z Pages、スクリプタブルじゃないじゃん……。 569 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 18:44:42 ID: +yPaCxWS ぱげすって何? 570 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 21:06:52 ID: uHC6uZmr >>568 うっわー。 Pages自体どうでもいいんだけど、 それをきっかけにスクリプタブルじゃないソフトが幅を利かせたりしたら嫌だねえ。 571 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 21:16:41 ID: zRdMYf2+ AppleとしてはこれからはAutomator用のアクション対応に力を入れるんじゃないの? 572 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 21:26:48 ID: 6ZCI/DB6 AutomatorのアクションってAppleScriptでも自作出来るとかじゃなかったかな。 下手に対応させないとAutomatorの首を絞めるかも。後々対応させるのでは? 573 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 22:14:04 ID: ZrbI+GPE あれ、乙女タソってAppleScript自動生成じゃないの? 574 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 23:27:19 ID: uHC6uZmr >>573 そうだといいなとは思ってます。 ADC会員で早く使ってる人は何も言えないだろうしなあ・・。 Appleから公式にそのへんのコメントないかな。 575 名前: 名称未設定 Mail: sage 投稿日: 05/01/26 23:45:35 ID: DcrUlE5Z >>570 まさにそういうことだね。 EGWordはAppleScriptへの対応ぶりがショボいし……。 Wordはちゃんと取り組んだことがないけど、MSアプリのAppleScript対応機能は バギーだとMARo氏が書いてたな。 ところで、MARo氏って「これこれ、こういう方法を発見した」だの書いておき ながら、具体的なことを書かないんだよね。 576 名前: 名称未設定 Mail: sage 投稿日: 05/01/27 7:36:20 ID: aPm7gDSr >>575 > MSアプリ〜バギー そうなんだ。 でも対応はいい方ですよね。使える命令多いし。 漏れはIEくらいしかいじらんですけどOE関係のスクリプトなんかも一時期は多かったような。 WordはVBのマクロをちょこっと触った事しかないな・・。 AppleScriptは実行専用にするとソースが隠せる事もあってか 昔からけっこう秘密主義の人も多いですね。 あまり整った言語ではない?ために直球ではできない事やわかりづらい事も多いので、 そこをどうにかする変則的なノウハウのようなものも生まれてくるし。 オープンにしちゃうとシェアウェアとか商売でやりたい人は困るんでしょうけど、まだまだ小規模なコミュニティーだと思うしオープンにしてほしいよなと思う事もしばしば。 有償であっても書籍などの形で公開してくれればまだいいんですけどね。 577 名前: 名称未設定 Mail: sage 投稿日: 05/01/27 18:48:15 ID: 4XTbR5mz 流れぶった切ってちょっと質問です。 環境はOS Xなんですが、Finderのentire contents命令って何かバグとかありますか? ググったらそれっぽい記述があったんだけど、どうもその情報自体古いみたいで……。 578 名前: 名称未設定 Mail: sage 投稿日: 05/01/27 21:04:03 ID: +NpEMX5w http://developer.apple.com/macosx/tiger/automator.html 579 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 5:23:24 ID: uh1bNbrD KonfにならってJavaScriptを標準にしてしまった方がいいような 580 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 7:33:03 ID: p1w7CzEl >>578 リンクありがとうございます。 AutomatorはASの自動生成をしてくれるインターフェースってわけではなさそうですね。 これはマジでASピンチ? >>579 ずーっとそれ書いてますけど(別の人ならスマソ)WindowsでWSH使った方が幸せなのでは? 漏れはAS覚えた事を無駄にしたくない&ASはラクで(・∀・)イイ!と思ってるのでMacを使い続けてるんですけど。 581 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 11:35:50 ID: b6oxW9te 漏れもJavaScriptだったら覚えていなかったと思う。 582 名前: 別の人 Mail: sage 投稿日: 05/01/28 13:45:41 ID: kOGmW4li >>580 実際どっちも使ってるんで、すすめられるまでもない。 こと、MacについてはAppleScriptにどうにかなってもらわなければ解決になら ないわけで。 でもそんなにずっと書いてるかな? 一回話題にしただけだけど。 配列、連想配列と正規表現のサポートは、普通にうらやましいでしょ? リストとレコードが配列と連想配列だけど、何かと使いにくいしなぁ。 OgreKit OSAX出ないかねー。 http://www-gauge.scphys.kyoto-u.ac.jp/~sonobe/OgreKit/#ToDo Late Night SoftwareからOSA用のJavaScript落として使ってみたけど、 抽象化されているのはFinderの一部オブジェクトだけで、 ほかは全部アップルイベントを生書きするみたい。 そう甘い話は無いってことか。 583 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 15:19:54 ID: p1w7CzEl うーん。>>582さんはばりばり使ってるからこそ限界を感じるんですかね? もちろんアプリごとの不統一だとかバージョンごとの細かいバグみたいなものとか標準での機能不足とか色々ASにしっかりしてほしい所はあるわけですけど、 だからといってJavaScriptで記述がメインになったからといってそれらが一気に解決するなんて事はありえないでしょうからね・・。 (正規表現っていうと文字列の検索とか置換とかでしょうか?  漏れは文字列扱う時は昔からPerl呼び出して使ってるし  それ用のOSAXもあるみたいですけど・・) 584 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 15:34:02 ID: p1w7CzEl (ああ、JavaScriptがいいっていう発言を何度も見た気がするのは  別のスレでDashboard関係の話題が出た時にも書いてあったからかな・・。  しかもその発言した人コンファブレーターのWidget作った事ないみたいだったし。  あれって使いたい機能によってはASやShellScriptを呼び出して使うようになってるはず。) 585 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 15:41:12 ID: c2xj6VuQ >>583 フィルタ参照形式で正規表現が使えないかと思ってるんだよね。 586 名前: 名称未設定 Mail: sage 投稿日: 05/01/28 16:24:46 ID: p1w7CzEl なるほど。それができたら便利そうかも。 587 名前: 名称未設定 Mail: sage 投稿日: 05/01/29 11:12:30 ID: adSmIe+r 俺はフィルタ参照自体よくわからん 何にたいしてどんなフィルタが実行可能なのかの一覧とか欲しいよほんとに 588 名前: 名称未設定 Mail: sage 投稿日: 05/01/29 13:19:34 ID: 3EeyHq0Y なんかFinderが悲惨みたいだね 589 名前: 名称未設定 Mail: sage 投稿日: 05/01/29 18:57:46 ID: t3TN3xE5 >>587 そのクラスが持ってるプロパティーで条件指定してフィルタかけるっていうのが基本なんぢゃないの?とおそるおそる書いてみる。 あるクラスは上位のクラスの属性を継承してたりするからそのへんわからんとあれだけど「AppleScriptリファレンス」とか、ネット上で公開してくれてる人が居る用語集とか見ると書いてありますよね。 釈迦に説法だったらごめんなさい。 >>588 現状でどんな問題があるかは知らないです。最近MLも見てないし。 590 名前: 名称未設定 Mail: sage 投稿日: 05/01/30 7:39:32 ID: WLZgYj6D すみません、質問になります。 Snapz Pro Xというスクリーンキャプチャのアプリケーションの 動画でのキャプチャを自動化したいと考えています。 applescriptへの対応は微妙なので、ショートカットキーを押していくことで対応したいと思い、 とりあえず>>207を参考にして tell application "System Events" tell process "Finder" keystroke "#" using {command down, shift down} end tell tell process "Snapz Pro X" keystroke "4" end tell end tell こう書いてみました。しかし、本当はビデオキャプチャ開始直前の状態までいってほしいのに、 Snapzのウィンドウが表示された時点で処理が一旦止まってしまいます。 プロセスとかウィンドウの優先順位の話だと思うのですが、あまり理解できていません。 どうすれば動くようになるでしょうか? 591 名前: 名称未設定 Mail: sage 投稿日: 05/01/30 17:48:59 ID: 3fghS8oa Snapz Proは、ほかのプロセスをストップしてるから無理ぽ。 試しに、Delayを書いてみると、 その後の処理はSnapz Proの支配下から逃れた後に実行されることが分かると思う。 tell application "System Events" tell process "Finder" keystroke "#" using {command down, shift down} end tell end tell delay 1 display dialog "Test" as Unicode Text Kinesisみたいにキーボードにマクロが付いてるやつを使えば、 こんなケースでも自動化できるけどね。 592 名前: 名称未設定 Mail: sage 投稿日: 05/01/30 23:34:08 ID: Gkkht6T/ 虎の Automator おもしろそう。 サイト見たかぎりでは関数をブラックボックス化して組み合わせるみたいだから フォーマットに従えば自作のスクリプトも使えそうだ。 593 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 0:50:27 ID: R1ubLn1J ・AutomatorのAction(電子ブロックの部品みたいなの)は、AppleScriptと  Objective-Cのどっちかで書くことになっている ・XcodeのActionタイプのプロジェクトに、AppleScript Automator Actionと、  Cocoa Automator Actionがある。 ・ActionはUIを持っているけれど、main.nibのviewをInterface Builderでエ  ディットすることで作る。(AppleScript Studioでのノウハウが流用可能?) つまり、AutomatorでAppleScriptが捨てられることは無いってことだ。むしろ、 桧舞台に上がったようなもんじゃない? AppleScript Automator Actionでプロジェクトを立ち上げると、 以下のスケルトンが貼られてるみたい。 on run {input, parameters,} set output to {} if |ignoresInput| of parameters is false then -- process input items into output items end if return output end run inputオブジェクトには、直前のワークフローのActionのoutputが大抵リスト形 式で含まれている。parametersオブジェクトにはActionのユーザーインター フェースで作られたすべてのセッティングが含まれている。 Action終了時には、次のActionに渡すオブジェクトを返り値として用意する必 要がある。 だと。 594 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 1:37:37 ID: bH+T6ZLE 情報漏洩 キタ━━━━(゚∀゚)━━━━!!!! 595 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 2:04:49 ID: exUqoKA4 >>594 >>578 596 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 2:41:44 ID: R1ubLn1J Automatorは、Mac OS X Tigerのパワフルな新機能の一つ。プログラムすること 無しに、素早く、効果的に、楽々と、毎日繰り返す手作業を能率化できる。 大量のファイルのリネーム、数ダースもの画像の処理、アドレスブックに登録 した従業員の作業カレンダー作りといった仕事を、容易に「オートメート」で きる。 一度「オートメート」すれば、それらの仕事を何度も何度も繰り返せる。 --- これってUNIXのツールチェーン、コマンドの直交性みたいな話でなかなかおも しろいよね。Automatorが広く認知されたプラットフォームになったら、案外凄 いことになるかも。ちょっと形は違うけど、OpenDocを思い出す。 597 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 3:20:41 ID: R1ubLn1J Automatorは、「Action」を積み重ねて構成する。 おのおののActionは、一つの仕事をこなすようにデザインされている。 例えば、Webページからリンクされた画像を見つけ出したり、あるフォルダにあ るファイルを別のフォルダにコピーしたりといったようなことだ。 一つのツールですべてのことをやってしまうのではなく、一つのActionは、 「一つの仕事をうまくやる」ようにデザインされている。 Automatorのパワーは、ワークフローの中のActionの連鎖に由来している。 個々のAction一つでは成し遂げられない仕事でも、ワークフローの中にあるい くつかのActionが力を合わせることで、素早く、容易に成し遂げられる。 この小さな個々の部品から機能性の構築をするというアイデアは、古きよき UNIXに始まったものだ。 Automatorのもたらした躍進点は、直感的なGUIで小さなツールの組み立てをや りやすくしたこと。 スクリプターや開発力のある人はだれでも、Actionの重要な作成候補者だ。そ して、ほとんどのケースで、スクリプトを手で書くよりそれを早くできるよう になるだろう。 # 「それ」が何を指してるのかよく分からん。Actionを作ることかしらん。 # よく読んだら、やっぱり古きよきUNIXの考え方にヒントを得たものなのね。 598 名前: 名称未設定 Mail: 投稿日: 05/01/31 3:50:00 ID: mWfqvAGV すみません。複数のJPEGをPowerPointに1ページ一枚ずつ、一気に貼付けていくスクリプトを 誰か晒していただけませんか? 599 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 3:50:33 ID: R1ubLn1J Actionの美点は、たくさんの機能性の源泉を活かせること。 Actionは、Core ImageやCore Dataなどのcore OSフレームワークの機能にアク セス可能。コマンドラインツール環境の「てこの力」や、個々のアプリケーショ ンの専門化した特徴をうまく利用することもできる。 Actionは、AppleScript、もしくはObjective-Cのいずれか、容易な方で作成で きる。 Automatorの登場は、顧客がワークフローで使うための小規模な機能性の拡張を もたらすちっちゃなユニットの提供機会の創出を意味する。 あなたがアプリケーション開発者なら、ユーザのためのAction作りは、非常に 大きなビジネスチャンスだ。 # かなり適当な訳 600 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 3:53:42 ID: R1ubLn1J >>598 Office Xと2004でAppleScriptが大分違うと思うんだけど、どっちよ。 601 名前: 名称未設定 Mail: 投稿日: 05/01/31 3:56:48 ID: mWfqvAGV >>600 あ、2004です。おねがいします。 602 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 4:06:16 ID: 7HMBvwK8 >>601 おねがいします。じゃないだろ。 603 名前: 名称未設定 Mail: 投稿日: 05/01/31 4:11:44 ID: mWfqvAGV ひーん。おながいしまつ。 604 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 5:43:26 ID: R1ubLn1J つかもう寝ないと……。 Finderから得たファイルのリストをファイル名順にならべるのどうやるか忘れた。 do shell scriptでsort呼び出したはいいけど、戻すところでつっかかった。 ソートされたファイル名のリストを作ったら、後はrepeat文囲んでガガっとやればOK。 myPictureFileNameのクラスはaliasじゃなくてテキストね。 画像はアスペクト比が同じじゃないとうまくいかない。 --テストの画像 set myPictureFileName to "Macintosh HD:Users:anonymous:Desktop:picture.pct" tell application "Microsoft PowerPoint" --スライドをケツに一枚足す do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank" --ケツの一枚にmyPictureFileNameで指定したファイルを貼り込む。 --20とか640とかのパラメータは自分で決めな。 do Visual Basic ("ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & myPictureFileName & "\", False, True, 20, 20, 640, 480" end tell 605 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 5:56:14 ID: R1ubLn1J ん? 上のだと動かない? 一応、jpegも貼れたぞ。 set myPictureFileName to "Macintosh HD:Users:anonymous:Desktop:picture:picture01.jpg" tell application "Microsoft PowerPoint" do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank" do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & myPictureFileName & "\", False, True, 20, 20, 640, 480" end tell 606 名前: 598 Mail: 投稿日: 05/01/31 8:57:04 ID: mWfqvAGV ありがとうございまつ。これをもとにガンガッテみまつ。 607 名前: 598 Mail: 投稿日: 05/01/31 12:38:07 ID: mWfqvAGV できました。ありがとうございました。 on open pictureFiles repeat with anItem in pictureFiles tell application "Finder" to set aPicture to anItem as string set aPicturePath to (quoted form of POSIX path of aPicture) as Unicode text do shell script "echo $[ `sips -g pixelWidth " & aPicturePath & "|grep [0-9]|awk '{print $2}'` / `sips -g pixelHeight " & aPicturePath & "|grep [0-9]|awk '{print $2}'` ]" set horizontalPictFlag to result as number tell application "Microsoft PowerPoint" do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank" if (horizontalPictFlag as boolean) then do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, 0, 0, 720, 540" else do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, 157, 0, 405, 540" end if end tell end repeat end open 608 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 22:06:25 ID: mIKwbED0 >>578 を見る限り、 AutometorはコマンドラインのGUI版って感じかな 普通のユーザーにも簡単に、たぶんAppleScriptよりも ずっと容易に使えるだろうけど、ただ、この手のものは 制御構文や変数の扱いが貧弱なのが普通だから、 あまり複雑な処理には向かないと思う。 アプリ開発者から見ると、Autometorはユーザーに 簡易マクロ機能を提供する手段として、あるいは、 汎用のデータを扱うアプリなら、これをプラグイン環境 としてとらえることもできるかも。 スクリプターから見ると、Autometor自体がスクリプタブル なのかが気になる。いや、それよりAutometorのコマンドは 入出力の定義を持っているわけだから、これをAppleScript上の オブジェクトの型として直接扱えたらきっと楽しい…が、 それは難しそうな気が…。 609 名前: 名称未設定 Mail: sage 投稿日: 05/01/31 22:41:48 ID: ORR1Vo1i 基本的に用意しといたブロックを一本道でつなげた構造で、 複数のブロックにまたがるような制御構文や変数は無理そうだね。 もちろん個々のブロックの中では自由に記述できるだろうけど。 ところで、引数と返り値のバケツリレーで型チェックはないっぽいので 自分で書くとつまらないバグに悩まされそうで心配。 Javaで書けばこんなカンジでしょ?↓   Object[] hoge(Object[] input, Object[] parameters) {     ...   } 何番目のデータが何を表して、ということを自分で管理しなければならず、 しかも実行時エラーの報告が今のようなデタラメだらけでは・・・ 610 名前: 590 Mail: sage 投稿日: 05/01/31 23:00:29 ID: 9m7bIpaB >>591 Autometorで盛り上がっているところすみません。 無理ですか… 他のプロセスをストップしているってことだったんですね、つまりアップルスクリプトの プロセスもストップしていると…、そりゃ動きませんよね。 なんだかものすごく納得です。 納得はしましたが、困ったなぁ。 何か裏技的な方法ないんでしょうか。 Kinesisというのは、あの不思議なキーボードですね。 これはこれでほしいけど、やりたいことは人の手を入れない自動化だったので、これまた無理ですね。 とほほ。 611 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 0:43:53 ID: fl5m62Mg tell application "iTunes" set thisEncoder to item 4 of encoders set current encoder to thisEncoder convert selection end tell iTunesのスクリプトメニューから「MP3に変換」を実行するスクリプト。 (時によってAIFFにしたりACCにしたりするので同様のスクリプトを用意) しかし必ず「AppleEventがタイムアウトしました」というメッセージが出てくる。 OKを押してしまえばエンコードが進行するとはいえ、解決策はないもんでしょうか。 delayじゃだめっす。 612 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 0:51:59 ID: Hf6pjnV2 >>611 with timeout of 6000 seconds end で囲んでみるとか 613 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 0:55:04 ID: oeenYfdD >>611 以下のような感じでどうでしょうか。 tell application "iTunes" set thisEncoder to item 4 of encoders set current encoder to thisEncoder ignoring application responses convert selection end ignoring end tell 614 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 1:25:18 ID: fl5m62Mg >>612-613 ありがとうございます、が、どっちも解決せず。 どうもiTunes側のせいのような気がしないでもない。 AppleEventがよくわからないからな〜 615 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 1:29:15 ID: tp0PTV+S >>610 Snapz Proをあきらめたら? でも、Snapz Proほどパーフェクトなキャプチャユー ティリティもまた無いんだよね。 古いキーボード改造してPICつないで自動化したら? 押す必要があるキーボー ドの個々のスイッチに、フォトカプラを介してPICのポートをつなぐわけ。 プログラムはループ待ちとポートへの出力命令のみだから簡単。 初歩の初歩であるLEDの点滅レベルでOK。 インターバル時間が長いとタイマの分周器を使っても間に合わないかもしれな いから、レゾネータはkHzオーダーの周波数の低いものにしておくと、考えるこ とが少なくていいかも。 PICはライターが必要だから、それだけで6,000円ぐらいは見ておく必要がある けど、それ以外の材料費はPIC含めて1,000円以内で収まると思う。 PIC タイマ シーケンサなどでググるといいよ。 秋月通商から4CHのシーケンサキットが出ているから、これをキーボードにつなぎゃOKかも。 http://akizukidenshi.com/catalog/items2.php?q=%a5%b7%a1%bc%a5%b1%a5%f3%a5%b5&s=score&p=1&r=1&page=#K-00127 http://www.t-net.ne.jp/~masa_hp/diy/fr_sequencer.html 616 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 2:08:22 ID: tp0PTV+S >>607 なかなかやるね。ポートレートとランドスケープで処理を変えるわけか。 $[ ]この構文は知らなかったなぁ。 自分はexpr A / Bだったな。echo A / B | bc とか。 しかし、複数のファイルをDrag & Dropすると、必ずしもファイル名順にならなくない? だれもファイル名順じゃなきゃダメとはいってないけどね。 617 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 2:26:59 ID: tp0PTV+S >>608 普通のユーザーにも自動処理の門戸が開かれるということが重要。職場の人間 とか見てると、言語やスクリプトはおろか、マクロ、キーマクロすら知らない し理解不能だから、ほとんど手作業だしね。そういう人間向けの道具としては、 分岐処理や変数などは理解を妨げるだけなので不要だと思う。 一本道でも素人に自動処理が出来るんであれば、それは喜ばしいことだと思うよ。 WindowsはいきなりWSHだから普通の人には無いも同然。普通の人に使わせると いうアプローチの自動処理環境がOSに標準装備って、結構痛快。 >>609 型チェックはあるっぽくない? Actionのプロパティで入力と出力の型を宣言するのでは。 それを見てAutomatorがActionの嵌合をチェックするんじゃないかな。 Actionの天地にある「Files/Folders」や「Images」というのがそれだと思うん だけど。 618 名前: 607 Mail: sage 投稿日: 05/02/01 4:38:40 ID: VaIkiZyf >>616 touch `jot -w %03d_file 100 1` と on open myFiles my main(myFiles) end open on run tell application "Finder" set myFiles to selection my main(myFiles) end tell end run on main(myFiles) set myFilesPath to {} repeat with anItem in myFiles set myFilesPath to myFilesPath & (anItem as string) end repeat choose from list myFilesPath end main で試した限りではなんとか行けそうに思うのでつが...。 # この板と海上氏とこばやし氏に感謝。 619 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 5:16:31 ID: tp0PTV+S その場で整然と作ったファイルなら順序よくならぶけど、 実際に使う画像は、あっちこっちから集めてきたものではない? どっかの実際に使ってるフォルダでselectionを取得してみたら? tell application "Finder" selection end tell ……で、今調べてみたら、アイコン表示とリスト表示のselectionは、ファイル 作成日、もしくはファイル変更日順みたい。カラム表示のselectionはファイル 名順のリストになった。selection取得時にカラム表示にしとけば、ソートはい らんね。 620 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 8:20:28 ID: oeenYfdD >>607,616 やってる事、言ってる事が高度でわからにゃあ・・。 $[`いろいろ1`/`いろいろ2`] の前後のどちらかが場合によって実行されるという事? ネットのシェルスクリプト入門のページに載ってるでしょーか。 621 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 8:23:12 ID: oeenYfdD >>617 MS-Wordのヘルプとかけっこう丁寧にマクロの書き方説明してあったと思うけどね。 ヘルプだけ見て簡単なタグ挿入みたいなの書いた事あるし。 普通の人は存在も知らないだろうね。 622 名前: 607 Mail: sage 投稿日: 05/02/01 13:15:10 ID: VaIkiZyf >>621 $[ 4 / 3 ]が整数演算。この場合は1になる。 つかうjpgが4:3か3:4なので。やけに縦長・横長なファイルだと{"0", "1"}以外になって >>607のスクリプトではエラーになる。 sipsについては↓ここ参照。 http://pcweb.mycom.co.jp/column/osx/073/ 623 名前: 622 Mail: sage 投稿日: 05/02/01 13:16:16 ID: VaIkiZyf レス番間違えた。 >>620ね。 624 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 14:15:02 ID: tp0PTV+S >>619 Finder Basics見ると、将来の版ではちゃんとソート方法を明示的に指定してリ ストが獲得できるようになるようだね。参照が格納されたリストはソートしづ らいから、これは助かる。Tigerに期待。 sort: (NOT AVAILABLE YET) Return the specified object(s) in a sorted list sort reference -- a list of finder objects to sort by property -- the property to sort the items by (name, index, date, etc.) [Result: reference] -- the sorted items in their new order >>622 普通の人は、 理解不能なもの>余計な努力をする必要があるもの>不要 マニュアル>見えない>言葉で説明されても理解不能>人に目の前でやってみせられて初めて理解 我々みたいに、「楽をするためならどんな努力でもする」、という人間とは真 逆。Automatorですら、彼らにかかると上記から逸脱できないかもしれない。 625 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 14:44:38 ID: DkBGhz+8 >>622 sipsはAppleScriptからも使える……のだが、よくわからんw たぶんこんな感じだと思う set selImage to choose file with prompt "Choose an image" tell application "Image Events" set anImage to open selImage set imgDimensions to dimensions of anImage close selImage end tell set horizontalPictFlag to (item 1 of imgDimensions) >= (item 2 of imgDimensions) --横長か正方形ならtrue、縦長ならfalse 626 名前: 622 Mail: sage 投稿日: 05/02/01 15:07:20 ID: VaIkiZyf >>625 おぉ。これは知らんかった。 ありがォ。 627 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 17:15:20 ID: oeenYfdD >>622,623 ありがとうございます。 >>625 おぉ。これまた楽しそう。 628 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 19:10:49 ID: DkBGhz+8 >>627 Image Eventsについては、 ttp://www.apple.com/applescript/imageevents/index.html で、よろしこ 629 名前: 611 Mail: 投稿日: 05/02/01 19:33:52 ID: 1FXb6MdN よくわからんので結局try〜end tryで囲ってムリヤリ解決させました。 630 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 20:53:32 ID: YYzm9ADL /Library/Scripts/Folder Action Scripts にImage Events使ったフォルダアクションのサンプルがあります。 631 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 21:51:47 ID: O30SLqiC >>629 それやってる人、他にもいるね。 他に解決法って無いのかも 632 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 22:11:48 ID: oeenYfdD 試してみようと思って1曲AIFF→MP3変換してみたけど、 タイムアウトのエラーが出なかった・・。 長い曲じゃないとダメなのかな。 スクリプトエディタから実行したから? 633 名前: 名称未設定 Mail: sage 投稿日: 05/02/01 23:18:44 ID: h01xe7q2 おなかちゅいたよまみー 634 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 2:36:05 ID: a4wOLqCY >>632 スクリプトエディタからだと大丈夫なのよ。 iTunesのスクリプトメニューから「スクリプト書類」でやるとだめなのよ。 「アプリケーション」で保存してやればいけるけど、なんか居心地が悪いし。 635 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 3:55:30 ID: /90GZ5L+ Jedit Xが今のベータでAppleScript対応になったね。結構用語が整理されてい る。強化されたり、サックリ無くなってたり。 スクリプトウインドウ、マクロメニューが前より強化されたのはいいね。 個人的には、allow redraw / inhibit redrawが無くなったのが気になる。 パフォーマンスは大丈夫だろうか。 bookmarkも使い手があるね。正規表現で文書をなめて、ひっかかったのを一覧 にする、なんてことができると思われる。 Jedit XはCocoaだからI-Searchが使えるし、例のカスタマイズで多段のキーバ インドが使えるのがいいね。そろそろ4から移行のタイミングかもしれん。 636 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 4:02:35 ID: 5R81zHAk なるほどね。 うちのiTunes 4.7.1 @ OS 10.2.8 には スクリプトメニューが無かったんで取りあえずエディタ上から実行してみたんだけど、環境依存的な問題なのかな。 間にはさまるメニューの実行環境がイベントの終了メッセージ待ちしててタイムアウト?? (メニューエクストラのスクリプトメニューの事?) > 居心地が悪いし しょっちゅう使うものだったらアプリにしてDockとかDragThingとかに入れとくのもアリと思うけどな。 勝手に終了しないようにしてon reopenで実行されるようにしとけば起動時間もかからないし。 637 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 4:05:02 ID: 5R81zHAk >>635 うち試せないんでがしがしフィードバックしてください。 削られた用語は単にまだ実装できてないのか、 それとも将来にわたって不要と考えて削ったのか、 どっちなんでしょうね。 OS上げたら試すつもりなんで楽しみだ。 638 名前: 607 Mail: sage 投稿日: 05/02/02 4:34:37 ID: oSqPmYuv 結局、Finderでセレクト後、ScriptMenuから実行することにした。>>625に感謝。 tell application "Finder" try set current view of window 1 to column view end try set pictureFiles to selection my main(pictureFiles) end tell on main(pictureFiles) repeat with anItem in pictureFiles tell application "Finder" to set aPicture to anItem as string tell application "Image Events" set anImage to open aPicture set imgDimensions to dimensions of anImage close aPicture end tell set widthValue to (item 1 of imgDimensions) set heightValue to (item 2 of imgDimensions) set aspectRatioValue to (heightValue / widthValue) 次につづく。 639 名前: 607 Mail: sage 投稿日: 05/02/02 4:35:43 ID: oSqPmYuv つづき。 if aspectRatioValue = 0.75 then set outputDimensions to {0, 0, 720, 540} else if (aspectRatioValue > 0.75) then set outputWidth to (((540 * widthValue) / heightValue) div 1) as number set widthMargin to ((720 - outputWidth) / 2) div 1 set outputDimensions to {widthMargin, 0, outputWidth, 540} else set outputHeight to (((720 * heightValue) / widthValue) div 1) as number set heightMargin to ((540 - outputHeight) / 2) div 1 set outputDimensions to {0, heightMargin, 720, outputHeight} end if end if set outputString to item 1 of outputDimensions & ", " & item 2 of outputDimensions & ", " & item 3 of outputDimensions & ", " & item 4 of outputDimensions tell application "Microsoft PowerPoint" do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank" do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, " & outputString end tell end repeat end main 終わり 640 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 5:17:16 ID: /90GZ5L+ >>637 名前が変わっていたり、別々だったものが一つのメソッドのプロパティという 形になったりで、仔細を比較しないと全体像が見えない。 無くなったと思われる用語 aliasFile, picture, movie, sound, play --> attachmentになった? byte, line, text flow(story) -->lineとparagraphの違い何だっけ。 select / selection --> さすがにこれはサポートされると思われ。つか今びっくりした。改善しる!! undo, revert --> スクリプトからはあまり使わないよね。 style run --> attribute runになったっぽい? text style info --> colorというのが増えた。ほかは? OpenURL --> open locationがあれば無くても困らない? allow redraw / inhibit redraw --> Cocoaだといらない? justify speak --> AppleScriptに元々あるしね……。 suspend updateMacroMenu --> システム変わって不要になったのかも。 641 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 5:36:27 ID: /90GZ5L+ >>607 結局Finderからselection取得する前にカラム表示にしたのね。 そこまで書けるならPowerPointの部分も自分で書けるだろうに(w スクリプトと旅の恥は書き捨てだから、目的を果たすことこそが重要か。 >>637 あ、今のバージョンはAppleScriptに対応した最初のベータ版だから、リリース 版までには改善されると思われる。 642 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 6:45:50 ID: 5R81zHAk >>640 報告ありがとうございます。 たしかJeditの場合は 文書幅によって決まる表示上の行→line 改行まで→paragraph だった気がします。 両方あった方が便利な時もあると思うんだけどな・・。 (関係無いですがパラグラフの終端に改行を含むかどうかの扱いがエディタによって違ったりしたはず) Jeditで使った事ないですけどOpenURLってヌevent WWW!OURLネなんですかね? これ使うとAppleScript対応してないっぽいWebブラウザでもURL開けたりするんだけど古いイベントだから無くなるのかなあ。 まあopen locationでいいんですけど。 643 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 16:33:50 ID: kBgS6He+ >>642 つか、全部付属ドキュメントに書いてあった。 selectionはselected textなどとして取得できること、 set selected text toなどでselectの代わりになること、 クラス構造の変化、文字コード関連など、重要な情報満載ですた。 644 名前: 名称未設定 Mail: sage 投稿日: 05/02/02 19:52:43 ID: 5R81zHAk >>643 付属ドキュメントは大事ですね。 俺も自分でDLしない事には始まらないですね。うずうず。 そういうやり方がOS Xっぽいんですかね? SafariもドキュメントのURLをsetってやり方でページ開いたりするみたいだし。 645 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 3:53:26 ID: 0kuLDbVl OS Xっぽいというよりは、OOPっぽいというべきじゃないかな。 http://e-words.jp/w/OOP.html オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの は、OOPの基本概念ってことでいいんだよね? よく分からん。それは表面的な理解だって話もあるし。 646 名前: 607 Mail: sage 投稿日: 05/02/03 6:10:47 ID: Mt/B37Ao >>641 いや、VBAはてんでわからんかったので。PPTもTestDriveで試してたんです。 実は、俺のツレが毎週50枚の写真を使ったプレゼンに倒れそうになってたので、 「俺がスクリプトでなんとかしてやるから、iBook買え!!!」 なんて言ってしまって。 「2ch 新・mac板のおかげで出来た」と伝えておきました。(w 647 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 7:07:45 ID: 0kuLDbVl >>646 ほー。そうなのか。あつい友情(愛情?)だね。 Office XのPPTのAppleScript対応はdo visual basicのみだったけど、 2004になってからガツンときてるから、2004ならAppleScriptでも 同じことができるはずだよ。 今ExcelのVBAを勉強してるので、MSのアプリはVBAの方が分かるというだけ。 VBA馬鹿にしてたけど、結構おもろい。 648 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 12:28:33 ID: QjSLg15A >>645 >オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの >は、OOPの基本概念ってことでいいんだよね? 俺的なOOPの基本概念 ・実装(メソッド)とデータ(プロパティ)を一体化させた  オブジェクト(クラス)を定義できる ・変数の隠蔽(カプセル化)が可能 ・継承したり抽象化したりというOOP的な考え方を支える仕組みがある 個人的にはカプセル化ができるか否かが最も重要 649 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 18:23:14 ID: 7ps7o9II そういや OS X になってからクラス構造がオブジェクト指向的に改変されたな 650 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 18:52:48 ID: OJ1xhJAS JavaScriptは基本的にオブジェクト指向なのに 変数が全部グローバルスコープなのが気持ち悪いね。 いちおう予約語にclassとかあるけど将来の拡張のためというよりは Javaのをパクってきただけな希ガス。 651 名前: 名称未設定 Mail: sage 投稿日: 05/02/03 20:07:31 ID: 89KovW5s >>649 Apple Event Object Modelで最初からオブジェクト指向になっている。 1992年のこの記事は今でも通用する。 http://www.mactech.com/articles/develop/issue_12/Berdahl_final.html OSXになってFinderを始め色々なアプリのApple Event Object Model サポートはかなり後退した。今は少しずつ修復している過程 652 名前: 名称未設定 Mail: 投稿日: 05/02/06 3:09:17 ID: UJtEtkP6 オブジェクト指向言語で構造化プログラミングしてる奴が多いな。 この考え方自体古いか。 653 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 3:25:56 ID: 2vVTYR/X おまいらせっかくshellscriptが使えるのに なんでいまさらapplescriptなんだよ。 654 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 3:29:24 ID: DQPJzWp3 (´,_ゝ`) 655 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 3:32:34 ID: gDoRxMKQ >>653 m9(^Д^)9m ポッギャ─────!! 656 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 4:27:09 ID: hStjbpSE do shell script が最強だということに何故気がつかないのだろう... 657 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 4:47:47 ID: 0y2KSM4d どういう釣りなんだか判りかねる 658 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 5:41:22 ID: +BeKYxey >>653 Shell ScriptでAdobeアプリやOfficeを制御してみてくれ。 Shell ScriptでCocoaアプリを作ってみてくれ。 Shell Scriptも使ってるがな。併用しないと辛いし。 ともすると、「全部それShell Scriptでいいじゃん」 みたいなのを書いてることもある。 659 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 7:57:08 ID: Aub/Z2I5 >>653 爆笑した いつのまにこんな良質の餌をかけるようになったのか 向こうでいい勉強してるなぁ 660 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 8:26:13 ID: 2vVTYR/X まぁ俺も>>653に同意。 OSXになってからバッチ処理はシェルスクリプトでやればいいし、 アップルスクリプトの出番が少なくなってるのも事実。 シェルスクリプトからでもアップルスクリプト呼びだせるしね。 例えば、 osascript -e 'tell application "Finder" to empty trash' osascript -e 'tell application "Finder" to eject disk "DVD100GIRLS_02"' とか。 661 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 8:28:16 ID: Aub/Z2I5 >>660 そのイジェクトしたDVD100GIRLS_02くれ 662 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 8:34:50 ID: 2vVTYR/X >>661 いいよ。住所と名前教えたら着払いで送ってあげられるけど? 663 名前: 25 Mail: 投稿日: 05/02/06 8:42:12 ID: 8vGLAJKs 664 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 11:01:41 ID: ieaqnQz9 ↑ 皮先君 キタ━━━━(゚∀゚)━━━━!!!! のか? もうあのスレ見るの止めたけど。 665 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 14:34:59 ID: hStjbpSE 653 :名称未設定 :05/02/06 03:25:56 ID:2vVTYR/X おまいらせっかくshellscriptが使えるのに なんでいまさらapplescriptなんだよ。 660 :名称未設定 :05/02/06 08:26:13 ID:2vVTYR/X まぁ俺も>>653に同意。 OSXになってからバッチ処理はシェルスクリプトでやればいいし、 アップルスクリプトの出番が少なくなってるのも事実。 シェルスクリプトからでもアップルスクリプト呼びだせるしね。 例えば、 osascript -e 'tell application "Finder" to empty trash' osascript -e 'tell application "Finder" to eject disk "DVD100GIRLS_02"' とか。 わかりやすい自演、乙。 666 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 14:41:05 ID: TlPR2W2E おまいら>>653とか>>660とか叩いてるようだが、 正論だと思うぞ。 AppleScriptでしかできないことは確かにまだまだ多いが、 一方でShellScriptの方が向いてる分野も多々ある。 これからのOSXerの正しいあり方を指摘していると思われる。>>653 667 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 16:09:00 ID: 9sLDKg67 ID変えてまで自演乙。 668 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 16:18:07 ID: 5moctVhn これからのってんなら、Automatorで何をどこまで組み合わせられるか、じゃねーの? 669 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 16:21:24 ID: +BeKYxey おまいらせっかく(Perl|Ruby|Python)が使えるのに なんでいまさらShell Scriptなんだよ。 と言い返しちゃうぞ。 (Perl|Ruby|Python)がShell Scriptを無用化するほど多機能で記述力が高いほか、 Shell Scriptにあるクオート、エスケープの問題が無いからね。 メタキャラクタやクオートがシェルで展開されることを考える必要が無い。 evalで多重展開するスクリプトを書いてみな。どこをどうエスケープしていい か、わけわかんなくなるから。evalの中でメタキャラクタでも使おうもんなら、 もう何が何やら。 シェル変数のスコープの問題もある。この処理はカレントシェルで実行されて いるのか、子亀か、孫亀か、孫亀からのResultの継承は、などということを考 えるうちに眠くなってくる。 だから、何でも自分でやっちゃう(Perl|Ruby|Python)みたいなインタプリタが 台頭するわけ。 AppleScriptにも、>>653を昨日感動させたパイプやバッククオートメカニズム に匹敵する武器がある。それは、アプリケーション間通信。 AppleScriptの本質は、最初からそれ。 だから、言語仕様ががらんどう。 OS Xになって、AppleScriptが「使ってやる」対象にShell Scriptも入っただけ。 そう、AppleScriptはスクリプト界のプロデューサーなのだよ。 つまり、スクリプト界の つんく。すべては手駒に過ぎない。 670 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 20:20:51 ID: Jz7NgqXA 傀儡使い 671 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 20:22:08 ID: Jz7NgqXA >>669 ところで 『>>653を昨日感動させた』の所は人違いと思われ。 672 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:23:12 ID: xaloEAaT >>669の「それは、アプリケーション間通信」を忘れて javascriptだのshellなんたらだの言ってる香具師多いね。 673 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:28:05 ID: QW3lm4+V >>669 >>672 つか、shellscriptの中にapplescriptを埋め込めるのに、 なんでわざわざ難しいapplescriptで作ろうとするのかな、 と疑問に思っただけ。 PerlとかRubyとかPythonといった、素人には「わけわからん言語」 のことなど誰も聞いてないよ。 ここは素人のための素人によるスレであって、 Perlとか使いこなすプロの方はPerlスレで勝手に暴れてくれ。 少なくとも俺はshellscriptに関しては数日で学習できたが Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど 学ぶだけ時間の無駄と思ってる。 674 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:33:51 ID: hStjbpSE 釣れますか? 675 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:38:22 ID: xaloEAaT さっぱりわからん 676 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:43:57 ID: VITFGbAv 釣られますか! > Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど >学ぶだけ時間の無駄と思ってる。 どんな言語も最初は意味不明。perlは言う程、シキイ高くない。 折れにとっては、AppleScriptの方が難しい。 677 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 21:48:34 ID: 048ghQjd やっぱ皮先だ〜。隔離スレに(・∀・)カエレ! Paperにケツを拭いて貰え。>>673 678 名前: 名称未設定 Mail: sage 投稿日: 05/02/06 22:53:57 ID: 4HdbS1o+ 皮先くんの今日の行動。 皮先くんosascriptを知る。 ttp://pc7.2ch.net/test/read.cgi/mac/1105074933/406 このスレで釣りを始める。 >>653 自演する。 >>660 IDの変えかたを知る。 >>666 再度釣る。 >>673 皮先くんにまじレスしとくと物事には適材適所というのがあって Shell ScriptにはShell Scriptの AppleScriptにはAppleScriptの Perlその他にもそれぞれ得意不得意があるので使い分けましょう。 679 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 4:34:22 ID: InOvKOYR どれが誰とかは知らないけど、 結局>>678さんの最後に書いてる事に尽きる。 適材適所。 それでも言いたい事を書いちゃう。 >>673 Perlは色々な環境で同じスクリプトが動く&CGIまで作れちゃうので勉強量的には省エネと思う。 どうせシェルスクリプトで文字処理するなら何か勉強しないといけないし、 制御文だって変数だって使うわけだし。 可読性についても長くなった時のエスケープ・クォートのややこしさ等考えると シェルスクリプトよりも読みやすいと思う。それは書きやすいという事でもあり。 正規表現はややこしくなるとひどいけどシェルスクリプトでも不可避のものだし。 データの入出力の部分がわかれば後は書けると思う。 省略して書く方法が多いので省略せずに書いた方がわかりやすい。 AppleScriptを一番上の制御役に持ってくるとダブルクリックで起動できたりドラッグ&ドロップさせたりできるし、ボタンやメニューのついた立派なGUIアプリにもできる。 GUIアプリケーションを制御して仕事させると余計な描画が付くぶん遅かったり邪魔だったりするが、工程が目で見えたり細かい処理を勝手にやってくれるので安心という利点もあったりする。 逆に言えばシェルスクリプトによるCUIソフトの制御は速さが利点かな。わかってる人が書くと構文もすごく短くて済むしね。 680 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 9:57:22 ID: UliWkihy >>678 >>679 俺様は皮先くんです。 ありがとうございます。 そんな意見を待ってました。(他のやつらはチンカス以下!) やはり適材適所ですよね。同意です。 Perlもよさそうですが、最近phpが多いような気がするのですが、 phpを学ぶのと、Perlを学ぶのと、どっちかひとつだけ、 としたらどっちがおすすめですか? 俺みたいなものぐさにとって。 681 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 10:28:21 ID: NS99lvIC ここはAppleScriptのスレ。 AppleScriptに関連してのShell ScriptやPerlの話しならともかく 単体でそういう話がしたいのなら別スレでどうぞ。 682 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 10:32:21 ID: Uj/bmBQ6 相手してんな、バカ。>>679 683 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 10:47:28 ID: b39GZLuj >>680 お前はまず人に聞かずに自習することを覚えろ。 684 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 11:05:42 ID: UliWkihy >>683 おまえには聞いてない。 685 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 12:25:10 ID: dcniy7vh 隔離スレに(・∀・)カエレ! 何のためにPaperが控えてると思ってんだ? お前のケツを拭くためだぞ。 686 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 12:49:38 ID: UliWkihy それもそうですね。 つか、おまいらを釣るのにも飽きてきたので (だって簡単すぎるしw pgr) そろそろ巣に帰りますね。 687 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 15:18:42 ID: c6LiRSrB >Perlもよさそうですが、最近phpが多いような気がするのですが 気のせいだから。キミはShellScriptが使えるんだからそれで満足してなさい。 -- これ以上ほかのスレにまで出没されたらたまらん。 688 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 15:46:51 ID: InOvKOYR 帰るって言ってるんだからほっときゃいいじゃん。 つか、どうせp2のカスタマイズにPHPいじってるだけなんでしょ? 689 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:01:29 ID: uaeFl3WY >>686 皮先さんは学生さんですか?それとも高校生?中学生?(あまりにも考え方が幼いので) 先生(paperさん?)の書くことはよく聞くようですが しつもんするときはもう少し丁寧にした方がいいですよ。 ネタにしてもあまりにもひどすぎます。 よく考えて書き込むようにしましょう。社会に出たとき苦労しますよ。 690 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:16:48 ID: iXAwgYDp 社会に出れたら苦労せんがな... (w 691 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:33:26 ID: LBeWbFgp >>689 お前、バカか? 帰ったスレで相手しろよ。わざわざ呼ぶような真似すんな。 氏ねよ、ボケ。 692 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 17:50:36 ID: UliWkihy かわさきは普通に社会人だろ。 693 名前: 名称未設定 Mail: sage 投稿日: 05/02/07 18:23:19 ID: 8AbchTKY 自分のことを他人事みたいに書くなっつーの。>>692 >>686で書いた事は守れ。 694 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 0:08:34 ID: yfLNGpsG 便乗しておもしろがって場を荒らす書き込みするのはやめましょうよ。 何かネタない? 発表か質問カモーン。 695 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 0:29:17 ID: itdMN3ZT Studio でGUI部品を参照するときダラダラ長くなってウザイ件について。 半年前に  set button1 to button 1 of (中略) of window 1 とやって簡略化を図ろうとしたら妙なエラーに悩まされ、 それがトラウマとなって以来 Studio は使っていない。 エラー箇所で button1 ではなく律儀に button 1 of (中略) of window 1 と書くとちゃんと動くという・・・。 696 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 1:58:55 ID: AW2KFPrO レスが判るようで判らんが、上手く行かない時は、カッコでくくって処理の優先順位を付けると上手く行く事ある。 って、折れも判らんレスだなぁ... 697 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 2:36:43 ID: i5Y/CwOy GUIをやるんなら、studioよりcocoa+obj-cの方が遥かにいいな。。 698 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 2:41:27 ID: j0zefuHn >695 set button1 to a reference to (button 1 of (中略) of window 1) にすればうまくいくかもしれない。 699 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 4:45:06 ID: yfLNGpsG >>695 tell 〜で上のモノを呼んで囲んでやると中では省けたような・・。 まぁコピペを活用するしかないすかね。 700 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 14:14:35 ID: oKaQu5Wq 700 ゲト 701 名前: 名称未設定 Mail: sage 投稿日: 05/02/08 23:01:57 ID: uklUH9tt >>669 上から順番に読んでいると面白いな。 前半はともかく、後半は感情的には同意できる。 ただ、折れはsh系すらうまくつかえてない純粋なAppleScriptなんで、他の発言は大半が意味不明。 702 名前: 名称未設定 Mail: sage 投稿日: 05/02/09 0:43:12 ID: oHF7ndsg 皮先の相手をする香具師はチンカス以下!!! 703 名前: 名称未設定 Mail: sage 投稿日: 05/02/09 3:48:35 ID: Qgsn8LD2 >>701,702 レス番号ズレてないよね? 落ち着いて読めばそれぞれの言語の経験がなくてもだいたいわかる内容だと思うけど。 『シェルスクリプトには色々問題点があって、  シェルスクリプトでできる事を全部置き換えられるような便利なスクリプト言語が台頭して来てる。  だから君(653)の理屈だと「なぜ今更シェルスクリプトを使う?」と言い返せてしまうぞ。  (でもシェルスクリプトだって使われている。それには理由がある)  AppleScriptの場合のそれを使うメリット・本質は(以下はわかるでしょうから省略)』 と、これだけの話。 sh系“すら”っていうのはおかしいな。シェルスクリプト使えなくてもPerlは使える。 KTの頃からMacでも使えたわけだし。 さあ次のAppleScriptに関する話題をどうぞ。 704 名前: 名称未設定 Mail: sage 投稿日: 05/02/09 4:09:00 ID: 3Owgs39W ぶっちゃけ8A369でのAppleScriptの動向は? 705 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 2:20:48 ID: EqyNj7bd こんなスクリプトを書いてアプリケーション形式で保存してみましたが、 tell application "Finder" do shell script "./Users/hoge/hoge.sh" set kekka to result display dialog kekka buttons {"へぇ"} default button "へぇ" with icon note end tell 普通にダブルクリックでこのappを起動すると正常に動作するのですが、 Dockに登録して起動すると、一回目の起動時に必ず 書類"(null)"を開くための必要なデフォルトアプリケーションが指定されていません と起こられます。そのまま二回目のクリックを行うと 普通に動作します。 その後またDockから起動すると・・・と延々と繰り返しでもう疲れました。 これはどういうことなのでしょうか? 706 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 3:21:07 ID: 0sL11/a+ 俺全く分からんけど、hoge.shを何で開くのか指定してないとか 707 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 3:52:55 ID: E7o87DXr 初めて聞く現象だけどDockの方でAppleScriptで作ったそのアプリケーションを アプリケーションと認識できてないのかね? 1度Dockから登録外して Macの再起動したあと登録しなおしでもすれば直りそうな気がするな。 あとそのスクリプトたぶん最初の1行と最後の1行要らない。 708 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 4:35:44 ID: DPAQjVzn 皮先くんには放置の方向で。(w 709 名前: 705 Mail: 投稿日: 05/02/10 5:03:33 ID: EqyNj7bd >>706 多分違う。 >>707 再起動したけどダメっぽい。 buttonsを日本語にしてて、tell application・・・・を つけないとなぜか文字化けしてしまうのですよ。 710 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 5:07:50 ID: DPAQjVzn 445 :25:05/02/10 02:32:33 ID:EqyNj7bd >>444 これをこのアップルスクリプトで動かします。 tell application "Finder" do shell script "./Users/sheel/sh/filebach.sh" set kekka to result display dialog kekka buttons {"へぇ"} default button "へぇ" with icon note end tell http://pc7.2ch.net/test/read.cgi/mac/1105074933/445 素直に隔離スレに(・∀・)カエレ! 711 名前: 705 Mail: 投稿日: 05/02/10 5:24:40 ID: EqyNj7bd なんだ俺様の高度なshellscriptが理解不能だからといって そんなに怒るなやw(pgr おまいらは俺様の質問に答えるだけでいい。 712 名前: 名称未設定 Mail: 投稿日: 05/02/10 5:25:55 ID: U22pb/O5     _∂_   /○。_、 _ヽ \|;;;:::...  ,_ノ` |/   .\;;;::....  /    | ̄ ̄ ̄|         Think Defferent                      Apple 713 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 6:05:34 ID: E7o87DXr AppleScriptである程度量のあるデータを扱いたい場合って、 やっぱりFileMakerを前にすえるか、 (いまいちどういうものかわかってないけど)Valentinaアプリケーションを使うっていう感じなんですかね? さほど大げさなものじゃなくてもデータのリストみたいなのを扱いたい時ってあると思うんですけど・・。 AppleScript Studioで扱おうにも?? MySQLとかいうのがフリーのリレーショナルデータベースでどうのこうのっていうから検索してみたけど、Webアプリケーション?用のものみたいだし、 使いやすいインターフェースもなさそうだし、ちょっと用途とずれてるような感じ。 Valentinaは下記URLのとこで販売されてます。Rb用のプラグイン?みたいなのもあるみたい。 ttp://www.paradigmasoft.com/product/vapp_jpn.html 714 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 6:17:32 ID: EqyNj7bd >>713 どういうデータを扱いたいの? テキストデータならshell scriptが得意としてるけどね。 MacOSXに標準装備されているし。 715 名前: 名称未設定 Mail: sage 投稿日: 05/02/10 8:09:04 ID: hI5kF7xE >>713 要求が分からないので、アドバイスしようがない。 普通にFileMakerを使うというのではダメなの? AppleScriptを使わなきゃならない理由が見えない。 mySQLは、Webアプリに限ったものではないよ。 普通にdo shell scriptでmysqlを呼び出すと使える。このへんを読んでみれば。 http://lists.apple.com/archives/applescript-studio/2004/Jul/msg00152.html mySQL4AppleScriptというハンドラがあるよ。 http://www.yvs.eu.com/otherproducts.html 大きなデータを扱うなら、??SQLみたいな信頼性の高いデータベースをバック エンドで動かして、自作部分はフロントエンドとして設計するっていうのは、 いいんじゃない。作ったデータも汎用のものになるしね。 AppleScript自前のlistやrecordでシコシコやるというのはおすすめできない。 REALbasicはPluginをインストールするとmySQLやPostgreSQLに直接アクセスできるよ。 だから、クライアントを、おそらく容易に作れる。MySQLClassという、そのもの のクラスがある。 クライアントがブラウザでも構わないなら、普通にLAMP、MAMPでいいんじゃな い。PHPはmySQLとの親和性が高いらしいから、AppleScriptでdo shell script を使って必死にやるより簡易な記述ができると思う。 ただしフォーム(UI)の設計が面倒そうだけど。PHPのRAD環境ってあるんですかね。 716 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 4:10:19 ID: CjH87wXJ 濁点ありのカタカナが使えないあたり、Apple のやる気のなさが感じられる 717 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 6:36:34 ID: CjH87wXJ ここにいるような人たちは知ってるかもしれんが AppleScript で日本語(ファイル名とか)を扱うとき UnicodeUtils.osax ってのが非常に便利っす。 ttp://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html ところで実行時にそのスクリプトのファイル名を取得する方法はないかね? 718 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 7:19:13 ID: jzIl1wyY path to me path to current application アプリケーション形式でないとダメ。 719 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 7:40:04 ID: CjH87wXJ >アプリケーション形式でないとダメ。 ああ、やっぱりそうなのか・・・。 .scpt のファイル名を使いたかったんだが、諦めて設計を変えますた。 Script Editor.app で実行すると Script Editor.app のパスが返り、 スクリプトメニューから.scptを実行すると System Events.app のパスが返る・・・。 720 名前: 名称未設定 Mail: sage 投稿日: 05/02/11 9:39:03 ID: T3bKTCXk ファイル名を引き数に使おうという方式だったのかな? ファイル名が変わるんでなければ決め打ちでいいんだろうけど。 721 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 1:44:49 ID: cVGEe72J スクリプトメニュー内の項目の並び方を変えられればいいのになあ。 ファイル名の頭にナンバリングするとメニューが煩雑になるので FinderPopのようにメニューでは非表示になるナンバリング方式を用意してほしい。 722 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 14:14:17 ID: VjEfmBLX ここは自分で書いたスクリプトを発表するスレだと知りつつ、 強者が何人かいらっしゃるので、お願いします。 わたしは今、英会話教室に通っていて、その教室では、その日習ったことをNet上で 復習するシステムがあり、わたしはMacのSafariを使って勉強しています。 Safariの「表示された英文を、サービスメニューからSpeach(Text読み上げ)」 をよく利用するのですが、同じ箇所を何度も聞き直す際、サービスメニュー経由 では手続きが煩雑で、これをAppleScriptでアプリケーションとして保存、 Dockにそのアイコンを置いておいて、英文を選択したらDockのアイコンクリックで英文読み上げ開始となればなぁ。あるいは、Contextual Menuから即、読み上げ ならもっと便利だろうなと思っています。 そういうスクリプトをどなたか書いていただけないでしょうか? 723 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 14:26:43 ID: jklcNu7X ショートカットキーでも割り当てときゃ良いじゃん。 って、Speechだろがよ。もっと手も使って覚えろ。 724 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 14:36:35 ID: E/mIH8mG >>722 こんな感じでどうでしょう。 tell application "Safari" activate tell application "System Events" tell process "Safari" click menu item "コピー" of menu "編集" of menu bar 1 end tell end tell if (clipboard info for string) is not {} then set theText to the clipboard end if say theText as string end tell スクリプトメニューから動かしてます。 「ユニバーサルアクセス」→「補助装置にアクセスできるようにする」のチェックをいれて試してみてください。 725 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 14:49:34 ID: WvYut9kK >>722 >>723さんが書いてるようにショートカットの割り当てが出来る。 システム環境設定のスピーチの「読み上げインターフェース」のところ 「キーを押したときに選択しているテキスト」にチェックを入れて 横の「キーを変更...」ボタンでショートカットキーを設定。 (なおこれは10.2の場合なので10.3ではちょっと違うかも) 726 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 15:07:17 ID: VjEfmBLX >724 さっそくありがとうございます。試させていただきます。 AppleScriptに関しても初心者なもので、結果報告はちょっと時間をいだだいて あらためて書き込みさせていただきます。ありがとう。 727 名前: 722=726 Mail: sage 投稿日: 05/02/12 15:12:19 ID: VjEfmBLX >>723,724,725 うわっ、ありがとうございます。 728 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 19:47:59 ID: cVGEe72J OSAXの作り方の資料が見つからない件について 729 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 21:03:46 ID: hnrheJzf >>728 TN1164 ぐらいかなー AppleScript Scripting Additions Guideは消えちゃったかな? 730 名前: 名称未設定 Mail: sage 投稿日: 05/02/12 23:03:56 ID: WvYut9kK わ!すごい期待しちゃっていいですか? 731 名前: 名称未設定 Mail: 投稿日: 05/02/16 20:28:24 ID: Mu8c3jBM すいません、初心者の質問です。 音量調節キーのないキーボードを使っているので、代わりに ファンクションキーにAppleScriptを当てて、音量調節したいんですが、 どうやればいいんでしょうか? Set Volume とか言うコマンドは音量の絶対値しか決められないみたい なんで…。 押すと1コずつ音量が上がるスクリプトと下がるスクリプトを作りたいんです。 732 名前: 名称未設定 Mail: sage 投稿日: 05/02/16 21:04:23 ID: /MUYvP2c >>731 システム環境設定>サウンド>「メニューバーに音量を表示する」 ではいけない理由を、誰でも納得できるように述べたら教えなくもない 733 名前: 名称未設定 Mail: sage 投稿日: 05/02/16 21:08:54 ID: D5jxoj+m >731 まず get volume で今の音量の絶対値を取得して、 それに1なり10なり足した値を set volume してやればいいじゃない。 734 名前: 名称未設定 Mail: sage 投稿日: 05/02/17 5:11:42 ID: 0lfqnZ2w tell application "System Events" tell application "System Preferences" set current pane to pane "com.apple.preference.sound" end tell tell process "System Preferences" tell window 1 click radio button 2 of tab group 1 set (value of slider 1 of group 1) to 0.05 as number end tell end tell delay 1 tell application "System Preferences" quit end tell end tell 735 名前: 名称未設定 Mail: sage 投稿日: 05/02/17 5:20:32 ID: WxrABtEa ファンクションキーで音量調整できるアプリを探したほうが良いと思うよ。 736 名前: 名称未設定 Mail: sage 投稿日: 05/02/17 15:55:39 ID: IWfnODka 見たらKeyboard Maestroのmacroにあった。「それだけ」のためにはチトお高いがw 737 名前: 名称未設定 Mail: sage 投稿日: 05/02/17 18:43:49 ID: 80c4zM+o zipファイルをドロップして解凍、元のzipファイルは削除するという ドロップレットを作ったのですがdesktopに展開出来ないと言うエラー が出てうまく行きません。勉強し始めたばかりでかなりお恥ずかしいの ですが作ったスクリプトの添削をお願いします。 on open drop_items tell application "Finder" open drop_items delete drop_items end tell end open 738 名前: 731 Mail: sage 投稿日: 05/02/18 10:32:36 ID: nX7eg9R6 >>732 キー操作の方がラクなので…。 >>733 なるほど、get volume というコマンドもあるのですか。 そのへんの根本的なコマンド類をぜんぜん知らないもので…。 >>734 やってみたら、 click radio button 2 of tab group 1 のところで、 NSReceiverEvaluationScriptError:4 と出て、止まってしまいました。 >>735 新しもの好きで検索してみたんですが、これが意外と見つからなくて…。 >>736 あ、これは気付きませんでした。これでオッケーですね。ありがとうございます。 みなさん、いろいろありがとうございました。 739 名前: 名称未設定 Mail: sage 投稿日: 05/02/18 14:30:52 ID: Mr2Pe+Q/ >>731 スレ違いになるけど、Vectorにいろいろあるよ。アップルスクリプトじゃないけど。 http://www.vector.co.jp/vpack/filearea/mac/util/operate/keyboard/index.html 740 名前: 名称未設定 Mail: sage 投稿日: 05/02/18 21:05:41 ID: L/q2cbEw >>737 openで別ソフトに解凍するようにした直後にdeleteされて ゴミ箱に入るからエラーがでるのかな。 741 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 17:35:12 ID: 6D/s0nw1 click menu item 5 of menu 4 of menu bar item 5 of menu bar 1 メニューバーの ? アプリ名 ファイル 編集 ココ                     ↑の5番目のプルダウンはこの記述じゃダメですか? 742 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 18:41:55 ID: U1iF4K05 >>741 click menu bar item 5 of menu bar 1 743 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 18:54:43 ID: U1iF4K05 なんか違う悪寒。 5番目のプルダウンってどこだyp 744 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 19:09:49 ID: 6D/s0nw1 >>742 さらに上から5番目を選択するにはどのようにしたらよいでしょうか。 メニューを開くことは出来ました。 745 名前: 名称未設定 Mail: sage 投稿日: 05/02/19 19:15:08 ID: 6D/s0nw1 click menu item 5 of menu 1 of menu bar item 5 of menu bar 1でできました。 746 名前: 名称未設定 Mail: sage 投稿日: 05/02/20 0:05:25 ID: btuO7ne7 >>740 ということは、StuffItにtellするなり、do shell scriptでunzipしたあと、 アボーンすればいい事になるぽ。。。 747 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 0:40:54 ID: FE4/CPRZ Appleスクリプトでテキストの何行目から何行目を抜き出したり 指定した位置の(毎回微妙な位置変動あり)テキストを抜き出したり 決められた形式(タイトルがあって、概要があって本文とか)の一部分を抜き出したり そんなこんなの方法が書かれてるサイトってありませんか?「文字 抽出」とかで検索は してみましたが、具体的なサイトは出てこなかったので知っている方がいたらお願いします。 748 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 1:10:15 ID: 96LJ+AqB >>747 何行目からというのはparagraph指定でいけると思います。 あとの指定位置や形式は… Tanaka's osax が使えれば簡単ですが、OSXはわかりません。 749 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 1:12:10 ID: RcpTZ0OP >>747 OSXなら素直にPerlを使うほうが早げ 750 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 2:34:17 ID: sv5BM641 どこが素直なんだか… 751 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 3:43:09 ID: FE4/CPRZ >>748 >>747 AppleScript以外は全く未知の領域です。学ぶしか無いのですかね。 Cocoaなんて言うのは具体的に何言語を使うのですか?C言語? 752 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 23:14:25 ID: hBdhy10p >>747 とりあえず何のエディタでやるつもり?あるいは何のワープロで? システム標準の命令の範囲でもそれなりのテキスト操作はできるけど。 paragraphとかlineとかcharacterとかAppleScript's text item delimitersとか範囲要素参照形式なんかをうまく使うべし。 でも複雑な事をやるのは正直たいへん。 >>749,750 OS8だろうがOSXだろうがある程度複雑なテキスト処理をやるなら AppleScript中からちょろっとPerlを呼び出せば楽なのは間違いない。 while(<>){ s/検索語句/置換語句/g; } が使えるだけでずいぶん楽。 753 名前: 名称未設定 Mail: sage 投稿日: 05/02/21 23:25:32 ID: hBdhy10p considerとかends withなんかも便利。 例えばループで1行ずつ調べていく もし目印となる語句を含んでいるならその行を変数に入れる・・とか。 754 名前: 名称未設定 Mail: 投稿日: 05/02/23 11:16:20 ID: hxcBD3fo Finderでコピー(command+C)したファイルの参照を クリップボードから取り出せませんでしょうか? 以下のようにやってもダメでした。 tell application "Finder"   (the clipboard) as file   (the clipboard) as reference   (the clipboard) as alias end tell 755 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 15:33:05 ID: y61Z5Nj7 一から勉強し直した方が良さげ。 756 名前: 名称未設定 Mail: 投稿日: 05/02/23 15:40:05 ID: hxcBD3fo 補足。>>754 の例はその3つどれでもダメだったってことです。 >>755以外の方、有益な返答お願いします。 757 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 15:41:01 ID: y61Z5Nj7 やっぱり。皮先か。(w 758 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 16:18:11 ID: IeoSOmQs >>754=756 クリップボードからは取り出せない。 俺ならFinderのStandard Suiteのコマンドにあるselectを使う。 selectの使い方は入門サイトで勉強してきてね。 759 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 20:23:47 ID: uPIGSApf the clipboard as 《class furl》 (class furlの前後は "<<",">>" の1byte文字) clipboardってのはデータが複数おかれてる場合がある。 例えばスタイル付きテキストは、まず'TEXT'データがあって、 そのあとスタイルデータが続くとか、PICTがあってPSがあるとかな。 この場合も複数のデータがあるので、データタイプを指定して取り出す。 clipboard info を実行してみれば、どんなデータがあるかわかる 760 名前: 名称未設定 Mail: sage 投稿日: 05/02/23 20:35:05 ID: 2YUFeCpL それが分かったとして彼には無理な気が 761 名前: 名称未設定 Mail: sage 投稿日: 05/02/24 0:46:02 ID: z8CnHUyG ?class furl?も複数ファイルには効かないし、 selectしてaliasのlist取って、repeat回してstringで渡す んだろな。 762 名前: 名称未設定 Mail: sage 投稿日: 05/02/24 15:40:33 ID: aXmmZvP8 >>758>>759>>761 おっしゃる通り1項目をコピーした場合はclipboard infoに<>と<>があるので、 (FSRefとCFURLかな?と思いますが)それを使って何とかできないかと思いましたが、無理そうですね。 しかも、2つ以上をコピーした場合はclipboard infoにはstringとUnicode textしか入ってないですしね。 selection of application "Finder" を使うことにします。ありがとうございました。 763 名前: hirano Mail: 投稿日: 05/02/25 18:23:11 ID: zYl+IjDt >>754さんへ。 Web Scripter's Meetingというサイトで見つけましたが tell application "Finder" set theText to the clipboard as string end tell とやればクリップボードの中身がテキストtheTextで取得できます。 それとも>>754の質問の意図は 目的のファイルの「参照」なのでパス名が欲しいのでしょうか? コピーしたあとなら、そのテキスト内容かと想像してますが。 764 名前: 名称未設定 Mail: sage 投稿日: 05/02/25 22:56:56 ID: e3ltjaXM 君はまだまだ勉強が足りない。 765 名前: 名称未設定 Mail: sage 投稿日: 05/02/25 23:30:30 ID: JQ6nzVz5 コピーしたファイルが一個の場合の取り出しに成功 tell application "Finder" set theFile to ?class furl? of (the clipboard as record) set theFile to theFile as alias set name of theFile to "test." & (name of theFile) end tell 766 名前: asxをドロップするとwmvをDLするスクリプト Mail: sage 流れと関係なくてすまそ。作りもいいかげん。 投稿日: 05/02/26 11:54:54 ID: FkUJu6b5 on open itemlist repeat with i in itemlist tell application "Finder" set fldpath to folder of i set fldpath to fldpath as alias end tell set fldpath to POSIX path of fldpath set urlStr to "" set urlStr to do shell script "cat " & quoted form of POSIX path of i & " | perl -wne 'if (m#ref href=\"(mms://.+wmv)#i) {print $1;last}'" --display dialog urlStr if urlStr is not "" then do shell script "cd " & quoted form of fldpath & ";mmsclient " & urlStr else set urlStr to do shell script "cat " & quoted form of POSIX path of i & " | perl -wne 'if (m#ref href=\"(http://.+wmv)#i) {print $1;last}'" do shell script "cd " & quoted form of fldpath & ";curl -O " & urlStr end if end repeat beep 3 activate display dialog "Downloads complete." buttons {"OK"} default button "OK" end open 767 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 12:59:19 ID: pBGAUjim ちょっと質問。 OS9.2.2,AS1.6,FinderPop,Sandi'sAdditions 以下のスクリプトで、クリップボードデータの受け渡しがうまくいかない。 使用方法はグローバルスクリプト。 どうしたら渡せるのか? tell application ((path to frontmost application) as string) activate TypeText "c" with Command display dialog (the clipboard as string) end tell 768 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 14:47:57 ID: kQadJ1Jt >>767 activateはアプリケーション予約語じゃなかった? 769 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 15:00:26 ID: NgTtY/sn >>767 一度他のアプリをactivateしてからthe clipboardを参照してみたら? 770 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 15:43:33 ID: BHNnr81h スタンダードadditionsが1.7だったとかいうオチだったり 771 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 16:27:16 ID: KXZW03yr アプリケーション切り替えないとクリップボード更新されないヨカン 772 名前: 名称未設定 Mail: sage 投稿日: 05/02/26 21:28:16 ID: 9yHd50wE >>768 ん? フロントアプリケーションで使うんだからactivateはあってもなくても動く。 この場合あったほうが確実だろ? >>769 それで動いたの? それはだいぶ前にやってみてダメだったんだが。 >>770 標準機能追加は1.6だが。 773 名前: 754,756,762 Mail: sage 投稿日: 05/02/26 21:32:58 ID: O/k/FA51 >>763 テキストでなくファイル参照です。alias か item として取り出せないかと。 >>765 それです!それがしたかったんです。 でも1項目じゃないとできないのが残念。 the clipboard は as record することで内容がかなり変わるんですね。 ありがとうございました。 774 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 0:35:03 ID: jHfXP7qD >>772 クリップボード、 ToolBoxな名前ではスクラップって言うのだが、 これにはアプリ固有のプライベートスクラップと システムの管理するデスクスクラップってのがある。 当然、the clipborad はデスクスクラップを意味している。 で、アプリでcmd+Cとかメニュー操作でコピーした時、 そのデータがプライペートになるか  デスクスクラップになるかはアプリ次第。 ただ、どこかのタイミングで同期は行われている。 で、大抵は、 アプリケーションが、 ・最前面になったとき。 ・最前面でなくなったとき。 ってのが一般的。 またデスクスクラップ自体、実はアプリケーションのヒープ内にあって アプリケーションの切り替えが発生するたびにコピーされていたりするので、 書き換えを確実に取りたいなら、強制的に切り替えを発生させてやる ……とうまくいくかもしれない。 775 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 0:39:26 ID: vaKQqrbz Photoshopなんかで馬鹿でかい画像のうえでコマンド+Cすると アプリを切り替えたときに「クリップボードに転送できませんでした」とか出るよね 776 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 4:59:47 ID: yrI+gjWE stringとUnicode textで内容が変わるのはなんとかならないものか。 777 名前: 767 Mail: sage 投稿日: 05/02/27 16:10:21 ID: t4uZZi4C >>772 うまくいかない。 強制的に切り替えても、クリップボードが働かない。 スクリプトが優先されてる。 難しい。。。 778 名前: 767 Mail: sage 投稿日: 05/02/27 16:10:56 ID: t4uZZi4C ↑>>774 779 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 18:39:21 ID: JB5GEo6D スクリプトからアプリケーションを切り替えてもクリップボードは更新されない。 一旦スクリプトを抜ければ良いと思うが、そういう方法あった? HyperCardでApplicationメニュー(右上のアプリ切り替え)を do menu で「実行」した時はうまくいった。 780 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 19:13:15 ID: jHfXP7qD >>777 状況がわからないのでなんとも言えないが、 ・クリップボードアクセスは基本的に最前面のアプリだけが行う(前提で仕組みができている)。 ・データのサイズによって更新に多少時間が掛かる。 ・アプリでコピーしたものが独自のデータ形式だと、外部からは参照できない(プライベートスクラップに止まる)。 ・ダイアログが出てたりする場合は難しいかも。 みたいな…。とりあえず delay でも入れてみたら? --sampleみたいな tell application "TextEdit" to activate TepyText "C" with Command tell application ((path to me) as string) to activate delay 1 set cbData to the clipboard 781 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 19:22:03 ID: jHfXP7qD ↑スクリプエディタ上でなら、こんな感じで動く。 delayを入れないとダメな場合がある。 このへんは更新に時間が掛かると言うより、 アプリに送られるイベントの順番あたりの問題かも。 782 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 19:28:28 ID: jHfXP7qD …続き FinderPopってことは自分自身がターゲットで かつスクリプトロードをしてるってことになるのかなあ? そのへんが問題なのかもしれないけど、 仕組みがわからないので、なんとも言えない。 一度 Finder を activate してとかやってもダメなの? 783 名前: 名称未設定 Mail: sage 投稿日: 05/02/27 23:59:00 ID: asDKO/5I HyperCardから "Application" メニューを使ってアプリを切り替えた時はうまく行った。 試しにアプリケーションを切り替えるツールボックスを呼び出した時はダメだった。 クリップボード更新のタイミングが良く分からない。 ファインダーが絡んでいるようだが、一旦スクリプトを抜ける必要があるかも。 784 名前: 767 Mail: sage 投稿日: 05/02/28 22:26:39 ID: gSlR6Z3S >>780 その環境はOSX? そのスクリプトもクリップボードが更新しない。 delayは効果ない。 delay中に裏で更新してくれればいいのだが、そういう造りになってないだろ。 最終的にダイアログは使わない。 使わなくてもうまくいかない。 Finderに切り替えてみると、Finderで選択中のファイル名が取得されてしまう。 つまりFinderでコピーしているのと同じ。 クリップボードイベントの終了をチェックするような方法があれば可能なんだろうが。 あるいは>>783が言うように、一旦スクリプトを抜ける方法とか。 785 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 0:24:25 ID: 5ysN9tgM >>784 OS9.1 あくまでもスクリプトエディター上からの動作だけ確認している。 うちのシステムだとdelayがないとTextEditからは拾えなかった。 TypeTextした後にFinderに切り替えて、 Finderの選択項目を拾うなら、 それはなにかの理由でTypeTextが ブロックされてるか、遅延を起こしてる ってことじゃないのかな? 786 名前: 767 Mail: sage 投稿日: 05/03/01 12:45:01 ID: Rj33UOH5 >>785 スクリプトエディタ上だけで動作しても意味ないんだよ。 TypeTextがブロックまたは遅延されないように、 先にも上げたクリップイベントの終了チェックや 一旦スクリプトを抜ける方法はないかと言ってるわけで。 787 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 13:28:17 ID: COXLd6LA 僕もCommand + CのGUI Scriptingじゃ不安定なので、 汎用的なコピーの手段で悩んだクチだけど、 まずtryでcopyを使ってみては? ……そのcopyもアプリによって意味が違うわけだけど。 Apple Eventには必ずcopyに相当するものって無かったでしたっけ? 788 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 15:58:33 ID: EEUyvpus copyはFinderの予約語だから、 他のアプリでは使えないんじゃないか? 789 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 16:06:05 ID: 0BgmwL62 ヌevent misccopyネ 790 名前: 名称未設定 Mail: sage 投稿日: 05/03/01 22:34:50 ID: K5q1AeKX >一旦スクリプトを抜ける 数ticks後に自分にイベントを送る、という機能がASあればいいのに。 RuntimeRevolutionの「send xx to yy in zz ticks」みたいの。 791 名前: 名称未設定 Mail: sage 投稿日: 05/03/02 23:19:04 ID: T5lArt5N >>790 頭を使うとできるような気がする。 ヒントはtellとapplication response 792 名前: 名称未設定 Mail: sage 投稿日: 05/03/03 16:17:49 ID: xCgerxvy 767のスクリプトをOSA Menuから"Run scripts more compatibly"オプションをOnにした状態で実行すると問題なく動作しました。 環境 Mac OS 9.2.2 793 名前: 名称未設定 Mail: sage 投稿日: 05/03/04 20:30:28 ID: Sm7173gw 10.2.8+ProjectBuilderでAppleScriptStudioを使ってるのですが、 フィールドのAS名をtextにして、Window名がwindow1で、 set str1 to string value of text field "text" of window "window1" display dialog "こんにちは、" & str1 & "さん!" とボタンが押された時のスクリプトに組み込んだのですが、 ボタンを押すとどうしても「The variable str1 is not defined. (-2753)」とダイアログが出てしまいます。 AppleScript系のサイトにある文そのものを引っ張ってきてテストしてみたので合ってるはずなのですが・・・ 794 名前: 名称未設定 Mail: sage 投稿日: 05/03/04 21:49:12 ID: lhvASUCn >>793 構文はあっているみたいですけど。 他のオブジェクトにtellした中にいれたりしてませんか? set str1 to string value of text field "text" of window "window1" of me その場合は of me にすると上手くいきます。 795 名前: 名称未設定 Mail: sage 投稿日: 05/03/05 16:29:26 ID: 9a2a/ssl >>794 最後に「of me」を入れて実行してみたのですがやっぱりdefinedと出てしまいます。 なんでだろう・・・ 796 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 1:05:57 ID: 5D4PwpvB >>793 うちにある本だと set str1 to contents of text field "text" of window "window1" ってなってるけどどうよ? 797 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 1:17:45 ID: 9JcdYuPY >>794 参考になさったの、つやのさんところですかね。 (全体的に流れがつかみにくい構成の文だったけど) あの指示通りにやってみましたが問題なく動きました。 もう一度順を追ってやり直してみてはいかがでしょか。 798 名前: 793 Mail: sage 投稿日: 05/03/06 14:52:38 ID: 7CbZyZUj どうにか>>796の文で試してみたら動きました。本当にありがとうございました。 799 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 15:21:27 ID: vz85BPc4 >>793 (-2753)は書式の問題らしい。 「Script Editor」の[編集]-[AppleScriptフォーマット...]の書式で、 使用するフォントを、「演算子および句読点(+&、)」は英字フォント(Chicagoなど)に、 その他は日本語フォント(Osakaなど)に設定で直るかも。 800 名前: 793 Mail: sage 投稿日: 05/03/06 16:40:23 ID: 7CbZyZUj >>799 いえ、角ゴのままで今までScriptEditorで書いてきたのですが-2753は出てきませんでした。 なんでだろう・・・ あと、もう一つASStudioで質問なんですけど、どうしてもコマンド結果が出力されません。 つやさんの所ではCPUの使用率ということでpxコマンドの出力が出来る文が出てるので、 あれを加工してcurl >コマンドの結果をテキストビューに出そうとしたいのですが、 どうしても結果が出ずに録音コマンドだけが送られてしまいます。 ちなみにソースはこうです。 on clicked theObject if name of theObject is "StartBTN" then set URLf to contents of text field "URLf" of window "curlTest" set OUTf to contents of text field "OUTf" of window "curlTest" do shell script "curl" & space & URLf & space & ">" & space & "/users/" & OUTf set contents of text view "TEXT" of scroll view "View" of window "curlRadioRecoder" to result end if end clicked 何度も何度もすみませんorz 801 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 18:16:38 ID: vz85BPc4 >>800 do shell script は非対話型にしか対応してません。 なので下記のようになります。 do shell script "curl -o " & OUTf & space & URLf 802 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 18:41:52 ID: vz85BPc4 って、勘違いしてますねorz 「OUTf」でファイルに出力しているので、read かな。 read (OUTf as POSIX file as alias) 803 名前: 793 Mail: sage 投稿日: 05/03/06 21:03:30 ID: 7CbZyZUj >>802 それだとスクリプトエラーでビルド出来ません・・・ やっぱり無理なのかなぁ・・・ 804 名前: 名称未設定 Mail: sage 投稿日: 05/03/06 22:25:14 ID: vz85BPc4 >>803 result の部分を read ("/users/" & OUTf as POSIX file as alias) ですよ。 エラーを吐くという事は、やはり書式の問題では・・・ 805 名前: hirano Mail: 投稿日: 05/03/07 18:32:09 ID: wGJTVuNV >>763で書いた者です。 なるほど勉強不足でしたね。「参照」がわかってませんでした。 さて >>793さんのAppleScript Studio、手元で実験しました。 MacOSX 10.3.8 + Xcodeでやってみると 793そのままのスクリプトで成功します。 Interface Builderで何箇所かに入れるチェックが 入れ忘れとかじゃないですかね。(想像) 参考書は掌田氏「ASSでゼンマイびゅんびゅん」です。 806 名前: 793 Mail: sage 投稿日: 05/03/07 20:08:01 ID: Lh5ie9nZ >>804 すみません・・・場所を変えてもどうしても結果をリアルタイムどころか吐き出しません・・・ set OUTf to ~ と do shell script ~ の間だとCan't make file. do shell script ~ と set contents of ~ の間だと録音のみで固まって結果を吐き出さないです。 なんでだろう・・・ 807 名前: 名称未設定 Mail: 投稿日: 05/03/14 22:38:53 ID: QC+wTUPA 最近studioを使い始めたので久々にage 808 名前: 名称未設定 Mail: sage 投稿日: 05/03/15 12:35:52 ID: a3uiFTN0 Studioで作ったソフトがOSのバージョンが違うと動かなかったりするのは しょうがないんかねー。 またTigerで変わるんやろうな。 809 名前: 名称未設定 Mail: sage 投稿日: 05/03/15 19:10:51 ID: Lq9Id6Te applescriptの仕様がいい加減で資料も少ないのがガン。 しかも放置されたまんまのバグもけっこうあるみたいだし。 810 名前: 名称未設定 Mail: sage 投稿日: 05/03/15 23:00:44 ID: hA447gju 最近AS系に全然力入れてなさそうだし、Automatorのようなよりグラフィカルなアプローチに移行するんじゃない? 811 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 0:47:02 ID: WS7r1QOd いや、だからAutomatorのモジュールはAppleScriptやObjective-Cで書くのだか ら、Automatorはフロントエンドに過ぎないと何度いったら(ry 812 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 1:37:38 ID: MrijEpsc フロントエンドも何も、そういうマクロの設計自体が変わるという話だろ。 何でもかんでもASで完結させるんじゃなく。 813 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 7:06:36 ID: M2Ai7LeZ >>811 AutomatorはFilterTopの焼き直しですな。 こういうのは昔からあって出ては消えを繰り返してるんだけど、 知らない人には新しい物に見えると。次に登場するのはCommando のposix版あたり? 814 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 10:10:18 ID: FoOOlN/s どっちにしろ、Automatorじゃ変数使って条件分岐とかファイル読み書きは出来なさそうだ そのへんでAS本体との棲み分けになるんだろう 815 名前: 名称未設定 Mail: 投稿日: 05/03/16 11:11:09 ID: miQ+MN4A ほんとは文字列操作やリスト操作をMTOsax並みに強化してほしいんだけど、 そういうのはシェルやXcodeでやってくれ、ってことなんだろうな。(´・ω・`) 816 名前: 名称未設定 Mail: sage 投稿日: 05/03/16 19:46:30 ID: F4Qg1rYp Automatorでつくる(初心者) ↓ 必要に応じてAppleScriptで編集(中・上級者) こんなもんなんだろ? 817 名前: 名称未設定 Mail: sage 投稿日: 05/03/17 0:27:00 ID: RFSXuQGy ぽいね 818 名前: 名称未設定 Mail: sage 投稿日: 05/03/17 3:06:04 ID: ueGhawPn 1.Automator用のモジュールをクレクレする。(初心者/クレ厨) ↓ 2.Automator向けにモジュールを作る。(中・上級者) ↓ 3.Automator使う。欲が出る。(初心者/クレ厨) ↓ 1.に戻る 中・上級者がAutomatorにどんな意義を見い出せるかがポイント。 819 名前: 名称未設定 Mail: sage 投稿日: 05/03/19 22:39:51 ID: GrHwU7HN UIの拡張くらいしか意味はないな。 XCODEより少ししきいが狭いくらいか。 スクリプトアプリケーションで十分だ。 820 名前: 名称未設定 Mail: sage 投稿日: 05/03/19 22:50:02 ID: r0w1fw6j Automatorの実行環境はどうなるんだろ。 できあがったスクリプトは現在のアップルスクリプトと互換性あって スクリプトメニューや各種AppleScript実行ソフトから 実行できるようになるのかな? 821 名前: 名称未設定 Mail: sage 投稿日: 05/03/19 23:01:52 ID: rLg9WzBm んなわけないじゃん 822 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 1:57:44 ID: UESIBkw9 ↑バカ発見 823 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 2:03:32 ID: J/X/ATEk Automatorが「作る」のは単なるマクロだろ。 824 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 9:38:46 ID: KmoEkUZ8 Automatorのページにアプリケーション形式かドキュメント形式で保存出来るって書いてあるじゃん 825 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 12:16:15 ID: Le3n3OaK このまえAppleScriptに付いた、GUIスクリプティングを、 自動的に書いてくれるだけだと思う。 保存したファイル内では、Automatorのデータ部分と、 AppleScriptとして書き出した部分の二重構造になっていて、 実行するのはAppleScript、編集するときはAutomatorのデータ部分をいじることになると思う。 それがAppleにとって、一番開発費がかからない手法かと。 826 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 13:30:35 ID: gUzs+FiP てかAppleScriptで扱うGUIってCocoaにならないかな 827 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 14:29:38 ID: A1aRiisi >>824 ワークフローを保存としか書いてなけど、どのページ? 828 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 15:32:11 ID: AdUH607J 変数名を、たとえば「thelist」から「theList」に変更しようと書き換えても コンパイルすると勝手に「thelist」になってしまう。 これはどうすればいいのでしょうか。 829 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 17:06:14 ID: UESIBkw9 theListに書き直してテキストとして保存し、 スクリプトエディタを再起動する。 830 名前: 名称未設定 Mail: sage 投稿日: 05/03/20 17:41:40 ID: AdUH607J >>829 uoooooo,サンクス 831 名前: 名称未設定 Mail: sage 投稿日: 05/03/21 8:08:19 ID: s0zjlu+E Automatorって案外ややこしいな。 ttp://developer.apple.com/macosx/tiger/automator.html 832 名前: 名称未設定 Mail: sage 投稿日: 05/03/21 10:53:33 ID: 32KGtOYW >>827 http://developer.apple.com/macosx/tiger/automator.html のページのUsing Automatorのwindowの画像の下の下のパラグラフ >>Once you have created a Workflow, you can save it as an editable document. と >>There aretwo more options for saving Workflows so that they can be run without Automator. The first is as a standalone application. ??? 902 名前: 名称未設定 Mail: sage 投稿日: 05/05/01 22:14:26 ID: rk7FUsuk Automatorで渡されるinputがよくわかんないよ。 ファイル名を取り出そうとして name of input とやると name of alias "Macintosh HD:Users:username:desktop:hoge.txt" を取得できません とか言われちまう。いや、そこに出てるファイル名が欲しいんだけど... 903 名前: 名称未設定 Mail: sage 投稿日: 05/05/01 23:20:25 ID: PAEjegQQ つ name of (info for alias ...) 904 名前: 名称未設定 Mail: 投稿日: 05/05/01 23:56:21 ID: s4x92j3t タイガーのおはなし on idle try tell application "Finder" set current view of window 1 to column view end tell end try return 1 end idle コンパイルする→アプリ保存→ログイン項目に登録 ログアウト→ログイン→アクティビティモニタを開く なんかやたらにCPU喰ってる。んだけど、 ログイン項目に入れないで、ふつうに起動すると、べつにそうでもない… なんだこれ? 905 名前: 名称未設定 Mail: sage 投稿日: 05/05/02 0:44:19 ID: 4j8ZAVEI >>903 うはwwww マジありがとうございます 906 名前: 名称未設定 Mail: sage 投稿日: 05/05/05 14:03:37 ID: ScyJQFY8 the clipboard as record で中身が変わった。utf16の項目ができた。 と思う。 907 名前: 367 Mail: sage 投稿日: 05/05/07 22:01:25 ID: rVjkPLja the clipboardがかわったんじゃなくて、コピーを行ったもとのソフトが変わったんだ。 908 名前: 名称未設定 Mail: sage 投稿日: 05/05/07 23:54:27 ID: t9iL9F8m 初歩的な質問、よろしいでしょうか。見よう見まねで パーソナルWEB共有開始をするスクリプトを作ってみたんですが、 もっと、マシなやり方は、ありますか?。 do shell script "sudo apachectl start" password "hogehoge" with administrator privileges 一応、動作はしてますが・・・。 909 名前: 名称未設定 Mail: sage 投稿日: 05/05/09 22:11:06 ID: 2DM9o1DH >>908 一番確実でいい方法だと思うけど。 910 名前: 908 Mail: sage 投稿日: 05/05/09 23:43:10 ID: kC97dDq2 >>909 おお、これでいいんですか。よかった。 システム環境設定がレコータブルだったら、いいのに・・・。 911 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 2:04:37 ID: q51FoADy ?# 10.4にて半角スクリプトを含むPOSIX pathの表記方法が変わった。 10.3では do shell script "ls ~/Library/Application\ Support/" これで問題なかったスクリプトが、10.4だとエラーになる。 10.4ではこれならいける。 do shell script "ls ~/Library/Application\\ Support/" aliasをPOSIX path of〜で変換した結果は従来通りなので混乱の元になる。 912 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 2:27:55 ID: pBeFJmQ5 >>911 10.3でも動かないよ。 do shell script "ls ~/Library/Application' 'Support/" と書くべき 913 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 11:05:03 ID: sH/Q7RjT 半角スクリプトって何ですか 914 名前: 名称未設定 Mail: sage 投稿日: 05/05/10 11:19:37 ID: 1l6azoW6 >>913 えっちな画像を自動収集するスクリプトです。 915 名前: 名称未設定 Mail: sage 投稿日: 05/05/11 20:41:25 ID: nnUeZ8Ii えっちなのはいけないと思います 916 名前: 名称未設定 Mail: sage 投稿日: 05/05/13 19:58:16 ID: ySQEjMOS 性食寝 人間の三大快感 917 名前: 名称未設定 Mail: sage 投稿日: 05/05/13 20:23:56 ID: QWuYsO6G 最後の一つは「寝」じゃなくて「排」じゃないの? 918 名前: 名称未設定 Mail: HAGE 投稿日: 05/05/14 1:13:41 ID: fbuNXHYC 919 名前: 名称未設定 Mail: sage 投稿日: 05/05/16 13:13:33 ID: PaKXQYmp ttp://www.apple.com/applescript/quicktime/ 上の場所にあったQuickTime用のScriptを10.3.9で動かしていたのですが、 QuickTimeを7にアップデートしたら動作しなくなってしまいました。 (Save Copy in QT Formatをちょっと改良して、ムービーを一括変換していました) さらにスクリプトエディタで開くと、何もいじくらなくても、 「構文エラー expression があるべきところですが unknown token が見つかりました」 といったメッセージが表示されて、編集すらできなくなってしまいます。 編集するようにするにはどうしたら、よいのでしょうか? 920 名前: 名称未設定 Mail: sage 投稿日: 05/05/16 13:36:29 ID: gJXWngHU ?# >>919 改行マークの?が原因だね。とりあえずこれを削除して、その部分を一行にしちゃう。 921 名前: 919 Mail: sage 投稿日: 05/05/16 18:43:14 ID: m7AJQ+IG >>920 ありがとうございます。おかげでどうにかいじくれるようになりました。 なんか基本的なことだったみたいで、ちょっと恥ずかしいです。 さて、これからいろいろといじくったり、調べたりしながら解決しないと……。 QuickTimeが変わったからの割にはFinderの操作で引っかかっているみたいだし。 922 名前: 名称未設定 Mail: sage 投稿日: 05/05/16 22:47:28 ID: qHSzKIS4 >>921 スクリプトエディタのバグみたいなものだからね。 気にしないように。 でも、忘れないように。 923 名前: 919 Mail: sage 投稿日: 05/05/20 18:14:57 ID: xYHUM3Ou 結局、QuickTimeを6.5.2に戻しました。すると普通に作動してくれている。 う〜ん、なんか俺のスキルじゃ無理っぽい。 TigerにしてAutomatorに期待するってのは現状だとまだ不安だし、 何よりもQuickTimeが7になってしまうし。 今どきはQuickTimeのファイルなどをAppleScriptでいじくるなんてのは古いのかな。 924 名前: 名称未設定 Mail: sage 投稿日: 05/05/20 23:47:08 ID: AYEih1Qe >>921 QuickTimeのsaveまわりのコマンドの仕様が変更になっているらしいですね。 <<・・・>>みたいな表示になっている行がおかしいところ。 新しいQuickTimeの用語を調べて書き直すように。 925 名前: 名称未設定 Mail: sage 投稿日: 05/05/20 23:55:07 ID: ELUNu9vw ttp://www.apple.com/applescript/ applescriptのページってなくなったのかね。 つーかリダイレクト先のページの中程にもこのリンク張ってあるんだけど。 926 名前: 919 Mail: sage 投稿日: 05/05/21 7:59:10 ID: cDOdvQtJ >>924 save movie 1 given <>:file new_file, <>:self contained たぶん、ここのことなんだろうなあ。とはわかった(ありがとうございます)のですが、 QuickTimeの新しい用語がさっぱりとわからないです。 927 名前: 名称未設定 Mail: sage 投稿日: 05/05/21 10:40:46 ID: kNy2wlyc ?# <<と>>が文字コードの問題でエラーしてる可能性があるかな。 << >>をそれぞれ ヌ ネ に置き換えてもだめ? 928 名前: 名称未設定 Mail: sage 投稿日: 05/05/21 10:45:20 ID: nJiEdyPm ( ´_ゝ`)ヌヌネネヌヌネノヌヌネネヌヌネノヌヌネネヌヌネノヌヌネネヌヌネノ 929 名前: 名称未設定 Mail: sage 投稿日: 05/05/21 15:53:31 ID: vQ8zdavV >>927 ちゃうちゃう 本当に記述方法のコマンドが変更になっている だから、その行は同じ意味の別のコマンドに置き換える めんどうだから試してないけど、用語辞書のsaveのところを見ればわかるよ 930 名前: 名称未設定 Mail: sage 投稿日: 05/05/24 2:50:59 ID: weIInpsj なんか画質悪い tell application "Finder" if (exists of file "ss.jpg" of (path to desktop folder)) is true then set var to 2 repeat if (exists of file ("ss " & var & ".jpg") of (path to desktop folder)) is false then set fileName to "ss' '" & var & ".jpg" exit repeat else set var to var + 1 end if end repeat else set fileName to "ss.jpg" end if end tell do shell script "screencapture -t'JPEG' ~/Desktop/" & fileName 931 名前: 名称未設定 Mail: sage 投稿日: 05/05/24 7:30:23 ID: UVDJnaK7 UIElementInspector.appで文字化け(?)してるんですけど仕様ですか? 932 名前: 名称未設定 Mail: sage 投稿日: 05/05/24 12:51:43 ID: /EBXo4E1 >>930 man screencaptureしたけど、JPEGのQualityは指定できないっぽいね。 Image Eventsも、JPEGのQualityは指定できないみたいだし。 933 名前: 名称未設定 Mail: 投稿日: 05/05/24 15:20:54 ID: eYz1kwfG tell application "TextEdit" to quit delay 3 tell application "TextEdit" to save (front document) in (path to desktop) 934 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 0:56:44 ID: UkkHbwcG >>933 すげー無意味な気がするが。 なにが姿態の? 935 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:26:41 ID: /5X5z4BK 1枚だけ開いてるときに問答無用で終了させるのか 936 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:51:34 ID: vmeCZ+5o TextEditにあるテキストで新規作成させたいときって make new document with theText じゃ駄目なの? 937 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:52:26 ID: vmeCZ+5o あるテキストでTextEditに新規作成させたいときって のほうがいいかな。 938 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 1:56:46 ID: Dnm6N/gO >>933 やってみた。なるほど。 939 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 2:00:53 ID: Dnm6N/gO ってか10.3じゃないとお前の望むようにはならんぞ 940 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:09:37 ID: DhQuC+id 偽Grab。 tell application "System Events" if (processes whose frontmost is true) is {application process "Script Editor" of application "System Events"} then existsPlist() of me else tell application "Finder" if (exists of file "nisegurabu050524.plist" of folder "Preferences" of (path to library folder from user domain)) is false then set theFormat to "PNG" set theExtn to ".png" set theOption to "t" set mA to "1" set captCursor to "C" captureIt(theFormat, theExtn, theOption, mA, captCursor) of me else set theFormat to (do shell script "defaults read nisegurabu050524 NGImageFormat") set theExtn to (do shell script "defaults read nisegurabu050524 NGNameExtension") set theOption to (do shell script "defaults read nisegurabu050524 NGOptionCommand") set mA to (do shell script "defaults read nisegurabu050524 NGManualActivation") if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then set captCursor to "C" else set captCursor to "" end if captureIt(theFormat, theExtn, theOption, mA, captCursor) of me end if end tell end if end tell つづく 941 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:11:12 ID: DhQuC+id on captureIt(theFormat, theExtn, theOption, mA, captCursor) if mA is "1" then tell application "System Events" activate set runningApps to (name of processes whose visible is true) choose from list (runningApps as list) with prompt "Running applications" default items (item 1 of (runningApps as list)) cancel button name "Cancel" if result is false then return else set theApp to (item 1 of result) end if end tell tell application theApp to activate delay 1 end if tell application "Finder" if (exists of file ("nisegurabu" & theExtn) of (path to desktop folder)) is true then set var to 2 repeat if (exists of file ("nisegurabu " & var & theExtn) of (path to desktop folder)) is false then set fileName to "nisegurabu' '" & var & theExtn exit repeat else set var to var + 1 end if end repeat else set fileName to ("nisegurabu" & theExtn) end if end tell do shell script "screencapture -" & captCursor & theOption & "'" & theFormat & "' ~/Desktop/" & fileName end captureIt 942 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:12:21 ID: DhQuC+id on existsPlist() tell application "Finder" if (exists of file "nisegurabu050524.plist" of folder "preferences" of (path to library folder from user domain)) is false then do shell script "defaults write nisegurabu050524 ' { NGCaptureCursor = 1; NGImageFormat = PNG; NGManualActivation = 1; NGNameExtension = .png; NGOptionCommand = t; NGScreenCaptureMode = Fullscreen; }'" end if chooseActions() of me end tell end existsPlist 943 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:12:48 ID: DhQuC+id on chooseActions() display dialog "Please select." buttons {"Cancel", "Options", "Capture!"} default button 3 if button returned of result is "Cancel" then return else if button returned of result is "Options" then chooseOptions() of me else set theFormat to (do shell script "defaults read nisegurabu050524 NGImageFormat") set theExtn to (do shell script "defaults read nisegurabu050524 NGNameExtension") set theOption to (do shell script "defaults read nisegurabu050524 NGOptionCommand") set mA to (do shell script "defaults read nisegurabu050524 NGManualActivation") if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then set captCursor to "C" else set captCursor to "" end if captureIt(theFormat, theExtn, theOption, mA, captCursor) of me end if end chooseActions 944 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:15:25 ID: DhQuC+id on chooseOptions() if (do shell script "defaults read nisegurabu050524 NGManualActivation") is "1" then set curman to "YES" else set curman to "NO" end if if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then set captCursor to "YES" else set captCursor to "NO" end if choose from list {"Image format", "Screencapture mode", "Manual activation", "Capture cursor"} with prompt "Image Format: " & (do shell script "defaults read nisegurabu050524 NGImageFormat") & return & "Screencapture Mode: " (改行) & (do shell script "defaults read nisegurabu050524 NGScreenCaptureMode") & return & "Manual activation: " & curman & return & "Capture cursor: " & captCursor default items "Image format" OK button name "Select" cancel button name "Done" if result is false then return else if (item 1 of result) is "Image format" then chooseFormat() of me else if (item 1 of result) is "Screencapture mode" then chooseMode() of me else if (item 1 of result) is "Manual activation" then manualAct() of me else captureCursor() of me end if end if end chooseOptions 945 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:22:53 ID: DhQuC+id on chooseFormat() set theFormatList to {"PNG", "JPEG", "GIF", "BMP", "TIFF", "PDF", "PICT"} set theExtnList to {".png", ".jpg", ".gif", ".bmp", ".tif", ".pdf", ".pict"} choose from list theFormatList with prompt "Image format" default items "PNG" cancel button name "Back" if result is false then chooseOptions() of me else set theFormat to (item 1 of result) repeat with i from 1 to (number of items of theFormatList) if (item i of theFormatList) is theFormat then set theExtn to (item i of theExtnList) exit repeat end if end repeat do shell script "defaults write nisegurabu050524 NGImageFormat " & theFormat do shell script "defaults write nisegurabu050524 NGNameExtension " & theExtn chooseOptions() of me end if end chooseFormat 946 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:23:26 ID: DhQuC+id on chooseMode() choose from list {"Fullscreen", "Interactive"} with prompt "Screencapture Mode" default items "Fullscreen" cancel button name "Back" if result is false then chooseOptions() of me else set theMode to (item 1 of result) if theMode is "Fullscreen" then set theOption to "t" else set theOption to "it" end if do shell script "defaults write nisegurabu050524 NGScreenCaptureMode " & theMode do shell script "defaults write nisegurabu050524 NGOptionCommand " & theOption chooseOptions() of me end if end chooseMode 947 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 3:24:04 ID: DhQuC+id on manualAct() choose from list {"YES", "NO"} with prompt "Manual activation" default items "YES" cancel button name "Back" if result is false then chooseOptions() of me else set mA to (item 1 of result) do shell script "defaults write nisegurabu050524 NGManualActivation -bool " & mA chooseOptions() of me end if end manualAct on captureCursor() choose from list {"YES", "NO"} with prompt "Capture cursor" default items "YES" cancel button name "Back" if result is false then chooseOptions() of me else set captCursor to (item 1 of result) do shell script "defaults write nisegurabu050524 NGCaptureCursor -bool " & captCursor chooseOptions() of me end if end captureCursor ~/Library/Preferencesに"nisegurabu050524.plist"というファイルを作ります。 スクリプトメニューから実行するとスクリーンショットを撮り、 スクリプトエディタで開いてから実行するとオプションの設定ができます。 Fullscreenモードはcommand+shift+3と同じ。ただしcontrolを押してもクリップボードには入りません。 Interactiveモードはcommand+shift+4と同じです。 Manual activationをNOにするとSystem Eventsが最前面になるため全ウインドウが非アクティブになります。 Capture cursorをNOにするとカーソルを隠して撮影します。 948 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 18:27:59 ID: DcENUvYS Dock の設定て AppleScript でコントロールできる? 位置(左下右) を変更したい。一撃で。 949 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 19:21:10 ID: DhQuC+id topも入れてみました choose from list {"bottom", "right", "left", "top"} default items "bottom" set theResult to result if theResult is false then return do shell script "defaults write com.apple.dock orientation " & ((item 1 of theResult) as string) do shell script "killall Dock" 950 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 22:22:08 ID: eDp8eaCc 試してないけど、最後は tell application "Dock" to quit のほうが良くないか? 951 名前: 名称未設定 Mail: sage 投稿日: 05/05/25 23:51:57 ID: DhQuC+id これはTiger専用? tell application "Finder" to set plistPath to (file "com.apple.dock.plist" of folder "Preferences" of (path to library folder from user domain) as string) choose from list {"bottom", "right", "left", "top"} default items "bottom" set theResult to result if theResult is false then return tell application "System Events" to set value of property list item "orientation" of property list file plistPath to ((item 1 of theResult) as string) tell application "Dock" to quit 952 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 0:17:22 ID: GPIPRdaB うおぉ、Tigerで初めて用語説明開いたらクラスブラウザみたいになってる! 今頃気づいた! 953 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 0:26:38 ID: G31XlElf でも俺みたいな初心者にとってはこの用語説明全然わけわかりません 954 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 11:35:42 ID: 10Q+7tSV >949.950,951 ありがとー。 955 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:23:33 ID: Ha55uHB5 tell application "System Events" if (exists of process "Safari") is false then return tell application "Safari" to activate tell process "Safari" keystroke "," using command down tell application "Safari" set x to true repeat until x = false set x to (exists document of window 1) end repeat end tell startClick() of me if (do shell script "defaults read com.apple.Safari WebKitJavaEnabled") is "0" then click radio button 3 of radio group 1 of group 1 of group 1 of window 1 if (do shell script "defaults read .GlobalPreferences AppleCollationOrder") is "ja" then set theMessage to "ごくふつうにしました" else set theMessage to "This is very usual setting." end if tell application "Safari" to display dialog theMessage buttons {"OK"} default button 1 with icon note giving up after 1 else click radio button 2 of radio group 1 of group 1 of group 1 of window 1 if (do shell script "defaults read .GlobalPreferences AppleCollationOrder") is "ja" then set theMessage to "あやしい場所を訪れる準備が整いました" else set theMessage to "Now we're ready to visit weird place." end if tell application "Safari" to display dialog theMessage buttons {"OK"} default button 1 with icon stop giving up after 2 end if end tell tell application "Safari" to if (exists of document of window 1) is false then close window 1 end tell 956 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:23:53 ID: Ha55uHB5 on startClick() tell application "System Events" tell process "Safari" try click button 7 of tool bar 1 of window 1 set x to 0 repeat until x = 3 set x to (number of radio buttons of radio groups of group 1 of group 1 of window 1) end repeat click checkbox 3 of group 1 of group 1 of window 1 click checkbox 5 of group 1 of group 1 of window 1 on error startClick() of me end try end tell end tell end startClick 957 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:30:44 ID: Ha55uHB5 たぶんSafari 2.0専用↑ 958 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 20:57:29 ID: OKDglWgK >>957 なにこれ。 959 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 21:06:00 ID: Ha55uHB5 Java、JavaScript、Cookisの設定を一度に変更するやつをGUIで 言語環境に依存しないで実行できるように書けないかなと思って。 でも実行前の設定がバラバラだとうまく変更できないことに気づいた_| ̄|○ 960 名前: 名称未設定 Mail: sage 投稿日: 05/05/26 21:07:06 ID: Ha55uHB5 × Cookis ○ Cookie 重ね重ねアフォかと_| ̄|○ 961 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 0:38:16 ID: i7I+/fq0 曲ファイルのアートワークをJPEGファイルとして書き出す。 要るもの: 「iTunes Musicフォルダを整理する」 「ライブラリへの追加時にファイルを"iTunes Music"フォルダにコピーする」 にチェックが入った状態のiTunes。 GraphicConverter (5.5.xぐらい。5.6はNG) tell application "Finder" set artFolder to (choose folder) as alias --ここで新規フォルダを作成 if (exists of (folder "ArtworkTempFolder" of artFolder)) is false then make new folder at artFolder with properties {name:"ArtworkTempFolder"} set tempFolder to (folder "ArtworkTempFolder" of artFolder) as alias end tell tell application "GraphicConverter" to activate tell application "iTunes" activate set myLibrary to (name of playlist 1) choose from list (name of every playlist as list) default items myLibrary if result is false then return else set thePlaylist to (item 1 of result) as string end if repeat with theTrackNum from 1 to (number of tracks of playlist thePlaylist) try set theTrack to (track theTrackNum of playlist thePlaylist) if artworks of theTrack is not {} then repeat with awsCount from 1 to (number of artworks of theTrack) set theTrackPath to (location of theTrack) as alias 962 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 0:39:41 ID: i7I+/fq0 tell application "Finder" set theTrackName to (name of theTrackPath) as string set theAlbumFolder to (container of theTrackPath) as alias set theAlbumName to (name of theAlbumFolder) as string set theArtistFolder to (container of theAlbumFolder) as alias set theArtistName to (name of theArtistFolder) as string set theUpsideDown to "" set theAudioExtn to (name extension of theTrackPath) as string repeat with i from 1 to (number of characters of theTrackName) set theUpsideDown to ((item i of theTrackName) & theUpsideDown) end repeat set theOffset to (offset of "." in theUpsideDown) set theNewName to "" repeat with i from (theOffset + 1) to (number of characters of theUpsideDown) set theNewName to ((item i of theUpsideDown) & theNewName) end repeat set thePictureName to (theNewName & "(" & awsCount & ").jpg") as string if (exists of file thePictureName of folder theAlbumName of folder theArtistName of artFolder) is false then if (exists of folder theArtistName of artFolder) is false then make new folder at artFolder with properties {name:theArtistName} if (exists of folder theAlbumName of folder theArtistName of artFolder) is false then make new folder at folder theArtistName of artFolder with properties {name:theAlbumName} 963 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 0:40:11 ID: i7I+/fq0 tell application "iTunes" activate set the clipboard to data of artwork awsCount of theTrack as picture end tell set theAssumedName to "artwork.jpg" as string set thePath to (tempFolder & theAssumedName) as string tell application "GraphicConverter" new image from clipboard save window 1 in (thePath as string) as JPEG with wwwready close window 1 end tell tell application "System Events" set creator type of file theAssumedName of tempFolder to "" set file type of file theAssumedName of tempFolder to "" set name of file theAssumedName of tempFolder to thePictureName end tell move file thePictureName of tempFolder to (folder theAlbumName of folder theArtistName of artFolder) end if end tell end repeat end if end try end repeat display dialog "完了" buttons {"OK"} default button 1 giving up after 30 end tell 964 名前: 名称未設定 Mail: sage 投稿日: 05/05/28 2:00:24 ID: YPVbd+M7 >>939 これはバグなのかね? 965 名前: 919 Mail: sage 投稿日: 05/05/29 11:38:27 ID: vdRz31TS あれからいろいろといじくってもさっぱりわからないです。 QuickTime7に戻してみるとやはりエラーが出てしまいます。 「Can't get name of "Volumes/***/***/***/***.mov"」 といった感じのメッセージが出るので、問題の文章の前辺りもおかしいのかなあ、と思うのですが……。 tell application "Finder" set the file_name to the name of this_file set the new_file to ((the target_folder as text) & the file_name) as string end tell save movie 1 given 《class dfil》:file new_file, 《class savk》:self contained 何か解決策やヒント、アドバイスなどありましたら御教示ください。 966 名前: 名称未設定 Mail: sage 投稿日: 05/05/29 16:16:11 ID: Of0WBwVO tell application "Finder" set the this_file to (this_file as POSIX file) set the file_name to the name of this_file set the new_file to ((the target_folder as text) & the file_name) as string if (exists file new_file) then ? delete file new_file end tell save movie 1 in file (new_file as string) as self contained とりあえずmovのコピーを保存することはできたっぽいけど そもそもこのスクリプトが何をするものなのか理解できないレベルなので 参考までにということでひとつ。 967 名前: 名称未設定 Mail: sage 投稿日: 05/05/29 16:38:51 ID: iyPt6iML 面倒な方法で新しいムービーの保存先のパスを文字列で得て、そのために作成した一時ファイルを削除してから保存を実行しているらしい。 無駄が多いが、ようはそういうことらしい。 >>965の最後の1行を>>966の最後の一行に入れ替えたら? 968 名前: 名称未設定 Mail: sage 投稿日: 05/05/31 6:17:13 ID: 5WvSUPA/ >>965 QT7からQuickTime Playerのsaveコマンドの「as self contained」の定義が無くなっている。 これから独立形式のムービーを保存するときは、新しく追加されたsave self containedコマンドを使うっぽい。 最後の行を新しいコマンドに合わせて書き換えると直りそうです。 save self contained movie 1 in file (new_file as string) 969 名前: 名称未設定 Mail: sage 投稿日: 05/06/01 0:37:04 ID: Fi+tVils Mailなんかであったスクリプトメニュー(メニューエクストラでなく)ってなくなったのかな? 970 名前: 名称未設定 Mail: sage 投稿日: 05/06/01 5:14:23 ID: 7Y3WQztG 初心者ですが最近アポスクリプトはじめました。おもすれー! 971 名前: 名称未設定 Mail: sage 投稿日: 05/06/01 15:01:27 ID: P2bm/qA7 display dialog "  _  ∩" & return & "( ゚∀゚)彡 おっぱい!おっぱい!" & return & " ⊂彡" 972 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 0:24:28 ID: QH98HzNs 遊んでてうっかり tell app "System Events" key down command end tell とやってしまった。戻すのに苦労した。 973 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 0:49:07 ID: h2lMplnN >>971 お前は俺か 少し前にダイアログにおっぱい!おっぱい!を表示させて 遊んでたのだが…… 974 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 0:52:48 ID: fcMI/f1n System Eventsのclick at {} ってまともに使える対象あるの? 975 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 2:30:40 ID: IeGD1wOs display dialog "          " & space & "'⌒ヽ" & space & return & ". " & space & " " & space & "☆" & space & " " & space & " " & ¬ space & "   _ノノ" & space & "   +  *" & space & return & "         '´ " & space & " " & space & "ヽ" & space & "   " & space & ¬ " " & space & "                 " & space & return & "        " & space & "l(〈从ノ)))〉 " & space & return & "        'ノl" & space & ¬ "(l.゚" & space & "ヮ゚ノ" & space & "l" & space & " ´ " & space & "/ ゜  ☆ " & space & return & "   、_  " & space & " " & ¬ space & " <´ヽWノフつ " & space & return & ". " & space & " ミ≡=_、_(,ノ(,," & space & "_,-、ゝ____" & space & "-、 " & ¬ space & return & "." & space & " " & space & "彡≡=-'´ ̄ ̄`~し'ヽ) ̄" & space & " ̄ ゙̄\"′" & space & return & ¬ "   ´" & space & "      ☆" & space & return & " " & space & " " & space & "☆" & space 976 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 2:39:29 ID: IeGD1wOs んー、専ブラからコピペしないと無理か 977 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 2:57:11 ID: LeGy6sJC >975を選択してサービスメニューから 「スクリプトエディタ」>「AppleScript として実行」してみた。 うまくいった。>976乙。 978 名前: 名称未設定 Mail: sage 投稿日: 05/06/02 19:49:57 ID: T/f3AuLh 強制改行を抜かしたら出来た。 979 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 0:33:13 ID: JSMjUDQf ログインウィンドウを呼び出すスクリプト。ファストユーザスイッチが有効な場合のみ。 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 select tell front menu tell menu item "ログインウインドウ..." to click return 0 end tell end tell end try end repeat end tell end tell beep end tell 980 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 0:37:16 ID: IH4KuMke 相当伝統のあるスレだけど、次スレって立つのかな? 981 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 0:48:15 ID: GFuQ47XU スクリプト総合スレがdat落ちしたままだけど ここが実質的に総合スレということでいいのかな 982 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 2:17:36 ID: TDFHKBbq シェルスクリプト総合スレが(隔離スレとしても)機能してるし、perlとかの話も 出てたと思った。 こっちはアップルスクリプトだけの方が良いと思う。 983 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 2:35:35 ID: H1r99zwF 次スレは普通にAppleScript総合スレとして、 「AppleScript 6」 でいいと思うんだけど。 984 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 2:54:44 ID: iE0kq51Z >>979 おかげで入力モードをUSにしてからマカエレを起動するスクリプトが書けました。 ありがとう<(_ _)> 985 名前: 979 Mail: sage 投稿日: 05/06/04 4:04:26 ID: JSMjUDQf >>984 どういたしまして でも時々失敗するようなのでちょっと修正 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 986 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 12:42:16 ID: xxL0HDD+ 2つのColorSyncディスプレイプロファイルを登録しておいて、 呼び出されるたびに切り替えるスクリプト。 property kDisplayProfilesPOSIXPath : (("Library/ColorSync/Profiles/Displays" as Unicode text) as POSIX file) property pProfiles : {missing value, missing value} --"ファイルのプロファイルを取得" on AliasGetProfileName(inAlias) set theName to ("<未設定>" as Unicode text) try tell application "ColorSyncScripting" set profileList to (every profile that location is inAlias) if (count of profileList) is greater than or equal to 1 then set theName to ((name of (item 1 of profileList)) as Unicode text) end if end tell end try return theName end AliasGetProfileName 987 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 12:42:53 ID: xxL0HDD+ --"未設定のプロファイルがあれば選択" on setProfiles() tell application "Finder" to set chooserDefault to kDisplayProfilesPOSIXPath as alias --"選択する必要があることを通知" if missing value is in pProfiles then set profilesText to "" repeat with i from 1 to (count of pProfiles) set profilesText to profilesText & return & (i as string) & ". " & (my AliasGetProfileName(item i of pProfiles)) end repeat tell application "System Events" activate display dialog "切り替える2つのプロファイルを選択します" & return & profilesText buttons {"OK"} default button 1 giving up after 3 end tell end if --"選択させる" tell application "System Events" activate repeat with i from 1 to (count of pProfiles) if item i of pProfiles is missing value then choose file with prompt "プロファイル" & (i as string) & "を選択してください" of type {"prof"} default location chooserDefault without invisibles and multiple selections allowed set item i of pProfiles to result end if end repeat end tell end setProfiles 988 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 12:43:30 ID: xxL0HDD+ --"プロファイルを切り替え" on toggleProfiles() tell application "ColorSyncScripting" set setNum to 1 if ((name of display profile of display 1) as Unicode text) is equal to (my AliasGetProfileName(item setNum of pProfiles)) then set setNum to setNum + 1 end if try set display profile of display 1 to (item setNum of pProfiles) set setName to my AliasGetProfileName(item setNum of pProfiles) on error errmsg tell application "System Events" activate display dialog "エラー" & return & return & (errmsg as Unicode text) buttons {"OK"} default button 1 end tell return 0 end try end tell activate display dialog "プロファイルを「" & setName & "」に設定しました" buttons {"設定を消去", "OK"} default button 2 giving up after 1 if button returned of result is "設定を消去" then set pProfiles to {missing value, missing value} end toggleProfiles on run my setProfiles() my toggleProfiles() end run 989 名前: 名称未設定 Mail: sage 投稿日: 05/06/04 23:56:43 ID: 9D22aKPA >>979, 985 通りすがりのものですが、わたしゃ、今選ばれている入力メニューがなんであっても 目的の入力メニューに一発で切り替えることができるスクリプトを模索していたので、 979と985が参考になりました。3種以上の入力メニューを頻繁に切り替えたいときは、 command-spaceで直前の入力メニューに切り替わるという現行の仕様では使いにくく てしょうがないわけです。しかし、Menu Extraへのアクセスは回りくどいですな。 クリックしてメニューを表示させなければ item が有効にならないみたいなんで、しょう がないですけど。 で、システム環境設定のキーボードショートカットを併用する方法も考えてみました。 汎用ではなくて、かなり決め打ち的な手法です。(実演はTigerにて) 【準備】 (1) キーボードショートカットで、「メニューバーのステータスメニューを操作する」に 適当なキーを割り当てる。  (ここでは、command, shift, option - z を割り当てている) (2) 目的の入力メニューに適当なキーを割り当てる。  (ここでは、U.S. に command, shift, option - ] を割り当てている) (3) 入力メニューをMenu Extraの一番左に配置する。 (4) ログインし直すと割り当てたキーが有効になる。 tell application "System Events" keystroke "z" using {command down, shift down, option down} tell process "SystemUIServer" tell menu bar item 1 of menu bar 1 to select keystroke "[" using {command down, shift down, option down} end tell end tell 「ひらがな」「Pinyin」などにそれぞれ適当にキーを割り当てて、それぞれを 別個のスクリプトファイルとして保存し、それを適当なユーティリティで起動 します。わたしゃ、iKey2を使ってます。おかげで、切り替えが相当楽になり ました。どうもでした。 990 名前: 名称未設定 Mail: sage 投稿日: 05/06/05 12:02:17 ID: 3iB7sq8I test 991 名前: 名称未設定 Mail: sage 投稿日: 05/06/05 23:00:58 ID: KGQNvadS おもろい、めずらしいアップルスクリプト発表会 6 http://pc7.2ch.net/test/read.cgi/mac/1117979906/l50 992 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 2:02:20 ID: Up5D2c3A んじゃ埋め 993 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 2:05:19 ID: T/b57Yua 梅! 994 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 2:08:56 ID: UphQ20Ss 宇目 995 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 17:48:57 ID: 8aCX37sa 旨 996 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 18:42:35 ID: PRli7Pu5 Uh! May 997 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:02:02 ID: YLNDCqw0 a 998 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:02:33 ID: YLNDCqw0 a 999 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:03:04 ID: YLNDCqw0 静かに眠れ 1000 名前: 名称未設定 Mail: sage 投稿日: 05/06/06 19:03:34 ID: YLNDCqw0 やあやあどうもどうも 1001 名前: 1001 Mail: このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。