1 名前:名称未設定 [2008/10/03(金) 18:41:42 ID:Abs+u1Ko0] 質問、発表どっちでもスレ。 【注意】 安直なスクリプト作成依頼、丸投げはやっちゃダメ! わからない点、エラーが解決できない点について、スクリプト片を添えて質問しよう。 ・前スレ、関連旧スレ AppleScript アップルスクリプト 質問、発表 2 pc11.2ch.net/test/read.cgi/mac/1197443062/ AppleScript アップルスクリプト 質問、発表 pc11.2ch.net/test/read.cgi/mac/1174045850/ 【標準装備】スクリプトエディタ pc9.2ch.net/test/read.cgi/mac/1111760449/ おもろい、めずらしいアップルスクリプト発表会 6 pc7.2ch.net/test/read.cgi/mac/1117979906/ ・参考リンク AppleScript ヘルプ help:///Library/Documentation/Help/AppleScript.help 発表まとめ members.at.infoseek.co.jp/obto/script/script.html MacWiki - AppleScript macwiki.sourceforge.jp/cgi-bin/wiki.cgi?AppleScript AppleScript PARK www.tonbi.jp/AppleScript/ TN2065: do shell script developer.apple.com/jp/technotes/tn2065.html developer.apple.com/technotes/tn2002/tn2065.html
751 名前:名称未設定 [2009/07/06(月) 17:52:21 ID:Ik2H/7TsP] すみません。 G4 MDD、OS9で、「イベントの終了メッセージ待ちしてて タイムアウト」みたいな感じです。
752 名前:名称未設定 mailto:sage [2009/07/07(火) 02:45:50 ID:m9Kr0rEx0] >>751 先ずは新しいマシンを購入すべき 質問は、その後でw
753 名前:名称未設定 mailto:sage [2009/07/08(水) 01:10:33 ID:mwrEmuwS0] >>752 先ずはG4 MDD、OS9付を購入すべき 回答は、その後でw
754 名前:名称未設定 mailto:sage [2009/07/08(水) 01:16:54 ID:cRl0ctE+0] それじゃ一生回答してくれる人いないぞ
755 名前:名称未設定 mailto:sage [2009/07/08(水) 07:30:24 ID:QE8yPRRm0] >>749 そのスクリプト、Standard Additions(標準機能追加)OSAXを使っているだけなので Finderに tellするブロックは要りません。 set volume 0 --これだけで動作するはずです。 > 以前はうまく動作していたのですが、 ということなので Standard Additions又は、標準機能追加 OSAXがシステムフォルダ内の スクリプティング機能追加フォルダに入っているかどうか。 入っているなら、壊れている可能性も有るのでこのファイルを入れ換えてみて下さい。 それでもダメなら新しいAppleScriptに全部入れ替え AppleScript 1.8.3(Mac OS 9.1or later) docs.info.apple.com/article.html?artnum=120128
756 名前:名称未設定 [2009/07/08(水) 08:58:03 ID:3mb+Ej5b0] AppleScriptやシェルスクリプトの入門書でお勧めのものがあったら教えていただけませんか? 入門サイトでもいいです。 プログラムやサーバ管理の経験は多少ありますが、スクリプト関係の知識と経験が絶無なので、勉強したいな、と…。
757 名前:名称未設定 mailto:sage [2009/07/08(水) 09:54:09 ID:b+wp8kF40] >>756 入門サイトは >>1 のAppleScript PARKとAppleScript Lab.<www.drycarbon.com/applescript/> とか。 シェルスクリプトは板違い。UNIX板へ。
758 名前:名称未設定 [2009/07/08(水) 11:33:11 ID:P9ybUUceP] >>755 ありがとうございます。 なぜか、最近、自然に治ってたんですけど、ついでに、Finder tellの ブロックを削除してシンプルにしたら、起動後の有音確認のbeepの 実行が速くなりました。良かったです。
759 名前:名称未設定 [2009/07/08(水) 11:35:31 ID:P9ybUUceP] >>756 入門書では、「AppleScriptでゼンマイびゅんびゅん」って いうのが定番みたいです。 旧、新で3冊くらいあるみたいなので、注意してください。
760 名前:名称未設定 mailto:sage [2009/07/09(木) 00:01:13 ID:8F5914Al0] AppleScriptの本は,実質無いに等しいんですよねー。 そんな中でMacPeopleがAppleScriptの特集を組んでくれたのはよかったな。
761 名前:名称未設定 mailto:sage [2009/07/09(木) 01:32:29 ID:LBYGlg+y0] AppleScript Programming for Mac OSX はオレのバイブル。今ではボロボロになってる。 調べたら入手困難だった… どんな本でも載ってるサンプルコードをそのまま打ち込んで 実行して効果を実感することが大事。
762 名前:名称未設定 mailto:sage [2009/07/09(木) 01:56:01 ID:345a/I1p0] テンプレに有るAppleScript PARK の www.tonbi.jp/AppleScript/dic/ AppleScript PARK / Dictionary(リファレンス) これじゃだめですか?
763 名前:757 mailto:sage [2009/07/09(木) 07:08:34 ID:BQfQLCeR0] >>762 このリファレンスはよくまとまっているよね。本として出版してほしいくらい。 >>757 で挙げた2つのサイトでAppleScriptのほとんどを学んだ気が。
764 名前:名称未設定 [2009/07/10(金) 00:30:12 ID:pMycUAML0] AppleScriptでスクリプトの書かれているファイル名を取得する方法はある? シェルでいうと$0(basename $0)みたいなもの #!/usr/bin/osascript return do shell script "basename $0" としても `sh' しか戻ってこなくて...
765 名前:名称未設定 mailto:sage [2009/07/10(金) 01:12:45 ID:Bg8+qFg20] >>764 path to me でスクリプトの alias 型の参照が取得できる。 OS 10.5から、スクリプトエディタで編集中でも正しくスクリプトのファイルパスを取得するよ。 www.seuzo.jp/st/Other/AS2.0.html 他参考 www.tonbi.jp/AppleScript/tips/Alias/RelativePath.html slashdot.jp/~azk/journal/423903 #この質問はFAQだな。前のスレでもあったし。
766 名前:名称未設定 [2009/07/15(水) 00:20:17 ID:/C23je9T0] とりあえず アップルスクリプトってなに?
767 名前:名称未設定 mailto:sage [2009/07/15(水) 00:38:55 ID:V0/3mzQ+0] >>766 ざーっくり言うとMacを操作できる簡易なプログラム言語。 これでわからないなら「ざっくりマンデー」に質問してみてくれ。
768 名前:名称未設定 mailto:sage [2009/07/16(木) 13:11:05 ID:YP6jCy5H0] Mac OS X 10.4.11を使用しています。 次のスクリプトをスクリプトエディタで動かすと正常に動作するのに、アプレットとして起動すると正常に動作しません。 以下、具体的なスクリプトです。 --- set asdlm to AppleScript's text item delimiters set AppleScript's text item delimiters to ":" set a to (path to me as text) display dialog text item -2 of a--(*) set AppleScript's text item delimiters to asdlm --- スクリプトエディタで動かすと、(*)の結果は"Script Editor.app"となります。 しかし、アプレットとして動かすと、"Can't get text item -2 of 〜"となります。 この原因がさっぱりわからないのです。どなたか理由をご存じの方、理由を教えていただけると幸いです。 よろしくお願いいたします。
769 名前:名称未設定 mailto:sage [2009/07/16(木) 14:32:25 ID:+mLgvKU80] >>768 AS2.0.1 OS10.5.7 この環境で問題なしだったよ。 システム壊れてるかも。あたらしい環境作ってためしてみなー。
770 名前:名称未設定 mailto:sage [2009/07/16(木) 14:38:12 ID:rD5p5EBG0] >>768 アプリケーションバンドルで保存して Japanese.lproj を追加する
771 名前:768 mailto:sage [2009/07/16(木) 14:45:43 ID:YP6jCy5H0] >>769-770 >>770 さんの方法で無事に動きました。 ありがとうございました。
772 名前:名称未設定 mailto:sage [2009/07/16(木) 17:37:37 ID:HdWSG8bM0] 文字列の最後に改行を三つ付け足したいのですが、 set theText to theText & {return} & {return} & {return} as string こういう書き方以外に、return×3をスマートに表す方法ってあります?
773 名前:735 [2009/07/16(木) 18:06:30 ID:x8lJBa4h0] >>772 set theText to (theText as string)&"¥r¥r¥r"
774 名前:名称未設定 mailto:sage [2009/07/16(木) 18:31:37 ID:HdWSG8bM0] >>773 レスどうもです。 試してみたところ、動作は問題ないのですが、 set theText to (theText as string)&" " こんな感じで、スクリプトエディタ上ですでに改行された状態になってしまいました…。
775 名前:名称未設定 mailto:sage [2009/07/16(木) 18:32:15 ID:YP6jCy5H0] >>772 set theText to theText & rr(3) --- (* 改行をt個つける関数rr *) on rr(t) set a to "" repeat t times set a to (a & {return}) end repeat return a end rr
776 名前:名称未設定 mailto:sage [2009/07/16(木) 18:39:58 ID:HdWSG8bM0] >>775 おお、サブルーチンカコイイ! set theText to theText & my rr(3) でいけました。 改行をたくさん使う時に便利そうですね ψ(‥ ) メモメモ...
777 名前:775 mailto:sage [2009/07/16(木) 18:47:05 ID:YP6jCy5H0] ちょwネタレスのつもりだったのにw まぁ無駄レスにならんでヨカター
778 名前:名称未設定 mailto:sage [2009/07/17(金) 11:13:04 ID:anQozH4tO] >>768 set AppleScript's text item delimiters to ":" as Unicode text とするとアプレットのままでも動いたよ ただしアプレットの場合はpath to meの結果に最後の":"がつかないから、 アプリ名を表示するのが目的なら表示側も変えないといけないけど display dialog text item -1 of a >>772 >>set theText to theText & {return} & {return} & {return} as string この書き方がそもそも冗長ではあるよね リスト化も文字列化も必要無いので、これでいい set theText to theText & return & return & return スマートとは言えなさそうだが、こんな書き方もできる set theText to theText & ≪data utxt000D000D000D≫ ≪data utxt000D000D000D≫には、本当はas stringかas Unicode textが要るんだけど、 前にくっつけるtheTextに倣って自動変換してくれる
779 名前:772 mailto:sage [2009/07/17(金) 19:00:15 ID:5kj6daby0] >>778 >set theText to theText & return & return & return >set theText to theText & ≪data utxt000D000D000D≫ 上の方がシンプルでわかりやすいので、こちらを使うことにします。 下の方は改行に限らず、特殊な文字を表す時に使えそうですね。 とても参考になりました。ありがとうございます。
780 名前:名称未設定 [2009/07/22(水) 11:45:03 ID:dHg3SDD70] PhotoShopをつかってASで取得した、カラーモードの、《constant ****e083》意味を教えてください。
781 名前:名称未設定 mailto:sage [2009/07/22(水) 21:32:38 ID:eHBDZj5u0] ATOKの「ユーザー辞書」を「ATOK 辞書ユーティリティ」を使い、applescriptで開きたいと思っています。 tell application "Finder" open file "/Users/xxxxxx/Library/Preferences/ATOK21/ ユーザー辞書" using "/Library/Application Support/JustSystems/ATOK 2009/Support/ATOK DicUtility.app" end tell と試行錯誤をしてみたのですが、どうしてもエラーが返ってきてしまいます。 「&1を取り出すことはできません。」 何卒ご教示お願いいたします。
782 名前:名称未設定 mailto:sage [2009/07/22(水) 23:57:08 ID:G8RvuAiW0] >>781 その用途はAutomatorでいけると思う あとATOKとかにApplescript対応を求めるのが間違い
783 名前:名称未設定 mailto:sage [2009/07/23(木) 00:09:37 ID:XA7F6mFV0] >>781 set pref to ((path to preferences) as string) tell application "Finder" open file (pref & "ATOK22:ATOK22ユーザー辞書1") end tell のようにすればうまくいったよ。
784 名前:名称未設定 mailto:sage [2009/07/23(木) 01:06:52 ID:ruyEtXW60] >>780 「カラーモードの、《constant ****e083》」を取得できたスクリプトを教えて
785 名前:名称未設定 [2009/07/25(土) 13:30:04 ID:aHQwJDQy0] 質問させてください。TimeMachineバックアップのボリュームを取得したいのですが、 tell application "System Events" set tm_plist to value of contents of property list file "/Library/Preferences/com.apple.TimeMachine.plist" (|BackupAlias| of tm_plist) end tell と書いてみました。これを実行すると結果として «data ****0000…略…0000» が出ます。これをalias型か何かのファイル参照にできないでしょうか? as alias としても失敗します。 結果をスクリプトにコピペして «data alis0000…略…0000» と書き換えて実行するとボリュームを指すaliasに変わってくれるのでaliasデータである事は 間違いなさそうなのですが。OS 10.5.7です。
786 名前:(・∀・) mailto:sage [2009/07/25(土) 17:43:09 ID:zeKJUHlO0] >>785 valueで取り出してはいけなかったような。 以下はiTunesでTracksを取り出す例。この記述を参考に。 set trs to property list item "Tracks" of contents of property list file "〜.xml"
787 名前:名称未設定 mailto:sage [2009/07/26(日) 12:57:28 ID:Iyj+Iql80] >>785 力づくだが…… >>785 力づくだが…… set tempFilePath to "/tmp/backupAliasTemp" set tempFile to POSIX file tempFilePath tell application "System Events" set backupAlias to property list item "BackupAlias" of contents of property list file "/Library/Preferences/com.apple.TimeMachine.plist" set tempFileHandler to open for access tempFile with write permission try write ((text of backupAlias) as Unicode text) to tempFileHandler end try close access tempFileHandler end tell set timeMachineVolume to POSIX file (do shell script ("ruby -e \"require 'nkf';puts NKF.nkf('-mB -w', File.read('" & tempFilePath & "'))\" | strings | tail -n 1; rm " & tempFilePath))
788 名前:785 mailto:sage [2009/07/26(日) 16:13:05 ID:EUIADagx0] >>786 値を取るにはいずれどこかでvalueを見る必要があると思います。 Rootのvalueから見てくか末端までvalueを見ないかの違いではないかと ちなみにこうやっても同じでした tell application "System Events" set tm_plist to (contents of property list file "/Library/Preferences/com.apple.TimeMachine.plist") set volume_data to (property list item "BackupAlias" of tm_plist) (value of volume_data) as alias end tell >>787 2回もの「力尽く」でありがとうございます。(ちなみに辞書.appによると ちから「ず」く のようです…) これも結構無理矢理ですが、こんなやり方でもできました。実行すると数秒待たされますw set xml_string to (do shell script "defaults read '/Library/Preferences/com.apple.TimeMachine' 'BackupAlias'") -- xml_string は "<00000000 021a0002 000…ffff 0000>" なので16進文字だけにする set hex_text to "" repeat with c in xml_string if (c is in "0123456789abcdef") then set hex_text to (hex_text & c) end repeat -- 'alis' data として変換させる run script "«data alis" & hex_text & "»" ちなみにこれ、バックアップボリュームをマウントしてない時だとなぜか、 alias "/Volumes/Time Machine バックアップ" などという存在しないものを返してきます。
789 名前:名称未設定 mailto:sage [2009/07/26(日) 16:38:50 ID:3iI9f40r0] >>788 なんで"ッ"の上に濁点がついてるんだ?
790 名前:名称未設定 mailto:sage [2009/07/26(日) 17:36:48 ID:EUIADagx0] 「バックアップ」の部分がBathyScapheでは変に表示されてますねw Firefoxでは問題ないです。 スクリプトエディタの結果からBathyScapheにコピペ。 エンコードがどうたらで書き込めないのでさらにFirefoxにコピペして書き込んだらなぜかこうなりました…
791 名前:名称未設定 mailto:sage [2009/07/26(日) 17:43:07 ID:3iI9f40r0] >>790 たぶんスクリプトエディタが濁点を正しく処理&表示できてない ひらがなとカタカナの区別も出来ないらしいし ttp://piyocast.com/as/applescriptiydhye105e/oeeeyyyyeieeice/ を参照
792 名前:名称未設定 mailto:sage [2009/07/27(月) 19:10:15 ID:EK04TzG60] >>791 前スレでも書いたけど、AppleScript2.0のUnicode文字比較はカレントロケールの 基準で行われるから、System Preferences > Internationalのソート順設定で 結果が変わって来る。例えば下の比較 {"is" = "IS","is" = "is"} -- {ASCII小文字=ASCII大文字,ASCII=Fullwidth} Locale English --> {true,false} Locale Japanese --> {true, true} Locale Turkish --> {false, false} となる。驚いたことにトルコ語の"i"の大文字は"I"じゃないから全く一致しない。 AppleのAS担当者はUnicodeのこういう面全く知らないんだろうね。デフォールトでは 共通ロケール使い、considering localeでカレントロケール使う様な仕組みが欠けてる。
793 名前:名称未設定 mailto:sage [2009/07/27(月) 19:37:44 ID:PO2+vvtv0] >AppleのAS担当者はUnicodeのこういう面全く知らないんだろうね。 そう思うならフィードバックしてやればいいやん こいつ思い出す www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html 言ってることはまともか知れんがぶちぶち鬱陶しい
794 名前:名称未設定 mailto:sage [2009/07/27(月) 21:18:12 ID:XPiUmNgd0] フィードバックしても無視されるとエロイ人が騒いでた。
795 名前:名称未設定 mailto:sage [2009/07/27(月) 21:37:04 ID:2L03+vlh0] >>793 みて思い出したが、Edit7よりはYooEdit派だったなぁ YooEditのマルチファイル検索にはよくお世話になった 完全スレ違いにつきsage
796 名前:名称未設定 mailto:sage [2009/07/27(月) 21:45:32 ID:XPiUmNgd0] Edit7のマルチファイル検索にもお世話になったぞ。
797 名前:名称未設定 [2009/07/29(水) 11:58:51 ID:4KzMEEYk0] 外部のScriptからAppleScript Studioで作ったアプリ内部のハンドラってどう呼べばいいの?
798 名前:名称未設定 mailto:sage [2009/07/29(水) 21:08:59 ID:WQ65Oyq60] 呼べないんじゃない? または,アプリの親になるスクリプトだけ呼べる? このあたりはappletの方が自由度が高いような気がする。
799 名前:名称未設定 mailto:sage [2009/07/30(木) 10:57:51 ID:zCgjq0OMO] AppleScript Script File (*.scpt) と AppleScript Text File (*.applescript) のどちらも、 /Contents/Resources/Scripts/*.scpt としてパッケージされているので、 run script やら load script で直接指定してやれば好きなように扱えるよ 仮に AppleScript Application を theApp という名前で作ってルートに置き、 theHandler というハンドラを呼ぶ場合はこんな感じ set theScript to load script ("/theApp.app/Contents/Resources/Scripts/theApp.scpt" as POSIX file) theHandler() of theScript
800 名前:名称未設定 [2009/07/30(木) 19:26:14 ID:xkR6r4CJ0] >>799 load script はAppleScript Text File (*.applescript) を読み込めない。
801 名前:名称未設定 mailto:sage [2009/07/30(木) 22:32:03 ID:bmnIxIER0] >>799 POSIXにする必要はないだろ。 それにアプリの位置をはじめに特定しなきゃいけない。 set theScript to load script file ((path to my application as string) & "Contents/Resources/Scripts/theApp.scpt") tell theScript theHandler() end tell そもそも.scptと.applescriptは完全に性質が違うし,パッケージとは本質的に関係ない。 アプリの中にある実行ファイルは.scpt
802 名前:名称未設定 mailto:sage [2009/07/31(金) 00:08:37 ID:RyQI5MW70] >>801 ヒント:アプリの位置は/
803 名前:799 mailto:sage [2009/07/31(金) 01:22:18 ID:diPjS/wxO] >>800 >>801 *.scpt や *.applescript を AppleScript Studio でビルドすると、 /Contents/Resources/Scripts/ 以下に *.scpt として保存される *.scpt だから load script できるよ …ってな事を最初の3行で書いたつもりなんだが伝わらないもんだな わかりづらくて申し訳ない 状態としては実行専用でバンドル保存した時と同じ ルートに置いたのは単なる例だね>>802 フォロー感謝 そのアプリがどこにあるか不定だとするなら、>>801 の様な書き方になるのかな POSIXパスをエイリアス化してるのは、個人的な習慣なので流して下さいな ってか今試せないんだけど>>801 みたいな書き方できるのかな 参照文字列とPOSIXパスの混在はおかしいような…?
804 名前:名称未設定 mailto:sage [2009/08/01(土) 00:18:12 ID:eiSCELPW0] ビルドしたら. applescriptじゃないじゃん。 アプリをルートに置く?変態! >参照文字列とPOSIXパスの混在はおかしいような…? うっかりしてたぜ。試さずに直打ちだったからな。 set theScript to load script file ((path to my application as string) & "Contents:Resources:Scripts:theApp.scpt") tell theScript theHandler() end tell でよろ。
805 名前:名称未設定 mailto:sage [2009/08/01(土) 01:14:06 ID:rgFGbau00] だから初めからどっちも .scpt になるって言ってじゃん それに実際ルートにファイルを置いて実験する事はよくあるんだけど、 その程度の事で変態よばわりされるのは心外だなぁ ピンと来なかったから流したけど my applcation てのも初めて見た my が指しているのはスクリプトオブジェクトだから、application とは続かんのでは >>797 は「外部のスクリプトから」と言っているし、呼び出す側のスクリプトとは無関係 特にアプリ名を弄ってなければ application "theApp" かな、この場合
806 名前:名称未設定 mailto:sage [2009/08/10(月) 20:26:04 ID:tROgkyMR0] itとかits applicationとか使えるんだっけ?
807 名前:名称未設定 [2009/08/12(水) 20:45:18 ID:6/lEY3pP0] このスレッドすばらしすぎる 本を出してくれ
808 名前:名称未設定 [2009/08/14(金) 11:45:42 ID:t1Qawg8h0] 関連付けの方法を教えてください. .appファイルを作り, 特定の拡張子のファイルをクリックすると作ったスクリプトファイルを実行させたいのですがうまくいきません. ''' on open theFiles end open ''' というような何もしないスクリプトを作り, 特定の拡張子を持つファイルの「情報を見る」メニューでアプリケーションを指定し実行することはできました. 他のファイルにも関連付けたいのですが, 「すべてを変更」ボタンをクリックすると, 関連付け先が元々指定していたアプリケーションに戻ってしまいます. 例えば,*.txtであれば,ボタンを押すと「テキストエディット」というように戻ってしまいます. 何もメッセージが出ないく上記のようなミニマムコードでも発生するので,お手上げ状態です. どなたかご教示ください. ちなみに,他のアプリ(*.txtにCarbon Emacs)では関連付けることはできました.
809 名前:(・∀・) mailto:sage [2009/08/14(金) 12:53:11 ID:Ydvl0xHm0] とりあえず、OSXのバージョン書いたら。
810 名前:名称未設定 mailto:sage [2009/08/14(金) 12:56:26 ID:Qqv11JBA0] アプリケーションバンドル Info.plist CFBundleDocumentTypes 例: /Applications/TextEdit.app/Contents/Info.plist
811 名前:名称未設定 [2009/08/14(金) 17:45:30 ID:y1kvroUD0] すみません。do shell scriptで 「スペースを含む文字列」が格納された変数を 渡すには、どうすればいいでしょうか? do shell script "perl " & perlPath これ↑で変数perlPathに格納されたパスに置かれた Perlスクリプトを実行したいのですが、 パスにスペースが含まれると、 それ以降が「2番目の引数」と見なされてしまいます。 環境はMac OS X 10.5.7です。よろしくお願いします。
812 名前:名称未設定 mailto:sage [2009/08/14(金) 18:15:54 ID:GteGzGkb0] developer.apple.com/technotes/tn2002/tn2065.html quoted form of
813 名前:811 mailto:sage [2009/08/14(金) 18:42:11 ID:y1kvroUD0] >>812 ありがとうございます。解決しました。
814 名前:808 mailto:sage [2009/08/14(金) 21:47:55 ID:t1Qawg8h0] >>809 すみません. OSXのバージョンは10.5.8です. >>810 ありがとうございます. スクリプトをアプリケーションバンドルとして保存し, TextEdit.appのInfo.plist内の拡張子txtに関する値をコピーし,CFBundleDocumentTypes 配列に追加しました. しかし,状況は依然変わりません.
815 名前:名称未設定 mailto:sage [2009/08/14(金) 21:55:02 ID:+VcvW3Pr0] >>814 再起動あるいは再ログインした? それでもおかしいならば手順がおかしいがどこかで間違ってることになるので、 後はこちらを熟読してください。 developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html
816 名前:808 mailto:sage [2009/08/16(日) 02:44:57 ID:bos/Izjb0] >>815 再起動もしました. 念のため新規作成してみました. 手順は下記の通り. 1. スクリプトを書く 2. アプリケーションバンドルとして保存する 3. CFBundleDocumentTypes配列に拡張しtxtに関する値を追加 4. txtファイルを右クリックし「情報を見る」メニューで, アプリケーションを指定し「すべてを変更」ボタンをクリック 5. 指定していたアプリケーションが元に戻ってしまうorz という感じです. ドキュメント読んで出直してきます.
817 名前:名称未設定 mailto:sage [2009/08/16(日) 04:22:31 ID:raj8GWeT0] Info.plistをいじった後でLaunchServicesのDBを更新する必要があるんじゃ? ・アプリを保存し直すか ←うろ覚え ・アプリを一旦別フォルダに移すか ←うろ覚え ・ターミナルでlsregister -fで更新するか ←ググって ・そっくり再構築してしまうか ←これもlsregisterでできるけどググって
818 名前:名称未設定 mailto:sage [2009/08/16(日) 06:38:26 ID:wyWiCqwg0] >>816 CFBundleDocumentTypesは変える必要はなく、 CFBundleIdentifierを追加するだけでいいと思います。 以下の手順で確認しました。再起動・ログアウトはしてません。 (OS 10.5.8) [1] スクリプトエディタで以下のスクリプトを書いて、 フォーマット:アプリケーションバンドル オプション:全てチェック外す で保存。 on open file_list repeat with f in file_list display dialog f as string end repeat end open [2] [1]で保存したドロップレットのパッケージ内のInfo.plistをProperty List Editorで開いて Key「CFBundleIdentifier」Value「com.apple.jp.droplet.test」を追加して保存。 (※CFBundleIdentifierについては他のアプリも参考になると思います) [3] テキストエディットで適当なテキストファイルを作成(拡張子はtxt)。 [4] [3]で作成したテキストファイルをFinderで選択し、情報ウインドウで、 「このアプリケーションで開く」の「その他...」から[1]のドロップレットを選択し、 「すべてを変更...」もクリック(&OK)する。 [5] [3]で作成したテキストファイルをダブルクリック。[1]で保存したドロップレットが動作する。 [6] ちなみに、テキストエディットで新たにテキストファイルを作成と保存し、 ダブルクリックしても、[1]で保存したドロップレットが動作する。
819 名前:808 mailto:sage [2009/08/16(日) 06:53:23 ID:9/s4dSgl0] >>818 解決しました!ありがとうございます.
820 名前:名称未設定 mailto:sage [2009/08/18(火) 03:54:59 ID:d2BwqLTK0] 自分も追加日ソート組みなため iTunesスレでの 質問に興味があるですが "Date Added" Fieldを 好きな日付けで書き換えられるようなスクリプトは 海外にも無いようで、Macの日付を戻したりして 入れ替えたり、とてももローテクで面倒でした こちらの詳しい方はどう思われますか >ソートするのに追加日でしているのですが、なぜか古いファイルが >同日になってしまい同じジャケットがバラバラ出てきて悩んでおります。 >削除して入れ直すには数が多いのでスクリプトでアルバム単位変更できないかと >Doug's AppleScriptなど探してみてはいるのですが、見落としているのか >みつかりません。 >Added Date を変更する方法解る方いらっしゃいませんでしょうか?
821 名前:名称未設定 mailto:sage [2009/08/18(火) 05:31:47 ID:O2qHJ4wa0] pc11.2ch.net/test/read.cgi/mac/1247448657/408 で触れられてたと思ったけど
822 名前:名称未設定 mailto:sage [2009/08/18(火) 23:04:55 ID:XK6x6+6J0] iTerm.app をフルスクリーンモードで起動させたい 起動後に Control-Return でフルスクリーンに出来る のだけど iTerm の設定があるのかと ~/Librarys/Preferlence/net.sourceforge.iTerm.plist 当たりを葬ってみたけど挫折。 残るは iTerm.app に ^Return に相当する事を Apple Script で実現できないものかとスクリプトエディタとにらめっこしてみたが・・・・あああっ。 iTerm Hopme の Script サンプルを見ても、カラーを買えたりとかでフルスクリーン On /Off をコントロールを見つけることができなかった。 スクリプトというより iTerm のコントロール、それも起動の時フルスクリーンにしたい・・をどうすればお助けとを。よろしくお願いしまふ。
823 名前:名称未設定 mailto:sage [2009/08/19(水) 00:37:08 ID:GCsKUHSv0] 多分、一番簡単なのはAutomatorを立ち上げてワークフローメニューの「記録」 を選んで(ユニバーサルアクセスの設定変えろ言われるかもしれないけど)iTerm でフルスクリーンにするコマンドをたたいてみること。 あとは、アプリケーション立ち上げを追加するだけで目的のワークフローができる。
824 名前:名称未設定 mailto:sage [2009/08/19(水) 05:11:11 ID:k7nMVCkA0] 以下を(とりあえずデスクトップに itermfullscreen.scpt として)保存 tell application "iTerm" if (count of terminal) is not 1 then return if (count of session of front terminal) is not 1 then return end tell tell application "Finder" to set screenBounds to bounds of window of desktop tell application "iTerm" to set windowBounds to bounds of front window if windowBounds is not screenBounds then tell application "iTerm" to activate tell application "System Events" to keystroke return using command down end if bash だとして、以下を .bash_profile に記載 if [ "$TERM_PROGRAM" = "iTerm.app" ]; then osascript $HOME/Desktop/itermfullscreen.scpt fi ただ、 起動時と、ウインドウ無しからウインドウを開いた時を区別できない、 遅い、 Spacesがあるとどうなのかわからない(10.4なもんで)
825 名前:名称未設定 mailto:sage [2009/08/19(水) 09:34:18 ID:xpOLjwyfi] 涙 あ、ありがとう。これからやってみる。
826 名前:名称未設定 mailto:sage [2009/08/19(水) 10:20:14 ID:82znTTCqi] Autometer初めてやってみた。これはこれですこい。待ち時間まで再現で自分のトロさがみえてある意味がわらえた。 Script上手くいきました。感激です。 組み込みに使うので立ち上げてイベント送るのみではじめます。ただ、やはり色んな状態を想定すること、勉強になります。 今は、Script眺めてるだけでアップアップだけど、せっかくのサンプル、これからじっくり理解したい。 途方に暮れてた(大袈裟?)のでマジ感謝です。 AppleScript 奥が深い。
827 名前:名称未設定 [2009/08/19(水) 22:07:57 ID:xFoqMzlJ0] AppleScriptってすごい
828 名前:名称未設定 [2009/08/19(水) 22:09:01 ID:P++cE7Id0] パソコンに取り込んだ譜面を見ながら楽器を弾く時、切り替えに不便なため作成したAppleScriptです。 MidiPipe使用。Midiフットコントローラでページの切り替えができるため大変便利です。 iTunesの曲も切り替えられます。とりあえずできたので載せてみます。 --MidiPipeでMidiフットコントローラによるUI操作のためのAppleScript --現在の機能 一番上のウィンドウの戻る進むとiTunesの戻る進む -- --AListでMessageを取得する --Midiフットコントローラからの情報、item 1 192はProgram Change、item 2 は音色番号 --音色番号を元に切り替えを行う on runme(message) tell application "System Events" -- 一番上のウィンドウに戻る進むのコマンド if (item 1 of message = 192) and (item 2 of message = 0) then key code 123 using command down -- ⌘→ if (item 1 of message = 192) and (item 2 of message = 1) then key code 124 using command down -- ⌘← end tell
829 名前:名称未設定 [2009/08/19(水) 22:09:41 ID:P++cE7Id0] --続き tell application "iTunes" -- iTunesの次の曲、前の曲 (リピート時でも移動可能) if (item 1 of message = 192) and (item 2 of message = 4) then set currentPlaylist to current playlist --現在のプレイリストを取得 set currentSongRepeat to song repeat of current playlist --現在のリピート情報を取得 set song repeat of currentPlaylist to 0 --リピートを切に設定 next track --次のトラックへ set song repeat of currentPlaylist to currentSongRepeat --リピート情報を元の情報に設定 end if if (item 1 of message = 192) and (item 2 of message = 3) then set currentPlaylist to current playlist --現在のプレイリストを取得 set currentSongRepeat to song repeat of current playlist --現在のリピート情報を取得 set song repeat of currentPlaylist to 0 --リピートを切に設定 back track --トラックの始めに戻る set song repeat of currentPlaylist to currentSongRepeat --リピート情報を元の情報に設定 end if end tell end runme
830 名前:名称未設定 mailto:sage [2009/08/19(水) 23:11:06 ID:TcrzqjAk0] >>828-829 iTerm で助けてもらったものです。質問させてください。 on runme(message) -- body end runme この括りは runme の message の呼び出しと message はどこから・・(ここから判らないっす) message の 0, 1, 3, 4 は MidiPipe からの音色情報を代用しているという事? tell application "System Events" -- item 1, item 2 というのは System Events のキーワード? -- key code 123 useng command down -- ⌘→を押したのと等価ということですか? end tell currentPlaylist の取得ですが、これって何ですか (あまりにも素人質問ですいません) 後、このシンタックスって、最後は慣れですかね? (くだらない質問ですいません。これはパスしてください)
831 名前:名称未設定 mailto:sage [2009/08/20(木) 01:11:14 ID:ZBXl4WV1O] >>830 横槍ですまないがちょっと性急に過ぎやしないか 質問内容を見る限り、正直まだ他人様のコードを読み取れる段階とは思えない テンプレをひととおり、或いはせめてAppleScript PARK辺りだけでも読んでくる事を勧めます
832 名前:名称未設定 mailto:sage [2009/08/20(木) 08:12:16 ID:8NKD9fZJi] ども Apple Script PARK いってきます。
833 名前:名称未設定 mailto:sage [2009/08/26(水) 12:55:24 ID:UT+ZadVY0] 漠然とした質問で申し訳ないのですが AppleScript Studioの事でお尋ねします それまで問題なくビルド・実行出来ていたスクリプトが ある時を境に ¬のところでは Expected expression but found unknown token. (-2741) コマンド /usr/bin/osacompile が終了コード 1 で失敗しました。 ≠のところでは Expected メthenモ, etc. but found unknown token. (-2741) コマンド /usr/bin/osacompile が終了コード 1 で失敗しました。 とエラーが出るようになってしまいました どういった原因が考えられるでしょうか?
834 名前:名称未設定 mailto:sage [2009/08/26(水) 17:22:49 ID:BkHeLdT30] 文字コードとか言語環境とか
835 名前:(・∀・) mailto:sage [2009/08/27(木) 01:24:24 ID:Qeoje6Iv0] >>833 その表記はOS9とともに死滅したはず。
836 名前:名称未設定 mailto:sage [2009/08/27(木) 04:02:50 ID:cbglxXbv0] 寝言は(ry
837 名前:名称未設定 mailto:sage [2009/09/03(木) 01:26:55 ID:Q4oKYJOD0] --画面解像度を変えるAppleScript。トグルするようにしてみました。 --もしかしたら専用の命令があるかもしれないけど。10.5、10.6で動きました tell application "Finder" set theScreenSize to get bounds of window of desktop set theScreenWidth to item 3 of theScreenSize set theScreenHeight to item 4 of theScreenSize end tell if theScreenWidth is 1440 then set theNewSize to "1024 768" else set theNewSize to "1440 900" end if --www.macosxhints.com/article.php?story=20090413120929454 set theScript to " require 'osx/cocoa'; display = OSX::CGMainDisplayID(); mode = OSX::CGDisplayBestModeForParameters(display, 32, ARGV[0], ARGV[1], nil); config=nil; result = OSX::CGBeginDisplayConfiguration(&config); config = result[1]; if 0 == result[0] then OSX::CGConfigureDisplayMode(config, display, mode); OSX::CGCompleteDisplayConfiguration(config, 2 ); print 'change'; end " do shell script "/usr/bin/ruby -e " & quoted form of theScript & " " & theNewSize
838 名前:名称未設定 mailto:sage [2009/09/04(金) 00:58:40 ID:9GqtYbtS0] TigerでMacに入っている電子辞書をスクリプトを使って利用したいんですが、 そういうスクリプトつくれますか? スクリプトはAppleScriptでもJavaScriptでも可。 電子辞書は国語辞書や漢字辞書で、 スクリプトで操作できるものを購入しようと調べましたがわからなかったので、 どの電子辞書を前提でも可。 具体的な内容は、テキストに書かれている大量の単語を、 辞書で検索して意味などをテキストに書き出すという作業です
839 名前:名称未設定 mailto:sage [2009/09/04(金) 03:06:48 ID:AtlUaXKv0] LogoVista辞典ブラウザ 1.2.2はスクリプトエディタで用語説明開いてもアプリ固有の情報なかった もしやるならGUI スクリプティングだろうけど、どこまでできるかわからない(単語を選択してサービスメニューから辞書引きはそこそこできるかも?だけど)
840 名前:名称未設定 mailto:sage [2009/09/04(金) 12:14:06 ID:YWJx89YP0] >>838 egbridge Uni2付属の電子辞典ビューアにlookupってコマンドがあるね。 でも、いまからegbが入手できないという問題が…。 ちなみに、コトノコはASに完全に未対応だった。 --egbridge Uni2付属の電子辞典ビューア tell application "DictionaryViewer" activate lookup for "辞書" end tell tell application "System Events" key code 48 --Tabキー keystroke "a" using command down --全選択 keystroke "c" using command down --コピー end tell これで、"辞書"という内容を検索して、表示された意味を全コピーするところまではできた。 あとは、 ・意味内容一行目の見出し部分を取り出して読みやすく加工 ・それをテキストエディタにペースト ・引きたい単語をリスト形式で変数に取り込んで、repeat with〜in〜でループさせる こんな処理を付け加えれば良さそう。
841 名前:名称未設定 mailto:sage [2009/09/04(金) 12:29:41 ID:YWJx89YP0] Jammingにもsearchってコマンドがあるから、これでもいけそう。
842 名前:名称未設定 mailto:sage [2009/09/04(金) 22:45:15 ID:nUYUxVxi0] >837 これはもはやAppleScriptではない...
843 名前:名称未設定 mailto:sage [2009/09/04(金) 22:51:48 ID:FV9DqDd30] >>842 むしろ、これこそAppleScriptならではだと思う。
844 名前:名称未設定 mailto:sage [2009/09/05(土) 00:59:07 ID:hQMec1Px0] >>839-841 ありがとうございます。 egbridge Uni2は手に入らなさそうですね。Jammingをちょっと見てみます。
845 名前:名称未設定 mailto:sage [2009/09/05(土) 11:46:21 ID:QymRaNX90] Snow LeopardでAppleScript Studioが打ち切りになったと知ってショックだ どうしろと
846 名前:名称未設定 mailto:sage [2009/09/05(土) 12:57:59 ID:hqWAS12H0] Depられただけで、まだ動くよ。 >ttp://mycometg3.blog.so-net.ne.jp/2009-09-05 IB3.2でdefaultを書き換えて、使えばいい。
847 名前:名称未設定 mailto:sage [2009/09/05(土) 15:58:04 ID:PQZGDKO60] まじかよ
848 名前:名称未設定 mailto:sage [2009/09/05(土) 16:29:09 ID:A/UzNj2OP] Cocoa-Javaでアプリ書いてた人の気持ちがわかったような
849 名前:名称未設定 mailto:sage [2009/09/05(土) 20:29:20 ID:WdLCdU6t0] AppleScriptObjCっつうのもなんか微妙な感じが developer.apple.com/mac/library/releasenotes/ScriptingAutomation/RN-AppleScriptObjC/index.html
850 名前:名称未設定 mailto:sage [2009/09/05(土) 20:50:30 ID:be+wMAR70] 俺は面白いと思うよ、AppleScriptObjC 既存の文法を拡張せずにObjCのオブジェクトを継承できたりしてASSなんかよりずっと良い
851 名前:名称未設定 mailto:sage [2009/09/05(土) 23:05:45 ID:ej1h2E+O0] ASSに手を出さなくて正解だったぜ... しかし,これからどうなるんだ...
852 名前:名称未設定 mailto:sage [2009/09/05(土) 23:30:17 ID:be+wMAR70] ASSって基本的に書き捨てアプリ向けだから、随分役に立ったよ
853 名前:名称未設定 mailto:sage [2009/09/05(土) 23:39:14 ID:DIop7y1ui] 基本的な所が動かない... Set theDate to (class "NSDate")'s |date|() log theDate's description()
854 名前:名称未設定 mailto:sage [2009/09/05(土) 23:43:02 ID:6qHVmxV70] Objective-Cと同じ書き方が必要なら、gdbのデバッグ能力をフルに使える Objective-Cそのまま使う方がずっと簡単だと思うんだが?
855 名前:名称未設定 mailto:sage [2009/09/06(日) 00:07:31 ID:vNiNb+rl0] そんなこと言ったらRubyCocoaもPyObjCも同じじゃん
856 名前:名称未設定 mailto:sage [2009/09/06(日) 00:45:48 ID:de0Txa+C0] 原則 Class methodしか使えなかったcall method連発のASSよりもよいものになっている事を祈る
857 名前:名称未設定 mailto:sage [2009/09/06(日) 02:12:09 ID:vNiNb+rl0] >>853 set theDate to current application's class "NSDate"'s |date|() log theDate current applicationがミソ あとdescriptionメッセージは別になくても平気
858 名前:名称未設定 mailto:sage [2009/09/06(日) 02:33:41 ID:BnE4l9Ao0] Xcode で AppleScript Droplet が作成できなくなった…… ドロップレットを作成する簡単な方法はなくなったの?
859 名前:名称未設定 mailto:sage [2009/09/06(日) 03:17:38 ID:vNiNb+rl0] ドロップレットならAppleScriptエディタの方が簡単でしょ
860 名前:名称未設定 mailto:sage [2009/09/06(日) 09:33:35 ID:PTAKa/tri] ASSアプリを、AppleScriptObjCに移植 してみた。コツをなかなかつかめない。 Idleハンドラが動かないのでNSTimer 使ってみた。 Bindingが使えるのはおもしろいな。
861 名前:名称未設定 mailto:sage [2009/09/06(日) 11:43:38 ID:LuSTT5iG0] ASOCを覚えると自由にウィンドウを作ったり、 普通のアプリっぽいこともできるのかな?
862 名前:名称未設定 mailto:sage [2009/09/06(日) 11:59:23 ID:vNiNb+rl0] できる
863 名前:名称未設定 mailto:sage [2009/09/06(日) 12:22:01 ID:BnE4l9Ao0] 早速新しいAppleScriptエディタでアプリケーションバンドルを作成してみたけど, Dockアイコンがドロップを受け付けてくれない……。 Info.plist を miff.blog.so-net.ne.jp/2009-05-11 のように書き換えてみると,Finderのアイコン上へはドロップできたけど, やっぱり Dock アイコンへはドロップできない。 どうするのが正しいのでしょうか?
864 名前:863 mailto:sage [2009/09/06(日) 12:44:22 ID:BnE4l9Ao0] 分かった。最初に保存するときに,on open ハンドラが存在すればドロップレットとして保存される模様。
865 名前:名称未設定 mailto:sage [2009/09/06(日) 13:03:02 ID:vNiNb+rl0] …
866 名前:名称未設定 mailto:sage [2009/09/06(日) 13:04:58 ID:VyLvyVqf0] 出来上がったアプリをコピー,Dockに登録し直し,ログインし直し。 これらの単独または上記の順番で連続して実行。
867 名前:名称未設定 mailto:sage [2009/09/06(日) 13:34:55 ID:zEN1Hafm0] <妄想> スクリプトエディタで書く普通のスクリプトをObj-Cでも書けるようにしてくんねえかな 昔JavaScript版どっかが作ってたけど いや、Obje-C++みたいに、というかさらに混在できるようにしちゃうとか Objective-C++AS 予約語が重なりそうだな </妄想>
868 名前:名称未設定 mailto:sage [2009/09/06(日) 13:51:46 ID:vNiNb+rl0] Scripting Bridgeがだいたいそんな感じ
869 名前:名称未設定 mailto:sage [2009/09/06(日) 14:48:46 ID:+Cg2k6Qb0] 初めてのAS-ObjCアプリです。 >ttp://mycometg3.blog.so-net.ne.jp/2009-09-06 面白いね。これ。
870 名前:名称未設定 mailto:sage [2009/09/07(月) 18:59:05 ID:SsOr1JYe0] ダイアログを表示せずにキーボード入力をsetする方法はあるのでしょうか? スクリプトを起動したら入力待機して、1文字入力したら、それを変数に格納したいのです。
871 名前:名称未設定 mailto:sage [2009/09/08(火) 01:13:51 ID:O0UZeph10] >>870 --別スレでCGEventSourceKeyStateでチェックできると見たので。keycode2charの行を分割したので一行に結合してください tell application "System Events" -- アクティブなアプリでキーを拾わないように set theAppNameList to name of processes whose frontmost is true set theAppName to item 1 of theAppNameList activate end tell set thePressKey to my getPressChar() tell application theAppName to activate -- 元のアプリに戻る display alert thePressKey on getPressKeycode() -- キーを押しているのを見つけるまでループ set theRubyScript to "require 'osx/cocoa' while(1) for i in 0..126 if OSX::CGEventSourceKeyState(0, i) print i exit(0) end end sleep 0.1 end" set theResult to do shell script "/usr/bin/ruby -e " & quoted form of theRubyScript return theResult as number end getPressKeycode on getPressChar() -- keycode2charには記号など抜けているキーがあります。間違いもあるかもしれません。 set keycode2char to {"a", "s", "d", "f", "h", "g", "z", "x", "c", "v", 0, "b", "q", "w", "e", "r", "y", "t", "1", "2", "3", "4", "6", "5", 0, "9", "7", 0, "8", "0", 0, "o", "u", 0, "i", "p", "Return", "l", "j", 0, "k", 0, 0, 0, 0, "n", "m", 0, "Tab", "Space", 0, "delete", 0, 0, "Command", 0, "Shift", 0, "Alt", "Ctrl", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "F5", "F6", "F7", "F3", "F8", "F9", 0, "F11", 0, "F13", 0, "F14", 0, "F10", 0, "F12", 0, "F15", 0, 0, 0, 0, "F4", 0, "F2", 0, "F1", "Left Arrow", "Right Arrow", "Down Arrow", "Up Arrow"} set theKeyCode to getPressKeycode() return item (theKeyCode + 1) of keycode2char end getPressChar
872 名前:名称未設定 mailto:sage [2009/09/08(火) 01:17:59 ID:O0UZeph10] ついでにできた修飾キーをゲットするスクリプト コマンド押しながら起動したら処理分けるとかに使えるかもしれない set theResult to my getModifierKeys() log theResult on getModifierKeys() set theRubyScript to "require 'osx/cocoa' event = OSX::CGEventCreate(nil) mods = OSX::CGEventGetFlags(event) print mods,' ' if (mods & 0x00020000) != 0 print 'shift ' end if (mods & 0x00040000) != 0 print 'control ' end if (mods & 0x00080000) != 0 print 'option ' end if (mods & 0x00100000) != 0 print 'command ' end " do shell script "/usr/bin/ruby -e " & quoted form of theRubyScript end getModifierKeys
873 名前:名称未設定 mailto:sage [2009/09/08(火) 01:19:24 ID:+3aA31Hn0] safariに連続で画像を読み込ませるのをやってみたんですが、 日本語名のフォルダに入っているファイルではうまく動いてくれません。どうしたらいいですか? OSは10.5.8です。 スクリプトはこんなかんじです。 on open drop_items repeat with curItem in drop_items tell application "Safari" set itempath to POSIX path of curItem set URL of tab 1 of front window to itempath end tell end repeat end open
874 名前:名称未設定 mailto:sage [2009/09/08(火) 03:14:12 ID:Tv2i7/JY0] やっぱりいざというときにはRubyとかObj-Cだなぁ
875 名前:名称未設定 mailto:sage [2009/09/08(火) 03:25:31 ID:Tv2i7/JY0] >>873 set itempath to POSIX path of curItem ↓ set itempath to quoted form of (POSIX path of curItem) これじゃだめかい?
876 名前:名称未設定 mailto:sage [2009/09/08(火) 23:13:07 ID:YZ3C8W070] >>873 素直にURL使った方が早いかも 10.6で確認 on open drop_items repeat with curItem in drop_items tell application "System Events" set itempath to URL of curItem end tell tell application "Safari" set URL of tab 1 of front window to itempath end tell end repeat end open
877 名前:873 mailto:sage [2009/09/08(火) 23:58:57 ID:+3aA31Hn0] >>875 さん >>876 さん ありがとうございます。 >>876 さんの書かれたスクリプトで出来ました。本当にありがとうございました。
878 名前:名称未設定 mailto:sage [2009/09/09(水) 21:44:46 ID:1O7J4flE0] >874 それはすでにAppleScriptでありながらAppleScriptではない。
879 名前:名称未設定 mailto:sage [2009/09/11(金) 08:51:39 ID:WxzErIRi0] AS-Studioだったら出来てたんだけど・・・ AS-ObjCで、DragAndDropを受け付けるコードを書こうとしたが 最初のDraggingEnterd_()でビット演算(AND)が必要な箇所があって、 手が止まってしまった。 ObjC if (sourceDragMask & NSDragOperationGeneric) { return NSDragOperationGeneric; } AS ・・・ AppleScriptって、今だにビット演算使えないのか・・・
880 名前:名称未設定 [2009/09/13(日) 01:06:53 ID:4appDlQC0] >>879 AS-ObjC ってそうなんだ イベントつなぐのが楽になってるのかと思ってた
881 名前:名称未設定 mailto:sage [2009/09/13(日) 04:40:12 ID:xhAgFv6VP] タグを自動で一括編集したくて、 コメント欄に書いてあるリリース日を説明欄にコピって 説明欄でソートしたらリリース日順に並べられるようにするAppleScriptを作るのに今までかかった。 全くのプログラム初心者なので色々なサイトのを借りてきて切り貼りさせてもらったけどなんとか期待通りの挙動になった…
882 名前:名称未設定 mailto:sage [2009/09/13(日) 04:42:18 ID:xhAgFv6VP] ↑はiTunesの話です…
883 名前:名称未設定 mailto:sage [2009/09/13(日) 11:01:53 ID:KkddvEMq0] >>881-882 真意のわからん投稿だが完成おめでとう。 ところでそれはこのスレでは初心者レベルなのか.....質問がしにくくなった....... 一定時間間隔で空きメモリの量を確認して,規定量以下になったらメモリを食っているアプリを終了させて,liberamemory(auto)とかを走らせようと思っています。 ここで質問なのですが。liberaを走らせる部分は単純に tell application "Libera Memory Auto3" activate end tell で、liberaは起動すると自動で処理を開始し,処理を終わらせると勝手に終了するので,起動させるだけでいいのですが アプリが勝手に自動終了しようとするところでエラーがでるみたいです。イベントログだとこんな感じです。 tell application "Libera Memory Auto3" activate current application "Libera Memory Auto3 でエラーが起きました:接続が無効です。" こんな風に自動で処理を進めて勝手に消えていくアプリの場合,どのように書けばいいのでしょうか。 すみません,低レベルかもしれませんがよろしくお願いします。
884 名前:(・∀・) mailto:sage [2009/09/13(日) 11:33:16 ID:C0joxKVM0] activateを消せばいいんじゃ。
885 名前:名称未設定 mailto:sage [2009/09/13(日) 11:41:40 ID:QxE5LHfg0] ディスクキャッシュクリアしたいなら専用コマンドあるんだから、そっち使えば? do shell script "/usr/bin/purge" man purgeも読んでね。
886 名前:名称未設定 mailto:sage [2009/09/13(日) 14:32:03 ID:E536R0Uc0] tellブロックの内部を ignoring application responce end ignoring で囲む。 または try end try で囲む。 なんてのは?
887 名前:883 mailto:sage [2009/09/13(日) 17:37:33 ID:KkddvEMq0] >>884 activate消すと起動しませんよね...... >>885 ご指摘ありがとうございます。 シェルスクリプトに関しても全くの無知でして。勉強になりました。 うまく併用させてみたいと思います。 >>886 try~end try でできました! ありがとうございます。m(_ _)m
888 名前:名称未設定 mailto:sage [2009/09/13(日) 21:01:19 ID:65DAWBwz0] >>887 起動させるのはrunで、activateは一番手前に持ってくる命令じゃね?
889 名前:883,887 mailto:sage [2009/09/13(日) 23:07:59 ID:KkddvEMq0] >>888 そうですね,言葉が不適切でしたか。すみません。
890 名前:名称未設定 mailto:sage [2009/09/14(月) 22:30:46 ID:oBw14roh0] ASObjCの勉強するか… 掌田さんあたりがわかりやすい入門書出してくれんだろうか
891 名前:名称未設定 mailto:sage [2009/09/15(火) 07:52:49 ID:RPQKMNww0] 掌田津耶乃の本がわかりやすい…?
892 名前:名称未設定 mailto:sage [2009/09/15(火) 10:36:57 ID:Aou5RXENi] >>891 釣られてどうする
893 名前:名称未設定 mailto:sage [2009/09/15(火) 16:14:41 ID:6SUSyBKT0] 昔のHyperCardの入門書はよかったけどな。
894 名前:名称未設定 mailto:sage [2009/09/15(火) 17:11:48 ID:EXK1+Zxt0] HC入門ならダニーグッドマンだろ。
895 名前:名称未設定 mailto:sage [2009/09/15(火) 20:04:13 ID:1HSKzOmg0] >>891 掌田津耶乃ぐらいしか出してくれないだろう。
896 名前:名称未設定 mailto:sage [2009/09/15(火) 21:21:24 ID:YMDNfyXT0] いや、単に自分がAppleScript Programming for Mac OS Xで ASS覚えたからというだけの話なんだ
897 名前:名称未設定 mailto:sage [2009/09/15(火) 22:30:32 ID:RPQKMNww0] あの青い表紙のやつか。 うちにもそれとぜんまいビュンビュンあるけど、今読み返してみるとやっぱりメチャクチャだわ
898 名前:名称未設定 mailto:sage [2009/09/16(水) 01:36:44 ID:gNIc8Rhx0] >>897 が出版してくれよ
899 名前:名称未設定 mailto:sage [2009/09/17(木) 02:49:26 ID:7uBdTuPX0] 10.5以前でつくったアプリケーションを10.6のエディタで別名で保存すると64bitになる
900 名前:名称未設定 mailto:sage [2009/09/17(木) 19:35:09 ID:5fOLsob60] 複数のファイルの頭から指定バイト数を削除するスクリプトを教えてください。
901 名前:名称未設定 mailto:sage [2009/09/17(木) 22:13:25 ID:nHKewOSW0] >>900 >>1
902 名前:名称未設定 mailto:sage [2009/09/17(木) 22:26:43 ID:9ISfMQA40] とりあえず丸投げ禁止がこのスレの掟。 >>901 はそれがいいたいのかと。 と言うだけじゃアレなんでヒントだけ示せば、nバイト削除=(n+1)バイト目から読み込んで書き込むということだから read from文使えばいいだろう。 あとはわかるな? >>901 IDがnHK
903 名前:名称未設定 mailto:sage [2009/09/18(金) 02:49:37 ID:dF8NJ+Je0] tail -c +開始バイト も簡単で
904 名前:名称未設定 mailto:sage [2009/09/18(金) 02:53:19 ID:JPJU8UqJ0] >>903 簡単だけど、時間が稼げない気がする 以前、do shell script("touch"〜とopen for accessでファイルを100個だか500個だかの作成をループで回して時間計ったことがあるけど、open for accessの方が圧倒的に速かった まぁ最近の機種だとそうでもないかもしれないけど
905 名前:名称未設定 mailto:sage [2009/09/18(金) 03:27:59 ID:dF8NJ+Je0] そんなオーダーで要求されるとは想像もしなかったよw 5個か10個か、スクリプトも使い捨て/使い切りと思ってさ
906 名前:名称未設定 mailto:sage [2009/09/18(金) 08:10:15 ID:Xs8mCu3S0] そういう時はtailじゃなくてddだろjk
907 名前:879 mailto:sage [2009/09/18(金) 09:56:06 ID:Xs8mCu3S0] なんとかしてみた。 code: on conv10to2(INPUT) -- 8 bit, Decimal to Binary String translation -- ex: in:5 out:"00000101" set {str2, val} to {"", INPUT} repeat while val > 0 set str2 to ((val mod 2) as text) & str2 set val to (val div 2) end repeat return (characters -8 thru -1 of ("00000000" & str2)) as text end conv10to2 set NSDragOperationGeneric to 4 set myINFO to conv10to2(7) {myINFO, (character -NSDragOperationGeneric of myINFO) > 0} output: {"00001000", true}
908 名前:名称未設定 mailto:sage [2009/09/18(金) 19:25:28 ID:xFgjt65u0] こんなソフト・アプリスレ 702-751 より。 あるディレクトリより指定日以降に変更、追加されたファイル抽出>他のマシンの指定ディレクトリにリストア display dialog "フォルダより差分ファイル抽出、上書きスクリプト" buttons {"Cancel", "Restore", "Archive"} default button 3 set retText to button returned of result if retText = "Restore" then myRestore() of me else if retText = "Archive" then myArchive() of me end if on myRestore() --指定tarファイルを指定フォルダにリストアします。 choose file "アーカイブファイルを選択してください。" set tarFilePath to POSIX path of result set tarFilePath to (quoted form of tarFilePath) choose folder "リストア先のフォルダを選択してください" set restFolderPath to POSIX path of result set restFolderPath to (quoted form of restFolderPath) do shell script "cd " & restFolderPath & "; tar xvpf " & tarFilePath end myRestore 続く
909 名前:908 mailto:sage [2009/09/18(金) 19:27:54 ID:xFgjt65u0] on myArchive() --指定日付より後にモディファイされた書類を、デスクトップにアーカイブします。 set myDeskTopPath to path to desktop folder set myDeskTopPath to POSIX path of myDeskTopPath choose folder set myFolderPath to POSIX path of result display dialog "何日前からをデスクトップにアーカイブします。" default answer "30" set myDate to text returned of result as integer if myDate < 0 then return set myDate to (current date) - myDate * days set myDate to ((year of myDate) as integer) & "-" & ((month of myDate) as integer) & "-" & ((day of myDate) as integer) as Unicode text set myFolderPath to (quoted form of myFolderPath) set tarPath to (quoted form of (myDeskTopPath & myDate & ".tar")) set myDate to (quoted form of myDate) do shell script "cd " & myFolderPath & "; tar -cpl --newer-mtime " & myDate & " -f " & tarPath & " ./" --不正ファイル名チェック?--force-localオプションは、この書式では使えませんでした。後日勉強。 --do shell script "cd " & myFolderPath & "; tar -cpl --newer-mtime " & myDate & " --force-local -f " & tarPath & " ./" set hoge to tarPath & " に保存しました。" as Unicode text display alert hoge end myArchive
910 名前:名称未設定 mailto:sage [2009/09/19(土) 01:04:54 ID:fjEnmgv00] do shell scriptは文字列の解釈作業が入るからスループットが悪いのでは?
911 名前:名称未設定 mailto:sage [2009/09/19(土) 18:24:06 ID:6nVF67/a0] 教えてください 語句を選択してAmazonやらYouTubeやらで検索というASを下記を改変しつつ作っているのですが open location "http://find.2ch.net/?BBS=2ch&TYPE=TITLE&STR= " & surl & "&ie=EUC-JP&oe=EUC-JP" とすると開いたページで文字化けしてしまいます 解決策をご教示願います --選択した語句でgoogle検索 set cb to the clipboard as record tell application "System Events" tell application process "Safari" tell application "Safari" to activate delay 0.5 keystroke "c" using command down delay 0.5 set surl to the clipboard end tell end tell set the clipboard to cb if surl contains return then set surl to do shell script "echo " & quoted form of surl & " | sed s/" & return & "//g" if surl contains " " then set surl to do shell script "echo " & quoted form of surl & " | sed s/" & quoted form of " " & "/" & quoted form of "+" & "/g" tell application "Safari" open location "www.google.com/search?client=safari&rls=ja-jp&q= " & surl & "&ie=UTF-8&oe=UTF-8" end tell
912 名前:911 mailto:sage [2009/09/19(土) 18:29:44 ID:6nVF67/a0] 連投すみません。訂正です。 >open location "http://find.2ch.net/?BBS=2ch&TYPE=TITLE&STR= " & surl & "&ie=EUC-JP&oe=EUC-JP" open location "find.2ch.net/?BBS=2ch&TYPE=TITLE&STR= " & surl & "&ie=EUC-JP&oe=EUC-JP"
913 名前:名称未設定 mailto:sage [2009/09/19(土) 18:59:26 ID:Rap9QQE20] >>911 こんな感じで文字コード変換した後にURLエンコードしたらOK set theText to "ラブプラス" set theScript to "print rawurlencode(mb_convert_encoding($argv[1], 'EUC-JP','UTF8'));" set theEncText to do shell script "php -r " & quoted form of theScript & " " & quoted form of theText open location "find.2ch.net/?BBS=2ch&TYPE=TITLE&STR= " & theEncText 10.6だったらAutomatorのサービス用の検索ひな形をAutomatorスレに書いたので これ使うとテキストを選択したときのコンテキストメニューから検索できるようになる
914 名前:名称未設定 mailto:sage [2009/09/19(土) 19:02:00 ID:AjXA6wu+0] ASOCのサンプルが出てました。 www.tidbits.com/matt/default.html#applescriptthings www.tidbits.com/matt/downloads/SearchTidBITSAsoc.zip 自分で定義したObjCクラスをインスタンス化して、AppleScriptから 使っているそうです。
915 名前:911 mailto:sage [2009/09/19(土) 20:08:33 ID:6nVF67/a0] >>913 ありがとうございます! お察しの通り、10.6でテキストを選択>コンテキストメニューから検索 の作業をしていたところです。 QuickSilverがダメダメで途方に暮れていたので助かりました。
916 名前:名称未設定 [2009/09/23(水) 05:20:45 ID:mHdOAya10] すみません。教えていただきたいのですが、 クリップボードに何も入っていない時、エラーにならないために以下のような3行を入れていました if (the clipboard) is {} then set the clipboard to "" end if しかし、OS10.5.6あたりから突然「エラー25131」が表示され、この3行が使用できなくなりました。 ぜひ、回避方法をご存知の方は教えていただけないでしょうか? よろしくお願いいたします。
917 名前:名称未設定 mailto:sage [2009/09/23(水) 05:24:53 ID:Y9WDEAhq0] >>916 try 〜 on error 〜 end try
918 名前:名称未設定 [2009/09/23(水) 09:48:59 ID:mHdOAya10] >>917 try set cb to the clipboard on error set the cb to "" end try としたら、うまくいきました。ありがとうございます。 マジで助かりました!
919 名前:名称未設定 mailto:sage [2009/09/23(水) 11:47:43 ID:pld8dcYT0] で、Snow Leopardでは keychain辺りのバグは直っているのか?
920 名前:名称未設定 mailto:sage [2009/09/26(土) 05:56:09 ID:uXS75+MN0] アップルスクリプトで、 あるページをSafariで表示し、 そのページを定期的に更新(例えば30分おきなど)し、 更新するたびにそのページのスクリーンショットを撮る。 という一連の作業を自動的にやってくれるようなことがスクリプトで可能であれば、 教えていただけないでしょうか。
921 名前:名称未設定 mailto:sage [2009/09/26(土) 06:35:13 ID:hjP5EEwK0] くれくれ廚は帰れ。
922 名前:名称未設定 mailto:sage [2009/09/26(土) 06:40:39 ID:uXS75+MN0] そうですか。 ではけっこうです
923 名前:名称未設定 mailto:sage [2009/09/26(土) 06:44:16 ID:HC0zHsja0] なにがしたいんだよw AppleScript書けなくてもAutomatorで出来そうだな
924 名前:名称未設定 mailto:sage [2009/09/26(土) 06:50:49 ID:uXS75+MN0] >>923 Automaterに挑戦していましたが、 自分の動作を記録させてSafariを更新させることができました。 あとAutomaterに入ってるスクリーンショットを撮る動作をその後に追加しましたが、 やはりそれを例えば30分置きに実行するというのが不可能っぽいです。 ググるとcronとかいうのを使って定期実行してる人もいるみたいですが、 チンプンカンプンです。 それに定期実行のスタートと終了を、アプリケーションを起動くらいシンプルなものにしたいので、 ターミナルでcronを使うというのはちょっと違うかなと思いまして。 やはりXcodeなどでプログラミングした方がいいんですかね・・。
925 名前:名称未設定 mailto:sage [2009/09/26(土) 08:28:09 ID:uXS75+MN0] とりあえずそれっぽいのを完成させることができました。 >>920 は忘れてください。 >>923 さんレスありがとうございました
926 名前:名称未設定 mailto:sage [2009/09/26(土) 13:21:47 ID:v6tnP4iz0] 聞くだけ聞いて自分の情報を出さない人ですか?
927 名前:名称未設定 mailto:sage [2009/09/26(土) 13:30:04 ID:7AJ/V1wc0] そうです。人に厳しく、己に優しくをモットーに生きています。
928 名前:名称未設定 [2009/09/26(土) 15:07:13 ID:wIZ3SGKZ0] AppleScriptだけで出来そうだ。
929 名前:名称未設定 mailto:sage [2009/09/26(土) 16:13:41 ID:uXS75+MN0] >>926 >>921 のレスさえなければ出してましたよ
930 名前:名称未設定 mailto:sage [2009/09/26(土) 17:08:07 ID:KYGTqK6L0] バカバカしい いちいち応戦すんなよ もう黙ってろ
931 名前:名称未設定 mailto:sage [2009/09/26(土) 17:18:51 ID:100nMdRE0] >>uXS75+MN0 >>1 にある、 >【注意】 >安直なスクリプト作成依頼、丸投げはやっちゃダメ! わからない点、エラーが解決できない点について、スクリプト片を添えて質問しよう。 これを読んでいない、もしくは理解できていない上に、 自作スクリプトを発表する意志すらないのであれば、 このスレに書き込む資格はない。 とっとと出ていって欲しい。
932 名前:名称未設定 mailto:sage [2009/09/26(土) 17:29:18 ID:FumBLbdq0] >>931 >>930 反応する奴も出てけ ASと無関係な書込みも同類
933 名前:名称未設定 mailto:sage [2009/09/26(土) 17:36:04 ID:nhXhp6NX0] こわいよー
934 名前:名称未設定 mailto:sage [2009/09/26(土) 17:53:18 ID:klkoQD640] >>932 お前はここのヌシか?
935 名前:名称未設定 mailto:sage [2009/09/26(土) 18:43:09 ID:ydLGr6SL0] 誰か魚紳さん呼んでこい
936 名前:名称未設定 mailto:sage [2009/09/26(土) 20:31:52 ID:QE+wYwnt0] AppleScript-ObjCの勉強におすすめ。 英語だけど、分かりやすいビデオが置いてある。 >ttp://www.macosxautomation.com/applescript/develop/ InterfaceBuilderとかXcodeとか、使ってないひとにはこれ見て もらった方が早いよ。
937 名前:名称未設定 mailto:sage [2009/10/01(木) 22:10:11 ID:37QaXFn10] AppleScriptとperlを組み合わせて、Excel 2008用に正規表現置換 ダイアログボックスを作りたいと思ってるんだけど、もうそんなの やってるって人いますかね。
938 名前:名称未設定 mailto:sage [2009/10/02(金) 02:14:26 ID:L+9RMJbk0] ログイン時にアプリを3秒の間隔開けて起動させるようなAppleScriptを wakabamac.blog95.fc2.com/blog-entry-785.html このページのサンプルのアプリ名だけを変えて作りました。 AppleScriptで起動させたアプリを通常のログイン項目オプションの"隠す"と同じように ウインドウを表示させないようにしたいと思っているのですが、どなたか方法を教えていただけませんでしょうか?
939 名前:名称未設定 mailto:sage [2009/10/02(金) 02:18:59 ID:WRY5kmZj0] >>938 tell application "System Events" set visible of processes whose name is "Safari" to false end tell
940 名前:名称未設定 mailto:sage [2009/10/02(金) 02:24:24 ID:03zFY9jW0] activateじゃなくてlaunchにすべき
941 名前:名称未設定 mailto:sage [2009/10/02(金) 02:27:31 ID:L+9RMJbk0] >>939 ,940 どうもありがとうございます! 試してみます。