おもろい、めずらしいアップルスクリプト発表会 6

このエントリーをはてなブックマークに追加
1名称未設定
【前スレ】
おもろい、めずらしいアップルスクリプト発表会 5
http://pc7.2ch.net/test/read.cgi/mac/1067367790/l50
おもろい、めずらしいアップルスクリプト発表会 4
http://pc.2ch.net/test/read.cgi/mac/1026844857/l50
おもろい、めずらしいアップルスクリプト発表会
http://pc.2ch.net/mac/kako/971/971295440.html
おもろい、めずらしいアップルスクリプト発表会
http://mentai.2ch.net/mac/kako/957/957215209.html
面白い&便利なアップルスクリプト
http://mentai.2ch.net/mac/kako/962/962044994.html

・関連スレ
【標準装備】スクリプトエディタ
http://pc7.2ch.net/test/read.cgi/mac/1111760449/l50
【中の人】Automator【小人】
http://pc7.2ch.net/test/read.cgi/mac/1088457299/l50
Macでシェルスクリプト総合 Part 1
http://pc7.2ch.net/test/read.cgi/mac/1105074933/l50

・関連スクリプトのまとめ
ttp://members.tripod.co.jp/obto/script/script.html
2名称未設定:2005/06/05(日) 22:58:40 ID:Kc91txkU
< 新製品「OptiPlex GX620/GX520」の特徴 >

筐体のデザインを一新。ミニタワー(GX620のみ)/デスクトップ/スモールフォームファクタ/ウルトラスモールフォームファクタ(GX620のみ)の4つの筐体で、お客様の求める拡張性、省スペース性に柔軟に対応
筐体、マザーボード、電源装置はEUが2006年7月より施行するRoHS指令の鉛フリー化に適合
インテル社が提案する新しいデスクトップのインターフェイス仕様「BTX」に準拠したシャーシによる優れた低騒音性、放熱性
最新のインテル® Pentium® 4プロセッサやCeleron® Dプロセッサを搭載、デュアルコア・プロセッサにも対応予定
最新のインテル® GMA950グラフィックボードにより、従来のGX280シリーズに比べ、最大2倍以上に向上したグラフィック性能
筐体前面に4つのLEDで、ハードディスクの動作状態やネットワークの接続状態、16種類の障害状況をLED表示する「ダイレクトディテクトTM 」による高い管理性

3名称未設定:2005/06/05(日) 22:59:31 ID:KGQNvadS
【入門サイト】
AppleScript入門教室(掌田津耶乃氏)
ttp://www.h5.dion.ne.jp/~tuyano/AppleScriptTutor/index.html
AppleScript Lab(狩野正嗣氏)
ttp://www.drycarbon.com/applescript/
AppleScript Beginner's(JinJin氏)
ttp://homepage.mac.com/jinjin/applescript/
AppleScript PARK(大串敏史氏)
ttp://homepage1.nifty.com/ton_b/index.html
AppleScriptサンプル(Okamoto氏)
ttp://www.asahi-net.or.jp/~va5n-okmt/factory/applescript/sample_code/index.html
Apple Scriptの覚え書き(水沢和彦氏)
ttp://www.kiwi-us.com/~mizusawa/penguin/html_hint/applescript/script_memo.html

【さらに詳しく】
AppleScript Developers [英語]
http://www.apple.com/applescript/developers/

Xcode Tools(Developer Tools)をインストールしている場合
/Developer/ADC Reference Library/documentation/AppleScript/あたりにドキュメントがあるかもしれません。
4名称未設定:2005/06/05(日) 23:31:54 ID:KGQNvadS
生きてるリンクを前スレから拾ってみた。
-------------------------------
AppleScriptリファレンス--古いけどAppleScripterの聖典
ttp://store.sbpnet.jp/isbn/1011/preface.html
ちゃらんぽらん
ttp://www1.odn.ne.jp/~cge02410/index.html
藤棚工房別棟 −徒然−:Unicode textとstringについて
ttp://blogs.dion.ne.jp/fujidana/archives/109436.html

>do shell scriptを使う人は全員ここを読んだ方がいいよ。非常によいドキュメントです。
>というか、読まないとマトモに使えないでしょう。
do shell script in AppleScript
http://developer.apple.com/ja/technotes/tn2065.html
shText Readme.1st(シェルスクリプトのお勉強)
ttp://www.tsden.org/takamiti/shText/

★その他★
・mi スクリプト書きに便利なエディタ
AppleScript、Perl、C言語、その他色々の言語に便利な機能が付いたエディタ。
ttp://www.mimikaki.net/

・AmScriptsCMX
コンテキストメニューにスクリプトメニューを追加。
ttp://www5.wind.ne.jp/miko/mac_soft/contextual_menu_x/pgs/AmScriptsCMX.html

>AppleScript で日本語(ファイル名とか)を扱うとき
>UnicodeUtils.osax ってのが非常に便利っす。
UnicodeUtils OSAX
ttp://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html
-------------------------------
OSAXは使ったことないのでどなたかよろしく。
5名称未設定:2005/06/05(日) 23:48:34 ID:fbg8HeAT
田中求之先生のサイトにOSAXの情報があります
Web Scripter's Meeting
http://mtlab.ecn.fpu.ac.jp/webcon_resources.html
トップページ
http://mtlab.ecn.fpu.ac.jp/
6名称未設定:2005/06/05(日) 23:53:54 ID:KGQNvadS
>>5
あ、どうもありがとうございます。
7名称未設定:2005/06/06(月) 02:03:21 ID:Up5D2c3A
>>1
8名称未設定:2005/06/06(月) 10:20:08 ID:H/+JJ0l9
>>1

何やら前スレよりもずいぶん情報が増えてるね
miでアップルスクリプト書けるのなんてすっかり忘れてたよ
9名称未設定:2005/06/06(月) 23:20:34 ID:YcoLbNsa
これもテンプレとして貼っとこうかな。このスレの人には既出かもしれないけど。

スクリプトメニューからスクリプトを実行したときに
最前面(System Eventsの下)のアプリをアクティブにする方法。
ttp://mtlab.ecn.fpu.ac.jp/webcon.mtxt$040606222701.html
ttp://homepage.mac.com/travellers/blog/C746134881/
ttp://homepage.mac.com/kaoru_ari/iblog/C53887262/E235447630/index.html
10名称未設定:2005/06/07(火) 00:25:06 ID:skwXDRr+
Safariで保存したwebarchiveからURLを取り出すドロップレット。たぶん10.4以降。

on open dropItems
set urlList to {}
set fileName to {}
repeat with theFile in dropItems
if (theFile as string) ends with "webarchive" then
tell application "System Events" to set webMainResourceRecord to (value of property list item "WebMainResource" of property list file (theFile as string) as record)
set theURL to |WebResourceURL| of webMainResourceRecord
set urlList to urlList & theURL
tell application "Finder" to set fileName to fileName & (name of theFile)
end if
end repeat
if urlList is {} then return
set stringList to (item 1 of urlList) as string
repeat with i from 2 to (number of items of urlList)
set stringList to stringList & return & (item i of urlList) as string
end repeat
tell application "Finder" to display dialog "webarchiveファイルの元URLを取り出しました。" buttons {"cancel", "クリップボードへ", "ブラウザで開く"} default button 3
set buttonReturned to (button returned of result)
if (number of items of urlList) is 1 then
doItRightNow(buttonReturned, urlList)
else
chooseList(buttonReturned, fileName, stringList, urlList)
end if
end open
11名称未設定:2005/06/07(火) 00:25:58 ID:skwXDRr+
on doItRightNow(buttonReturned, urlList)
if buttonReturned is "クリップボードへ" then
set the clipboard to (item 1 of urlList)
else
open location (item 1 of urlList)
end if
end doItRightNow
12名称未設定:2005/06/07(火) 00:26:18 ID:skwXDRr+
on chooseList(buttonReturned, fileName, stringList, urlList)
tell application "Finder" to choose from list {"すべて"} & fileName default items {"すべて"}
if result is not false then
if (item 1 of result) is "すべて" then
if buttonReturned is "クリップボードへ" then
set the clipboard to stringList
else
repeat with theLoc in urlList
open location theLoc
end repeat
end if
else
set theResult to (item 1 of result)
repeat with i from 1 to (number of items of fileName)
if theResult is (item i of fileName) then
if buttonReturned is "クリップボードへ" then
set the clipboard to (item i of urlList)
else
open location (item i of urlList)
end if
exit repeat
end if
end repeat
end if
end if
end chooseList
13名称未設定:2005/06/07(火) 00:30:59 ID:skwXDRr+
あ、URLというのは保存したページの元URLのことです。
Property List Editorでwebarchiveを開いて
Root>WebMainResource>WebResourceURLから
手作業で取り出すこともできます。
14名称未設定:2005/06/07(火) 15:26:20 ID:2/NktH+R
15名称未設定:2005/06/08(水) 01:16:19 ID:UsDQl7ci
16名称未設定:2005/06/08(水) 07:45:40 ID:J7OQtZsE
特定のフォルダ内にあるテキストファイルをそのたびに違う語句で内容検索してファイルを
選びたい。
Tigerのスマートフォルダで検索条件を保存して、以下のスクリプトを書きました。

tell application "System Events"
open alias "保存された検索条件のパス"

tell process "Finder"
tell window 1
tell group 1 of group 2 of group 1 of splitter group 1
try
click button "編集"
delay 1
tell text field 1 of group 1
-- ???
end tell
end try
end tell
end tell
end tell
end tell

これで検索語句の入力欄(text field 1)が表示され、

set value of text field 1 of group 1 to "XYZ"

で、検索語句をスクリプトで直接設定することはできています。が、
text field 1 がタイピングを受け付けるようにフォーカスを移動させ、
古い内容を全選択する方法がわかりません。

set focused of text field of group 1 to true
では駄目だったし。どう書けばいいのでしょうか?
17名称未設定:2005/06/08(水) 23:32:36 ID:ZzffE7AI
わからんので display dialog で代替とか
1816:2005/06/10(金) 02:55:50 ID:wCviQyR7
>>17
ないのかなあ。結局、iKeyのショートカットを併用する方法に逃げてしまいました、とさ。
19名称未設定:2005/06/11(土) 20:34:05 ID:4xBsWyh4
小ネタ。サービスメニューが使えないマカー用。などのアプリで、選択したテキストをgooDictに渡す。
tell application "System Events" to set frontApp to (name of (path to frontmost application))
tell application frontApp to activate
delay 1
tell application "System Events" to keystroke "c" using command down
delay 1
tell application "System Events"
if (text of (the clipboard)) is not "" then
set theWord to (text of (the clipboard)) as string
tell application "gooDict" to activate
tell process "gooDict"
set value of combo box 1 of window 1 to theWord
keystroke "e" using command down
(*
EtoJ→ keystroke "e" using command down
Japanese→ keystroke "j" using command down
JtoE→ keystroke "e" using {shift down, command down}
*)
end tell
else
return
end if
end tell
20名称未設定:2005/06/11(土) 22:01:04 ID:p0skEWMJ
最初にクリップボードの中身を捨てて、
中身が空じゃなくなるまで何回か再試行するって方がいいんでは?
昔、同じようなのを作って動作が不安定だった。
21名称未設定:2005/06/11(土) 23:07:41 ID:4xBsWyh4
こんな感じですか?

set the clipboard to ""
set x to 0
tell application "System Events"
repeat until ((the clipboard) is not "") or (x = 10)
delay 1
keystroke "c" using command down
set x to (x + 1)
end repeat
end tell
the clipboard
22名称未設定:2005/06/11(土) 23:56:58 ID:4xBsWyh4
ちなみに
if (text of (the clipboard)) is not "" then
というところは
「クリップボード内容がテキストだった場合のみ以下を実行」
のつもりで書いたんですけど
""でなくて{}と書くべきでした。
さっき気づいたorz。
23名称未設定:2005/06/13(月) 17:53:12 ID:S0XtIU+o
24名称未設定:2005/06/15(水) 23:14:24 ID:jW2ELgG0
デスクトップをftpアップロードするスクリプト
on idle
set UserName to "name" ---アカウント名
set UserPassword to "password" ---パスワード
---FTPサーバ名/ユーザ名/リモートディレクトリ、最後に"/"をつける
set FTPaddress to "f999.aaacafe.ne.jp/public_html/"

set thePDFName to "screencapture" & ".pdf"
set thePNGName to "screencapture" & ".png"
do shell script "cd $HOME/Desktop; screencapture " & quoted form of thePDFName
do shell script "cd $HOME/Desktop; sips -s format png " & quoted form of thePDFName & " --out " & quoted form of thePNGName
do shell script "cd $HOME/Desktop; rm -f " & quoted form of thePDFName

tell application "URL Access Scripting"
activate
set fullPath to ((path to desktop) as text) & thePNGName
set FTPURL to ("ftp://" & UserName & ":" & UserPassword & "@" & FTPaddress)
upload file fullPath to FTPURL replacing yes with progress without binhexing
quit
end tell
return 20
end idle
25名称未設定:2005/06/16(木) 00:05:45 ID:z9OQ6jRJ
>>24
同じスレを見て、ちょうど同じものを作ってたんですがw
自分は最後のアップロード部分だけcurlで書きました
do shell script ("curl -T " & jpgpath & " -u " & username & ":" & passwrd & " " & ftpaddress)

しかし、何だかキンタマっぽくてアレな感じ
26名称未設定:2005/06/16(木) 20:06:41 ID:TY4qcFLZ
Finderで項目名をコピーしてSafariで検索しようとすると
濁点、半濁点が一文字として数えられてしまう問題で
clipboard as text (as string) とすれば解決できることをさっき知ったので
ついでにそのまま検索できるようにしてみました。

tell application "Finder" to activate
set the clipboard to ""
delay 1
tell application "System Events"
tell process "Finder"
set x to 0
repeat until ((the clipboard) is not "") or (x = 10)
keystroke "c" using command down
set x to (x + 1)
delay 1
end repeat
end tell
end tell

set keyword to (the clipboard) as text
set the clipboard to ""
set the clipboard to keyword as text

tell application "Safari"
activate
open location "http://www.google.com/search?client=safari&rls=ja-jp&q=" & keyword & "&ie=UTF-8&oe=UTF-8"
end tell
27名称未設定:2005/06/16(木) 21:33:19 ID:MgWekGvj
>濁点、半濁点が一文字として数えられてしまう問題
これって普通のプログラムでもかなり具合悪い問題なんだよね。
ファイルネームから取り出した文字列を比較したりすると色々と困ったことになる。
28名称未設定:2005/06/16(木) 23:29:29 ID:fk8lNXDJ
>>27
それはプログラムのバグ、Unicodeを勉強しましょう。
Normalizeするか専用APIを使わないとUnicodeは正しく比較検索で
きない。バイナリ比較ではダメ
29名称未設定:2005/06/20(月) 23:01:10 ID:CP5nzhiZ
保守しようにもネタがないので
UI Element Inspectorのリンクでも貼っときますね(*´・ω・)(・ω・`*)ネー
http://www.apple.com/applescript/uiscripting/02.html
30名称未設定:2005/06/26(日) 02:17:01 ID:Qo+51qp/
ほしゅ
31名称未設定:2005/06/26(日) 02:40:49 ID:myXvWGYa
(* クリップボードのテキストの各行をURLとしてブラウザで開くスクリプト *)
on run
set clipTexts to every paragraph of ((the clipboard) as text)
set URLList to {}

repeat with clipParagraph in clipTexts
if (clipParagraph as string) is not equal to ("" as string) then
if clipParagraph starts with "ttp:" then
set clipParagraph to "h" & clipParagraph
else if not (clipParagraph contains "://") then
set clipParagraph to "http://" & clipParagraph
end if
set URLList to URLList & clipParagraph
end if
end repeat
32名称未設定:2005/06/26(日) 02:41:05 ID:myXvWGYa

tell application "System Events"
repeat with aURL in URLList
activate
set dialogResult to display dialog "Open as URL..." default answer aURL buttons {"キャンセル", "スキップ", "OK"} default button 3
if button returned of dialogResult is "OK" then
try
open location ((text returned of dialogResult) as string) with error reporting
on error e
beep
display dialog "失敗しました:" & return & return & (e as Unicode text) buttons {"OK"} default button 1 giving up after 3
end try
end if
end repeat
end tell

end run
33名称未設定:2005/06/29(水) 05:03:45 ID:H9awzwNk
も一個のスレで書くべきかと思ったんですが。。
GUI Scriptingについて
ある程度詳しく解説したサイトとか本とか無いですか?
34名称未設定:2005/06/30(木) 01:15:31 ID:ZWl3fBqM
スレ趣旨と全然ちがってしまうんですが、現在
「伝言課長」
ttp://homepage.mac.com/yukikun/dengon_kacho/
というスクリーンセーバーを見つけて試行錯誤してます。
geektoolのスクリーンセーバー版、それも、geektoolがシェルスクリプトなのに対して伝言課長はAppleScriptでいろいろなことをするようです。

やりたいことは二つあります。

AppleScriptを介してシェルスクリプトやターミナルコマンドを実行させこれを伝言課長で表示。
もうひとつは、AppleScriptで、指定のテキストファイルを読み、それを伝言課長で表示させる。
どちらにしてもAppleScriptはさっぱりわからんので、
'ここにターミナルのコマンドを書く'
'ここにシェルスクロプとのパスを書く'
'ここに表示させたいテキストファイルへのパスを書く'
っていうのを含め含めた形でtel application 〜のところから教えていただけないでしょうか?
35名称未設定:2005/06/30(木) 09:07:31 ID:EmB59LnT
>>34
そのソフトをDLしてみないと細かい事はわかりませんが、
とりあえず下記URLの所を熟読してください。
ttp://developer.apple.com/ja/technotes/tn2065.html
36名称未設定:2005/06/30(木) 09:27:31 ID:EmB59LnT
伝言課長のサンプルで「cal」の結果を表示するスクリプトが設定されてますね。
その「cal」の部分を入れ替えるだけでだいたいOKなんじゃないかと思います。
(と確認せず無責任な事を言ってみる)
伝言課長の使い方自体は付属のドキュメントを読んでください。
37名称未設定:2005/06/30(木) 19:17:44 ID:aipzy17H
do shell script "cal"
おわり
38名称未設定:2005/06/30(木) 19:44:03 ID:XdYV/xxK
>>37
do shell script "top"
みたいにプロンプトが帰らないものは、死ぬね。
システム環境設定のスクリーンセーバー呼び出すだけで固まっちゃうからちょっと焦った。
39名称未設定:2005/07/02(土) 21:43:36 ID:PPHHiydJ
つかぬ事をお聞きしますが、10.3とか10.4のスクリーンショットのフォーマットってどうなってるの?
10.2でスクリーンショットを日付時刻のファイル名のJPEGに変換するスクリプト作ったんですけど、
実用としてもスクリプトのサンプルとしても、今更需要ないですよね?w
40名称未設定:2005/07/02(土) 21:47:09 ID:QDUI6jPD
10.3 PDF
10.4 PNG
41名称未設定:2005/07/02(土) 22:00:00 ID:PPHHiydJ
10.4はPNGかあ。かっこいいですね。でも容量ちょっと大きいですか?
一応載せます。何て事はないOSAX頼りのスクリプトですが。。

--スクリーンショットをファイル名が日付時刻のJPEGに変換するドロップレットです。
--与える画像はQuickTimeで読める形式ならいいみたいです。
--フリーウェアのGraphicsImporter OSAXを使います。
--10.3以降だと純正でImage Eventsというのがついてくるらしいのでそれを使う方がいいかも。
--OS9でも使えると思います。
--sdt(date型データ)はdate型のデータを与えると短い日付文字列を返すサブルーチンです。記載省略。

on open olist
tell application "Finder"
activate
repeat with obj in olist
set obj to (obj as string)
set newNm to (characters 1 thru -((count ((name of file obj) as string)) + 1) of obj as string) & my sdt(creation date of file obj) & "ss.jpg"
giconvert file obj type "JPEG" quality 50 image file newNm
end repeat
delete olist
end tell
end open
42名称未設定:2005/07/02(土) 23:23:18 ID:1hwocL1u
プレビューで変換すりゃいいじゃん。
43名称未設定:2005/07/03(日) 00:02:36 ID:oq99HcNG
>>42
一個ずつ変換するのが面倒になったもので。。
44名称未設定:2005/07/03(日) 00:06:25 ID:oq99HcNG
ちなみに。。
もう一個のスクリプトスレに書いてますが、
最初はプレビューをGUI Scriptingでコントロールしようとしたんですが、
セーブダイアログのシートをどう操作するかわからずあっさり手詰まり。
で、こうなりました。
GUI Scriptingも覚えたいんだけどなー。。けっこう敷き居高いです。
45名称未設定:2005/07/03(日) 23:49:11 ID:ypFtIuQq
覚えるほどには使わないので必要になったら
いちいち一から調べなおす漏れは負け組
4644:2005/07/04(月) 00:54:57 ID:MTliIprm
あー。僕も触らない時は全然触らないですし、
いつもAppleScriptリファレンスで調べながらやってますよ。
後、過去の自分のコードが頼りかな。
ゼロからってのはちょっとやってられません。

ただGUI Scriptingについては基本的なやり方自体がまだよくわかってないんですよね。
わかりやすい教科書みたいなものがあるといいんだけどなー・・。
フォーサイトのUI Browserはちょっと高過ぎます。
47名称未設定:2005/07/04(月) 12:13:48 ID:s91Q9fv9
GUI Scriptingだからって他のAppleScriptの記述とそんなに変わらん気がするけどな

これ↓とSystem Eventsの用語説明のProcesses Suiteの項目見ながら書けば何とかなると思うが
http://www.apple.com/applescript/uiscripting/03.html
48名称未設定:2005/07/04(月) 15:25:18 ID:MTliIprm
はげましtksです。
いじってたら何となくわかってキタ━━━━━━(゚∀゚)━━━━━━ !!

UI Element Inspectorの画面の1番上の
階段状に出てるのが今ポイントしてる部品の親子関係?で、
それをofでつないで行けばその部品を表せるんですね。

そして、1番下のActionの項目がその部品に対して行える事。

ただしUI Element Inspectorの画面で
「PopUpButton」なのがAppleScriptでは「pop up button」だったり、
「press」が「click」になってたりするので注意が要りますね。
49名称未設定:2005/07/04(月) 16:12:49 ID:MTliIprm
UI Element Inspectorでcommand + F10した時に出るもう一つのパレットは何??
部品に命令を送ってみたりできるのかな??

名前が付いてなくて番号もわからない部品はどうやって操作したらいいんだろう。
絶対座標でクリックはしょぼいなあ。

普通のスクリプトと違って予想外の事が起きた時などに
スクリプトで拾えるメッセージが返ってこないので
エラー処理が難しそうですね。

例えば、「保存」ボタンを押した後、同名ファイルが存在していて
上書きするか問い掛けるダイアログが出たとしても、
スクリプトから感知できない。
あらかじめ調べておかないといけませんね。
50名称未設定:2005/07/04(月) 16:17:39 ID:MTliIprm
--Finderで選択している複数の画像(スクリーンショットのPDFも含む)を
--プレビューでJPEGに変換するスクリプト。
--Jaguarではベータ版のSystem Eventsが必要。

tell application "Finder"
set olist to selection
end tell

repeat with obj in olist
tell application "Preview"
activate
open obj
end tell

tell application "System Events"
tell application process "Preview"
pick menu item 8 of menu 3 of menu bar 1
tell sheet 1 of window 1
click pop up button 1
pick menu item 3 of menu 1 of pop up button 1
click button "保存"
end tell
pick menu item 5 of menu 3 of menu bar 1
end tell
end tell
end repeat
51名称未設定:2005/07/09(土) 13:16:30 ID:o7crlrS2
スレ違いかもしれませんが、
スクリプトつかってiPhotoのアルバムを順番にスライドショーさせることってできないでしょうか?
教えて下さい。
52名称未設定:2005/07/09(土) 18:05:24 ID:o7crlrS2
補足です。
複数のアルバムやムービーを順番に繰り返し自動で映してくれるようなスクリプトはどこかにないでしょうか?
「start slideshow」「stop slideshow」を使うとできそうな気がするのですが、スクリプトを書いた事がないのです。
どなたか教えて頂ければ助かります。
53名称未設定:2005/07/11(月) 07:06:53 ID:r17XUk5r
全然レスついてないね。。
iPhoto使ってないからよくわからんのだよなー。
画像登録してないし。。
54名称未設定:2005/07/11(月) 19:34:24 ID:PD/tWoWC
OSXになってからアップルスクリプトを使ってないので
仕様変更についてけません。

itune4.9からファイルタイプがMPEGだと読み込めなくなってMp3に変える必要ができました。
on open AAA
tell application "Finder"
repeat with BBB in AAA
set creator type of BBB to "TVOD"
set file type of BBB to "Mp3"
end repeat
end tell
end open

これだと5行目でエラーと言われるんですがどうすればいいでしょうか。
55名称未設定:2005/07/11(月) 20:32:04 ID:6QoMWvBH
よーわからんけど、ホゲホゲタイプって4文字じゃないの?
56名称未設定:2005/07/11(月) 22:15:59 ID:Ac+vuz6H
>>54
MP3のファイルタイプはMPG3。
57名称未設定:2005/07/11(月) 22:19:59 ID:r17XUk5r
>>55
という事で久々にファイルタイプとクリエータを調べるスクリプトなんてのを
Xcodeで作って、調べてみた。w

>>54
iTunesで作ったMP3ファイルを調べたら
クリエータが hook でファイルタイプは MPG3 だったよ。
58名称未設定:2005/07/11(月) 22:20:28 ID:r17XUk5r
リロードしてなかった・・・。
orz
59名称未設定:2005/07/11(月) 22:24:24 ID:r17XUk5r
あれ?iPhotoって完全に市販ソフトになったんだっけ?
試そうかと思ったけど俺のTigerには入ってないや。
60名称未設定:2005/07/11(月) 22:40:00 ID:O0VBwvLI
>>59
バンドルされてたバージョンなら只
それ以外はiLife買わないとダメ。
61名称未設定:2005/07/12(火) 00:32:02 ID:An03UZvW
>>54
>>55氏の指摘するとおり、最後の一文字の半角スペースが足らない。
「Mp3 」
62名称未設定:2005/07/12(火) 01:21:47 ID:uzqk+21s
>>61
>>56,57
???
63名称未設定:2005/07/12(火) 01:28:34 ID:uzqk+21s
あらほんとだ。ファイル検索したら『Mp3 』のもいくつか出てきた。
全部iTunesじゃないファイル。
6454:2005/07/12(火) 21:13:28 ID:8phmCYGq
"Mp3"→"Mp3 "にしたらできました。ありがとうございました。
ついでにちょこっと修正してみました。

on open AAA
tell application "Finder"
repeat with BBB in AAA
set CCC to name of BBB as string
if (creator type of BBB is "TVOD") or (creator type of BBB is "hook") then
set creator type of BBB to "TVOD"
set file type of BBB to "Mp3 "
else
display dialog "『" & CCC & "』" & "は音声ファイルじゃないかも?" buttons {"無視して変更", "除外して続行"} default button 2
set DDD to button returned of result
if DDD = "無視して変更" then
set creator type of BBB to "TVOD"
set file type of BBB to "Mp3 "
end if
end if
end repeat
end tell
end open
65名称未設定:2005/07/12(火) 22:49:37 ID:uzqk+21s
へぼい英語もどきでもいいし、
日本語のローマ字書きでもいいから
変数名、ルーチン名は、意味のある言葉にした方がいいよ。
(ここに掲載するために書き換えたのかもしれないけど)
66名称未設定:2005/07/15(金) 14:41:44 ID:wApqPjZN
tell BBS "にちゃんねる"
  tell board "新・mac"
    tell thread "おもろい、めずらしいアップルスクリプト発表会 6 "
      make new response with properties {content:"保守", name:"", mail:"sage"}
    end tell
  end tell
end tell
67名称未設定:2005/07/23(土) 01:19:35 ID:g3sV0Mso
擦れ違いですが、適当な場所が見つからないので失礼します。

OS8.6にてスクリプト編集プログラムでスクリプトを保存する際に
「スクリプティングシステムに接続できません。スクリプティングシステムが
正しくインストールされているか確かめて…(略)」の様なアラートが出ます。

CDからアップルスクリプトをカスタムインストールもしたのですが変わらずです。
何が原因なのでしょうか。

クレ厨質問で恐縮ですが、ご指導、ご誘導おねがいします。
68名称未設定:2005/07/23(土) 01:34:43 ID:ftUU2b3N
よくわからんがOSごと再インストールしてみるのが一番早いのではないかと
69名称未設定:2005/07/23(土) 02:05:12 ID:e3MUEdxb
>>67
まああれだ。地味に
・機能拡張マネージャや手作業で非標準の機能拡張やコンパネを排除
・デスクトップの再構築
やって、駄目なら

・標準のユーティリティーや市販のソフト(ノートンディスクドクターなど。ただし必ずOSのバージョンに合った物を使う事!)でHDDのメンテ
やって、それでも駄目なら

・システム再インストール
だろうな。

スクリプティング機能拡張など関連ファイルが正しい場所にあるか試したりカスタムインストール時にログ取って確認したりしてもいいけど、面倒なわりに実りは少ないだろう。

旧Mac OSのいいところの一つは健康なシステムのバックアップと
それを再び使用する事が簡単な事。
まっさらなシステムに最低限必要なものをインストールしていって
これなら健康に動くというシステムができたら、
丸ごとCDに焼いたりして保存しとくといいよ。
70名称未設定:2005/07/24(日) 01:35:22 ID:0Hk7FGP+
お手上げ状態なので教えて下さい。OSX環境。

ドロップレットで、
1.フォルダとファイル(混在可、複数可)をドロップすると
2.下の階層も含め、すべてのファイルについて
3.ファイル名の拡張子に応じてタイプ、クリエータを固定値(自分がいつも使うものをスクリプト中に書き込んでおけばよい)に変える
(1)が「複数ファイルをドロップ」のものは作ってある。再帰呼び出しを使うんだろうけど調べてもよく分からない。
71名称未設定:2005/07/24(日) 01:41:01 ID:netavl3M
その作ってあるものを晒せば手直ししてくれる人がいるかもしらん。
7267:2005/07/24(日) 12:34:02 ID:QUYFYJXY
>>68 >>69

結局OS再インストールで直りました。罵倒されるのも覚悟の上の
質問だったんですが、親切なアドバイスありがとうございました。
73名称未設定:2005/07/24(日) 20:37:21 ID:vAaIf/kw
>>70
うあー。これまた懐かしいなあ。w

Tigerたんでスレが立っちゃった鳶さんのサイトのAppleScriptのコーナー見てみそ。
再帰関係は詳しいよ。
74名称未設定:2005/07/27(水) 08:54:07 ID:hvMTIN31
細かい話だけど。

パンサー以降のバージョンのSafari(Shiiraも同じ)で
AppleScriptからURLを取得するとUnicode?になるらしくて
不都合が出る事がある。
iconvで変換しようかとかいろいろ考えてうまく行かなかったんだけど、
考え改めて「as string」したら解決しました。

同じ事で悩む人が居るかもしれないので書いておきます。
75名称未設定:2005/07/27(水) 20:22:13 ID:FfcLoIpy
tellする対象がまちまちなので、ハンドラでなく、includeだとかrequireみた
いな感じでスクリプトを展開するだけの記述をしたいのですが、この場合はど
うしたらよいでしょう。

script objectを使うのかと思ったのですが、ほしい効果をもたらしてくれるも
のではなさそうです。呼び出し元のその時点のtell対象に、呼び出したスクリ
プトを機能させたいのですよね。
76名称未設定:2005/07/27(水) 21:24:10 ID:hvMTIN31
うーん。。Cとかほとんどわからないのでそっちの概念で書かれてもわからないです。ごめんなさい。

ハンドラでだめな理由がよくわからないです。
具体的にどういう事をやろうとしてるのかもうちょっとわかれば。
7770:2005/07/27(水) 23:57:32 ID:JcCcvLtY
今までのものと改変中のものをアップロード。
「wwwwwwwwww.net/」に ファイル 146、パスワード as
わかる人は教えてください。
78名称未設定:2005/07/28(木) 00:09:23 ID:SbUgNemi
>>70
entire contents じゃダメなの?
79名称未設定:2005/07/28(木) 00:09:49 ID:GgthWHD8
落とすのめんどい。
ここに晒せ。
80名称未設定:2005/07/28(木) 08:55:16 ID:AvWVyX5U
>>77
てか、〜のサイトを見てみたら?ってレスしたんだから、
見たのかどうかくらい書いてくれるとうれしいんだが。
81名称未設定:2005/07/28(木) 13:48:22 ID:S5Pt5zeu
>>76
ハンドラの中では、再度tellする対象を指定しないといけないじゃないですか。
呼び出し元でtell対象が変化するので、そのときどきのtell対象を継承したい
ということです。ハンドラの引数に、tell対象も入れるようにすればいいわけ
ですけど、面倒なんで。

set i to 1
tell app "bar"
 repeat 10 times
  tell item i of bb of cc
   my hoge(it, foo)
  end tell
  set i to i + 1
 end repeat
end tell

on hoge(myit, foo)
 tell myit
  method foo
 end tell
end hoge

うーん、これでいいのだろうか!?
これでよきゃ、問題無いなあ。(Linux Zaurusからカキコ)
82名称未設定:2005/07/28(木) 18:13:04 ID:3ThaBQBO
自己レスです。
itを使えば簡単に引き継ぎ可能ですね。
下記は意味の無いサンプルですが。

tell app "Jedit4"
repeat with i in documents
tell i
set bb to my aa(it)
end tell
end repeat

on aa(myit)
tell myit
return name of it
end tell
end aa
8370:2005/07/29(金) 00:17:41 ID:2YZ6dhG8
言われる前からそこは読んでいた
それでもそこからの変え方が分からなかったんだよね
84名称未設定:2005/07/29(金) 00:25:44 ID:Nr6PDJVV
だから、ここに晒せって。
85名称未設定:2005/07/29(金) 00:25:55 ID:wgK8tZ6N
相手の言うことには答えないくせに
自分の知りたいことだけ教えろ的な態度はよくないよ?

なんか工房臭がぷんぷんするね
86名称未設定:2005/07/29(金) 00:30:07 ID:nusPQWPz
実のところ何も出来てない(誰かにほぼ丸ごと作って欲しい)から晒せないんでそ
87名称未設定:2005/07/29(金) 01:39:45 ID:wgK8tZ6N
自分の書いたコードをみんなに批評してもらいたいので書いてみますた(非再帰版)

on open dropped_alias_list
 
 tell application "Finder"
  
  set target_refs to {} -- サブフォルダの中身も含むすべてのドロップされた項目のリスト
  
  (* ドロップされた項目のリストを作成 *)
  repeat with an_alias in dropped_alias_list
   if the class of the item an_alias is folder then
    set the end of the target_refs to the folder an_alias -- 無駄な処理
    set the target_refs to the target_refs & the entire contents of the folder an_alias -- (A)
   else
    set the end of the target_refs to the item an_alias
   end if
  end repeat
  
  (* 作成したリストのすべての要素に対してクリエータ設定 *)
  repeat with an_item in target_refs
   if the class of the an_item is not folder then -- (A) でフォルダもリストに入るから...
    (* クリエータを設定する処理(略) *)
   end if
  end repeat
  
 end tell
 
end open
88名称未設定:2005/07/29(金) 15:00:04 ID:M23of279
横入りしてスマソ。

TigerのXcodeでPerlを組み込んだスクリプトを作ってるんだけど、
どうもエスケープがうまくいかないです。
スクリプトエディタ上だとoption + 円マークで出るバックスラッシュでうまくいくんだけど、
Xcodeにそのままコピペしてもおかしくなる、、

と、ここまで書いてて思い出した。
どっかで文字コードいじらないといけないんでしたっけ?
89名称未設定:2005/07/29(金) 21:34:12 ID:BpwUrXFn
property Str : ""
property adr : ""

display dialog "表示したい場所を入れてください" & return & "例:東京" & return & return & "半角スペースで絞り込み検索が出来ます" default answer Str buttons {"Cancel", "OK"} default button 2
copy the result as list to {Str}

adr = "http://map.hatena.ne.jp/?type=satellite&word=" + Str + "&.submit.x=0&.submit.y=0"

open location adr


単純にope locationを使ってStrに入れた地名をはてなマップで表示するスクリプトを作ったのですが、どうしても
http://map.hatena.ne.jp/?type=satellite&wordをnumberにできません
と出てしまいます。
propertyで前と後ろの指定したアドレスを変数に代入して、同じように+で組み合わせても一緒でした。


どうすれば正常に動作するのでしょうか?
90名称未設定:2005/07/29(金) 21:46:58 ID:4S6qiW3H
文字は&で結合

set c to "a" & "b"
91名称未設定:2005/07/29(金) 23:00:18 ID:BpwUrXFn
>>90
ありがとうございます。+を&にして、open locationの後を改良したら表示されるようになりました。
92名称未設定:2005/07/31(日) 02:18:26 ID:m+2lsOST
スクリプト晒させておいて放置って、
お前らなかなかやるな(w
93名称未設定:2005/07/31(日) 08:56:05 ID:TtASbzjH
そもそもここは質問スレではない。
94名称未設定:2005/07/31(日) 08:58:13 ID:ApoepvFe
95名称未設定:2005/07/31(日) 14:18:12 ID:GzPe9L0a
>>92
晒し方もあまりにもアレなんで
いっそ全部作ってからくれてやろうかと思ったが
自分の作業もあるんで後回しになってた。
期待させてもつまらんので何も書かなかった。

ていうかねえ。
OS Xの場合は拡張子に合わせたタイプ・クリエータの変更だったら、
findとSetFileを組み合わせた方が簡単なんだわ。
速いし、再帰なんかも考えなくてもいいしね。
ターミナルからでも短い記述で済むからいいんだけど、
AppleScript StudioでGUIつけてもいいし。

■例
find . -name "*.txt" -print0 | xargs -0 /Developer/Tools/SetFile -c JED3 -t TEXT

説明:カレントディレクトリ以下の「.txt」を含むファイル名のファイルを
クリエータ「JED3」、ファイルタイプ「TEXT」にする。

これをdo shell scriptで呼び出すようにして、
拡張子とクリエータとファイルタイプの部分を変数にすればいいわけやね。
96名称未設定:2005/07/31(日) 15:28:34 ID:m+2lsOST
$ zsh
% /Developer/Tools/SetFile -c JED3 -t TEXT */*/*.txt
97名称未設定:2005/07/31(日) 15:54:53 ID:GzPe9L0a
マニア御用達?zshキター!!
それって項目数とか階層が増えてもぜんぜん大丈夫ですか?
98名称未設定:2005/07/31(日) 15:57:04 ID:GzPe9L0a
>>95
一個抜けてた。
AppleScriptに組み込むつもりだったらディレクトリの指定の部分も変数にしないとだめやね。
99名称未設定:2005/07/31(日) 16:30:41 ID:m+2lsOST
>>98
多分大丈夫だよ。さいきてきにどんどんいくので。
SetFileはしらなかったよ。
100名称未設定:2005/07/31(日) 17:27:09 ID:GzPe9L0a
>>99
そうですか。
find xargsを使ったやり方は処理数オーバーになったりするのを
自動的に防止してくれるらしいです。

SetFileは漏れはターミナルコマンドポケットリファレンスとかいう本で知りました。
Developer Tools限定じゃなくて標準搭載にしてほしい便利なアイテムですね。
101名称未設定:2005/07/31(日) 23:01:16 ID:zhGWBMHX
>>87ありがとう。とりあえず試したけど問題なく行けてる気がする
>>95せっかくだけど今の自分には分からない。でも憶えておくよ。ありがとう。
>>79逆にその気をなくしたよ
102名称未設定:2005/08/01(月) 08:19:40 ID:C4PeiVjP
87は別の人だったのか。。
よく読んでなかったぽ。
orz
103名称未設定:2005/08/03(水) 14:45:48 ID:uGA2gvae
いつの間にかScript Debuggerが3.0.9にアップデートしてるね。
Tiger対応したとある。あと、SpotlightのImporterも出てた。
Script Debuggerのスクリプトをインポートできるプラグイン。

小さくて見えない文字は直ったんだろうか。

104名称未設定:2005/08/06(土) 12:03:12 ID:lZRiqwqQ
いまAutomator AppleScript Actions Tutorialを見てるんですけど、

set number_to_choose to (|numberToChoose| of parameters) as integer

のようにbindingからkeyを取得する書式で、保存する度に"|"の部分が
勝手に消されてしまいます。
変数名に"|"を入れる際には、何か特別な工夫が必要なのでしょうか。
105名称未設定:2005/08/06(土) 12:07:53 ID:lZRiqwqQ
ん、チュートリアルからのコピペで入力するとうまくいく場合もあるようで
…よくわからん
106名称未設定:2005/08/06(土) 19:10:31 ID:g9rt0GkA
2バイト文字を変数に使うための方法だったと思う

set |あ| to "abc"
display dialog |あ|

ASCII文字だけの場合、確かにコンパイラが消す場合と消さない場合があるようだね
107名称未設定:2005/08/06(土) 19:15:06 ID:gjXqh3Ki
予約語とバッティングするような変数名を使いたい時にも使う。

set |set| to "abc"
108名称未設定:2005/08/06(土) 19:51:43 ID:oyLPcSJR
すげー懐かしい。
109名称未設定:2005/08/07(日) 14:06:22 ID:+WT6BpIX
全アプリケーションのウインドウ名を得るにはどうすればいいでしょうか
最前面のアプリのウインドウ(s)は取得できましたが、全アプリとなるとロウレベルな部分へのアクセスが必要なのでしょうか
110104:2005/08/07(日) 14:33:55 ID:e2+OU8of
>>106-107
ありがとうございました。
なんとなくわかったような気がします。

set a to (|numbertochoose| of parameters) as integer →消える
set a to (|numberToChoose| of parameters) as integer →消えない
set a to (|NUMBERTOCHOOSE| of parameters) as integer →消えない

case sensitiveな変数名が外部から渡されるような場合に使うのですね。
111名称未設定:2005/08/07(日) 20:31:10 ID:ECQmi8a5
>>109
こんなの?

set window_list to {}
tell application "Finder"
set app_list to name of every process whose visible is true
end tell
repeat with theapp in app_list
try
tell application theapp
set theapp_list to (name of every window whose name is not "")
end tell
set window_list to window_list & theapp_list
end try
end repeat
choose from list window_list
112名称未設定:2005/08/07(日) 23:07:49 ID:+WT6BpIX
>>111
ありがとうございます。このようなものを求めていました。
113名称未設定:2005/08/08(月) 16:40:15 ID:r+B7EZlh
7/29に、FaceSpanがLate Night Softwareに買収されとった!

http://www.facespan.com/fs4/index.html

Late Night SoftwareからFaceSpanから販売する準備をしてるところだと。
114名称未設定:2005/08/08(月) 16:43:08 ID:5Fo16CXb
FaceSpanって今でも使ってる人いる?
115名称未設定:2005/08/08(月) 18:17:46 ID:LhZ4wDmd
懐かしいなー。
最近どっかのスレのスクリーンショットであれっぽい菱形(というか角で立った正方形)のアイコンを見てちょっと思い出したところだった。

しかしだ。AppleScript Studioのある今、FaceSpanの存在意義は?
116名称未設定:2005/08/08(月) 18:46:47 ID:5Fo16CXb
>>115
Classic OSとかかな?
Dialog Dirctorで代用できるかもしれないけど。
117名称未設定:2005/08/08(月) 19:13:06 ID:bv5WB+LM
AppleScript Studioでは不完全な形でしかできない(少なくとも自分が試した限
りでは)Global Floating Windowが簡単にできることとか。

今後はScript Debuggerとの連携強化によって、生産性が高くなる気がする。
文字さえ大きくなれば!!

いっそのことIDEとして統合を図っていって、「SK8」の復活を目指してほしい。

って「SK8」ってどんな塩梅だったの?
118名称未設定:2005/08/24(水) 19:01:52 ID:NLEdTlhp
SK8あったねー
119めんどうくさがり:2005/08/24(水) 20:16:05 ID:+E6mPKE3
新ウインドウ開くタイプのネトゲ等でアドレスバー・ブックマークバー、
ステータスウインドウを無効にされた時アクティヴにするスクリプト

tell application "Safari"
activate
tell application "System Events"
keystroke "l" using command down
keystroke "b" using {command down, shift down}
keystroke "/" using command down
end tell
end tell
120名称未設定:2005/08/25(木) 09:52:58 ID:cJIJ+GJg
へー。スクリプトで隠されてもメニューから復活できるんだ。
そのネトゲがMozilla系でできるかどうかわからないけど、
Firefoxならあらかじめ、JavaScriptでアドレスバーとかステータスバーを隠すのを禁止する事ができるよ。
121名称未設定:2005/08/25(木) 11:04:40 ID:cJIJ+GJg
>>120の一行目の「スクリプト」って、JavaScriptの事です。
どうでもいい書き込みスマソ。
122名称未設定:2005/08/26(金) 19:04:59 ID:ZFUK01z8
>>120
Win環境のIEとかなら無理だったりするらしい。ソース閲覧不可とかありえませんね。
火狐はインターフェイスがあまり。。なのでSafariマンセーかな

>>119のはただの低レベルGUIコントロールなのでこのスレ的にはふさわしくありませんが、
まあひな形として

ショートカット入力させるだけでもいろいろ便利になりますね、AppleScript
123名称未設定:2005/08/27(土) 22:45:18 ID:frsLVu8F
アプリケーション(例えばiTunes)が現在起動中かを if文 で判別する方法を教えてください
124名称未設定:2005/08/27(土) 23:04:07 ID:wC5K5M17
>>123
tell application "Finder"
if "iTunes" is in (name of every process) then
log "Yes."
else
log "No."
end if
end tell
125名称未設定:2005/08/27(土) 23:07:55 ID:YBwuAvay
>>123
tell application "System Events"
if (name of processes) contains "iTunes" then
display alert "起動してる"
end if
end tell
126名称未設定:2005/08/27(土) 23:11:24 ID:frsLVu8F
>>124-125
キタ━━━━(゚∀゚)━━━━ッ!!
thx
127名称未設定:2005/08/27(土) 23:39:52 ID:ngj41HCr
近頃、おもしろくも、めずらしくも無いな
128名称未設定:2005/08/28(日) 00:50:54 ID:E4rJqwYg
子供相手にそうカリカリすんなや。
129名称未設定:2005/08/28(日) 02:02:28 ID:SVPj9b+3
某所でスリープを感知して動作するスクリプトを見つけたんだが、
どんな仕組みでやってるのかな?
サイトに書いてある事によると、idleハンドラを10秒周期で回して
スリープから復帰する時に背後で行われる作業かなんかを調べてるっぽいんだけど。

AppleScript以外で作られた同様のユーティリティーと比べて
性能とかシステムへの負荷とかどうなんだろう。

あとそのスクリプト、色つきの半透過のウインドウを出すみたいなんだよね。
そのやり方も気になる。display alertって、普通にそんな事できるの??
フォントもスタイル付きだったし。
130名称未設定:2005/08/28(日) 02:04:17 ID:SVPj9b+3
>>129
×:スリープを感知
○:スリープ解除を感知
131名称未設定:2005/08/28(日) 02:05:21 ID:M61crGs6
Gなんとかっていうのを入れるんじゃなかったっけ。
要はウインドウを出すだけのソフト。
132名称未設定:2005/08/28(日) 02:12:23 ID:lrijzcNQ
某所とか言われてもな
133名称未設定:2005/08/28(日) 02:45:29 ID:SVPj9b+3
>>131
そうなの?
アプリケーションバンドル形式だったからパッケージ開いてみたけど、
それっぽいものが見付からなかったんですよね。
その部分だけCocoaか何かで書いてるのかなあ??

>>132
情報としては上記の説明で充分と思ったんで晒すのもどうかと思ったんだけど、
別に隠す事でもないか。ぴよまるソフトウェアさん。
要望出そうかと思ったら連絡先がないみたい。
134名称未設定:2005/08/28(日) 03:03:34 ID:lrijzcNQ
>>133
ども、ダウンロードしてみた

>色つきの半透過のウインドウ
Okaeriのパッケージ内にnibファイルがあるけど、
普通にCocoaのウィンドウを透過表示してるだけみたい

スリープ感知で一番簡単な方法としては、on idleで10秒毎に時間を記録しておいて
前回の記録との間が10秒より有意に大きければ、途中でスリープした可能性ありと
判断できるかもね(他にも複数の方法を併用してるようだけど)
135名称未設定:2005/08/28(日) 03:07:50 ID:lrijzcNQ
一見アプリケーション形式のスクリプトに見えるけど
icnsにアプリケーション形式スクリプトのアイコンを使ってるだけであって
実態は普通のAppleScript Studio製Cocoaアプリだと思う
136名称未設定:2005/08/28(日) 03:49:15 ID:SVPj9b+3
>>134,135
AppleScript Studioで、半透過のウインドウって簡単に作れるんですか?

> 時間を記録しておいて〜
はっはーなるほどー。
137名称未設定:2005/08/28(日) 04:31:49 ID:M61crGs6
Objective-Cのクラスを使う形で実装するようだよ。
138名称未設定:2005/08/28(日) 05:30:39 ID:SVPj9b+3
call methodですか〜。使えるようになりたいなー。

そういうのに便利なCocoa APIのリファレンス本ていうか、
そういうのないですかね?
・・・日本語で。w
139名称未設定:2005/08/28(日) 10:29:55 ID:BPGTYoyE
>>136
通常のウィンドウを半透明にするだけなら、単にset alpha valueすればいいんだけど
ウィンドウ枠を持たない、いわゆる不定形ウィンドウはcall methodを使うみたいね
「AppleScript Studioでゼンマイびゅんびゅん!!」に作例が載ってたよ
>>138
oomoriさんとこのCocoa APIリファレンスには
call method用の構文も載ってて便利
140名称未設定:2005/08/28(日) 10:37:55 ID:BPGTYoyE
ごめん、call methodは使ってないや
IBでウィンドウにCuntom Classを適用するだけでいいようだ
141名称未設定:2005/08/28(日) 10:38:29 ID:BPGTYoyE
Custom Classね
142名称未設定:2005/08/28(日) 13:31:49 ID:8uyYtYD3
しかし自分もたいていソース非公開だから言えたもんじゃないが
スリープ解除感知とかいう有用なノウハウは公開して貰えると
とてもうれすぃ。
まあそれ用のハンドラがAppleのほうで用意されるのが一番いいんだろうけど。

>>139-141
情報ありがとうございます。
そうか。ゼンマイびゅんびゅんシリーズは一通り買ってるつもりだったけど、
Studioで〜は買ってなかったかな。買おうかな。
ネット上の掌田さんの記事にもちょこっとそれっぽい事に触れてあるんですけどねー。

>>139
いっそ誰か(どこか)金出して
oomoriさん中心でAppleScriptで使うためのCocoaの本を出してくれたりしないものか。。
AppleScriptリファレンスとかも労力に見合うほど売れてなかったりするのかなー。。
143名称未設定:2005/08/29(月) 02:36:36 ID:9B68a1cp
Products [CD販売中] AppleScript Studio秘伝書CD v2.0 (ShareWare)
AppleScript Studioでアプリケーション開発を行う際の、さまざまなノウハウをまとめたCDです。
144名称未設定:2005/08/29(月) 20:39:48 ID:6qenkZWc
なるほどぴよまるソフトウェアさんはそういうの売ってるのね。
ちゃっかりしてらっしゃる。w
FAQ眺めるとなんかこう、おいしそうなのからえーこれで金取るのってまで混ざってるな。w
145名称未設定:2005/08/29(月) 20:42:42 ID:6qenkZWc
けっこー初歩的な質問ですが。。

非公式?だけど便利なハンドラ「on reopen」がありますが、
(既に起動中のアプリのアイコンをドックでクリックした時などに実行)
AppleScript Studioでこれの代わりになるハンドラってなんでしょうか?
File's Ownerのactivated?
146名称未設定:2005/08/30(火) 11:53:52 ID:jNx+Fim/
>>145
on reopen そのものがどこかにあった気がする。
147名称未設定:2005/08/30(火) 15:19:32 ID:MpFfq2Mz
ほんとですか?
コンパイルは通るんですけどね。。
148名称未設定:2005/08/31(水) 00:23:26 ID:eIHwi7CC
Mac OS Xになってから、AppleScriptでは金払わないとcgi書けなくなっちゃっ
たんですね。せめてosascriptがユーザwwwでも普通に動くといいんですが。

sudoで動かそうとしたけどパスワード入力で止まっちゃって無理だった。

echo "
" | sudo osascript -e "set aa to 1"

偽RD-Styleを目指してEyeTV 200用のcgi試しに書こうとしたとです。
149名称未設定:2005/09/02(金) 11:51:58 ID:XK+0qGLz
>>148
そりは困った事ですね。
Web Scripter's Meetingのほうとかでいいアイディアをおもちの方がおられませんかね。
150名称未設定:2005/09/02(金) 11:52:53 ID:XK+0qGLz
Jon's Commandsって、OSX版が出てたんですねー。
キー入力の検出ができたりするみたい。
151名称未設定:2005/09/03(土) 20:50:36 ID:aSLKcfbY
ファイル名の中の一文を置き換えるようなスクリプトってどうすればいいでしょうか?
名称未設定OSX.txt→名称未設定OS9.txt

みたいなのを大量に処理したいんですが。
152名称未設定:2005/09/03(土) 21:31:59 ID:nh8LhV/u
正規表現じゃないならAppleScript's text item delimitersでできそう。

on replaceText(inText, inOld, inNew)
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {inOld}
set workData to text items of inText
set AppleScript's text item delimiters to {inNew}
set workData to workData as string
set AppleScript's text item delimiters to OriginalDelimiters
return workData
end replaceText
set theText to my replaceText("名称未設定OSX.txt", "OSX", "OS9")
153名称未設定:2005/09/04(日) 07:53:54 ID:/QQrhNHa
OS XならPerlとか呼び出せばかなり複雑な事もできるね。

>>151
そもそもファイル名の取得と変更の基本的な事はわかってるのかな?
>>152さんのはテキスト置換部分だからそれにちょっと付け足せばいいんだけど。

set 変数 to name of 〜 で現在の名前を取得。
set name of 〜 to 変数 で名前を付ける。

あと複数処理ね。
ドロップレットにするかFinerのselectionで選択対象のリストを得る。
repeat with 変数 in リスト
を使って一個ずつ処理する事になるね。

~~~~~~~~~~~~
結果が欲しいだけならAutomatorでもできるよ。
リネームソフトもあるし。
154名称未設定:2005/09/04(日) 17:35:47 ID:Iqa+85fi
>>152ありがとうございます。
on replaceText(inText, inOld, inNew)は使い方がよく分からなかったので
(なんかドロップレットの中で使うと?エラーがでます)
↓結局こうなりました。


set kara to text item delimiters of AppleScript
set motonamae to name of hensuu
set text item delimiters of AppleScript to sakujo
set sakujogonamae to (every text item of motonamae)
set text item delimiters of AppleScript to tuika
set name of hensuu to sakujogonamae as string
set text item delimiters of AppleScript to kara
155名称未設定:2005/09/04(日) 17:57:10 ID:S3WLaW7i
○(外に出す)
------------------------------
on open
end open

on replaceText()
end replaceText

×(ネストしない)
------------------------------
on open
 on replaceText()
 end replaceText
end open
156名称未設定:2005/09/07(水) 19:30:14 ID:O48sruLh
Script Menu.menuというのをクリックすると右上のバーにスクリプト項目が表示されて、
そこからScriptを実行したりできるわけですが、
ドロップレットのかわりに、ファイルを選択してそこから実行するようにするにはどうすればいいでしょうか?

on run
tell application "Finder"
set sentaku to every item of selection

みたいにやってみたんですが、どうもうまくいきません。
157名称未設定:2005/09/07(水) 20:03:01 ID:tWMqCB47
>>156

on run
tell application "Finder" to set |Finder選択項目| to selection
tell me to open |Finder選択項目|
end run

on open |開く項目リスト|
repeat with |項目| in |開く項目リスト|
display alert (|項目| as Unicode text)
end repeat
end open
158名称未設定:2005/09/07(水) 20:20:57 ID:3+xodjh4
>>157 ふーん、そういう書き方があるのだね。勉強になる!!

--Finderで選択中のファイルをDropStuffで圧縮
--iKeyでキーボードショートカット付けると便利

tell application "Finder"
set myFinderSelection to selection
repeat with I in myFinderSelection
tell application "DropStuff" to stuff (I as alias) format StuffIt to my myGetDesktopFolder()
end repeat
end tell

on myGetDesktopFolder()
tell application "Finder"
return (desktop as alias)
end tell
end myGetDesktopFolder
159名称未設定:2005/09/07(水) 20:53:44 ID:xqO5ONDa
>>157
日本語変数かよw
懐いぜ。

>>158
何でそういうサブルーチン作って分けてるのか
いまいちわからんのだけど。
不必要じゃないか?
むしろリピートの中で一々サブルーチン呼んでたら速度低下とか色々あるでしょ。
デスクトップフォルダの場所が知りたいだけなら
リピートの外で一回実行すればいいだけで、分ける必要もないと思うが。
160名称未設定:2005/09/07(水) 21:26:00 ID:2nHUp/3B
HDDのスクリプト溜めの中の全然別のスクリプトから切り出してきたのでそうなっ
てんだ。
161名称未設定:2005/09/07(水) 21:45:49 ID:xqO5ONDa
それにしてもなあ。
切りだし元の書き方に汎用性がないって事にもなるし。
まあ直せるならいいけど。
162名称未設定:2005/09/07(水) 21:48:17 ID:eX6ZJATJ
Finderで複数の項目を選択して、それらのアイコンを削除し、
表示をデフォルトに戻すスクリプトを制作していただけませんか?

大量のjpgファイルにサムネイルがついてしまい、なおかつ、そのサムネイルが汚くて
非常にまいっています。よろしくお願いします。
163名称未設定:2005/09/07(水) 21:52:46 ID:Ozt2EC4O
動かなくてもいいからまず自分で書いてみなよ
164名称未設定:2005/09/07(水) 21:58:04 ID:EroFEonN
165名称未設定:2005/09/07(水) 22:12:24 ID:eX6ZJATJ
いいえ、これでもかまいません。ありがとうございましたー
サンプルをちょっといじってみたら、自分の書いた文章がアラートとして表示されました。
軽く感動。スクリプト、ちと勉強してみます。
166名称未設定:2005/09/08(木) 01:02:50 ID:xAVP9MpF
>>162

on open A
tell application "Finder"
repeat with B in A
set icon of B to {}
end repeat
end tell
end open

こういうこと?
167名称未設定:2005/09/08(木) 05:16:47 ID:+30f54Ms
ちょっと質問です。
マイク入力でスリープを解除させるようなスクリプトは可能ですか?
168名称未設定:2005/09/08(木) 06:07:39 ID:JQ3TRJE9
>>167
無理。スリープ状態では普通のアプリケーションは停止するし。
そういうのはスクリプトの仕事ではない。
(仮に元々そういう設定が隠し設定としてシステムに存在していて
 コマンドラインから設定できるとかいう場合ならスクリプトでどうにかなるけど)
169名称未設定:2005/09/08(木) 12:56:00 ID:BNL3nlcb
>>167 あんたこれ作りなさい。「チャイムコードへ」、とある先にキーボードつなぐ。
CtrlとかCommandとかOptionとか、いつ押しても問題無いキーを押させる。
http://homepage1.nifty.com/ddd/31-chime/31-oto-chime.htm

Wake On LANというセンもあるけど。省エネルギーのオプションを参照。

↓Cで書かれたwolクライアント。玄箱でもMacでもコンパイルできた。
http://www.gcd.org/sengoku/docs/wol.c
↓wol解説
http://www.rtpro.yamaha.co.jp/RT/docs/wol/wol.html

wolだとマジックパケットを送るマシンと、マイクからの入力をあれこれするプ
ログラムが必要になるから本質的な解決にはなってないね。
170名称未設定:2005/09/08(木) 18:10:29 ID:+30f54Ms
そうか、スリープしてたら普通アプリはとまってるよね(w
あっはっは。
ハード組んでまでやりたいことじゃないので・・・ちょっとハードはパスだに〜。

サーバーにしてるノートがあって、リビングに鎮座してるので時計でも表示させようかなと。
で、大抵はスリープしてるんで手拍子で時計起動しないかな〜とね。
画面スリープだけなら可能性あるかな?
可能だとしてマイク入力をイベントとして処理できますかね?
171名称未設定:2005/09/08(木) 19:53:25 ID:JQ3TRJE9
スクリーンセーバーみたいなものを起動させておいて
音に反応させるのは可能なのでは?
まあそれもAppleScriptじゃなくて Objective - C でどうぞって雰囲気だけど。

音に反応するアプリとかって昔ありましたよね。
ふーふーすると風車が回るやつとかはけっこう新しいやつでしたっけ。

>>169
チャイムの代わりに簡単な稼働部品をつけて
マウスでもつつかせればスリープは解除できますね。w
こういうの作れる人になりたかったなあ。
172名称未設定:2005/09/08(木) 20:46:00 ID:BNL3nlcb
>>178 ポーリングして値を見てやらんといかんでしょ。
http://developer.apple.com/documentation/QuickTime/INMAC/SOUND/imsoundinput.19.htm#pgfId=775
QuickTime Audio
 Sound Input Manager Routines
  SPBGetRecordingStatus
   meterLevel: Integer;

Pythonでは/Mac/Modules/sndでいけるっぽい
http://mail.python.org/pipermail/python-checkins/2002-August/028921.html
PerlもMac-Carbon使うといけるみたい
http://search.cpan.org/src/CNANDOR/Mac-Carbon-0.74/Sound/Sound.xs
REALbasicでもSPBAudioLibっての使うといけたらしい
http://support.realsoftware.com/listarchives/realbasic-nug/2000-07/msg02737.html

0-255のintが返ってくるから、閾値を設定して最初のループで認識後、次のルー
プで閾値以下に戻ったのを確認して、さらに次のループで何秒以内にもう一度
入力があったらGO!みたいな感じに処理するといいと思うが。

SpeechRecognitionServerを使う手もあるね。でもこれ日本人にはきつい。
これ使うぐらいならハード作った方がましだと思う。
http://developer.apple.com/ue/speech/applescript.html

>>171 キーを押すということは電気を通すということだから、
この先に電気で動かすスイッチであるSSRとかフォトカプラを置けばいいのよ。
キーボードを改造する必要はあるけど。
173名称未設定:2005/09/08(木) 21:28:16 ID:JQ3TRJE9
ああ昔内蔵マイクに向かって一生懸命
「What time is it now ?(ほったいもいじくるな!)」って言ってたさw
174名称未設定:2005/09/08(木) 22:13:59 ID:uwok69V8
>>157
ありがとうございます。でもalertのところで
end of line と書くところに
identifierがあります。
とかいうエラーがでてしまうようです。
そのままでは使えないと言うことでしょうか?
175名称未設定:2005/09/09(金) 06:54:21 ID:NbNIhW9h
>>174
display alertは10.3からかな?10.4からかな。

alertをdialogに書き換えたらOKのはず。
176名無しさん@そうだ選挙に行こう:2005/09/11(日) 16:45:36 ID:9x5INtFb
>>175
できました!ありがとうございます。
177名無しさん@そうだ選挙に行こう:2005/09/11(日) 17:38:50 ID:2Vc5XUJt
擦れ違い(本当はDTP板で聞く話なんだろうけど人少なそうだから)スマソ

OSX、インデザインCSでテキストの流し込み作業を行っているオペです。
大量に支給されるテキストファイルの中にwindows由来のものがあり、
改行コード(CR/LF)のLFが邪魔なのですが

「AppleScript's text item delimiters」使ってLFだけ削除することって
可能でしょうか?
選挙の日に初心者質問で申し訳ないですが、アドバイスお願いします。
178名無しさん@そうだ選挙に行こう:2005/09/11(日) 18:51:40 ID:YoGCJosM
たとえば「dos mac 改行 変換」でググると幾つか見つかるけど
179名無しさん@そうだ選挙に行こう:2005/09/11(日) 19:50:38 ID:6KL8DlIA
open for access で delimiterをascii character 12にしてリストとして読み、
as textでテキスト変換するとか。あるいは伝統的手法でAppeScript's text
item delimitersを ascii character 12にするとかやろうとしたけど、これっ
てなんかうまくいかないね。

このスクリプトがまさにそのもの。
http://www.vector.co.jp/soft/mac/util/se183050.html

ソース読んだけど、一つ勉強になりました。
猫は去ってスクリプトを残すか。

{return & "
", return, "
"}

これでCRLF, CR, LFのリストになるなんて仏様でも知りますまい。
180名無しさん@そうだ選挙に行こう:2005/09/11(日) 19:52:43 ID:pVIsbdah
>>177
できるよ。
LFはASCII character 10だから頑張ってみて。
181177:2005/09/12(月) 00:27:07 ID:P5a7YGmb
おおっ、いきなり回答そのものが!
DTPのスクリプト初心者には、質問の場が少なくて困ってたのです。

ともあれ
>>178 >>179 >>180
どうもありがとう
182名称未設定:2005/09/15(木) 05:11:58 ID:FOLQLt2s
AppleScript StudioではCRLFが定義されてるんだけど、
スクリプトエディタでコンパイルし直さないといけない事になったりで、
結局いつも自分で変数crlfStrを定義している漏れ。
183名称未設定:2005/09/17(土) 21:59:48 ID:uDPMaqXg
ドロップされたファイルの拡張子が「.tar.gz」だった場合に「.tgz」、
「.tar.bz2」だった場合には「.tbz」に変更するスクリプト書いてくれませんか?
184名称未設定:2005/09/17(土) 22:14:28 ID:3ec1YaAm
>>183
拡張子だけ勝手に書き換えちゃってええのんか?
185名称未設定:2005/09/17(土) 22:24:32 ID:w1tGhuwX
-->>183
--拡張子を変えるだけなら

on open dropItems
tell application "Finder"
repeat with anItem in dropItems
set theName to name of anItem
if theName ends with ".tar.gz" then
set name of anItem to my replace(theName, ".tar.gz", ".tgz")
else if name of anItem ends with ".tar.bz2" then
set name of anItem to my replace(theName, ".tar.bz2", ".tbz")
end if
end repeat
end tell
end open
to replace(theText, replaceStr1, replaceStr2)
set oldDel to AppleScript's text item delimiters
set AppleScript's text item delimiters to replaceStr1
set theText to every text item of theText
set AppleScript's text item delimiters to replaceStr2
set theText to theText as string
set AppleScript's text item delimiters to oldDel
return theText
end replace
186名称未設定:2005/09/18(日) 00:15:58 ID:dyLn1tbv
>>183
せっかくだからautomatorかなんかで挑戦してみりゃいいのに。
187名称未設定:2005/09/18(日) 01:55:24 ID:SZiBV1Hi
>>185
おぉ、これで.tarが無駄に出てこなくなる。thx
188名称未設定:2005/09/18(日) 02:47:41 ID:dyLn1tbv
拡張子によってそんな違いあったっけ?
OSのBOMB?で解凍するとき?
ドラッグ&ドロップするんだったら直接解凍ソフトにドロップしてもいいよね。
189名称未設定:2005/09/18(日) 04:51:18 ID:6hySMFr2
Finderで選択している音楽ファイルを、ファイル名の逆の順番にiTunesに追加するスクリプト書いてもらえませんか?
一度に追加するのはAutomatorでできるんですけど、これだと追加する順番が決められないのです。
190名称未設定:2005/09/18(日) 06:57:09 ID:CofyOvnq
>>189
自分で書けよ
191名称未設定:2005/09/18(日) 08:18:34 ID:ngQMd9KO
一応発表会スレであって
スクリプト書くのが面倒だからヒマな他人にタダで書かせるスレ
じゃないんだが
192名称未設定:2005/09/18(日) 10:29:39 ID:YSWbvtjP
油断して、初級クレクレ厨の相手をすると
そのうち上級クレクレ厨がきて収拾が付かなくなる恐れがありますので。。
193名称未設定:2005/09/18(日) 14:56:00 ID:873xH2al
そうはいってもアップルスクリプトなんて今1から勉強するには環境整ってなさ過ぎ。
文法やパラメータまともに解説してるとこなんてないし、
俺も一応簡単なものは書くけど未だに辞書の見方よくわからんぜ。
そういうのを解決するために作ったのがAutomatorだったんだろうが、あれも結局ASに頼り過ぎで
バリバリ使うなら最初からスクリプト書いた方が楽=誰もアクションなんて作らない
194名称未設定:2005/09/18(日) 18:50:54 ID:JTZ7B8VI
リストを逆順で処理するのは>185の一部をかえる場合次のようにする
repeat with theIndex from (count (dropItems)) to 1 by -1
set anItem to item theIndex of dropItems
display alert anItem
end repeat
あとはiTunesで開けばいいんじゃないかな?
195名称未設定:2005/09/19(月) 03:00:05 ID:wsMlmMYq
>>192
皮先みたいなヤシはそうそう居ないから心配するな。(w
ま、一人でも十分迷惑ではあるが。(w
196名称未設定:2005/09/19(月) 12:17:54 ID:J0dKOT4z
 
197名称未設定:2005/09/19(月) 13:00:19 ID:oPzgYFT4
>>194
Finderから渡されるselectionのリストって、ディレクトリエントリ順か、ア
イコンの座標順でなかった? カラムモードだけはファイル名順にならんだっけ
な。だから最初にソートしないといけない。10.4のFinderはsortがあったはず
だけど、それ以下だと自分でソートするハンドラ書かないといけない。
198名称未設定:2005/09/19(月) 13:29:13 ID:SUEZxWOZ
on maxSort(aList)
copy aList to theList
set sum to count theList
repeat with i from 1 to sum - 1
repeat with j from i + 1 to sum
if item i of theList > item j of theList then
set temp to item i of theList
set item i of theList to item j of theList
set item j of theList to temp
end if
end repeat
end repeat
return theList
end maxSort

ソートするハンドラ
藤棚からのコピペ
199名称未設定:2005/09/19(月) 22:07:04 ID:9dGJDYT/
名前順だったらTerminalコマンド使ってのソートもできると思う。
ネットのどっかで拾ったけど、どこだったか忘れた。
ひょっとすると海外か?だとするとこのスレ経由かな?

自分のスクリプトからその部分だけコピペしてみる。
ハンドラとかになってないし、何か自分でもよくわからん事してるけど。。
どうも名前のリストのテキストに対して行のソートの処理をしてるみたい。
変数theListに最初に項目のリストが収まってる。

set oldDelims to AppleScript's text item delimiters
set AppleScript's text item delimiters to {ASCII character 10}
set listString to (theList as string)
set newString to do shell script "echo " & quoted form of listString & " | sort -f"
set newList to (paragraphs of newString)
set AppleScript's text item delimiters to crlfStr
set newString to (newList as string)
set AppleScript's text item delimiters to oldDelims
200名称未設定:2005/09/20(火) 21:32:50 ID:BfKWPDmL
瑣末な質問ですが・・・

Finderでselectionを使うとき、name of selection ってすると、選択してるファイルの
名前がリストで返ってきますよね? 
でも、selectionを変数に入れて name of my_sel とかってするとエラーが出ます、よね?
あと、name of (item 1 of my_sel) や、name of (item 1 of selection) は、両方ちゃんと
ファイル名を取得できますが、name of (every item of my_sel) は、
name of (every item of selection) と違って、エラーが出ます・・・よね?

この違いは、どうして出てくるんでしょうか?
使ってて特に問題はないんですが、気になったもので・・・AppleScriptの仕組みを
よく分かってないので、もし「んな初歩的な事も知らんのかゴルァ!」って話だったらスマソ&
ご教示おながいしまつ m(_ _)m
201名称未設定:2005/09/22(木) 19:30:53 ID:91z4zGvb
アップルスクリプトじゃなくてシェルスクリプトなんだけど
何か一つ手元に参考書が欲しいと思って、本屋に行ったら
入門風の薄い1,800円、翻訳本の2,800円の2冊を除いて
あとの5〜6冊は全てどの本も2,200円。
陰謀のにおいがしました。
202名称未設定:2005/09/22(木) 23:19:21 ID:mGqBKDS5
漫画しか買ったこと無いの?
技術書としては市場が大きく類書が多いジャンルだから安い方だろ。
大体お前『バガボンド』の総部数と『シェルスクリプト入門』の部数を想像し
てみな。下手すっと4000倍違うぜ。

4000個作る量産品とワンメイクの特注品の価格を想像してみな。

『バガボンド』は読んで何が残る? 宮本武蔵になれるのか? 『シェルスクリプ
ト入門』は、読んだら明日からシェルスクリプトマスターになれるかもしれん
ぜ。お前の将来の職につながる知識になるかもしれん。

俺も昔は金無かったからお前の気持ちは分かるが。
まだ若いなら漫画買う金節約して自分を磨け!

技術書にも糞と名著があるから、Amazonとか関連スレを参考にして買うといい
ぞ。糞に当たると本当に損する。
203名称未設定:2005/09/23(金) 02:10:03 ID:2iIqnzH8
>>202
そうじゃなくて、「価格が同じ」ことに着目してるんぢゃないのかな?

>>201
それはあれだ。ナンバーズか何かをその番号で買えという虫の知らせだよw
204名称未設定:2005/09/23(金) 02:11:09 ID:2iIqnzH8
シェルスクリプトの本は逆引き500とかいうのがMac OS Xの事も載ってそうだしおもしろそう。
同じシリーズのターミナルコマンドのやつも使えるコマンドあった。
205名称未設定:2005/09/23(金) 02:14:09 ID:2iIqnzH8
>>200
10.4.2で実験してみたんだが、
そもそも
name of selection
ができなくなってるっぽい。

このへんはAppleScriptの仕様はわりといい加減っぽいので
あまり気にしないほうがええんでないかなあ。。

複数参照形式のなんたらは直接じゃないとだめらしいってのは
AppleScriptリファレンスにも確か書いてあったな。
元ネタは野本夏俊さんだっけ?
206名称未設定:2005/09/23(金) 13:28:25 ID:vT7jGwd/
一度地元の図書館に行ってみようw
Mac関係はPhotoShop系以外は割と借りやすい。
リクエストしたら購入してくれる所もあるし。
当たり外れが結構あるからなぁ。
207200:2005/09/23(金) 14:23:00 ID:qNq7GeR+
>>205
試して頂いてアリガトンです。最近は name of selection でもダメなんですね。
ひょっとしたら何か厳密なルールがあるのかと思ってますた・・・
あんま気にせずにやっていきますw
複数参照形式についても参考になりました。リファレンス買おうかな
208名称未設定:2005/09/23(金) 14:45:15 ID:2iIqnzH8
>>207
とんびさん(TigerたんWidgetの作者の人)のサイトのTipsのとこ見たら何か書いてあったような。
209200:2005/09/23(金) 18:03:11 ID:qNq7GeR+
>>208
tips/basic/の「複数参照」のところですね。アリガトです。(鳶嶋さんのサイト、困った時に
よくお世話になっているんですが、肝心なトコを見落としてました orz)

>難点らしい難点は(略)、パスによる参照のリストには対応していない場合が多いこと
って部分が、読んでみて正に当てはまってる・・ように思いますた。

>>200で頭をひねってた件って、つまり
・旧Mac OSのFinder等が持ってる「selection」は、単に「パスによる参照のリスト」を返すだけでなく、
 (珍しく?)複数参照が可能なおかげで、「name」などの属性を一括して閲覧・変更することも出来る

・それは「selection」を直接扱う場合のみ可能で、変数に入れると、結果({file"○○"~,file"××"〜}など)
 だけが代入されてしまうために?、「selection」の神通力が失われた、単なる「パスによる参照のリスト」
 になってしまい、複数参照が出来なくなってしまう

・・・みたいな感じ・・でしょうか。

長々と素人勝手な憶測スマソです&情報アリガトンです!
210名称未設定:2005/09/23(金) 18:59:49 ID:gFVb6HWn
10.4だと

name of (selection as alias)

ってやらないとだめだよね。

複数選択したものを変数に入れるときは

set x to selection
name of ((item 1 of x) as alias)

とか。
211200:2005/09/23(金) 20:11:44 ID:qNq7GeR+
>>210
鳶嶋氏の話だと、元々selectionで複数参照できるアプリ自体少ないみたいですし、
10.xになって、Finderもそっちの方へシフトしちゃったんでしょうか。
支障はほとんどないだろうけど、少し不便になってるみたいですね。

あ・・・関係ないですが>>209のやつ、変数に(a reference to selection)を入れれば
(とりあえず旧Mac OSでは)selectionと同等に使えますね orz キヅイテカナカッタ・・アホダ・・
212名称未設定:2005/09/24(土) 02:30:35 ID:Gfb0gZ2H
ん?うちの環境がおかしいのか?

>>210
tell application "Finder"
name of (selection as alias)
end tell

ってやると、「〜をタイプaliasに変換できません」というエラーになるんだが。
10.4.2で、スクリプトエディタ上で実行。

as alias listだと、「name of 〜 を取得できません」となってだめ。
213名称未設定:2005/09/24(土) 02:36:55 ID:Gfb0gZ2H
あと>>210の後ろのスクリプトだが、
一個の名前を取り出すだけなら、
tell application "Finder"
set selectionList to selection
name of item 1 of selectionList
end tell

でいいはずだけど?
214名称未設定:2005/09/24(土) 17:49:40 ID:2X5RufZd
ドロップレットってコンパイルしなきゃ使えませんか?

OpenOffice.org の開発者の人たちが、 X11 アプリである OpenOffice.org が
書類にアイコンをつかえて、Drag & Drop を受け付けられて、 X11 の
自動起動もできるようなアプリケーションバンドルを作りたいために、
AppleScript で起動スクリプトを書いているのですが、 (なんか変な日本語だな)

Make の中で使っている osacompile が、実行時に WindowServer を必要とするんですよ。
これは ssh などを使ってリモートでビルド作業をするのにちょっと都合が悪いんです。

CVSでソースを管理しているのですが、手元でコンパイルしてバイナリをコミットしておく、
というのも気持ちが悪い。osacompile がリモートでも普通に使えたら最高ですが、
そうでない以上、テキストのままドロップレット的な使い方ができたらいいなあ、と。
215名称未設定:2005/09/24(土) 18:14:12 ID:2X5RufZd
このまま質問で終わるとスレタイに反するので、スクリプト (LGPL) をあげときます。
ttp://www.hakusi.com/up/src/up4498.txt

…自分で書いたものでもないのに勝手に発表して、正直すまんす
216名称未設定:2005/09/24(土) 19:13:37 ID:vXtN8uu3
>>212
name of (selection as alias) で名前が返るのは選択項目が一個だけの場合。
選択項目が複数で変数を使わないときは
name of (item 1 of (selection as list))
かな?

>>213はそれでいけました。

前に試したときはどこか書き間違えてエラーになったんだと思う。すまんです。
217名称未設定:2005/09/25(日) 03:09:11 ID:NP4/nYia
>>216
普通は選択項目が1つでも複数でもエラーが出ないような書き方を探すよね?
確かに選択項目が1つなら as alias つけて名前が取得できるけど、
使い道がわからん。

name of item 1 of (selection as list)
で、選択項目が複数でも単数でもOK.
as listを付ける事で1つだけの項目もリスト形式になるからitem 1 ofが使える。

>>213の書き方も選択項目が1つでも複数でもOK.
218名称未設定:2005/09/25(日) 17:46:58 ID:fbXhR1L2
キーワードが文脈に依存するのが
219名称未設定:2005/09/26(月) 15:39:19 ID:4m0lABWf
>>214
書いてあることの90%理解できないんですが、
run script命令を使えばスクリプトの書いてある
テキスト書類を実行することはできます。
ドロップレットからテキストを実行するというのではダメ?
そういうことでないならスマソ
220名称未設定:2005/09/26(月) 19:23:41 ID:FKzYgqlQ
>>214
AppleScriptでやってるところをCocoaアプリで置き換えるとかしないとどうしようもない希ガス。
221214:2005/09/26(月) 23:09:58 ID:ggK2kh3R
>>219-220 の両氏、意味不明な質問に的確に答えていただいてありがとうございます。
小さい、テキスト版スクリプトを参照するだけのドロップレットを準備して、
テキスト版をアップデートしていく、というのがいいかも、と思えてきました。
222名称未設定:2005/09/27(火) 17:26:57 ID:+5vWJ405
TigerでFinderとDashboard以外の
全てのアプリを一斉終了させるスクリプトを
どなたか作っていただけませんか?
223名称未設定:2005/09/27(火) 17:33:57 ID:bHu7sgFp
スレタイを読めないのか?
224名称未設定:2005/09/27(火) 17:36:52 ID:RNZlfd2q
225名称未設定:2005/09/27(火) 17:42:47 ID:+5vWJ405
なんだ、役に立たないなコイツら
226名称未設定:2005/09/27(火) 17:46:14 ID:fSxb+Ndm
面白くないから却下
227名称未設定:2005/09/27(火) 17:48:36 ID:RNZlfd2q
なんだ、無能極まり無いなコイツ
228名称未設定:2005/09/27(火) 22:06:07 ID:C1OoRUCH0
>>222
なんかくれたら作ってやるよ
229名称未設定:2005/09/28(水) 13:29:47 ID:sEu9MoBc
>>228
俺の愛をあげよう
クロックが10倍になるスクリプト作ってくれ
230名称未設定:2005/09/28(水) 13:38:34 ID:L16rTDss
>>229
repeat 10 times
tell application "Finder" to open "/Library/Widgets/World Clock.wdgt" as POSIX file
end repeat
231名称未設定:2005/09/28(水) 16:27:05 ID:PWrWgjve
上手い!
232名称未設定:2005/10/08(土) 22:20:13 ID:dLpBPtEB
hosyu
233名無しさん:2005/10/10(月) 12:24:16 ID:q4ZpPXM0
AppleScriptでクラシック環境を起動したいのですが
スクリプトエディタで「記録」を押しても反応しません。
辞書にもないし…。無理ってこと?
234名称未設定:2005/10/10(月) 12:37:12 ID:p88XitxC
tell application "Classic Startup" to activate
辺りで起動するようだが?

quitは効かんようだった。
235名称未設定:2005/10/10(月) 12:40:18 ID:4Z/wu4io
スレタイが一瞬「おもらし、はずかしい」に見えた。
236名称未設定:2005/10/10(月) 16:47:50 ID:VpEKUMgG
>>235
半角の同好の士の居るスレに逝け
237名称未設定:2005/10/10(月) 18:41:18 ID:7IqaCPPz
いらっしゃい
238名無しさん:2005/10/21(金) 01:03:03 ID:Ix5NK4/A
Pantherでスマートフォルダのような機能を
実現したいのですが、フォルダアクションで
保存された検索内容に自動的に飛べるように
すれば可能かなと思うのですが、Finderで
検索結果を保存する方法がわかりません。
板の賢人の皆様どうかヒントを宜しくお願いします。
239名称未設定:2005/10/21(金) 02:05:53 ID:ZRX6qpKc
>238
そんな、検索結果を保存する機能なんて Panther にはない。
AppleScript でどうこう以前の問題。あきらめろ。
240名称未設定:2005/10/21(金) 06:36:28 ID:Z8Q6ffI+
スポットライト並みのスピードを求めなければ
mgrep osax のような検索出来る OSAX 使えば出来そうな気もするが。
241名称未設定:2005/10/21(金) 17:39:07 ID:YrOVRVel
iPhotoからRAWファイル(.nel)をファインダに表示させる。

iPhotoの外部アプリで編集機能は、iPhotoが現像したjpegファイルの方を開いてしまうので,RAWで管理している意味があまり無い。
"Show Image FIle"等,オリジナルファイルをファインダで表示させるスクリプトは、RAWを表示させようとすると、やはりiPhotoが現像したjpegファイルの方を表示させてしまう。
結局チラシの裏にファイル名をメモしながらオリジナルを探すというアナログ回帰な毎日・・・

という訳でShow Image File を改造して、RAWファイル専用機にしてみました。

RAW+JPEG のように同名異拡張子で取り込まれたり、iPhoto内で複製、または重複取り込みで勝手に枝番が付加された場合でもオリジナルのRAWファイルにたどりつきます。

OSX 10.3.9  iPhoto 5.0.4で動作確認

↓  ↓
242名称未設定:2005/10/21(金) 17:40:55 ID:YrOVRVel
"Show Raw File" 01
tell application "iPhoto"
activate
try
copy (my selected_images()) to these_images
if these_images is false or (the count of these_images) is not 1 then error "一個づつしか調べきらんと"
set this_image to item 1 of these_images
set textName to (image filename of this_image) as text
set textName to my replaceW(textName, ".jpg", ".nef")
set textPath to (image path of this_image) as text
set textDate to (date of this_image) as text
set oldDel to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
set textDate to text item 1 of textDate
set textDate to my replaceW(textDate, "-", "/")
set AppleScript's text item delimiters to "/"
set libraryName to text item ((count text item of textPath) - 4) of textPath
set AppleScript's text item delimiters to libraryName
set textPath to text item 1 of textPath
set AppleScript's text item delimiters to oldDel
set textPath to textPath & libraryName & "/" & textDate & "/Originals/" & textName
243名称未設定:2005/10/21(金) 17:41:40 ID:YrOVRVel
--"Show Raw File"02
try
set this_imagefile to ((textPath) as POSIX file) as alias
on error
try
set changePath to text item ((count item of textPath) - 5) of textPath & text item ((count item of textPath) - 4) of textPath & ".nef"
set textPath to my replaceW(textPath, changePath, ".nef")
set this_imagefile to ((textPath) as POSIX file) as alias
on error
display dialog "RAWファイルじゃなかろごたぁ"
end try
end try

on error error_message number error_number
if the error_number is not -128 then
display dialog error_message buttons {"Cancel"} default button 1
end if
end try
end tell
244名称未設定:2005/10/21(金) 17:42:26 ID:YrOVRVel
--"Show Raw File"03
tell application "Finder"
activate
set visible of (every process whose visible is true and frontmost is false) to false
reveal this_imagefile
end tell

on selected_images()
tell application "iPhoto"
try
set these_items to the selection
if the class of item 1 of these_items is album then error
return these_items
on error
return false
end try
end tell
end selected_images

on replaceW(src, tg, rp)
set oldDel to AppleScript's text item delimiters
set AppleScript's text item delimiters to tg
set myList to text items of src
set AppleScript's text item delimiters to rp
set myText to myList as string
set AppleScript's text item delimiters to oldDel
return myText
end replaceW
245名称未設定:2005/10/21(金) 17:44:01 ID:YrOVRVel
うぅ・・改行が多いと怒られた(T_T)
素人ですみません
246名称未設定:2005/10/22(土) 02:06:16 ID:7EGIGlbe
>>238
OS 9のSherlockで検索条件の保存ができたけどねえ。
(俺としてはスマートフォルダよりも便利だったw)


>>245
乙。ナニゲにエラーメッセージが方言w
247名称未設定:2005/10/23(日) 10:00:53 ID:TJrHUnSC
ちょっと小ネタ。Mailで選択したメッセージをiCalに登録するという。
スケジュールの連絡ってたいていメールで来るからイベントのURL欄に
メールを登録するスクリプトを書いてみた。

tell application "Mail"
set selectedMails to selection
set msg to item 1 of selectedMails
set subj to subject of msg
set mid to id of msg
end tell

set mailURL to do shell script "mdfind -onlyin ~/Library/Mail 'kMDItemFSName == ¥"" & mid & ".emlx¥"'|head -1"

set mailURL to "file://" & mailURL

tell application "iCal"
activate
tell calendar 1
set theEv to make event at end of every event with properties {summary:subj, start date:current date, end date:(current date) + 3600, url:mailURL}
show theEv
end tell
end tell
248名無しさん:2005/10/23(日) 10:39:32 ID:UdK1Dsa1
おお、これは便利そうだ!さっそく使ってみよう
249名称未設定:2005/10/23(日) 14:08:43 ID:vedwXWfx
純正アプリの連携って事ですげーわくわくするが、
問題は俺にはメールが来ないって事だ。
orz
250名称未設定:2005/10/23(日) 20:50:06 ID:S/siEewd
通販サイトとかAppleのニュースメール購読すればいい
251名称未設定:2005/10/24(月) 19:49:26 ID:9etpEvdp
say "She Ne"
252名称未設定:2005/10/25(火) 06:07:33 ID:D16BVUjP
ログアウトのスクリプトを作りたいと思い丸二日間格闘したんですが、
全然ウマく行かないんです。シャットダウン、スリープ、再起動は簡単にできたんですが…。
どのように記述したら良いのでしょうか?

まるっきりの素人な質問でごめんなさい。
253名称未設定:2005/10/25(火) 10:18:00 ID:j5bUr1Gi
まず、シャットダウン、スリープ、再起動をどう書いたのか聞きたい
254252:2005/10/25(火) 10:49:21 ID:D16BVUjP
>>253
そうですよね。ごめんなさい。
例えば、再起動はスクリプトエディタでこのように書いて、*.scptで保存しました。

tell application "Finder"
restart
end tell

他の2つは二行目が、Shut DownかSleepにしただけです。
問題は、ログアウトの場合に、この二行目をどう書いたら良いのか分からないことです。
大体、「変数***が未定義です」とエラーが返ってきます。
(何て記述すればいいか分からず、いい加減に書いてるから当然ですよね…。)
255名称未設定:2005/10/25(火) 11:19:31 ID:p+2Tpe3Z
>>254
スクリプトエディタでSystem Eventsの用語説明を開くと
Power Suiteにlog outがあるね

FinderのはLegacyに分類されてるから
ログアウトや終了関係はSystem Eventsを推奨ってことかな
256名称未設定:2005/10/25(火) 11:27:13 ID:R6y8q+hG
用語辞書の見方をご存知ないのでしょうか?
スクリプトエディタのファイルメニューから
「用語説明を開く...」を選ぶとアプリケーションのリストが表示されるから、
操作したいアプリケーションを選ぶと用語辞書が出ますよ。
まあわかりにくいと思うけど。

で、Finderの用語辞書で右上の検索欄などを使ってrestartを調べると
レガシー(遺産、遺物)ってとこに分類されてますよね。
そして同じ分類の中にログアウトに関する記述はない。
つまりこれは昔のスクリプトとの互換性を取るために残してある項目だと思われます。

じゃあどのアプリケーションを見ればいいのかって事になりますが、
System Events.appの用語辞書を見ると
log outという命令がある。
だから
tell app "System Events"
log out
end tell
でいいと思います。詳しくは自分で調べてみてください。
257名称未設定:2005/10/25(火) 11:28:08 ID:R6y8q+hG
かぶった上に無駄に長かった…。

orz オレハモウダメダ
258名称未設定:2005/10/25(火) 11:53:49 ID:f9UwVda9
>>257
通りすがりのものですが、丁寧ですごく参考になりました。
applescriptって256に書いてあるようなことがわからなくて
敷居が高い感じがしていました。ありがとう。
259252:2005/10/25(火) 13:15:25 ID:D16BVUjP
>>254-255
なんて厳しくも優しいレスなんだ。
目から汗がとまらん。
ぶわっ!!ってなってるよ、ぶわ!!って。

ちなみに、なんで今更ログアウトのスクリプトかと言いますと、
DashboardのiStarterっていうwidgetをどうしても使いたくて。
でも、持ってるOSは10.3で、konfabulatorしか使えないから作るしかなくて…。
でもおかげで、イメージ通りのやつを作ることができました。
ホント、丁寧に教えて頂きましてありがとうございます。
260252:2005/10/25(火) 13:18:00 ID:D16BVUjP
↑アンカー間違えました。>>255-256です。
駄レススマソ。
261名称未設定:2005/10/25(火) 22:21:28 ID:Q1+lAmRT
すみません、質問です。

HyperTalkで「set cursor to busy」みたいなコマンドがあったじゃないですか。
AppleScriptで、ちょっと時間のかかる操作をするとき、
カーソルをbusyにしたいんですが、どうすればいいのでしょうか???
262名称未設定:2005/10/25(火) 22:30:01 ID:R6y8q+hG
カーソル変える命令はたぶんない。
プログレスバーなら出せると思う。
263名称未設定:2005/10/26(水) 08:21:27 ID:OcbV3y9I
Jon's Commands X
ttp://www.seanet.com/~jonpugh/
の set cursor to
264261:2005/10/27(木) 23:48:33 ID:VbWiZBB5
>>262-263
ありがとごじゃました。
265名称未設定:2005/10/29(土) 13:15:57 ID:yRq2YPwf
1分置きにチンコと表示出来るスクリプトを作っていただけませんか?大至急お願いします。今月以内で。
266名称未設定:2005/10/29(土) 14:38:49 ID:65/DjTpE
267名称未設定:2005/10/29(土) 21:52:59 ID:6kmMgdMd
(´°∀°)
268名称未設定:2005/11/12(土) 18:35:51 ID:4SS5+GU0
質問です
MacOS9が単独で立ち上がってる時と
Classic環境として立ち上がっているのを
切り分けるスクリプトって書けますか?

なんに使うかというと、OS9の起動項目に入ってるソフトが
Classic環境の時にエラーを起こすので
それをClassic環境で立ち上がらないようにしたいのですが…
269名称未設定:2005/11/12(土) 21:34:59 ID:+iVrLi8z
Classic用の環境を作ってそれぞれのイメージを使い分ければ問題ない
270名称未設定:2005/11/12(土) 21:55:10 ID:NQ9agtRW
すね毛
271268:2005/11/12(土) 22:26:21 ID:4SS5+GU0
>>269
そこ以外は9で立ち上げてもClassicでも同じにしときたいんです。
だから「もしOSXが動いていないなら」
tell application ~
て書いて起動項目につっこんどけばいいのかなと。
でもできないのか…
272名称未設定:2005/11/12(土) 23:36:10 ID:rGZtSmXD
>>268
OS 9環境がないので試してないがこんなんでどうかな

tell application "Finder"
if (version as string) starts with "10." then return
end tell
273名称未設定:2005/11/13(日) 02:31:13 ID:7FB3dnyp
delayがCPUを食い潰すバグが10.4.3でやっと解消されたという話だ
274268:2005/11/13(日) 23:50:30 ID:e5eUboNR
>>272
tell application "Finder"
if (version as string) starts with "10." then
else
tell application "IP Messenger 1.33r2"
activate
end tell
end if
end tell
起動項目につっこんで上手くいきました
?ォ!
275名称未設定:2005/11/14(月) 11:52:34 ID:gCjlTqNF
>>268
set isClassic to false
try
set isClassic to system attribute "bbox" has 1
end try
参照
http://developer.apple.com/ja/qa/ov/ov03.html
276名称未設定:2005/11/21(月) 15:55:57 ID:tDtj1Mgi
すみません、ググり回ったのですが見つからないので質問させて下さい…
date型の日付の書式はOSの日付の書式設定によって変動しますが
(日本語なら2005年11月21日月曜日、英語ならMonday, November 21, 2005といったように)、
OSの日付書式設定が何になっていようと、常にエラーを出さずに指定できる日付の書式というのは
存在するのでしょうか?

某所で「26Oct99」という形式なら大丈夫、という記述を見かけたのですが、
どうも情報が古いようで、実際試してみると言語によってコンパイルエラーが出たり
エラーは出ないものの変な日付に変換されたりで、残念ながら使い物になりません。
277名称未設定:2005/11/22(火) 13:00:45 ID:p+yxjjdC
出力じゃなくて入力の書式を一つに決めたいの?
278名称未設定:2005/11/22(火) 18:24:04 ID:5PkpqUw/
情報不足ですみません、入力です。
279名称未設定:2005/11/22(火) 20:28:38 ID:G+hNyWqa
>>276,278

何をどうしたいのかイマイチよく分からんが、以下のように書いてみた。
1行目のダイアログに「2005.11.22」とか「05 11 22」とか入れたけど、どれでも
以降のdate作成は成功して、3行目のダイアログで「2005年11月22日火曜日 0:00:0」と出たよ。
書式設定は変えてない。こういうことじゃないのかな?

set dateText to text returned of (display dialog "Input date" default answer "2005/11/22")
set theDate to date dateText
display dialog "Date" default answer (theDate as string)

何であれ『AppleScript Language Guide』
http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/
http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/AppleScriptLanguageGuide.pdf
のdateの箇所(PDFだと62ページあたり)を読んでみるといいんじゃないかと。
280名称未設定:2005/11/23(水) 00:33:39 ID:OpVMn+ne
>>279
質問者じゃないが、それじゃだめなはず。
問題のひとつは順番で、
アメリカでは月/日/年、ヨーロッパ圏では日/月/年で書くのがデフォルト。
その手の設定になっていると、"2005"が月や日に解釈できずにエラーが起ったり、
"22"が"2022年"と解釈されちゃう。

でも、10.4だと、「カスタム設定はUnicodeアプリだけで…」みたいな注意が、
環境設定で出て、スクリプトだとうまくテストできないなあ(^^;
281名称未設定:2005/11/23(水) 04:24:57 ID:bB1tkWUM BE:20109863-#
俺もうまくテストできなかったのでよくわからんが、
例えば「yyyy.mm.dd」っていう風に書式を限定するなら
年、月、日に分解して解釈するようなルーチンが書けないかな?

各国語版を作るほうが簡単な気もするけど。
282名称未設定:2005/11/23(水) 07:00:46 ID:0Sp+i+wO
>>276
OS9だとTanaka's osax使えば簡単だけど、OSXですよね。
それ以前に環境変わるんじゃosax使えないですね。
OSXだとシェルスクリプト?perl?

とりあえず、とんびさんのAppleScript PARK>Tips>Basicに有るこの方法で出来ないでしょうか?
>日付属性の設定方法
>ttp://homepage1.nifty.com/ton_b/tips/Date/SetDate.html
>まとめて属性を設定(その1)
これなら定型日付入力をリストに分解するだけで使えそうです。
283名称未設定:2005/11/23(水) 07:04:21 ID:ucIAeEjt
最近のバージョンのOSXならISO8601フォーマットが使える。
-- ISO8601 format -> AS date class
"2000-11-16T19:20:00" as <<class isot>> as date
-- AS date class -> ISO8601 format
((current date) as <<class isot>>) as string
http://www.w3.org/TR/NOTE-datetime
284名称未設定:2005/11/24(木) 16:54:10 ID:N8ktUmBS
おお!ありがとうございます。
最近のバージョンのOSXとの事ですが、これはどのバージョンからかはご存知ないでしょうか?
class isotでググってもたったの4件しか出てこないのでびびりました…
285名称未設定:2005/11/26(土) 06:05:42 ID:VnMxi28J
これはAppleEvent Managerの型変換機能を使ってる。OSX10.2のAERegistry.hには
定義があるので少なくとも10.2以降では使えるはず。
286名称未設定:2005/12/05(月) 04:25:05 ID:X8yyZEXa0
簡易ラジオサーバーを作っているのですが、定期再起動の時に再起動後SHOUTCast(UNIX実行ファイル)を実行しようと思い、
tell application "Terminal"
do shell script "cd /volumes/os10.3/library/webserver/shoutcast-1-9-5-macosx/"
do script with command "./sc_serv"
end tell
としても必ず新規窓が作られて一つ目と二つ目のコマンドが別窓で処理されてエラーが返ってきます。
このファイルはただ本体をダブルクリックして実行させても設定データが読み込まれないのでターミナルでの起動をしたいのです。

どうすればiinodesyouka?
287名称未設定:2005/12/05(月) 04:49:33 ID:PBnb/lnH0
288名称未設定:2005/12/05(月) 10:04:18 ID:Qu8STzUP0
1行で済むな。
289名称未設定:2005/12/05(月) 11:25:11 ID:C4y9Tqbn0
ココログのサポートアイコンが酷似している件について
290名称未設定:2005/12/05(月) 12:22:49 ID:Qu8STzUP0
巻き物?っぽいアイコン、けっこう色々使われてるよね。
291名称未設定:2005/12/06(火) 00:49:21 ID:2zmZHbfL0
do shell script "cd パス | コマンド" でいいんじゃないの
292名称未設定:2005/12/06(火) 05:59:08 ID:3WJiVZeB0
>>291
こらこら、ウソを教えるなw

|でつなぐのは「パイプ」でしょ。
単に複数の命令を一行で連続して行わせたい時は;でいい。
もう一つ言えばこの場合あらかじめcdで移動する必要もない。
フルパス書いちゃえば済むから。
293名称未設定:2005/12/06(火) 06:22:45 ID:WzhNf3la0
なるほどorz
294286:2005/12/07(水) 20:12:02 ID:czVlUCbu0
>>287のURLを見てみたらセミコロンでつなげられると書いてあったのでやってみたら出来ました。
いろいろとお騒がせしてすみませんでしたorz
295名称未設定:2005/12/08(木) 06:05:04 ID:kCEHPRuS0
今ひとつわかってないみたいね。
・do shell scriptの場合はtell app "Terminal"ではさむ必要はない。

>>292で書いたように、あらかじめcdで移動せずに
 /Volumes/os10.3/Library/webserver/shoutcast-1-9-5-macosx/sc_serv
 と書けばいいので、1つの命令で済む。セミコロンでつなぐ必要なし。
296名称未設定:2005/12/11(日) 17:09:46 ID:8z5+9Aar0
> do shell scriptの場合はtell app "Terminal"ではさむ必要はない。

そうだったのか!
初めて知った。ありがとう。
いつもターミナルを起動してたよ…
297名称未設定:2005/12/11(日) 18:01:45 ID:TzCLx/X80
Terminalっていうのは、代替ソフトがある事でもわかるように、
あくまでもシェルとやりとりするための窓口的なソフトなんでない?
do shell scriptの場合直接シェルに働いてもらうわけだ。
298名称未設定:2005/12/11(日) 19:20:25 ID:xU585+SL0
do shell script "osascript -e 'tell application ¥"Finder¥" to quit' "
299名称未設定:2005/12/12(月) 15:57:54 ID:BBG0qJTj0
ぎゃは
300名称未設定:2005/12/13(火) 13:39:49 ID:riNjGIlK0
誰か「無駄無駄無駄無駄」とダイアログが出た後
10秒ほど時計が止まるAppleScriptを作ってくれ。
301名称未設定:2005/12/13(火) 14:06:40 ID:Vm9ndrD60
時計止めるのは無理。だしそういういたずらには加担しないよ。
302名称未設定:2005/12/13(火) 14:08:50 ID:z5Whey120

ユニバーサルアクセスのアレONにして
tell application "System Events"
keystroke "8" using {command down, control down, option down}
end tell
やってもきかないお

読むのめんどいお
ttp://forums.macosxhints.com/archive/index.php/t-37540.html
303名称未設定:2005/12/13(火) 14:30:08 ID:Vm9ndrD60
ほんとだね。コマンド+シフト+3もだめみたい。
コマンド+シフト+s(別名で保存)は大丈夫。
ひょっとしたら数字キーがテンキーのほうだと判断されてるのかな。
英文は読めない…。
304名称未設定:2005/12/13(火) 17:39:45 ID:LAgNQsizP
英文は読んでないけどkey code使ったらできた

tell application "System Events"
    tell process "Finder"
        key code 28 using {command down, option down, control down}
    end tell
end tell
305名称未設定:2005/12/13(火) 19:42:05 ID:6PkdvIqh0
set x to NUM
repeat x times
tell application "System Events"
tell process "Finder"
key code 28 using {command down, option down, control down}
end tell
end tell
end repeat

ポケモンショックw(やらないように
306名称未設定:2005/12/13(火) 20:51:05 ID:Vm9ndrD60
>>304,305
Finderにtellする必要は無いんじゃないの?
スクリプトエディタ上でしか試してないけど、抜いても動いたよ。
307名称未設定:2005/12/14(水) 14:09:03 ID:/ljpUUQC0
ナ、ナンダッテーな時に実行するといいな
308名称未設定:2005/12/14(水) 21:45:22 ID:Tcb3HRdf0
repeat 5 times
tell application "System Events"
key code 20 using {command down, shift down}
end tell
delay 2
end repeat

重い。。(shift+cmd+3)*5
309名称未設定:2005/12/14(水) 21:50:05 ID:hixU2O9M0
すみません
SILVER KEEPERでバックアップからOSの中身を入れ替えたんですが
だいたいの機能はつかえる(QTproも移植成功)のですが
.Trushが消えてしまいました
つくることはできるんでしょうか
osX 10.3.9です
310名称未設定:2005/12/14(水) 22:00:31 ID:ry3yHjr00
意味がわかんない。このスレで聞く意味もだけど。
311名称未設定:2005/12/14(水) 22:16:23 ID:Cyj6qxo00
>>309
あるべき場所にフォルダを作って名前を変えてみちゃどうだね。
ちなみにTrushじゃなくてTrashだね。
312名称未設定:2005/12/14(水) 23:28:32 ID:hixU2O9M0
>>311
ありがとうございました
.Trashの場所か....
313名称未設定:2005/12/15(木) 00:06:21 ID:CRYxe/Xy0
場所は知らないのに消えたのがわかるってどういう事だ。
これ以降まだ続くならMac OS X初心者質問スレあたりに移動してね。
314309:2005/12/15(木) 00:27:38 ID:UEf9Q5M20
すんません
向こうで途中で回答がとぎれたものでして
ゴミ箱に入らずそのままファイルが消えます
「フォルダヘ移動」を教えていただいて
~/.Trashと入力してもでフォルダが見つからないと出たんです

315名称未設定:2005/12/15(木) 00:32:58 ID:UdnJ2yjO0
do shell script "mkdir ~/.Trash"
316名称未設定:2005/12/15(木) 00:41:17 ID:pBORPKuo0
バカか?なら続きを待っとけや。>>314
317名称未設定:2005/12/15(木) 00:45:46 ID:CRYxe/Xy0
>>314
俺は移れと言ったぞ。字が読めないのか?
ここに書き込むのはスレ違いなんだよ。スレタイ読めないのか?
迷惑行為やってる事を理解しろ。
とりあえず今すぐ回線切ってケーブルで吊って氏ね。
318名称未設定:2005/12/15(木) 05:13:02 ID:6JFgQ8sh0
repeat 100
tell application "Finder"
make new folder
end tell
delay 0.1
end repeat
319名称未設定:2005/12/17(土) 03:39:34 ID:GN0vrhZS0
ライブラリのバックアップをとる簡単なAppleScriptを書いてみた。
tell application "Finder"
activate
make new folder at desktop
set newFolder to result
with timeout of 1200 seconds
set name of newFolder to "Backup"
set targetfile to folder "Library" of home
end timeout
duplicate targetfile to folder "Backup" of desktop
end tell
320名称未設定:2005/12/17(土) 09:23:00 ID:W0DKDPnF0
timeoutの部分を解説していただけるとありがたいです。
何故その部分につけるのでしょうか。

あと、肝腎のコピーの部分ですが、dittoコマンドを使ってうんぬん、
というのがネット上でUsersフォルダのコピー方法としてよく見られるようですが、
Finderでの通常コピーで大丈夫ですか?
321名称未設定:2005/12/17(土) 10:30:42 ID:GN0vrhZS0
dittoもduplicateも「複製」の命令ですが
私の英語力ではduplicateしか思い浮かばなかったので
そう表現しただけです(笑)私も初心者なので。
ただ、duplicate targetfileを使ってLibrary内の
任意のファイルをコピーしようとすると
「アクセス権が云々」とハネられます。
 
私のMacは動作が緩慢なので、ライブラリのコピーに
10分くらいかかります。しかし完了まで時間のかかる
スクリプトは2分でタイムアウトになるので
timeoutで無理矢理20分までタイムアウトのアラートを
出さないようにしてます。使えないことはない
スクリプトですがまだまだ書き直しの余地がありそうです。
もうちょいやってみます。
322名称未設定:2005/12/17(土) 10:34:26 ID:tJR87vxN0
>何故その部分につけるのでしょうか。
323名称未設定:2005/12/17(土) 11:02:44 ID:GN0vrhZS0
あ、end timeoutはend tellの直前に置いても
良さそう。何故といわれても、それしか思いつかなかったと
言うほかないです(笑
324名称未設定:2005/12/17(土) 14:28:30 ID:W0DKDPnF0
dittoというのはAppleScriptのコマンドではなくて、
Mac OS XのUNIX部分が備えているコマンドです。
Mac OS X用にリソースフォークが扱えるように拡張してあります。
AppleScriptから使うならdo shell scriptで呼び出しですね。
アクセス権の事を考えるとrootログインかsudoで実行したほうがよいのだと思います。

システムバックアップのソフトとして定番のCarbon Copy Clonerというソフトは
AppleScriptからdittoなどを呼び出して実行しているらしいです。

Tigerでrsyncがリソースに対応したとの事なのでrsyncでもいいのかな。
他にもボリューム丸ごとバックアップ用?のasrというコマンドもあるようです。
(ディスクユーティリティーの復元と同等?)

いずれにせようちにはバックアップ用のドライブがないので
今のところ試してませんが。

~/LibraryをFinderでコピーさせるとおそらく不可視ファイルのコピーだとか
アクセス権だとかで不都合が起きるんではないでしょうか。
~/Library/Preferencesや~/Library/Application Supportの
個別のファイル・フォルダをコピーするぶんにはけっこー大丈夫のようですが、
丸ごとバックアップとして後から差し替えて使う、という用途には
Finderでの複製は不安だと思います。
325名称未設定:2005/12/17(土) 14:53:15 ID:GN0vrhZS0
後から差し替えて使うという発想はなかったです。
単に保存できればいいや的な考えでしたから。
dittoはUNIXの単語なんですね。色々勉強になります。
326名称未設定:2005/12/19(月) 22:58:08 ID:2oGcPUAl0
シャットダウンの際、現在ログインしているアカウント以外のアカウントが裏でログインしていたら
管理者権限アカウントならば自分以外のアカウントを強制ログアウトする事ができますが、
AppleScriptからこれをやる方法って無いですかね…
(シェルスクリプトで他アカウントのログインプロセスをsudo killするとか?)

SuperDuper!でFileVaultのかかったアカウントをバックアップする場合、
一旦FVのかかったアカウントから全部ログアウトして、FVのかかっていないアカウントでログインし直し、
そこからバックアップを実行する必要がありますが、
面倒くさくてたまらないのでこれを無理矢理にでも自動化したいのです。
327名称未設定:2005/12/22(木) 13:47:21 ID:f+oyQhsL0
画像圧縮で自分自身のプライオリティー下げたいんですが、 pidが取れません。
しょうがないんで、自分のアプリの名前渡してるんですが、なんとかならないでしょうか?

on renice(theApplicationName, thePriority)
--tell application "Finder" to set theApplicationName to name of current application
tell application "System Events"
--set theApplicationName to name of current application
set i to item 1 of (every process where name is theApplicationName)
display dialog name of i & ":" & (unix id of i) as string
do shell script "renice " & thePriority & " -p " & (unix id of i) as string
end tell
end renice
328名称未設定:2005/12/22(木) 14:48:03 ID:xLc3io6x0
言ってることがわかんない。pid取れてるじゃん。
329名称未設定:2005/12/22(木) 17:50:13 ID:f+oyQhsL0
自分のアプリの名前渡さずに、って事。
330名称未設定:2005/12/22(木) 18:31:35 ID:pw0F5KdQ0
まず日本語で意思の疎通ができるようにしろ。
331名称未設定:2005/12/22(木) 19:06:00 ID:FsA+27/w0
pidを取るとは何のことかさっぱりわからないから死のうと思う。
332名称未設定:2005/12/22(木) 19:11:18 ID:oR8Ze5L70
>>331
おまいさんは正常だと思うからイ?「。
333名称未設定:2005/12/22(木) 19:42:17 ID:f+oyQhsL0
画像圧縮じゃないや、動画圧縮。iPod用とかの。
334名称未設定:2005/12/22(木) 20:20:20 ID:avineMH+0
さてと。次のお題は?
335名称未設定:2005/12/22(木) 20:21:33 ID:yNSe5NiH0
豚トロのおいしい食べ方をAppleScriptを使って示す方法
336 :2005/12/22(木) 23:06:00 ID:RbuFzcnC0
tell application "豚"

set breed_all to every breed of pig
set tempValue to 0

repeat with theBreed in breed_all
set theUmami to (umami of (toro of theBreed)) as number
if theUmami >= tempValue then
-- set tempValue to theUmami
set niku_best to name of theBreed
end if
end repeat

display dialog "最もトロがおいしい豚は" & niku_best & "です。
購入するお店の名前を入力してください" ツ
default answer "××精肉店" buttons {"キャンセル","購入"} default button 2


end tell

...続く...うそw
337名称未設定:2005/12/23(金) 00:21:55 ID:liEHx4n50
材料を100通りくらい登録して、ランダムでいくつか選択→それを全て使って料理しなくてはいけないというゲームスクリプト

毎日の献立に悩んでる主婦の方いかがですか
338名称未設定:2005/12/23(金) 00:45:39 ID:Pb6pHLLc0
なんでゲームでまで献立に悩まなきゃいけないのかってのが本音だと思うな
339名称未設定:2005/12/23(金) 16:03:57 ID:t9cI6wIi0
ニュートンスクリプトのファイルがいっぱい出てきた
340名称未設定:2006/01/11(水) 18:43:44 ID:0atmqDEC0
10.4.4でAppleScriptにも何か変更あったらしいんだけど、
詳しい情報がないね。
341名称未設定:2006/01/12(木) 00:35:28 ID:ATnMApm30
ほす
342名称未設定:2006/01/15(日) 15:48:23 ID:qVelR7A40
質問なんですが
アップルスクリプトで
iTunesなど他のアプリケーションを使わずに
警告音以外の音を出すことはできないのでしょうか?
343名称未設定:2006/01/15(日) 15:54:30 ID:j7VAuZtOP
ピピピと音を出す
say "p p p"
344名称未設定:2006/01/15(日) 16:31:35 ID:RZmlY23l0
do shell scriptつかってmplayerから
345名称未設定:2006/01/15(日) 17:06:03 ID:qCf7Ckjz0
Play Sound - scriptable sound player
http://microcosmsoftware.com/playsound/

tell application "Play Sound"
play 鳴らしたいさうんどふぁいるのpath
quit
end tell

readmeやサンプルも充実している

参考
http://www.remus.dti.ne.jp/~a-satomi/nikki/2003/03a.html#d06n01
346名称未設定:2006/01/15(日) 17:09:42 ID:qCf7Ckjz0
↑これはバックグラウンドアプリね
347342:2006/01/16(月) 07:03:32 ID:zsO5dnXy0
ありがとうございます。
難易度としては
mplayer>>Play sound>=say"p p p"
と言ったところでしょうか。
ためしてみます。
348名称未設定:2006/01/16(月) 18:32:34 ID:9UuG6T5F0
mplayerじゃなくても適当なコマンドライン系のサウンドプレーヤとかさ
349名称未設定:2006/01/16(月) 22:16:00 ID:tBI3aCsN0
>>345おすすめだから使ってみ
mplayerなんて答えはジョーク
350名称未設定:2006/01/16(月) 23:31:42 ID:zs00f7kD0
標準で採用されれば配布物でも使いやすくなるのになあ。
351名称未設定:2006/01/19(木) 15:14:28 ID:IzKt/HwI0
昨日違うスレで、フォルダの中の変更日より一ヶ月以上経過しているファイルを削除するスクリプトを教えていただきましたが、フォルダの中の一番上層の階層に対しては機能するのですが2番目以降の階層に対しては機能しません。
いろいろ書き換えて試したのですが、うまくいきません。どのように書き直すとうまくいくのでしょうか、勉強不足で申し訳ありませんが教えてください。
昨日教えていただいたところまでのスクリプトは以下です。
on open d_items
del_old(d_items)
end open

on del_old(d_items)
tell application "Finder"
repeat with a_file in d_items
if folder (a_file as string) exists then
set sub_items to every item of folder (a_file as string)
my del_old(sub_items)
else
set cr_date to current date
set md_date to (modification date of a_file)
if (year of md_date) < (year of cr_date) then
move a_file to trash
else if (month of md_date) < ((month of cr_date) - 1) then
move a_file to trash
else if (month of md_date) < (month of cr_date) and (date of md_date) < (date of cr_date) then
move a_file to trash
end if
end if
end repeat
end tell
end del_old

352名称未設定:2006/01/19(木) 18:16:52 ID:Tn60v+0wP
>>351
>if (year of md_date) < (year of cr_date) then
>move a_file to trash
だと年が変わってる場合は一ヶ月経ってなくてもゴミ箱行ってしまう気がする
353351:2006/01/19(木) 18:37:25 ID:IzKt/HwI0
352さん、
if (year of md_date) < ((year of cr_date) - 1) then
move a_file to trash
else if (year of md_date) = ((year of cr_date) - 1) and ((month of md_date) - 12) < (month of cr_date) then
move a_file to trash
なら年が変わっても大丈夫?

フォルダの中の一番上層の階層に対しては機能するが2番目以降の階層に対しては機能しない問題は未解決のまま、、、。
354351:2006/01/19(木) 18:46:29 ID:IzKt/HwI0
if (year of md_date) < ((year of cr_date) - 1) then
move a_file to trash
else if (year of md_date) = ((year of cr_date) - 1) and ((month of md_date) - 11) < (month of cr_date) then
move a_file to trash
else if (year of md_date) = ((year of cr_date) - 1) and ((month of md_date) - 11) = (month of cr_date) and (day of md_date) < (day of cr_date) then
move a_file to trash
こうしないとだめですね。

フォルダの中の一番上層の階層に対しては機能するが2番目以降の階層に対しては機能しない問題は未解決のまま、、、。
教えてください。
355351:2006/01/19(木) 18:54:58 ID:IzKt/HwI0
一ヶ月以上という設定は
if (year of md_date) < ((year of cr_date) - 1) then
move a_file to trash
else if (year of md_date) = ((year of cr_date) - 1) and ((month of md_date) - 11) < (month of cr_date) then
move a_file to trash
else if (year of md_date) = ((year of cr_date) - 1) and ((month of md_date) - 11) = (month of cr_date) and (day of md_date) < (day of cr_date) then
move a_file to trash
else if (year of md_date) = (year of cr_date) and (month of md_date) < ((month of cr_date) - 1) then
move a_file to trash
else if (year of md_date) = (year of cr_date) and (month of md_date) = ((month of cr_date) - 1) and (date of md_date) < (date of cr_date) then
move a_file to trash
ここまでしないとだめですかね?

フォルダの中の一番上層の階層に対しては機能するが2番目以降の階層に対しては機能しない問題は未解決のまま、、、。
教えてください。
356名称未設定:2006/01/19(木) 18:56:11 ID:uUysQTIU0
単純に date を引き算して差が1ヶ月以上ならとした方が良くないか。
357名称未設定:2006/01/19(木) 19:02:41 ID:fHPil7wj0
applescript フォルダ 再帰

でググれば幾つか出てくるぞな。それ読め。
358名称未設定:2006/01/19(木) 19:04:34 ID:Tn60v+0wP
set md_date to (modification date of a_file)
set check_date to (current date) - 60 * 60 * 24 * 30
if check_date > md_date then
--move a_file to trash
display alert ("delete" & return & a_file as string)
end if
こうかな。
359名称未設定:2006/01/19(木) 19:04:49 ID:uUysQTIU0
on open theItemList
tell application "Finder"
my moveToTrash(theItemList)
end tell
end open

on moveToTrash(theItemList)
tell application "Finder"
set theFileList to every file of theItemList
repeat with theFile in theFileList
if ((current date) - (modification date of theFile)) > days * 30 then
move theFile to trash
end if
end repeat
my moveToTrash((every folder of theItemList))
end tell
end moveToTrash

こんな感じかねえ。全然動作確認してないが。
360351:2006/01/19(木) 19:53:59 ID:IzKt/HwI0
>>359
stack overflowだそうです。

361351:2006/01/19(木) 20:01:03 ID:IzKt/HwI0
>>358
すばらしい、年が変わっても大丈夫です。
362名称未設定:2006/01/19(木) 20:46:49 ID:DIDHjDsy0
on open d_items
del_old(d_items)
end open
on del_old(d_items)
repeat with a_file in d_items
set theInfo to info for a_file without size
if folder of theInfo then
tell application "Finder"
set checkFiles to entire contents of folder (a_file as string)
end tell
else
tell application "Finder"
set checkFiles to {file (a_file as string)}
end tell
end if
tell application "Finder"
repeat with a_file in checkFiles
if folder is not class of a_file then
set md_date to (modification date of a_file)
set check_date to (current date) - days * 30
if check_date > md_date then
--move a_file to trash
display alert ("delete" & return & a_file as string)
end if
end if
end repeat
end tell
end repeat
end del_old
359のが短くていいけど普通に書いてみた。
daysなんて定数あるんだね。知らんかった
363351:2006/01/19(木) 22:02:39 ID:FCNtwkoN0
>>362
macのない場所に移動してしまったので明日動作確認させて頂きます。
364名称未設定:2006/01/19(木) 22:27:26 ID:uUysQTIU0
>>360
あー、my moveToTrash((every folder of theItemList)) の部分は
set theFolderList to every folder of theItemList
repeat with theFolder in theFolderList
my moveToTrash(theFolder)
end repeat
にしないと無限ループに陥ってしまうわ。
365名称未設定:2006/01/20(金) 01:09:18 ID:aUtLPd0h0
Tanaka's osax使えば簡単w
366351:2006/01/20(金) 16:39:07 ID:H9RltHP00
>>362
動作完璧です。
本当にありがとうございました。
367名称未設定:2006/01/20(金) 23:55:33 ID:buo81Q/X0

とりあえずここの堀江の拳見てみ。まあまあおもろいから。

http://ex13.2ch.net/test/read.cgi/livemarket1/1137564677/1-100
368名称未設定:2006/01/21(土) 01:06:49 ID:bTnWi9NG0
適当に選んだこのスレ、失敗だったな。
369名称未設定:2006/01/25(水) 02:37:49 ID:H+QdoHQR0
自動的に、言語環境をドイツ語に変えてくれるスクリプトを作りたくて
tell application "System Events"
tell application process "System Preferences"
click radio button "言語" of tab group 1 of window "言語環境"
click pop up button 1 of tab group 1 of window "言語環境"
pick menu item "ドイツ語" of menu of
pop up button 1 of tab group 1 of window "言語環境"
end tell
end tell
tell application "System Preferences" to quit
としてみたのですがこれだと並べ替えリストの順序をかえるだけで
だめなのです。。
環境設定の言語環境の言語順の順番をscriptで入れ替えることはできないのでしょうか?
370(・∀・):2006/01/25(水) 05:43:44 ID:Tupw9JX/0
>>342 beep てのがありますよ。

>>327
えらく亀レスですが、echo $$ で自プロセス。echo $PPID で
親プロセスIDがとれるからdo shell scriptで親プロセスを
reniceすれば?
371名称未設定:2006/01/25(水) 21:16:17 ID:wxvyjs1B0 BE:224034645-
ツンデレ風のAppleスクリプトないかなぁ。
『な、何システム終了なんてしてるのよ!』とか。
372名称未設定:2006/01/25(水) 21:26:47 ID:LNgRLNV00
>>370
「警告音以外の」って書いてあるやん。
373名称未設定:2006/01/25(水) 21:27:50 ID:LNgRLNV00
>>371
勝手に作れw
あ、そう言えばOS Xにはログイン項目はあるけど、
終了時に特定のアプリを実行するような機能はないのかな。
374名称未設定:2006/01/25(水) 21:29:27 ID:uqzzW9Pz0
特定のアプリを実行→システム終了あるいはスリープあるいはログアウトというスクリプトを書いてそれを実行するようにすれば(ry
375名称未設定:2006/01/25(水) 21:52:14 ID:LNgRLNV00
まあスクリプトに関しちゃそうだけどね。
でもいちいちそれで終了させるのは面倒だぞ。
376名称未設定:2006/01/25(水) 21:54:25 ID:LNgRLNV00
「スクリプトに関しては」には意味がなかったな。すまん。
377名称未設定:2006/01/25(水) 23:00:19 ID:1H9liGEO0
スクリプトを常駐させておいて
on quitハンドラで何か処理できんかね

アプリを立ち上げたりするとログアウトがキャンセルさせてしまいそうだが
378名称未設定:2006/01/26(木) 01:28:55 ID:6R2MY9V70
すいません、スクリプトエディタスレでも質問したのですが
どうも自分の力ではうまくいかないので(向こうのスレの方ゴメンナサイ)
こちらでも質問させてください。

スクリプトエディタでiCalの”データベースのバックアップ…”を
以下の場所に実行させたいのです。

/Volumes/Works/Data(OS9 OSX)/Backup/アップグレード対策1/基本系/iCal

自分では絶対無理っぽいので単刀直入にお願いします。
構文を教えてください!
379名称未設定:2006/01/26(木) 01:36:24 ID:sz8tN0ma0
> すいません、スクリプトエディタスレでも質問したのですが
> どうも自分の力ではうまくいかないので(向こうのスレの方ゴメンナサイ)
> こちらでも質問させてください。

ダメ。不可。レス付いてて進行形だろ。死ね。
380名称未設定:2006/01/26(木) 01:43:37 ID:6R2MY9V70
ぐゎっ…!
ダメですか……。
381名称未設定:2006/01/26(木) 03:11:08 ID:+sDEswVe0
「マルチ」でぐぐれ。

つーかそもそもあっちもこっちも同じ人間が見てると思うが?w
382名称未設定:2006/01/26(木) 08:11:10 ID:03Av+/uY0
ごめんちょっとテストさせて。

まんまバックスラッシュ:
10進: \
16進: \

まんま円: \
文字: ¥
10進: ¥
16進: ¥
383名称未設定:2006/01/26(木) 08:17:43 ID:03Av+/uY0
>>369
ドイツ語と日本語を切り替える。

if (do shell script "defaults read .GlobalPreferences AppleLanguages") starts with "(ja" then --先頭がjaならdeに
do shell script "defaults write .GlobalPreferences AppleLanguages '(de, ja, en, fr, es, it, nl, sv, nb, da, fi, pt, \"zh-Hans\", \"zh-Hant\", ko)'" --言語の優先順位
do shell script "defaults write .GlobalPreferences AppleCollationOrder de" --並べ替えリストに使う順序
do shell script "defaults write .GlobalPreferences AppleTextBreakLocale de" --単語区切り
do shell script "defaults write .GlobalPreferences AppleLocale de_DE" --書式タブの日付や通貨など
else --先頭がjaでなければjaに
do shell script "defaults write .GlobalPreferences AppleLanguages '(ja, de, en, fr, es, it, nl, sv, nb, da, fi, pt, \"zh-Hans\", \"zh-Hant\", ko)'" --言語の優先順位
do shell script "defaults write .GlobalPreferences AppleCollationOrder ja" --並べ替えリストに使う順序
do shell script "defaults write .GlobalPreferences AppleTextBreakLocale ja" --単語区切り
do shell script "defaults write .GlobalPreferences AppleLocale ja_JP" --書式タブの日付や通貨など
end if

このやり方で正しいかどうかはわからない。
特に、言語環境パネルの「リストを編集...」で言語を追加したりしている場合は、標準の設定に戻ってしまうと思う。試してないけど。
不可視ファイルに対する変更だし、やるなら ~/Library/Preferences/.GlobalPreferences.plist をバックアップしたうえで自己責任でよろしく。
384名称未設定:2006/01/26(木) 13:58:01 ID:+sDEswVe0
>>382
何のブラウザで見るかによって結果違うよ?
385名称未設定:2006/01/26(木) 17:33:08 ID:pR5QOHFj0
>>373-377

俺もOS 9の「システム終了項目」みたいなのが欲しかったので作った。
フォルダ ~/Library/ログアウト項目/ を作っておいて、何か入れておく。
下のスクリプトを実行後自動的に終了しないアプリケーションで作成してログイン項目に入れておく。
で、ログアウトする時には、ログアウト項目フォルダに何かあれば開くか聞いてくる。
キャンセルすれば終了してログアウトをキャンセルしない。

on run
return
end run
on idle
return 536870909
end idle
on quit
tell application "Finder"
set itemsAlias to every item of (folder "ログアウト項目" of folder (path to library folder from user domain))
if (count of itemsAlias) is greater than 0 then
try
display dialog "ログアウト項目があります" & return & return & "3秒後に開きます" buttons {"キャンセル", "開く"} default button 1 with icon stop giving up after 3
open itemsAlias
end try
end if
end tell
continue quit
end quit
386名称未設定:2006/01/26(木) 18:13:09 ID:8KfBOw+Q0
>>383
本当にありがとうございました!動作ばっちりです〜。
387383:2006/01/26(木) 19:27:22 ID:03Av+/uY0
間違えちゃった(ノ∀`)
英語やドイツ語に変更したときは AppleTextBreakLocale を delete するのが正しいみたい。
動作に支障はないみたいだけど>>383は de にしちゃってる。

if (do shell script "defaults read .GlobalPreferences AppleLanguages") starts with "(ja" then --先頭がjaならdeに
do shell script "defaults write .GlobalPreferences AppleLanguages '(de, ja, en, fr, es, it, nl, sv, nb, da, fi, pt, \"zh-Hans\", \"zh-Hant\", ko)'" --言語の優先順位
do shell script "defaults write .GlobalPreferences AppleCollationOrder de" --並べ替えリストに使う順序
do shell script "defaults delete .GlobalPreferences AppleTextBreakLocale" --単語区切り←###訂正箇所###
do shell script "defaults write .GlobalPreferences AppleLocale de_DE" --書式タブの日付や通貨など
else --先頭がjaでなければjaに
do shell script "defaults write .GlobalPreferences AppleLanguages '(ja, de, en, fr, es, it, nl, sv, nb, da, fi, pt, \"zh-Hans\", \"zh-Hant\", ko)'" --言語の優先順位
do shell script "defaults write .GlobalPreferences AppleCollationOrder ja" --並べ替えリストに使う順序
do shell script "defaults write .GlobalPreferences AppleTextBreakLocale ja" --単語区切り
do shell script "defaults write .GlobalPreferences AppleLocale ja_JP" --書式タブの日付や通貨など
end if

実行すると言語の優先順位が「1.日本語 2.ドイツ語」か、「1.ドイツ語 2.日本語」のどちらかに必ずなるので>>369以外で試しに実行してみた人がいたら、手作業で1、2番目の言語を設定し直した方がいいかも。
388名称未設定:2006/01/26(木) 20:13:03 ID:03Av+/uY0
>>384
円記号かバックスラッシュかどちらかの形で表示されれば
コピペでコンパイルできるはずなのでちょいと試してみたの。
ちなみに383、387はマカエレから円記号をそのまま入力して送信。
Safari、Firefox、IE、BathyScapheからコピペしてみたけど大丈夫っぽい。
389名称未設定:2006/01/27(金) 14:58:11 ID:TKlWY1gN0
ディスプレイだけをスリープさせるスクリプトを作りたいんですけど
コマンドはsleepじゃなく何を指定すれば良いんでしょうか?
390名称未設定:2006/01/27(金) 17:44:00 ID:wUqVcCn70
ほす
391名称未設定:2006/01/28(土) 01:01:07 ID:N11DYMSC0
--ディスプレイスリープまでの時間を1分に変更。最後に設定を元に戻す。
set curDRW to paragraph 1 of (do shell script "pmset -g ps")

tell application "Finder"
set plistFile to file "com.apple.PowerManagement.plist" of folder "SystemConfiguration" of folder "Preferences" of (path to library folder)
set plistFile to plistFile as string
end tell

tell application "System Events"
if curDRW ends with "AC Power'" then
set displaySleepTimer to (|Display Sleep Timer| of |AC Power| of ((value of property list item "Custom Profile" of property list file plistFile) as record)) as integer
--↑ここをdefauts readで取得する方法はないですか?
set curOpt to "c"
doPMSet(displaySleepTimer, curOpt) of me
else if curDRW ends with "Battery Power'" then
set displaySleepTimer to (|Display Sleep Timer| of |Battery Power| of ((value of property list item "Custom Profile" of property list file plistFile) as record)) as integer
set curOpt to "b"
doPMSet(displaySleepTimer, curOpt) of me
else
return
end if
end tell

on doPMSet(theTime, theOption)
do shell script "sudo pmset -" & theOption & " displaysleep 1" user name (do shell script "whoami") password "[管理者パスワード]" with administrator privileges
delay 63 --1分3秒待って元の設定に戻す。
do shell script "sudo pmset -" & theOption & " displaysleep " & theTime user name (do shell script "whoami") password "[管理者パスワード]" with administrator privileges
end doPMSet
392名称未設定:2006/01/28(土) 01:47:09 ID:3zLRfCJY0
愚痴っていいか。
on idle
try
tell application "Finder"
set current view of window 1 to column view
end tell
end try
return 1
end idle

こういうon idle系を起動してると、アクティビティモニタが使えなくなるのは
いつになったら直るんだ?
393名称未設定:2006/01/28(土) 01:52:33 ID:HreHKEFt0
現象をアポーで再現でき、直す必要性を認め、うん、これは直せる、じゃ直そうか、
って思ったすみれの花咲く頃。
394名称未設定:2006/01/28(土) 02:00:20 ID:uR9J3ylYP
>>392
使えなくなるってどうなるの?
試した所特に不具合無さそうだったけど
10.4.4です
395名称未設定:2006/01/28(土) 02:06:02 ID:3zLRfCJY0
>>394
アクティビティモニタのスレッドとかプロセスとかの表示がカラッポになる。
で、そのスクリプトを終了させると即復帰する。

バックグラウンドで回しておきたいようなスクリプトを起動しておいたまま
アクティビティモニタを見ることが出来ないだろう…。
396名称未設定:2006/01/28(土) 02:20:54 ID:uR9J3ylYP
>>395
そうなんだ。
自分の所では表示されてるけどなあ。
見てるとこ違うのかな
397名称未設定:2006/01/28(土) 02:42:34 ID:t4WWGycP0
>>391
pmset -g disk | grep displaysleep
とかではだめなん?
398名称未設定:2006/01/28(土) 03:01:22 ID:dp7HxEy90
>>378
これ、どなたか作って頂けませんか?
399名称未設定:2006/01/28(土) 03:05:57 ID:I1865rAg0
>398
マルチの人こんばんは。
400名称未設定:2006/01/28(土) 03:32:04 ID:dp7HxEy90
>>399
こんばんは。
まだ時効になりませんか?
401名称未設定:2006/01/28(土) 04:11:27 ID:I1865rAg0
現在進行形で過ちを続けているので時効になるわけないです。
402名称未設定:2006/01/28(土) 05:32:36 ID:0+xYAEUU0
マルチはいかんが、取り組み方も軟弱でいかんと思うなぁ。

せっかくスクリプトを例示してくれたんだから、
> アプリケーション実行専用で保存しようとしたら構文エラーと出ました。
で終わらんでコンパイルか実行してどこでエラーになるか見れよ。

が、ボタンを押すタイミングとかは微妙な加減が要るようで、構文エラー
無くても、100%成功させることもなかなか難しいようだのぉ。

ってことでこれも試せ。
ttp://discussions.apple.com/thread.jspa?messageID=1030720
403名称未設定:2006/01/28(土) 09:08:39 ID:N11DYMSC0
>>397
十分です! ありがとうございましたヽ( ゚∀゚)ノ
404378:2006/01/28(土) 14:29:45 ID:TccBkraR0
>>402
うぉ〜!
これですよ。
パスを書き換えたら望み通りのことができました。
本当にありがとうございます。
405名称未設定:2006/01/28(土) 15:49:59 ID:FAt1n2AE0
>>391

do shell script ("pmset dim 1") password "your_password" ¬
with administrator privileges
delay 90
do shell script ("pmset dim 30") password "your_password" ¬
with administrator privileges

これだけで出来るっぽいけど
406名称未設定:2006/01/28(土) 20:41:27 ID:N11DYMSC0
>>405
30に設定している環境では30に、
60に設定している環境では60に戻るという感じで、
スクリプトを他人のMacに持って行っても書き換えずに実行できるというのが主旨です。

ちなみに無停電電源は使ったことないので省いてしまいました;;
407名称未設定:2006/01/28(土) 22:34:05 ID:N11DYMSC0
あ、sudoはいらないとか、pmset dimでいけるという話なら確かにそうみたいですね。
適当にmanしながら書いたので実は良くわかってないですが、
電源アダプタとバッテリが同じ値にセットされてしまうのは場合によっては困るかも。。。
408名称未設定:2006/01/29(日) 10:55:54 ID:3PF5mVA40
>>351
>フォルダの中の変更日より一ヶ月以上経過しているファイルを削除する

再帰的探索を使わないスマートなやり方

-- 対象フォルダ
set f to choose folder
--30日前の日付を取得
set d to (current date) - (60 * 60 * 24 * 30)

tell application "Finder"
move (document files of entire contents of f whose modification date < d) to trash
end tell

----------
entire contents でフォルダ内の全ファイルを対象にし、
whose + 範囲限定を使うのがミソ
document files で書類ファイルに限定している
409名称未設定:2006/01/29(日) 21:42:52 ID:hdPv9rJL0
最後に開いたアプリケーションのみ終了させるっていう
スクリプトってできる?アプリケーションの起動ログの
参照先がよく分からない…。
410名称未設定:2006/01/29(日) 23:14:26 ID:4n5hZ+gS0
>>408
bravo.
1ヶ月、というのはやはり簡略化出来ないものかな。
411名称未設定:2006/01/30(月) 01:06:01 ID:8PJ2y+x6P
>>409
適当に試した所ps -x -wで-psnってのがあるのが普通のアプリっぽいので
それの一番最後のを終了してみるようにしてみた。
古い順に並んでるようなのでソートしてないけど
もしかしたらソートした方がいいかもしれない。
というか根本的に間違ってるかもしれんけど。

編集途中のファイルがあってもいきなり終了。
do shell script "kill `ps -x -w | grep -e '[-]psn_0' | tail -n 1 | perl -ne '/^ *([0-9]+)/; print $1'` "

こっちは確認ダイアログ出る
set theName to do shell script "ps -x -w | grep -e '[-]psn_0' | tail -n 1 | perl -ne '/^ *([0-9]+).*\\/(.*) -psn/; print $2'"
tell application theName to quit

>>408
entire contentsにdocument files ofができるのか。参考になった。
412名称未設定:2006/01/30(月) 02:20:46 ID:6JwJWVaq0
全部 AppleScript で書くと

tell application "Finder"
set theName to name of last item of every process
end tell
tell application theName to quit

こんな感じになるが。
これだと loginwindow とか LAServer といった
終了したら困るものも終了してしまう問題があるかもしれない。
413名称未設定:2006/01/30(月) 04:19:41 ID:nDz2XySJ0
>>412
>every process

every application process whose background only is false
414名称未設定:2006/01/30(月) 04:27:00 ID:nDz2XySJ0
>>412,413
>tell application "Finder"

background only を使うためには
tell application "System Events"
としなければならない(元々 process は Finder ではなく System Events)

415名称未設定:2006/01/30(月) 05:41:32 ID:6JwJWVaq0
ほー、OS 9 以前と同じつもりで Finder を通して process を取得してたが
System Events を通すものなのか。
一度知識を整理し直さなきゃならんな。
416名称未設定:2006/01/30(月) 20:04:31 ID:VRSq3cfM0
>>410
ひと月は30*Daysでいいんじゃないかと。
それよりentire contentsが真っ当に機能するものかどうかが気になる。
417名称未設定:2006/01/30(月) 20:58:24 ID:nDz2XySJ0
>>416
>>362 をよく見たら days 使ってたね

確かに entire contents は項目数が多いと時間を食うし
(今やってみたら 3800 項目で7秒ぐらい :mac mini 1.4G
>>408 みたいに条件付き検索をするとタイムアウト)
一括動作なので、その間 Finder がビジーになる
OS9 時代は使うのに慎重にならざるを得なかった
(OSX では他のアプリは関係なく作業を続けられる)
それでも再帰ループよりは速いんじゃないかな

>>415
基本であり、既出だろうけど
スクリプトエディタ>ファイルメニュー>用語説明を開く…
普通のアプリ以外にも System Events や Standard Addition なんかの
機能も調べられる(テンプレに追加してもいいかも?)
418名称未設定:2006/01/30(月) 21:06:13 ID:v6Zo2s0/0
>確かに entire contents は項目数が多いと時間を食うし
いや、時間じゃなくて取りこぼしがないかどうかという所
419名称未設定:2006/01/31(火) 05:51:12 ID:3yov4y/I0
俺も取りこぼしが気になる。
再起ループだと項目数増えるとスタックオーバーフローって奴が起きて途中で止まったりしますよね?
entire contentsの場合それはどうでしたっけ?
420名称未設定:2006/01/31(火) 07:06:15 ID:DIj+5T090
>>418,419
うふふふ。
421名称未設定:2006/01/31(火) 07:31:38 ID:3yov4y/I0
何だその笑いw
422名称未設定:2006/02/10(金) 00:21:06 ID:6N/iJd9M0
OSXには優秀な日本語解析エンジンがあるみたいですが、
これを利用して漢字の読み仮名を作成する
スクリプトはできないでしょうか?
できれば半角カナで
423名称未設定:2006/02/10(金) 00:22:26 ID:G38P+r2Q0
> スクリプトはできないでしょうか?

知らん。お前が始めろ。
424名称未設定:2006/02/10(金) 00:28:42 ID:30ig7knJ0
Monzai使ったら?
425名称未設定:2006/02/10(金) 00:41:55 ID:5sWBIyVZ0
一応OS9にも日本語解析ライブラリが有りますです。
読み仮名作成できます。
OSAXから利用してます。。
426名称未設定:2006/02/10(金) 00:47:27 ID:5sWBIyVZ0
すみません、間違えました。
日本語解析ライブラリじゃなくて言語解析マネージャで
OSAXじゃなくてJLAAというアプリからでした。
427名称未設定:2006/02/10(金) 00:59:25 ID:6N/iJd9M0
ありがとうございます。
monzaiのページを見たら、
アップルサイトに日本語解析の文書があるとのことでした。
英文は見つけたんですが訳文がわからなかったので、
明日探してみます。
ちらっと見たところきっとCarbonLibを叩くんですね・・・

JLAAはOSXでは使えないと思います。
最初に書いてなくてすいません。
428名称未設定:2006/02/10(金) 23:39:06 ID:lDjwly0i0
スクリプトをファンクションに割り当てるのってiKey使わないと無理っすか?

スクリプトメニューに入れたスクリプトを環境設定>キーボードの
キーボードショートカットに登録したんですが、
メニューの該当項目の横に「F12」と表示されるものの実行はされませんでした。

ねがわくばiKey無しで実現したいのです。
429名称未設定:2006/02/11(土) 01:20:28 ID:QGd0uZra0
内蔵HDDの他にiPodのHDDからTigerをブートして
サブっぽく使ってる人向けのスクリプトを作ろうかと思ってる。
要は俺様専用。
 
カレンダー、メール、アドレスブック、ホーム以下を
自動的にそれら2つのHDDで同期する。できたら書き込みまっす。
430名称未設定:2006/02/11(土) 02:13:40 ID:wsvZUOgm0
皮さk(略
431名称未設定:2006/02/11(土) 09:05:48 ID:6H7aCRBl0
>>428
スクリプトメニューの項目は環境設定のキーボードからは設定できないはず。
間違ってたらすまん。

iKeyの何が気に喰わないか知らないが、シェアウェアでやだってんなら
以下で他のソフトを探すがよろし。
http://www.geocities.jp/akamayu2/Pages/mouse.html#keyassign
432名称未設定:2006/02/11(土) 23:56:56 ID:gxJVDgO00
ディスプレイの解像度を変更するアップルスクリプトを書きたいのですが、
どなたかサンプルをいただけませんでしょうか...

CPU切替器を使ってると、起動時やスリープ回復時にディスプレイの自動検出に失敗して
低い解像度にされちゃうことが多いんで、起動項目等に入れて使おうかと...
433名称未設定:2006/02/12(日) 07:58:18 ID:dAJt2MHR0
OSのバージョンによって書き方も大分変わると思うが。

最近、自分の環境も書かないバカが多いな。
434432:2006/02/12(日) 09:28:23 ID:bQqbNy4v0
あ、すみません。Tiger(10.4.4)です。
435名称未設定:2006/02/12(日) 10:46:11 ID:z8zSvmQp0
たとえばこんなん? AppleScriptユーティリティでGUIスクリプティングを使用可能
にしとく。""の中は日本語環境だと書き換え必要と思う。そこは探ってくり。

tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.displays"
end tell
tell application "System Events"
tell process "System Preferences"
tell tab group 1 of window 1
click radio button "Display"
tell table 1 of scroll area 1 of group 1
select row 9 -- modify this value
end tell
end tell
end tell
end tell
tell application "System Preferences" to quit

動いたけど遅いw そもそも「ディスプレイの自動検出に失敗して」る状況で使えるか
どうかわからん。それ用のユーティリティが無いか探した方が良いような気もする。
436428:2006/02/12(日) 17:40:55 ID:u1L72euF0
>>431
iKeyが嫌っていうか、何も追加せずに実現したかったんですよ。
でも無理っぽいので何か入れてやってみます、ありがとう。
437名称未設定:2006/02/12(日) 21:23:42 ID:+7Mr4Ylr0
Xkeysは?
438名称未設定:2006/02/12(日) 23:21:05 ID:+ROr5YAr0
>>435
"Display"を"ディスプレイ"に書き換えれば動作した。(MacOS 10.3.9 日本語環境)
2, 3秒画面が水色のまま何も表示されないから、ちょっとビビった。
切り替えつつ、システム環境設定.appを終了させてるからちょっと時間がかかったのかもね。

>>432
AppleScriptで解像度の切り替えを行なう命令は無い。
よって解像度の切り替えは>>435の方法しかない…かも?
Unixコマンドの方で出来るのかもしれないが調べ方がわからず…
>>435の方法はディスプレイの自動検出に失敗していても、
毎回固定の解像度に切り替えるならば、select row 9の値を自分の環境に沿ったものに
変えればいいはず。

長くなったので現在の解像度の取得方法は次に書き込む。
439名称未設定:2006/02/12(日) 23:36:25 ID:RTESDnylP
「メニューバーにディスプレイを表示する」でメニュー表示させて
そのメニューを選択させることができるなら
環境設定を起動させなくてもいいので処理が早そうだけど
スクリプトがよくわからん
440名称未設定:2006/02/12(日) 23:38:17 ID:+ROr5YAr0
>>432
現在の解像度を取得するには以下の方法があるようだ。
なお、AppleScriptの特定の命令として大きさを取得する方法はない。

(1) Finderより取得(10.4のみ動作可能)
tell application "Finder" to bounds of the window of the desktop
命令的には、Finderの背景としてあるデスクトップをウインドウとして見て、
そのウインドウの大きさを取得しているらしい。
返り値はFinderと同じ意味の数値のリストらしく、1024x768なら、{0,0,1024,768}となる。
たぶん、432にとっては一番簡単な方法。

(2) サードバーティ製OSAXを使用(未確認)
Jon's CommandのOSAXの中に、ディスプレイの解像度を取得できる方法があるようだ。

(3) 設定ファイルをUnixコマンドで読み出し
do shell script "defaults read com.apple.windowserver"で設定ファイルを読める。
多分、使うのはディスプレイの高さ(Height)、と幅(Width)だけのはず。
高さ(Height)だけが必要なら末尾に追加すればよい。
do shell script "defaults read com.apple.windowserver Height"のように。
文字列内は全角/半角はもちろん、大文字/小文字も別の文字として認識するので注意。
heightと記述して取得できないなー、なんて悩んでしまった…
441名称未設定:2006/02/12(日) 23:50:00 ID:+ROr5YAr0
>>439
GUIスクリプティングでは、メニューバーの右上に並ぶメニューたちの取得/選択はできない…はず。
だからScript Menuとか言語設定のメニューも取得できない。

取得/選択できるメニューは
システムのライブラリ/Scripts/UI Elements Scripts の Probe Menu Bar.applescriptで
取得できる範囲内…と記憶している。
間違ってたらスマソ
442名称未設定:2006/02/12(日) 23:56:29 ID:heFc7FZw0
ColorSync Scriptingの辞書の中に
Displayってコマンドがあるんだけど、これは色関係だけなのでしょうか?
443名称未設定:2006/02/13(月) 02:16:38 ID:AP/mpTR50
>>442
ColorSyncっていうのは画面(モニター)に表示する色を制御する機能。
解像度の変更は出来ない。
その中にあるdisplaysっていうのはコマンドではなくクラス。
このクラスの役割はマルチモニターへの対応。
複数のモニターがある場合に、どのモニターに対して命令を実行させるかを
指定するために存在する。
444名称未設定:2006/02/13(月) 12:10:10 ID:BiRSqiY70
>>441
>GUIスクリプティングでは、メニューバーの右上に並ぶメニューたちの取得/選択はできない…はず。
できなくはない。ただ、どれがどのメニューなのか、ほとんどは表示させないと特定は難しい。
以下、ログインウインドウを選択するスクリプト。

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
445名称未設定:2006/02/13(月) 17:10:30 ID:UJzd7h+Z0
>>444
わはは、このスクリプト派手だねえ。日本語とU.S.のスクリプト切り替えにも
使えて便利だ。ありがとう。
446432:2006/02/13(月) 23:03:17 ID:z0sUqxOW0
>435さん、>438さん、他みなさん、ありがとうございます。
解像度を直接変更することはできないのですね。
システム環境設定を開いて変更するスクリプトを参考にさせていただきます。

アップルスクリプト、深いですねぇ。これを機にもうちょっと勉強してみよう。
Automatorでは出来ないこと(アクションが提供されてないこと)が多すぎて…
447名称未設定:2006/02/13(月) 23:47:46 ID:OYguLR+F0
旧OSの時は直接設定をAppleScriptでいじれるコンパネもあったよね。
Mac OS Xでできなくなってるのは
セキュリティ上の配慮か、技術的困難か、それとも単に担当者の怠慢か…。
448名称未設定:2006/02/14(火) 02:43:42 ID:V/LcuuOo0
ウソ情報を出してしまった441です。
>>444のを試してみたのだが…4番目のevery menu bar itemでエラーに。
バックグラウンドのアプリケーションのメニューを引っ張り出すっていう方法は
すごく参考になったけども、SystemUIServerでevery menu bar の取得が出来てない模様。
(Prove Menu Bar.applescriptのtell processに、"SystemUIServer"を指定して確認)
これ、OSのバージョンの問題かな。10.3.9だからダメなのかも。
>>444が動いた方、環境をぜひ教えて下さいな。
449名称未設定:2006/02/14(火) 13:38:24 ID:K2APEHKu0
>>448
10.4.4です。動きました。
「ログインウインドウ...」というメニュー項目を含むメニューが無いので
メニューが順番に出て引っ込んだだけですが。

>>444
すごいですね。何でこんな事を思いつく(わかる)んでしょう?

入力メニューだとうまく項目をクリックできないですね。
名前を指定してもmenu item 3とかやっても失敗します。
450名称未設定:2006/02/15(水) 01:10:59 ID:ucuKyfp70
445です。
OS X 10.4.4、日本語環境で、メニューバー右には
Vidi, QuicKeys, SMARTReporter, XWinder, 音量, ディスプレイ, AppleScript, スクリプト, 時計と
てんこ盛り状態で、444の "ログインウインドウ..." を
"U.S." や "ひらがな" (ことえりでなくEGBridgeを使用している) に書き換えても
正しく動作しました。 QuicKeysより高速でいい感じです。
451名称未設定:2006/02/15(水) 13:26:30 ID:LHR9rGA60
ことえりのメニューは不完全なメニューを出す時もあるみたいだから、>>444
tell menu item "ログインウインドウ..." to click
の部分を

tell menu item "ひらがな" to select
keystroke return

としたほうが上手く行くかもしれん
452名称未設定:2006/02/15(水) 14:07:30 ID:gOaZhZrr0
うちはことえりとEGBのメニューが混在していて同名のメニュー項目が2つずつあるので、
そのせいでうまく行かないのかと思いましたが、
clickからselect→returnに変えたらうまく動きました。
453名称未設定:2006/02/15(水) 22:59:32 ID:z5d5y93s0
10.4.4だけど動かないなぁ、4行目でエラーがでるよ
454名称未設定:2006/02/15(水) 23:03:03 ID:XJL91JyBP
>>453
/Applications/AppleScript/AppleScript Utility.app
の「GUIスクリプティングを使用可能にする」
455名称未設定:2006/02/15(水) 23:33:56 ID:z5d5y93s0
>>454
動いた!
ありがとう
456名称未設定:2006/02/16(木) 02:22:10 ID:u2d09KI70
通はtryとon errorをコメントアウト。
457名称未設定:2006/02/17(金) 02:35:02 ID:ZSXEyEy/0
そして end try でコンパイルエラーを出して楽しむのですね
458名称未設定:2006/02/17(金) 03:24:06 ID:V1PgdEBE0
on error の後ろにメッセージだけでなく、
number, from, partial result, to
の引数全部入れるのが本当の通
459名称未設定:2006/02/17(金) 04:07:00 ID:5gh9ifQv0
beepを鳴らしてみたり
460名称未設定:2006/02/17(金) 08:07:29 ID:RE26brNA0
>458
そんなに色々あったんだ。
番号とメッセージ?しか使った事ないや。

エラーで分岐処理やったりしてたけど、
最近は自分用ばかりだしエラー構文も使わなくなったなぁ。
人に配るにしても、こんなエラーが出たってフィードバックがあったほうが
訂正しやすいし。
461名称未設定:2006/02/17(金) 23:05:43 ID:X2fSA1sJ0
フィードバックじゃなくて定常状態でエラー出るのを前提にして条件分岐とか
errorってわざと書いて別の処理に逝くとか
462名称未設定:2006/02/18(土) 04:53:26 ID:X9pCtJQW0
いま邪道コードを見た気がする
463名称未設定:2006/02/18(土) 06:16:37 ID:4qGGfchf0
半角数字を入力すべきところ(その後入力値で計算する)を全角数字で入力してしまった場合、
エラーとしてreturnしちゃうのは楽だけど、全角を半角に変換してやるにはどうすればいいでしょうか。
OSAXは使わない方向で。
464名称未設定:2006/02/18(土) 12:55:11 ID:r80BLSwm0
>>463
1文字ずつ取り出して、"1"なら"1"に、それ以外なら……
って置換スクリプトを書けばいいと思う。
465名称未設定:2006/02/18(土) 15:36:00 ID:LNthAmam0
>>464 (`・ω・´)こんな感じでしょうか

set a to text returned of (display dialog "半角数字でも全角数字でも" default answer "")
set b to ""
repeat with x in (text items of a)
if x contains "0" or x contains 0 then set b to b & "0"
if x contains "1" or x contains 1 then set b to b & "1"
if x contains "2" or x contains 2 then set b to b & "2"
if x contains "3" or x contains 3 then set b to b & "3"
if x contains "4" or x contains 4 then set b to b & "4"
if x contains "5" or x contains 5 then set b to b & "5"
if x contains "6" or x contains 6 then set b to b & "6"
if x contains "7" or x contains 7 then set b to b & "7"
if x contains "8" or x contains 8 then set b to b & "8"
if x contains "9" or x contains 9 then set b to b & "9"
if x contains "−" or x contains "-" then set b to b & "-"
if x contains "." or x contains "." then set b to b & "."
end repeat
set a to b as number
466名称未設定:2006/02/19(日) 00:45:30 ID:xJYiDBpH0
スクリーンショットを撮影して(OSはTigerなので標準仕様のpngで)、
撮影した年月日・時分秒をファイル名としてデスクトップ上に保存する
アップルスクリプトが作りたいのですが、
スクリーンショットを撮影するにはどうすれば良いのでしょうか?
よろしくお願いします。
467名称未設定:2006/02/19(日) 02:26:00 ID:diVeUdL70
>>466
do shell script "screencapture ~/Desktop/FileName.png"
468名称未設定:2006/02/19(日) 07:09:09 ID:tsN5mmmY0
やることがそこまで特定されてんなら、Automator使うのもオモロイかも。
4アクション。スクショ撮って固定名でセーブ、ファイル名に年月日付ける、ファイル名に時分秒
付ける、ファイル名中の固定名を空文字で置換。

実行はあまり早くない、年月日時分秒の区切り文字の自由度は少ない、ものの。
469名称未設定:2006/02/19(日) 09:22:19 ID:j+1LtdJh0
do shell script "date +%Y年%m月%d日%H時%M分%S秒"
とすれば"2006年02月19日09時22分08秒"となる。

do shell script "date +%Y-%m-%d-%H-%M-%S"
とすれば"2006-02-19-09-22-08"となる。

do shell script "date +%Y%m%d%H%M%S"
とすれば"20060219092208"となる。

ちと遅いけど
470466:2006/02/19(日) 22:26:11 ID:JSAStN6C0
467-469
ありがとうございました。やってみます。
471名称未設定:2006/02/20(月) 02:09:53 ID:mZbGFRZU0
>>469
おおー、今までcurrent dateでシコシコやってました。
472名称未設定:2006/02/22(水) 04:00:13 ID:wxF0U00q0
ファストユーザースイッチを自動で切り替えてかつ、切り替え時に
safariを常時あげてくれるスクリプトをがんばって書いてます。
set h to do shell script "whoami"
set newUser to "hogehoge1"
set userName to "hogehoge"
set newUser to do shell script "id -u " & userName
do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID " & newUser
do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -suspend"

と切り替えだけはうまくいったのですが、、safariをあげれません。。。
ファストユーザースイッチの切り替え時の命令ご存知の方、ぜひご享受ください。
473名称未設定:2006/02/22(水) 04:11:20 ID:j9ltAiFB0
あげる?
起動なら tell application "Safari" to open じゃないの?
474名称未設定:2006/02/22(水) 04:24:37 ID:buQcnmj80
切り替え先のアカウントでtellしなきゃいけないってことか
475名称未設定:2006/02/22(水) 04:28:43 ID:buQcnmj80
suspendする前にリモートAppleEventを投げたりできんかね
476472:2006/02/22(水) 04:38:47 ID:wxF0U00q0
そうなんです。
切り替え先のアカウントでtellなんです。そこで詰まってしまって。
477名称未設定:2006/02/22(水) 04:42:06 ID:buQcnmj80
tell application "Safari" of machine "eppc://hogehoge1:[email protected]" to activate

みたいな感じで
478名称未設定:2006/02/22(水) 06:20:15 ID:4hwyyJ4I0
出だし、do shell script ばっかだな。もうちっと何とかならんのか。
479名称未設定:2006/02/23(木) 01:39:27 ID:RJdFHiQm0
>>478
OSX の UNIX 機能がいかに強力かが反映されているな
Python とか Perl からアプリの AppleScript 機能を呼び出せれば
AppleScript 要らんかも
480名称未設定:2006/02/23(木) 02:45:40 ID:yvYsetLc0
XでなくともPerlは使えたような…
以前のOSAXが殆ど使えなくなったのがつらい
481名称未設定:2006/02/23(木) 03:59:54 ID:fZ2CrIjW0
旧OSではPerlからAppleEvent呼び出したりもしてたよ。
482名称未設定:2006/02/23(木) 05:11:57 ID:O2Gg2/kT0
関係ないが、PerlでもCocoa使えるらしい。
483名称未設定:2006/02/23(木) 08:53:38 ID:fZ2CrIjW0
ほんとに関係ないな。キャメル何とかってやつだな。
484名称未設定:2006/02/23(木) 09:35:10 ID:fZ2CrIjW0
以前のOSAXが使えなくて不便というのは自分は感じてないな。
その程度しかOSAX使ってなかったんだな。
標準の機能としてコンパネ周りとか触れるようになってないのが不満だが、
具体的に自分がそっち方面をいじりたいわけでもないので
OSAX等の有無も探してないなあ。
昔と違って自分で英語のサイト読んで探さないといけないのもたいへんだしw
何か面白いOSAXとかある?
485名称未設定:2006/02/23(木) 15:04:12 ID:KY+u0ap+0
>>479
> Python とか Perl からアプリの AppleScript 機能を呼び出せれば
> AppleScript 要らんかも

MacPythonはアプリのAppleScript機能抜き出して Pythonモジュール作るユーティリティがある。
486名称未設定:2006/02/23(木) 15:11:54 ID:fZ2CrIjW0
じゃあPythonメインで記述したい人はそれで済ます事もできるわけだ。
Pythonスレ前あったのにね。
487名称未設定:2006/02/23(木) 21:29:05 ID:u24GkA3h0
アプリが対応しているのはAppleEventね。AppleScriptはそれを便利に使うためのOSA
コンポーネント、他にもOSAコンポーネントはあるし、汎用のスクリプト言語から
AppleEventやOSA経由でアプリ操作もできる。
AppleScript経由すると遅いし、細かい操作ができないから、CでごりごりAppleEvent
処理を書くのもあり。
アプリ側はどんな出自で命令が来てるかは関知しない、従うのみ。
488名称未設定:2006/02/23(木) 21:37:55 ID:BpkiLyYn0
アップルもちょっと本気出して改良してくれれば、まだまだ速くなると思うんだけど。
まあ、OS7や8の時代よりははるかに速くなってるけどさ。
それより先にバグをどうにかしてほしいもんだ。
489名称未設定:2006/02/23(木) 22:38:57 ID:fZ2CrIjW0
速くなったのはハードの進化に負う所が大きいんじゃないの?
490名称未設定:2006/02/23(木) 22:41:03 ID:xM52zmjZ0
OSAX使うと割と速かったんだが
491名称未設定:2006/02/23(木) 23:21:29 ID:EtcHexJu0
お前アホだろ。引っ込んどけ。>>489
492名称未設定:2006/02/27(月) 04:24:07 ID:9rX6wI5B0
質問です。

JeditXで
1:最前面に開いているファイルをPDFで保存し、
2;開いているファイルを保存せずに閉じる
というapplescriptを書きたいのですが、
PDFで保存するという部分が、全くわかりません。

参考書やWEBなどありましたら、教えてもらえないでしょうか?
493名称未設定:2006/02/27(月) 07:11:00 ID:wSgUFb5N0
>>492
10.3以降ならGUIスクリプティングで、
メニューから ファイル → プリント → PDF →
プリントウインドウから PDFで保存... → ファイル保存先を指定
と操作していいんじゃないかな。試してないけど。

GUIスクリプティングについては以下で勉強してみて
http://allabout.co.jp/computer/macos/closeup/CU20031220asc/index.htm

っていうか自分の環境を書いとくれ。
そして出来たらここで発表してね。
494名称未設定:2006/03/02(木) 18:40:30 ID:cQY9xPah0
保守ついでに、iTunesの今の曲を言うスクリプト

tell application "iTunes"
tell current track
say (artist as string) & ". " & (name as string)
end tell
end tell
495名称未設定:2006/03/02(木) 21:59:10 ID:TGF6yUme0
>>494
オモロw
496名称未設定:2006/03/02(木) 23:40:04 ID:otGuOedM0
>>494

いいな、これ。

数百曲のライブラリをシャッフルで聞いて、「これ、なんて曲だっけ?」
って時にいいな。
497名称未設定:2006/03/03(金) 14:37:26 ID:g6r9o+/30
property temp : ""
on idle
tell application "iTunes"
tell current track
set newtemp to (artist as string) & ". " & (name as string)
set tempgenre to genre
end tell
end tell
if newtemp is not equal to temp then
if tempgenre is in {"Drum & Bass", "Drum'n'Bass", "Electronic", "Electronica/Dance", "House"} then
set tempvoice to "Zarvox"
else
set tempvoice to "Vicki"
end if
tell application "iTunes"
repeat with i from 0 to 8
set sound volume to sound volume - i
delay 0.1
end repeat
end tell
say newtemp using tempvoice
set temp to newtemp
tell application "iTunes"
repeat with i from 0 to 8
set sound volume to sound volume + i
delay 0.1
end repeat
end tell
end if
return 4
end idle
498名称未設定:2006/03/03(金) 14:38:02 ID:g6r9o+/30
自動化してみた。これ、イイね!
アプリケーションかつ「実行後、自動的に終了しない」で保存して常駐させて使用。
日本人アーチストはそれっぽく読むように辞書作って置換した方がいいかもね。
499名称未設定:2006/03/03(金) 14:48:07 ID:mGtieIKz0
日本語はMonzaiに投げればいいんじゃまいか
500名称未設定:2006/03/03(金) 14:51:30 ID:y49usNvf0
おおお、これは(・∀・)イイ!!
501名称未設定:2006/03/03(金) 21:48:45 ID:ThJrlXxD0
DJ!

DJ!
502名称未設定:2006/03/04(土) 14:06:00 ID:9sIA5nrY0
DVコーデックの動画(iMovieキャプチャ等)を対象として、
QuickTime Player (Proのみ?)での 「高品質で再生する*」のチェックをオンにする手作業を自動化。
(* ムービー>ムービーのプロパティを表示>ビデオトラック>品質 内)
今日知ったけど HiQualという無料ツールが説明を見る限りほぼ同等。
==============
(規制に掛かったので中心部だけ抜粋)

if ((creator type) of obj is "TVOD") or ((file type) of obj is "dvc!" or "MooV") tell application "QuickTime Player"
activate
set high quality of track "ビデオ トラック" of movie 1 of window 1 to true
end tell
end if

==============
同様に ビデオの表示サイズを指定の値に変更するツールを作りたいんだけど、分かりますか?
503名称未設定:2006/03/04(土) 14:14:00 ID:pY0HN1iy0
tell application "QuickTime Player"
tell movie 1
set dimensions to {640, 480}
set high quality of tracks to true
set deinterlace fields of tracks to true
end tell
end tell
504名称未設定:2006/03/04(土) 17:32:00 ID:wbbI4VYk0
>>498
曲名喋る前に、
海外の適当なニュースサイトからニュース拾って読ませれば
気分はまさにラジオかも?
505名称未設定:2006/03/04(土) 17:58:51 ID:Y9xP+zoL0
んでガレージバンドで適当にジングルつくって ウハー
506名称未設定:2006/03/05(日) 01:27:20 ID:ih3AUTQZ0
MP3プレーヤーで、ジングルっぽいのがテキトーに流れるやつあったよね。
AroFMだっけ?
507名称未設定:2006/03/06(月) 20:43:55 ID:JsCmhfgf0
>>503ありがとう
ちなみに 高品質 と インターレース解除 を併せると
少なくともDVコーデックでは両オフと変わらない気が
508名称未設定:2006/03/08(水) 09:41:12 ID:EKdUeFVh0
ScriptDebugger4.0.1出てます。
4.0はMacRoman固定で処理してて全く使い物にならなかったけど、4.0.1はとりあえず
使えそう。エディタビューでダブルクリック選択できない等おかしい所はあるけど実
用上の障害にはならない。
509名称未設定:2006/03/08(水) 15:12:02 ID:I3Fc2vZJ0
>>508
超ナイス報告。僕も4.0飛び付いてorzになってた。
510名称未設定:2006/03/08(水) 15:19:17 ID:QReHewhu0
あれを使うような本格的なスクリプターさんがけっこう居るって事なのね。
なんかうれしいなあ。
511名称未設定:2006/03/12(日) 00:25:04 ID:OccANb5A0
アップルスクリプトを使って現在のIPを確認することはできますか?
synergyを自動化したいんですが。
512名称未設定:2006/03/12(日) 00:33:40 ID:3wyxLHmp0
アクセスするとグローバルIPを表示するようなページがあるから、
そこからデータを引っ張ってくるといいのでは。
そういう仕組みのAppleScript Studio使ったソフトがありましたよ。
513名称未設定:2006/03/12(日) 00:36:06 ID:1XTp/Alt0
少なくとも Tiger には
Standard Addition に system info 命令があって
そこから IPv4 address が取れる。
514名称未設定:2006/03/12(日) 00:40:44 ID:3wyxLHmp0
>>511
Synergyについて検索しましたが、ひょっとしてあなたのやりたい事は、
「Mac miniでリビングPC」というサイトさん(ブログ)の
2005年3月12日の記事に書いてあるやり方でできるのではないですか?
515名称未設定:2006/03/12(日) 00:55:19 ID:DZhqdrTy0
IPはshellでifconfig -aでもわかるが、ルーターをかましてるとそうはいかんよね。
516名称未設定:2006/03/12(日) 02:23:15 ID:kFrM9jfk0
do shell script "curl 'http://taruo.net/e/?'|grep 'host='"
517名称未設定:2006/03/12(日) 02:32:54 ID:kFrM9jfk0
つーか、つまらんことで{"悩むな","悩ませるな"}
518名称未設定:2006/03/12(日) 02:55:46 ID:3wyxLHmp0
519名称未設定:2006/03/12(日) 03:40:22 ID:DZhqdrTy0
ふと思い立って、以前作ったプロジェクトを
新しいxcodeでユニバーサルとして再度ビルドしてみたけど、エラー出まくり。
新規に作ると大丈夫だけど、めんどくさい。つーか作り方忘れた(><)
520名称未設定:2006/03/12(日) 04:13:03 ID:kFrM9jfk0
つーわけで
do shell script "curl 'http://checkip.dyndns.org/'|sed 's/.*\\ \\([0-9]*\\.[0-9]*\\.[0-9]*\\.[0-9]*\\).*/\\1/'"
521名称未設定:2006/03/12(日) 04:18:41 ID:kFrM9jfk0
全然simpleちゃうやん (自爆する気?!
522名称未設定:2006/03/12(日) 13:22:15 ID:qCb0Q/rU0
>>511
do shell script "/path/to/synergys -n $(hostname -s) --config /path/to/synergy.conf"
523名称未設定:2006/03/12(日) 17:24:57 ID:i8bxLq/g0
>>521
do shell script "curl 'http://checkip.dyndns.org/' | tr -Cd '[0-9].'"
524名称未設定:2006/03/12(日) 20:49:41 ID:sqFVuOGg0
Safariでやってみた
tell application "Safari"
make new document with properties {URL:"http://checkip.dyndns.org/"}
set theWin to id of window 1
delay 2--ロード待ち(手抜き)
set myIP to word 4 of text of document of window id theWin
close window id theWin
end tell

525(・∀・):2006/03/13(月) 03:03:21 ID:MbExZ1Cf0
よーわからんけど
ipconfig getifaddr en0
526名称未設定:2006/03/13(月) 03:06:34 ID:im3Ym06d0
>525
プライベートアドレスが出ました。
527名称未設定:2006/03/13(月) 03:31:57 ID:RyJxbPsz0
とりあえず自分で使っているものを晒しておきます。
・事前にiTunesを開いておいて、top100ソングの曲順を手動で逆順にしておいてください。
・sayの文中は添削した上でお使いください。

tell application "Safari"
open location "http://phobos.apple.com/WebObjects/MZStore.woa/wa/com.apple.jingle.app.store.DirectAction/viewTopSongs/"
delay 5
end tell
say "Welcome to iTunesMusicStore Japan today's top 100."
delay 0.5
say "Okay, now let's start to count down the top 100 songs."
tell application "iTunes"
repeat with i from 100 to 1 by -1
say "today's number" & i
set (sound volume) to 80
play
repeat until (player position ? 27)
delay 1
end repeat
if (i > 1) then
set (sound volume) to 50
say "okay, Let's go to the next tune."
pause
next track
end if
end repeat
end tell
528名称未設定:2006/03/13(月) 03:35:06 ID:RyJxbPsz0
(player position ? 27)

(player position >= 27)
でお願いします。
529(・∀・):2006/03/13(月) 05:07:44 ID:MbExZ1Cf0
なかなか素晴らしいです。転載していいですか?

あと、ボリューム変更はクロスフェード効果なのせうか。
530527:2006/03/13(月) 11:49:29 ID:RyJxbPsz0
>>529

エラー対策を全くしていませんが、
それでもよろしければ転載okです。
531527:2006/03/13(月) 11:55:45 ID:RyJxbPsz0
ボリューム変更についてですが、
変更しないと、sayの声が音楽にかぶってしまうので、
ガレバン3の「ダッキング」エフェクトをパクって
音量を50と80で往復させました。
532名称未設定:2006/03/13(月) 13:43:33 ID:im3Ym06d0
どこに転載するか書かずに転載の許可を願うとは、これいかに。
ブログとか?実はどこかの雑誌の編集さんだったりして…。
533名称未設定:2006/03/13(月) 16:19:33 ID:XHMJz0G70
確かにどこに転載されるのかは気になる。
本人が転載許可してるみたいだからあまり突っ込まないが。
534名称未設定:2006/03/13(月) 17:57:07 ID:mKOPjLL/0
>>527
すげえええええええええええ
535名称未設定:2006/03/13(月) 18:36:13 ID:OiKZHGkZP
iTunesに直接Todaysトップソングを表示させるスクリプト
tell application "iTunes"
open location "itms://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.app.store.DirectAction/viewTopSongs/?ign-mscache=1"
end tell
http://web-sniffer.net/で調べた
itmsのアドレスが固定かどうかは知らない・・・
536527:2006/03/13(月) 20:44:41 ID:RyJxbPsz0
>>533
ここに晒している以上、
権利云々も言えたもんじゃありません。www

>>535
ありがとうございます!
早速マージさせていただきました。

このように、他者の力をお借りして、
最終的にはもう少し良くしたい、という思いもあります。

ちなみに、iTMSのtop100画面上で、逆順ソートを自動化する方法が思いつかないので、
feed://phobos.apple.com/WebObjects/MZStore.woa/wpa/MRSS/topsongs/sf=143462/limit=100/rss.xml
から曲リンクを取得して自動再生させるアプローチも探ってみたいな、と。
537(・∀・):2006/03/14(火) 19:12:16 ID:cQAXLWdE0
iTunes for Mac まとめページにあぷして置きました。
http://www3.atwiki.jp/itunes/pages/18.html

ボリューム変更は環境依存が大きいので、ぶち抜きました。
>>535 を採用しました。ただし、535のリンクは英語のページ
みたいなので日本語ページ(itms://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.app.store.DirectAction/viewTopSongs?id=1000)へ修正

appで途中で止められるように、quitハンドラを追加しました。

タイトルとアーティストをmonzaiでしゃべるように、cmd+Lと
cmd+cを駆使して努力しましたが、iTunesがフォアになるため
挫折しました。トラック情報くらいとらせてほしい。
538名称未設定:2006/03/14(火) 19:15:34 ID:4jQwPzar0
転載とはそこのことだったのか。
最近Mac関係の色々なWikiができて情報が蓄積されてますね。
むしろ読むほうが追いつかないというか、読む前に挫折するというか。
すばらしいと思います。
539名称未設定:2006/03/16(木) 22:12:31 ID:YocHupGu0
アップルスクリプトで任意のアプリケーションを立ち上げるのに悪戦苦闘中なのですが、

 tell application "アプリケーション名" to activate

これはアプケーションフォルダーにあるアプリが起動可能なのですよね?
任意の場所にあるアプリの指定の仕方がさっぱりわかりませんorz

どうか暇つぶしに教えてくださいませ。
540名称未設定:2006/03/16(木) 22:55:48 ID:cftXYU8A0
アプリケーション名の代わりにアプリケーションのパス丸ごとで起動するんじゃなかったかな
541名称未設定:2006/03/16(木) 23:09:51 ID:JB3cO3A10
>>539
任意の場所にあるものがそれで起動するはずだけど?
ただ、バージョン違いの同じ名前のアプリケーションが複数ある場合はややこしい。
542539:2006/03/17(金) 00:11:07 ID:9QHBWbbl0
>>540-541
レスどーもです。
なんだかよくわかりませんが、アプリ名だけで起動できるようになりました。
Finderを再起動させたんですけどそのせいでしょうか?
開いたばかりのアプリだったせいで認識してなかったということはありますか?
543名称未設定:2006/03/17(金) 00:15:08 ID:eNMdlnuM0
>>542
認識してなかった事はあり得るかもね。
あとは単純にアプリ名を間違ってたとか。
544名称未設定:2006/03/24(金) 21:52:31 ID:SXFC71h00
アップルスクリプトで、実行専用アプリで保存するときに
バックグラウンド専用アプリにすることって出来る?

OS X 10.3.9 
545名称未設定:2006/03/24(金) 22:26:14 ID:0lgxEjKT0
バンドル形式で保存してInfo.plistにキーを追加すればなるんでないか。
546名称未設定:2006/03/24(金) 22:26:25 ID:1yHn8ev1P
>>544
plist で LSUIElement の値を 1 に設定する。
547名称未設定:2006/03/24(金) 22:26:50 ID:XttOGzNk0
Xcodeで作ってごにょごにょすればできると思う。
548名称未設定:2006/03/24(金) 22:27:34 ID:XttOGzNk0
書く前にリロードすればよかった。orz
549(・∀・):2006/03/26(日) 12:31:08 ID:MA2XeE2J0
iTunesスレだと、スプリクターが居ないのか受けが悪かった。
iTunesで選択した曲を埋め込まれた歌詞をテキストテロップにしてQTPlayerで表示するスクリプト
QTP 7.0がバグだらけで、苦労しました。アートワークをムービに
追加したり、タイムタグに対応したり考えたけど挫折。

on run
tell application "iTunes"
set theTrack to item 1 of selection
if lyrics of theTrack is "" then
beep
return
end if
OpenQtp(location of theTrack, lyrics of theTrack) of me
end tell
end run

550(・∀・):2006/03/26(日) 12:31:41 ID:MA2XeE2J0
on OpenQtp(theFile, theLyrics)
tell application "QuickTime Player"
activate
open theFile
--歌詞埋め込み
set the clipboard to theLyrics as string
select all movie 1
add movie 1 with scaled
set dimensions of last track of movie 1 to {320, 240}
set position of last track of movie 1 to {0, 0}
--TextFrame更新
set scroll of frames of last track of movie 1 to {scroll in, scroll continuous}
--後処理
select none movie 1
rewind movie 1
start movie 1
end tell
end OpenQtp

ずいぶん、改行制限が高いな。
551名称未設定:2006/03/26(日) 15:34:12 ID:IJfdPMV70
>>549-550
こんな感じになりますた。オモシロス
ttp://amb.sakura.ne.jp/hanyou/img-box/img20060326153223.jpg
552名称未設定:2006/03/26(日) 16:14:33 ID:vVQwFlYO0
曲によってなのか、いきなり最後尾表示になってハングしちゃう事がありました。
553名称未設定:2006/03/26(日) 16:40:51 ID:V3C3Pelr0
>>551
これは、ビジュアル的におもしろいねw

>>549
おもしろい事考えますねー。
554名称未設定:2006/03/26(日) 17:02:26 ID:kuF0a4uE0
すげー。AppleScriptってこんなことも出来るんだね。
555名称未設定:2006/03/26(日) 17:06:05 ID:DYvMzdAx0
悪い事にも使えると。
556名称未設定:2006/03/26(日) 17:31:10 ID:V3C3Pelr0
たまに、「○○なアップルスクリプトを作ってください!」とか、全く作らない人が頼んでくる場合、
それはAppleScriptでは無理、っていう物が多い。
557名称未設定:2006/03/28(火) 09:54:45 ID:Lpu5XxP70
ターミナルで、ちょっと通りますよの人が横切るコマンドを
作って下さい。
558名称未設定:2006/03/28(火) 10:13:31 ID:HJf4mNh40
そんなものにまでわざわざアップルスクリプト使うことないやん。
559名称未設定:2006/03/28(火) 15:45:57 ID:9VKqD1W60
エスケープシーケンス制御できんのかな。

エスケープシーケンスアニメなんて技術もあったよなぁ……。
アスキーアートはすっかり復権してるけど。
560名称未設定:2006/03/28(火) 16:42:11 ID:fw335V890
一発でOSXからOS9の起動ディスク指定して再起動するアップルスクリプト作ってください。
561名称未設定:2006/03/28(火) 16:49:43 ID:X4Bb5zfB0
>>557
slでできるんじゃないの?

>>558
557は556を受けてのネタのような気が。
562名称未設定:2006/03/29(水) 18:42:50 ID:feiPC4VM0
>>560
tell application "System Preferences"
activate
reveal anchor 1 of pane id "com.apple.preference.startupdisk"
--reveal anchor 1 of pane "起動ディスク"
end tell

tell application "System Events"
tell process "System Preferences"
repeat until (exists button "Mac OS J1-9.2.2 (Macintosh HD 上)" of radio group 1 of scroll area 1 of group 1 of splitter group 1 of window 1)
delay 1
end repeat
click button "Mac OS J1-9.2.2 (Macintosh HD 上)" of radio group 1 of scroll area 1 of group 1 of splitter group 1 of window 1
delay 1
click button 6 of window 1
-- click button "再起動..." of window 1
repeat until (exists sheet 1 of window 1)
delay 1
end repeat
keystroke return
end tell
end tell

ボタンをクリックしてシステムを選択する部分だけどうしても言語環境に依存せざるを得ませんでした。
OS 9が必ず「button 2」になると決まっていればできなくもないけど。

click item 1 of (every button whose name contains "9.2") of radio group 1 of scroll area 1 of group 1 of splitter group 1 of window 1

というのも考えたけどいまいち。
563名称未設定:2006/03/29(水) 19:11:30 ID:H2qe5PdB0
何かblessとか使ったやつがあるはず。昔作ったし、シェアウェアにしてる人もいるし。
564名称未設定:2006/03/29(水) 19:18:07 ID:5lj1jkky0
>>560
do shell script "/usr/sbin/bless -folder9 'OS9システムフォルダposixパス' -setBoot" password "うにゃ" with administrator privileges
ignoring application responses
tell application "Finder" to restart
end ignoring
565名称未設定:2006/04/04(火) 21:35:51 ID:Qt9k3R830
スクリプト書類をひな形にするとアイコンがOS9のになる
566名称未設定:2006/04/04(火) 21:42:21 ID:9hnx1ZWk0
ひな形ってOSXでもきちんと動いてたっけ。
567名称未設定:2006/04/04(火) 22:23:50 ID:Qt9k3R830
>>566
○○のコピーってのが勝手に作られる
568名称未設定:2006/04/08(土) 00:35:46 ID:7JP3EugF0
ドラッグ&ドロップ形式で作ったスクリプトで、
選択したファイルのクラスを表示させるとaliasがalisと表示される。
569名称未設定:2006/04/08(土) 02:39:01 ID:Dhlu5MBO0
文字列変換されてないんでしょ

display dialog alias
display dialog (alias as string)
570名称未設定:2006/04/08(土) 03:59:42 ID:7JP3EugF0
あーほんとだ。
docfとかと同じあれか。
571名称未設定:2006/04/10(月) 15:53:46 ID:+4WadjwP0
フォルダ内のText書類を一括でRTF書類に変換するものを作っていただけませんでしょうか?
一つ一つテキストエディットでRTFにしていってるのですがあまりに大変で...。
余力のある方がいらっしゃいましたら宜しくお願いします。
572名称未設定:2006/04/10(月) 20:20:25 ID:hrIkS/SM0
こんな感じか。前提条件を厳しくしてあるけど。

set theSource to choose folder with prompt "Source:"
set theDestination to choose folder with prompt "Destination:"
tell application "Finder" to set theFiles to every file of folder theSource whose name ends with ".txt"
repeat with aFile in theFiles
set newName to do shell script "echo " & name of aFile & " | sed 's/\\.txt/.rtf/'"
tell application "Finder"
set newFile to (make new file at folder theDestination with properties {name:newName}) as string
open aFile
end tell
tell application "TextEdit"
activate
tell application "System Events"
keystroke "t" using {command down, shift down}
end tell
save front document in newFile as alias
close front document
end tell
end repeat
573名称未設定:2006/04/10(月) 21:13:00 ID:+4WadjwP0
>>572
本当に助かります。
ありがたく使わせていただきます。
もし宜しければ拡張子がつくようにしてみたいのですがご指導願えますか?理由はWクリックでテキストエディタで開く分には問題ないのですがなぜかアイコンが消えて白紙になってしまいました。
574名称未設定:2006/04/10(月) 21:25:50 ID:ZHic7eqs0
>>573
白紙になるのは再起動すれば直ると思われ
575名称未設定:2006/04/10(月) 21:31:06 ID:ZHic7eqs0
>>572
僭越ながら、5行目をにするとベターかと
set newName to do shell script "echo " & quoted form of a & " | sed 's/¥¥.txt$/.rtf/'"
576名称未設定:2006/04/10(月) 21:35:52 ID:ZHic7eqs0
あ間違えた
set newName to do shell script "echo " & quoted form of name of aFile & " | sed 's/¥¥.txt$/.rtf/'"
577名称未設定:2006/04/10(月) 23:50:44 ID:+4WadjwP0
>>572さん、576さん
どうもありがとうございます。
今から早速試してみます。お忙しいとこ本当にありがとうございます。
嬉しいです。
578名称未設定:2006/04/13(木) 13:43:13 ID:O6gt2D110
特定のフォルダーからファイル名のリストを取得するスクリプトなんですが、
OS10.3から10.4にバージョンを上げたところ
リストがおかしくなってしまいました。
10.3の時は「10001.jpg」
10.4では「1 0 0 0 1 . jpg」
となってしまいます。何が原因か全く検討がつきません。
どなたか、原因の解る方がおられましたらアドバイスいただけないでしょうか。
宜しくお願いします。
copy cell "basepath" of current record to theBasePath
set aPath to theBasePath as string
set aFolderA to (aPath & "gazou:") as alias
set aContA to "" as text
tell application "Finder"
try
move file (aPath & "list_full.txt") to trash
end try
set aListA to (every file of aFolderA)
repeat with aFile in aListA
set My_Name to name of aFile
set aContA to (aContA & My_Name & return)
end repeat
try
set fileNum to open for access file (aPath & "list_full.txt") with write permission
write (aContA) to fileNum
close access fileNum
end try
end tell
579名称未設定:2006/04/13(木) 13:52:56 ID:1IaWW36v0
>>578
解決策になってないけど、同じことをやる別の手段として
set aContA to do shell script "ls -v フォルダのパス > ~/Desktop/list_full.txt"
これでやってみては?
580名称未設定:2006/04/13(木) 14:10:06 ID:08SROwcS0
>>579
早速のレスありがとうございます。
非常に勉強になりました。
>"ls -v フォルダのパス > ~/Desktop/list_full.txt"
この場合のフォルダのパスをアップルスクリプトで取得済みの変数
で処理することはできるのでしょうか。
581名称未設定:2006/04/13(木) 14:15:22 ID:1IaWW36v0
aFolderAがそのフォルダなら
do shell script "ls -v "& aFolderA &" > ~/Desktop/list_full.txt"
これですむね。基本的にテキスト扱いでOKよ。
> ~/Desktop/list_full.txt
は出力先なので、任意のパスで。
582名称未設定:2006/04/13(木) 14:18:28 ID:1IaWW36v0
あ、重要なことを忘れてた。
パスはaliasではなくPOSIX pathで。
set aFolderA to POSIX path of ((aPath & "gazou:") as alias)
583名称未設定:2006/04/13(木) 14:27:06 ID:08SROwcS0
>>582
びっくりしました。
こんなに早く解決出来るとは・・・
正直気が狂いそうになってました。

感謝の言葉以外にありません。
ありがとうございました。
これからももっと精進いたします。
584名称未設定:2006/04/13(木) 16:18:26 ID:I26FV3KU0
ふとautomatorで
選択したファインダー項目を取得

フォルダの内容を取得(見つかった各サブフォルダからも取得する)

新規テキストファイル

で作ってみた。内包するフォルダの中身も取れるしドラッグ&ドロップで
動作してイイ、と思ったが…クソ遅かったです('A`)
585名称未設定:2006/04/15(土) 15:39:34 ID:JMQmWsMh0
あの--スリープに切り替えるのではなくて、imacのような液晶のブライトネスが0にならないものを
0にするようなscriptってありますでしょうか?
PBとかノート型は環境設定の基本設定で0になるんですがIMACとかPB型のものはならなくて。。
必要のないときにバックライトが切れてほしいのです。
ご存知のかたご助言いただければ幸いです。
586名称未設定:2006/04/15(土) 15:48:40 ID:L0YbjH+q0
>>585
「省エネルギー設定」に「ディスプレイをスリープさせるまでの時間」って項目ないの?
587名称未設定:2006/04/15(土) 16:15:33 ID:AjBbvRMx0
#!/bin/csh

touch ./nuko.txt

@ i = 1

while ($i <= 9999 )
 echo 'ぬこかわいいよぬこ' >> ./nuko.txt
 @ i++
end
588名称未設定:2006/04/15(土) 16:19:42 ID:JMQmWsMh0
ワンクリックで一瞬でバックライトをきれればとおもっているのですが。。。
スリープでやってみたのですがと最低でも一分待たないとだめですよね。。
589名称未設定:2006/04/15(土) 16:26:18 ID:L0YbjH+q0
>>588
うーん。AppleScriptの領域じゃないと思うよ。

>>587
最初のtouchは必要?>>でもファイルが無ければ作ったような気が。
590名称未設定:2006/04/15(土) 16:27:30 ID:L0YbjH+q0
ああそうか。touchで、ねこにさわる、という事を表しているのかな。
無駄レスすまん。
591名称未設定:2006/04/18(火) 14:48:16 ID:vHrGxhgg0
AppleScriptでiTunesをコントロールして、

午前中、午後、夕方で、プレイリストを切り替えて、各プレイリストの中でシャッフルプレイする。

...のは、可能でしょうか?
自分で調べたのでは、分かりませんでした。
どうかお願いします。
592名称未設定:2006/04/19(水) 19:19:24 ID:qNXCxKOR0
>>591
可能。プレイリストにtellしてplayする。
朝昼晩三つのスクリプトを用意するか時間判別するかして
cronで呼び出しでもすればいい。
593名称未設定:2006/04/20(木) 11:41:59 ID:H144QjvH0
アップルスクリプトからcrontabを編集するのは無理だよね?
594名称未設定:2006/04/20(木) 12:20:38 ID:rO2rAVS10
このスクリプトで問題無く書く出せるのですが、
シェルでシンプルにしようと書き出し部分を下記2行のような方法で
行えると思ったんですが、上手く行きません。何がいけないんでしょうか。
どなたかご教授ねがえたらアドバイス願いします。
set A to B
do shell script "cd ~/desktop; echo " & A & " > a.txt"
-------------------------------------------------------------------
set A to readSomeLines(choose file of "", 50)
set aPath to "Macintosh HD:Users:Shared:testdb:"
try
move file (aPath & "list.txt") to trash
end try
try
delete file (aPath & "list.txt")
end try
try
set fileNum to open for access file (aPath & "list.txt") with write permission
write (A) to fileNum
close access fileNum
end try

on readSomeLines(theFile, theLine)
set textData to ""
try
open for access theFile
repeat theLine times
set textData to textData & (read theFile until return)
end repeat
end try
close access theFile
return textData
end readSomeLines
595名称未設定:2006/04/20(木) 12:27:42 ID:H144QjvH0
>>594
よく見てないけど、とりあえずお約束として、こうしとく
do shell script "cd ~/desktop; echo " & quoted form of A & " > a.txt"
596名称未設定:2006/04/20(木) 13:20:53 ID:RcuP25d50
>>595
quoted form of
こんなの全然しりませんでした。すごいですね。ありがとうございました。
597名称未設定:2006/04/20(木) 13:27:25 ID:qpgUYt/S0
とりあえずAppleのdo shell scriptのページは隅から隅まで読んだ?
598名称未設定:2006/04/20(木) 14:08:24 ID:ic5pccqx0
>>597
そのページの存在すら知りませんでした。
599名称未設定:2006/04/20(木) 14:23:47 ID:H144QjvH0
あとシェルで書き出す場合、基本的に既存のファイル名と同じ場合は上書きされるので、
古いファイルをゴミ箱に捨てる作業は不要。
600名称未設定:2006/04/20(木) 16:56:37 ID:vGXrsKL70
>>599
了解です。
ありがとうございます。
601名称未設定:2006/04/20(木) 17:44:47 ID:qpgUYt/S0
いやAppleScriptでやる場合も既存のファイルをオープンして書けば同じ事のような…。
まあいいか。
602名称未設定:2006/04/20(木) 22:27:10 ID:k/oqrw/J0
>>592
サンクス!!
(お礼が遅くなってスマソ)
603名称未設定:2006/04/21(金) 23:25:18 ID:JGE4Xn7h0
>>593
do shell scriptでできるんじゃない?
604名称未設定:2006/04/22(土) 00:29:51 ID:wVxBRr3M0
>>603
do shell script "crontab -e"
ってやると止まっちまう。
ターミナルを立ち上げないとviで編集しようがないから。
605名称未設定:2006/04/22(土) 06:31:10 ID:GDWKQcEm0
ファイル名に.mp3が含まれてる場合だけ
ファイルタイプMPEG、クリエータータイプTVODに変更したいんですが、
名前に〜が含まれる場合というのはどうやればいいでしょうか?
606名称未設定:2006/04/22(土) 06:54:49 ID:6UDGvqLM0
--Finderで選択中の物の中で.mp3で名前が終わるファイルの
--クリエータとファイルタイプを変更するスクリプト
tell application "Finder"
repeat with aFile in (every file of selection whose name ends with ".mp3")
set creator type of aFile to "TVOD"
set file type of aFile to "MPEG"
end repeat
end tell

>>605
start withとかends withとかcontainsとかis inとかを使う。
607名称未設定:2006/04/22(土) 07:10:28 ID:6UDGvqLM0
>>606の上のスクリプト、動かなかった。ごめん。
608名称未設定:2006/04/22(土) 07:28:02 ID:6UDGvqLM0
結局、10.4.6/AppleScript 1.10.6/スクリプトエディタ 2.1.1の環境では、
下記のような物しか動かないみたいだな。
tell application "Finder"
repeat with aFile in (selection as list)
if name of aFile ends with ".mp3" then
set creator type of aFile to "hook"
set file type of aFile to "MPG3"
end if
end repeat
end tell
609名称未設定:2006/04/22(土) 14:30:50 ID:yP/F5ojC0
>>606-608
即レスありがとうございます。

>start withとかends withとかcontainsとかis inとかを使う。
しかも勉強になりました。
610名称未設定:2006/04/22(土) 14:47:30 ID:6UDGvqLM0
後から気付いたけど、OSXでXcode入ってる環境だったら、
この目的には、do shell scriptでSetFile呼び出したほうが速い。
大量のファイルの処理になるとかなり速度に差が出ると思う。
>>95参照されたし。
611名称未設定:2006/04/24(月) 17:08:34 ID:aGiVrMob0
レス違いだったら申し訳有りません。
ファイルメーカー用に使用するスクリプととし用意した物なんですが、
(read theFile until return)の部分を受け付けてくれません。
何故受け付けてくれないのかが解りません。
スクリプトエディタ上では問題無く動くんですが・・・。
詳しい方、アドバイスいただけないでしょうか。宜しくお願いします。

set A to readSomeLines(choose file of "", 200)

on readSomeLines(theFile, theLine)
set textData to ""
try
open for access theFile
repeat theLine times
set textData to textData & (read theFile until return)
end repeat
end try
close access theFile
return textData
end readSomeLines
612名称未設定:2006/04/25(火) 00:58:02 ID:0oZrNNc+0
OSとアプリのバージョンも書いとけよ。

どのみち俺はFM持ってないから試せんが。
613名称未設定:2006/04/25(火) 03:46:55 ID:JTmXt24g0
>>610
Script Additions の read とFM Proの中のなにかの名前がぶつかってるからだろうな
外部にスクリプトを置くとか、その部分だけ他のアプリ(Finderとか)のtellでくくるとか、
生Apple Event(《event rdwrread》)で呼び出すとか
614名称未設定:2006/04/25(火) 03:47:53 ID:JTmXt24g0
上は
>>611
だった。すまん
615名称未設定:2006/04/25(火) 08:30:50 ID:LtUkaBS/0
>>612
>>613

即レスありがとうございます。
OS:10.4.6
FM7
です。
>その部分だけ他のアプリ(Finderとか)のtellでくくるとか、
試してみます。
616名称未設定:2006/04/25(火) 08:48:05 ID:RiqNhc2e0
何の用語って明言する構文がなかったっけ?
617名称未設定:2006/04/25(火) 09:11:51 ID:qm6yILcfP
using terms from
618名称未設定:2006/04/25(火) 09:22:16 ID:XuD+ug2Q0
>>617
初めて聞いた用語だ。オクブカス
使い方が特殊みたいね。
619名称未設定:2006/04/25(火) 11:56:31 ID:jZ+mddwa0
>>615
解決することができました。皆さんありがとうございました。
620名称未設定:2006/04/25(火) 15:26:53 ID:ETfJTrlj0
>>619
アドバイスを基に修正したのですが、更に上手く行かない箇所があります。
set A to readSomeLines(theBasePath of "", 200)
なんですが、set A to readSomeLines(choose file of "", 200)を基に
別途取得したパスを使って指定のファイルから読み込みしたいのですが、
何が足りないんでしょうか。
へたれですみませんが、アドバイスお願いします。


copy cell "path" of current record to theBasePath

set A to readSomeLines(theBasePath of "", 200)
do shell script "cd ~/desktop/imageget/script; echo " & quoted form of A & " > C.txt"

on readSomeLines(theFile, theLine)
tell application "Finder"
set textData to ""
try
open for access theFile
repeat theLine times
set textData to textData & (read theFile until return)
end repeat
end try
close access theFile
return textData
end tell
end readSomeLines
621名称未設定:2006/04/25(火) 16:41:06 ID:4WdqAxew0
>>620
自己レス
解決できました。ご迷惑おかけしました。
622名称未設定:2006/04/25(火) 20:37:09 ID:jSgkO1Oq0
どこをどう修正したら解決できたかも書いておくと、
君みたいな人が今後助かるという互助主義はいかがかな?
623名称未設定:2006/04/26(水) 16:53:41 ID:8cpfeIVZ0
FMの掲示板にもマルチしてるような奴に言っても無駄
624名称未設定:2006/04/26(水) 16:57:33 ID:y5OsEivK0
日本語のAppleScriptのメーリングリストが、さっぱり投稿が無くなってるみたいですね。
皆それぞれAppleScriptを使ってはいるのだろうか。
625名称未設定:2006/04/27(木) 20:29:50 ID:RU0kCUUg0
>>624
あそこはすでに廃墟になったよ。
今頃購読者数なんて>>624くらいだろ。管理人も失踪したし
626名称未設定:2006/04/27(木) 21:09:45 ID:xv0cGDCW0
みんな次のステップへ巣立っていったんじゃ?
627名称未設定:2006/04/28(金) 10:21:06 ID:0AxBtDxT0
>>622
set aFile to theBasePath as alias
を追加しました。

copy cell "path" of current record to theBasePath
set aFile to theBasePath as alias

これでset A to readSomeLines(theBasePath of "", 200)を実行できるようになりました。


>>623 FMの掲示板にもマルチしてるような奴に言っても無駄
すみません。以後注意します。
628名称未設定:2006/04/29(土) 21:31:59 ID:hmcquEri0
URL Access Scriptingのdownloadでファイルを
ダウンロードするものを作ってます。
ダウンロードに時間がかかるのでprogressをyesにして経過を表示させたいのですが
表示されません。
スクリプトは
tell application "URL Access Scripting"
activate
download theURL to file thePath with progress
end
です。どうすれば表示されるのでしょうか?
OS 10.4.6です。
629名称未設定:2006/04/30(日) 20:11:24 ID:DErkdcLYP
628です。URL Access Scriptingだと進行状況がわからない&キャンセルできないので
ターミナルでcurl使ってダウンロードすることにしました。
保存するファイル名を指定できるAppleScript対応ダウンローダーってありますかね。
YouTubeからファイル名をタイトルにしてムービフォルダに動画を保存するスクリプト。
日本語ファイル名は試してない。
tell application "Safari"
set theURL to URL of document 1
set theTitle to name of document 1
set theTitle to text 11 thru -1 of theTitle
end tell
if theURL starts with "http://www.youtube.com/watch?v=" then
--動画表示ページからURLを抜き出す
set theFLVURL to do shell script "curl --max-time 30 " & quoted form of theURL & " | perl -e '$data = join(q||,<>); ($tmp, $key) = split( q{player.swf?}, $data ); ($key) = split( q{\"},$key ); print qq{http://www.youtube.com/get_video$key}; '"
--保存フォルダ
tell application "Finder"
set theFolder to (home as string) & "Movies:"
set theSavePath to theFolder & theTitle & ".flv"
set isExist to exists (file theSavePath)
end tell
if isExist then
say "already exists " & theTitle
else
tell application "Terminal"
do script "curl -L -o " & quoted form of POSIX path of theSavePath & " " & quoted form of theFLVURL & "; say finish download"
end tell
end if
end if
630名称未設定:2006/05/01(月) 21:53:30 ID:NS8ywTZU0
すいません。基本的な事ですが、
choose file nameなどを使った時にダイアログが文字化けする問題、
どうやって解決すればいいんでしたっけ?
バンドルアプリケーション形式で保存して、
中のplistをどうにかするか、中にJapanese.projというフォルダを作る?か、
そんな感じだったと思うのですが、思い出せません。
631名称未設定:2006/05/01(月) 21:56:58 ID:AIonNJIr0
(1) 保存時の「フォーマット」を「アプリケーションバンドル」に。
(2) Finderで「Japanese.lproj」という名前の空フォルダを作っておく。
(3) Finderで(1)で保存したアプリを選択し、
  情報を見る=>言語=>追加で、(2)のJapanese.lprojを選ぶ。
(4) 情報を見る=>言語で、「Japanese」にチェックがついていることを確認。
632名称未設定:2006/05/01(月) 22:25:40 ID:NS8ywTZU0
>>631
ありがとん。
633名称未設定:2006/05/02(火) 19:30:08 ID:OkuzRmGz0
Unicodeで指定城
choose file name with prompt <<data ut1630D530A130A430EB540DFF1F>>
634名称未設定:2006/05/02(火) 19:54:03 ID:QadQ57IB0
ほほー。おもしろそうですね。
でもダイアログのタイトルバーが化けちゃうんですよ。
635名称未設定:2006/05/03(水) 23:03:58 ID:57w6xGtD0
普段こんなのでJapanese.lprojを追加してます。

--Finder 上でアプレットを選択して実行
tell application "Finder"
activate
set applets to {}
set appNames to ""
repeat with j in (selection as list)
tell application "System Events"
set pkBool to package folder of (j as alias)
set creatorType to creator type of (j as alias)
end tell
if (pkBool is true) and (creatorType is "aplt") and (exists folder "Japanese.lproj" of folder "Resources" of folder "Contents" of (j as alias)) is false then
set applets to applets & (j as alias)
set appNames to appNames & (name of (j as alias)) & return
end if
end repeat
if not applets is {} then
display dialog appNames & return & "に Japanese.lproj を追加します。"
repeat with jj in applets
make new folder at folder "Resources" of folder "Contents" of (jj as alias) with properties {name:"Japanese.lproj"}
end repeat
display dialog "完了" buttons {"OK"} default button 1 giving up after 1
else
display dialog "Japanese.lproj を追加する必要がないようです。" buttons {"キャンセル"} default button 1 giving up after 2
end if
end tell
636名称未設定:2006/05/03(水) 23:13:31 ID:WmZBc3dT0
おー。いいですねえ。スクリプト開発のためのツールもスクリプトで。
これぞって感じですね。
637名称未設定:2006/05/03(水) 23:14:53 ID:57w6xGtD0
if (pkBool is true) and ((creatorType is "aplt") or (creatorType is "dplt")) and (exists folder "Japanese.lproj" of folder "Resources" of folder "Contents" of (j as alias)) is false then

ってしないとドロップレットには使えないことに気付いた。すまんこ。
638名称未設定:2006/05/06(土) 20:35:42 ID:zECA/cNy0
>>628
試してないけど、iAlertとかGrowlのアラートウインドウを使って

(完了したDL数)/(DLする総数)

みたいな文字列を表示させればいいんじゃまいか。
639名称未設定:2006/05/07(日) 16:16:39 ID:b9F01q2j0
tell application "Safari" to get source of front document
とすると、htmlのテキストデータを得られるのですが,これと同じ事をFirefoxでもできませんか。

tell application "Firefox" to get source of front documentではもちろんだめでした。
class of pTitやclass of curlなどでは、タイトルとURIしかえられません。

get properties of front windowとしてもそれらしいクラスが無いので,無理なのでしょうか?
640名称未設定:2006/05/07(日) 16:39:50 ID:GmGQj0yb0
>>639
無理
641名称未設定:2006/05/07(日) 17:02:52 ID:3861gjpq0
URLが得られれば、URL Accessとかdo shell scriptなんかでwgetとかcurlに渡せばいいんでは。

tell application "Firefox" to set myURL to ↓class curl⊇ of front window
set mySource to do shell script "curl " & myURL

mySourceにページのソース入ってる。
642名称未設定:2006/05/07(日) 21:14:29 ID:TRxhAofs0
class curlのカッコが凄い事になってるな。
それを避けて扱いやすくする方法がある。
下記の場合、コンパイルする時に、その環境にiCabがインストールされている事が必要。

tell application "Firefox"
using terms from application "iCab"
set urlStr to URL of window 1
end using terms from
end tell
set htmlStr to do shell script "curl -s " & urlStr
643名称未設定:2006/05/13(土) 21:59:12 ID:ZQJEXtk30
>>629
新しいインターフェースに対応したやつに改造したいけどASわからない・・・
644名称未設定:2006/05/13(土) 22:13:59 ID:3KCNrIX4P
>>643
http://pc7.2ch.net/test/read.cgi/mac/1147098915/39
に改善したのをちょうど書いた所です
645643:2006/05/14(日) 00:06:54 ID:KLW/UlP00
>>644
ありがとうございます!
646名称未設定:2006/05/19(金) 18:17:38 ID:oCIZ0S/m0
はじめまして。
皆様に教えていただきたいのですが・・・。

command keyを押し続けるだけのスクリプトはどうやって書くのでしょうか?

647名称未設定:2006/05/19(金) 18:22:29 ID:GnKilBEA0
環境を明示しろやボケ
648名称未設定:2006/05/19(金) 18:25:55 ID:oCIZ0S/m0
>>647

失礼いたしました。

OS10.4.6をしようしております。
649名称未設定:2006/05/19(金) 18:26:15 ID:NIuD8sz00
>>646
やりたい事もちゃんと書かないと思った通りに動かないよ。たぶん。
650名称未設定:2006/05/19(金) 18:29:03 ID:oCIZ0S/m0
>>649

そうですね。

マイティマウスのボタン4に割り当てをしたいのです。
651名称未設定:2006/05/19(金) 18:34:24 ID:NIuD8sz00
コマンド+クリックを割り当てたいわけか。
それは厳しいと思うよ。
それができるマウスドライバを買うか、
ドライバ付きのマウスを買った方がいんじゃないかな?
652名称未設定:2006/05/19(金) 18:36:00 ID:MORdrpex0
例えば
3ボタン:コマンド+A
1ボタン:クリック

で、コマンド+Aが無効になる場合、コマンド+クリックがはたらく。
653名称未設定:2006/05/19(金) 18:36:33 ID:oCIZ0S/m0
>>651

ボタン4とクリックホイール左右を使用したかったんです・・・。

やっぱり無理ですか・・・。

654名称未設定:2006/05/19(金) 21:13:05 ID:c3c8cvK10
つか一週間前に買った
マックブック買えばよかった
655名称未設定:2006/05/27(土) 23:01:06 ID:AGrn3QjO0
MacBookに外付けLCDで常用してます
で、たまにMacBookのLCDも使用してます。

で、AppleScriptを使用してMacBook側の液晶の輝度調整を
キーボードショートカットに割り当てることはできないモノでしょうか?
たとえばCtrl+Aで輝度0、Ctrl+Bで輝度50%、Ctrl+Cで輝度100%とか。
656名称未設定:2006/05/28(日) 00:26:01 ID:eCIysfGT0
無理。
Keyboard Maestroでできるようだ。シェアウェア。
金が惜しいなら自分で探せ。
http://www.keyboardmaestro.com/documentation/2/actions.html#actions_system
657名称未設定:2006/05/28(日) 01:03:29 ID:4rX/xyxl0
なぜ無理?
658名称未設定:2006/05/29(月) 00:57:52 ID:t7sXnzxS0
>>630,631
よくわからんのだが、情報ウインドウの言語に「Japanese」にチェックが
ついていても他人に配布したら文字化けしたって言われることがときどきある

何故なんだ??
659名称未設定:2006/06/01(木) 21:56:35 ID:qwcEQxpE0
>>658
(1) 保存時の「フォーマット」を「アプリケーションバンドル」に。
(2)Info.plistのCFBundleDevelopmentRegionをjapaneseにしる。

Japanese.lprojは、特に必要ない。

CFBundleDevelopmentRegionがEnglishのままだと、pantherで化ける。

で、最近のScriptEditorか、AppleScriptだと治ってたような気がす。
660名称未設定:2006/06/02(金) 09:58:44 ID:NFRPeJ/W0
>>659
Thx
でも CFBundleDevelopmentRegion も japanese にしてあるんだよなー
う〜んう〜ん
661名称未設定:2006/06/02(金) 10:00:51 ID:NFRPeJ/W0
あっ Japanese だった。
もしかして小文字じゃないといけないのかな?
662名称未設定:2006/06/03(土) 22:28:15 ID:WHCsOstf0
Opera 9がAppleScript対応してます。
何か、IEとかiCabとか昔のNetscapeとかの、古めのブラウザの用語をごちゃまぜにしたような
変わった感じの印象を受ける用語辞書だけど、基本的な事はできるようになった模様。

無料になってすぐ落としてみた時は対応してなかったんだけどね。
公式のフォーラムで外国の人が「対応しないの?」って書き込んでるのに対しても
「予定なし」って書いてあったから、対応しないつもりかと思ってた。
663名称未設定:2006/06/04(日) 17:00:33 ID:FjBMWmwQ0
そういえば、PagesがAppleScriptに対応したよーという話をあんまり聞かないね。
Operaダウンロード中。
664名称未設定:2006/06/04(日) 19:12:29 ID:8QbESrZa0
>>663
> Pages
対応したの?というかむしろ、前は対応してなかったの?
665名称未設定:2006/06/04(日) 20:22:30 ID:FjBMWmwQ0
してなかった。
666名称未設定:2006/06/04(日) 20:41:30 ID:7I3E149s0
macを指定時間に起こす方法を調べています。
do shell scriptで以下のスクリプトをadmin権限で実行すれば
いいのは分かったのですが、どうも挙動が変なのです。

pmset schedule wakeorpoweron "mm/dd/yy HH:MM:SS"

登録後にコマンドラインで確認すると、
$ sudo pmset -g sched
Scheduled power events:
[0] wakeorpoweron at 06/04/06 20:45:00
[1] wakeorpoweron at 06/04/06 20:45:00
と言う感じで、なぜか2行出てくるのです。
一応キチンと動くのですが、こういうものなんでしょうか?
667名称未設定:2006/06/04(日) 21:05:13 ID:8QbESrZa0
よくそんな情報見つけますね。
ttp://www.macosxhints.com/article.php?story=2005122507424492
の最後の書き込みにtwiceがどうのと書いてあるようですが、
解説があるわけじゃないのかな?
pmsetのman見ても何もわからないでしょうか。
ttp://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/pmset.1.html

ターミナルじゃなくシステム環境設定の省エネルギーからスケジュール入れて、
その時にpmset -gでどう表示されるか見てみてはどうですか?
結果が同じように二重ならたぶんOKという感じで。
668名称未設定:2006/06/04(日) 22:04:50 ID:FjBMWmwQ0
cronみたいに定期的にスリープから起こしてスクリプト起動ってできないかね。
669名称未設定:2006/06/04(日) 22:21:49 ID:8QbESrZa0
cronだとスリープしてても起こせるのか。それは便利だね。
OSXになってUNIX系のツールがスクリプトに応用できて
それはそれで便利だが、
そっちがあるからいいだろうみたいな感じで
AppleScriptの手を抜かれるのは困る。
もっとAppleScriptに力を入れてくれ〜。
670名称未設定:2006/06/05(月) 01:58:30 ID:E7bVUrFl0
cronだとわざわざviで入力しなけりゃならんからめんどい
671名称未設定:2006/06/05(月) 03:11:57 ID:48DcA1Xe0
>>670
> わざわざviで入力しなけりゃならん
そうなのか?
672名称未設定:2006/06/05(月) 05:39:28 ID:hVWqZ6WP0
>>669
あ、ごめん。cronではできないと思う(実はできる?)。
「cronみたいに」は「定期的に」にかかってます。
>>670
そんなことないっしょ?
crontab -eで起動するエディタは環境変数EDITORで変わるんでないかな。
でも、viも覚えると便利だよ。
673名称未設定:2006/06/05(月) 16:13:37 ID:GZK2jW4qP
674名称未設定:2006/06/06(火) 00:06:13 ID:UZ7+gRGn0
>>666
/Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist
をみると、
poweronで一項目、wakeで一項目ってなってるから、
電源OFF、スリープの両方に対応できるようにってことじゃないか?
って、家の設定はeyeTVがやったやつだけど
675名称未設定:2006/06/08(木) 11:59:35 ID:0aDeE2Ny0
下記シェルの部分でファイルの一覧は取得、書き出しできるのですが、
フォルダーの一覧の場合に書き出しできません。良い方法があればご教授願えないでしょうか。
宜しくお願いします。

set aPath to (theBasePath & "Image:General:") as string
set aFolderA to POSIX path of ((aPath & "photo:") as alias)
set aFolderB to POSIX path of (aPath as alias)
set aContA to "" as text
set aContA to do shell script "ls -v "& aFolderA &" > "& aFolderB &"/list.txt"
end tell
676名称未設定:2006/06/08(木) 13:05:33 ID:NM8RurzK0
言ってる意味がわからん。ls -d を使えばええよ、ってこと?
677名称未設定:2006/06/08(木) 14:07:19 ID:JH73+in50
>>1349
>set aContA to do shell script "ls -v "& aFolderA &" > "& aFolderB &"/list.txt"
最後の/が余分でした。失礼しました。
678名称未設定:2006/06/08(木) 14:12:54 ID:LTQjNtXb0
完全に独り言だな…。
679名称未設定:2006/06/08(木) 17:33:47 ID:NMMYFvSd0
1349!!?
680名称未設定:2006/06/16(金) 22:56:05 ID:OiTL74go0
質問です。
スクリーンキャプチャを撮影したファイルを直接ある外付けHDに書き込みたいのですが、
do shell script "screencapture /Volumes/hd/desktop/aaa.png"
とやってもSyntax Errorと出て動きません。

どうしたらよろしいのでしょうか?
681名称未設定:2006/06/16(金) 23:29:50 ID:+g3YTBzU0
do shell script "screencapture ~/Desktop/aaa.png"
ウチではちゃんと動きました。
682名称未設定:2006/06/17(土) 02:39:16 ID:7MnIPeqj0
つづり間違いとか半角スペースが抜けてるとか、
ほかの部分に間違いがあるとかじゃないの?>>680
683名称未設定:2006/06/24(土) 11:12:25 ID:nN7VtVCK0
/hd/desktop/がおかしいかな。
デスクトップはユーザー以下だから>>681な書き方かと。
詳しくないから間違ってたらすまんです。
684名称未設定:2006/06/24(土) 12:08:06 ID:wMrkz/ut0
まずTerminalで自分がいじりたいフォルダのパスを確認すべしだね。
685名称未設定:2006/06/25(日) 20:33:47 ID:7e+enAWv0
USB 1.1の外付け直下にいつのまにか「デスクトップ」ができてたので

screencapture /Volumes/ボリューム名/desktop/aaa.png

ってやってみたけど問題なかったよ。
686名称未設定:2006/06/26(月) 08:11:12 ID:WtRhSijb0
それ何が作ったフォルダだろうね。
OS9が作るやつは「Desktop Folder」みたいなんだが…。
687名称未設定:2006/06/26(月) 08:12:22 ID:WtRhSijb0
あとシェルスクリプト使う時は一応大文字小文字は気にしたほうがいいんじゃ…。
688ゴミ箱をrmコマンドで空にする1/2:2006/06/26(月) 12:05:25 ID:Y8NVBXjh0
--//ゴミ箱の内容を取得
tell application "Finder"
set |項目リスト| to (every item of trash)
set |項目テキスト| to ("" as Unicode text)
repeat with |項目| in |項目リスト|
set |項目テキスト| to |項目テキスト| & return & (POSIX path of (|項目| as alias)) as Unicode text
end repeat
end tell
--//空なら終了
if |項目テキスト| is equal to ("" as Unicode text) then
display alert "ゴミ箱は空です" message "" as informational buttons {"終了"} default button 1 giving up after 3
return 0
end if
689ゴミ箱をrmコマンドで空にする2/2:2006/06/26(月) 12:05:55 ID:Y8NVBXjh0
--//処理を選択させる
try
display alert "ゴミ箱を空にします!!" message "ゴミ箱の内容:" & (|項目テキスト| as string) as critical buttons {"しない", "ゴミ箱を開く", "OK"} cancel button 1 default button 3
set |選択処理| to (button returned of result)
on error
return 0
end try
--//選択に合わせて処理
if |選択処理| is equal to "OK" then
--//ゴミ箱の内容を削除
set |パスリスト| to every paragraph of |項目テキスト|
repeat with |パス| in |パスリスト|
if (|パス| as Unicode text) is not equal to ("" as Unicode text) then
do shell script "rm -rf '" & |パス| & "'"
end if
end repeat
else
--//ゴミ箱を開く
tell application "Finder"
open trash
end tell
end if
690名称未設定:2006/06/26(月) 14:04:26 ID:WtRhSijb0
変数が日本語なところがしぶいなw
691名称未設定:2006/06/26(月) 16:50:33 ID:DBmFx+YD0
役に立たなさすぎ
692名称未設定:2006/06/26(月) 16:56:01 ID:WtRhSijb0
693名称未設定:2006/06/26(月) 17:58:37 ID:kh73jeiH0
10.3だから動かなかったとか。
694名称未設定:2006/06/27(火) 06:51:21 ID:2+W5KcZM0
作成目的がわからないという事かな?
ゴミ箱が空にできなくなった時のための物なんじゃないの?
たまにそういう初心者質問あるよね。
695名称未設定:2006/06/27(火) 09:05:54 ID:kuhLYFPT0
「ゴミ箱を空にしています」が終了しないバグが未だにあるからね
あと、空にする前にゴミ箱の内容を確認できるのもいいんでない?
rmで削除したほうが早い場合もあるし
696名称未設定:2006/06/27(火) 09:33:56 ID:2+W5KcZM0
> 終了しない
あれはアップルメニューの「最近使った書類」を停止すれば
出なくなるという噂が。
Finder再起動すれば消せるよ。確か。
697名称未設定:2006/06/27(火) 16:33:12 ID:+NyHGUTO0

噂とか確かとか、あやふやなことばっかだな、おい。
お前の存在自体、罪だ。死ね。
698名称未設定:2006/06/27(火) 16:41:48 ID:2+W5KcZM0
はいはい。
699名称未設定:2006/06/27(火) 16:47:21 ID:2+W5KcZM0
確かに言える事は、俺んとこで
以前は頻繁に出ていた症状が最近は出てない。
で、出なくなった後に、
最近使った〜のメニューと関係があるらしいという話を読んだのだが、
その時点で俺は最近使った書類は使ってなかったので、
やはり関係があるのだろうかと思った。

で、症状が出た時の対処法として、
option押してDockのFinderをクリックした時に出るメニュー
「再度開く」でのFinderの再起動をすれば削除できるようになる、
というのをやってた気がするが、最近は症状が出てないので覚えてない、
という事だ。
700名称未設定:2006/06/27(火) 21:21:23 ID:e6u13THN0
688、689をスクリプトエディタに貼付けてそこから実行してみたのですが、
私の環境(OS X 10.4.6)では次のような動きになりました。
私のやり方か環境になにか問題があるのでしょうか。
1. 表示されたゴミ箱の項目が多すぎてボタンが画面の外に。ボタンが押せない
2. たぶんreturnキーを押せばデフォルトのボタンが押されるだろうと思いreturn
3. ガリガリとハードディスクに書き込んでいる音
4. ゴミ箱を開けてみるとまだファイルやフォルダが残っている
5. そういえばさっきたくさん表示された項目はかなり前にとっくに消去したもののような気もするが…気のせい?
6. もう一度実行してみようと思いスクリプトエディタを見るとまだスクリプトを実行中のまま
7. 中止ボタンを押してからもう一度実行ボタンを押す
8. 今度は項目が少ないので直接OKボタンを押せた
9. しかしやはり削除されずまるまる残っている。スクリプトも実行中のまま
701名称未設定:2006/06/28(水) 01:39:30 ID:yt+qu2Kz0
俺も試したけど、これシンボリックリンクはリンク先を削除してるね
>>700 はそれじゃない?
702名称未設定:2006/06/28(水) 03:10:00 ID:i+sbY2lB0
エイリアスをas aliasするとエイリアスファイルそのもののaliasが得られるが
シンボリックリンクだとオリジナルのaliasになってしまう模様。
覚えておかないと危険かもしれん。
703名称未設定:2006/06/28(水) 09:16:11 ID:wta6K/xV0
うーん。そんな事があるのか。
普段、エイリアスだったらどうなるかとかシンボリックリンクだったらとか
考えてなかったけど、やっかいですね。
704688-689 に問題あり:2006/06/28(水) 14:20:33 ID:iZFu8EE80
確認したら確かにシンボリックリンクはオリジナルを削除してます
>>688 の6行目

set |項目テキスト| to |項目テキスト| & return & (POSIX path of (|項目| as alias)) as Unicode text



set |項目テキスト| to |項目テキスト| & return & ((POSIX path of (|項目| as Unicode text)) as Unicode text)

に変えるとシンボリックリンクの問題は解決するようです(OS 10.4.6で確認)
>>700 さん。大切なファイル消しちゃってないですか?だとしたら申し訳ないです。
705700:2006/06/29(木) 01:16:23 ID:aVmYOARU0
>>704
今のところ大切なファイルを消した様子はないです。
もし消していたとしても自己責任で試しているので問題ないです。
気を使っていただいてすみません。
706名称未設定:2006/07/05(水) 01:51:19 ID:ufSTtuTX0
DVDを挿入したときに風呂が起動するようにしたいんだけど
tell application "Front Row"
activate または launch
end tell
これで起動できないなぜ?
707名称未設定:2006/07/05(水) 01:56:55 ID:Rd5tvP1B0
バックグラウンドで起動してるから
708706:2006/07/06(木) 10:12:38 ID:jRb3p9JP0
ひょっとしてAppleScriptじゃFrontRowの起動は無理ですか?
709名称未設定:2006/07/06(木) 10:20:21 ID:DSm0V7LN0
使ってないのでわからないのだが、手で操作する時はどうやって呼び出すの?
710名称未設定:2006/07/06(木) 10:22:41 ID:jRb3p9JP0
キーボードならコマンド+ESCでメニューが立ち上がります
711名称未設定:2006/07/06(木) 10:25:58 ID:DSm0V7LN0
じゃあescのキーのコード?を調べてGUI Scriptingでそのまま再現してみたらどうでしょう。
それ以前に、DVDの挿入はどうやって検知するの?
712名称未設定:2006/07/06(木) 10:29:14 ID:jRb3p9JP0
システム環境設定の「DVDとCD」で挿入されたときにスクリプトを実行するを選ぶだけです
713名称未設定:2006/07/06(木) 10:35:17 ID:DSm0V7LN0
いつの間にかそんな事ができるように…。
714名称未設定:2006/07/06(木) 10:47:37 ID:DSm0V7LN0
key codeを調べる方法については、もう一方のスクリプトスレに載ってました。
http://pc7.2ch.net/test/read.cgi/mac/1111760449/507-508
715名称未設定:2006/07/06(木) 11:34:12 ID:jRb3p9JP0
thx
てかこのスレは発表用でしたね
移動しますありがとうございました。
716名称未設定:2006/07/16(日) 18:53:10 ID:LA5Pcynf0
>>706
当初ハックされた頃は下記のスクリプトで起動できましたが、
今は動かないような...

tell application "System Events"
tell application "Front Row" to activate
key code 53 using {command down}
delay 0.5
key code 53
end tell
717名称未設定:2006/07/17(月) 04:02:22 ID:MCrONrOi0
あれ? ApplescriptでiTunesから情報を取得する構文って最近仕様変わった?

tell application "iTunes"
set hoge to album of current track
end tell

前は↑こういうのでいけてたと思うんだけど、通らない。
718名称未設定:2006/07/17(月) 04:39:38 ID:1HRrO9nI0
問題ありませんが
719名称未設定:2006/07/17(月) 04:44:56 ID:MCrONrOi0
あれー、おかしいな。なんでだろ。
「end of lineがあるべきところですがidentifierが見つかりました」エラーが
2行目最後のtrackの部分で出る。
OS X 10.4.7
iTunes 6.0.5です
720名称未設定:2006/07/17(月) 06:23:53 ID:SjOC3/3J0
あっそ
721名称未設定:2006/07/17(月) 09:41:45 ID:FBn5ELN40
何かタイプミスがあって余計な物が入ってたりするんじゃないですか?
それか、長いスクリプトの一部なら、問題はそこじゃなくて、
もっと前にあるとか。
722名称未設定:2006/07/17(月) 15:28:03 ID:MCrONrOi0
>>721

>>717の内容だけをそのままコピペしても、
いちからタイプし直しても通らなかったです。
が、なぜかMacを再起動させたら、
同じ内容のスクリプトで通るようになりました。謎です。

再起動させる前は、自分で書いたもの以外でも、
ネットから落としてきたiTunesの情報取得系のスクリプト全般が
動きませんでした。
723名称未設定:2006/07/18(火) 03:19:01 ID:mwalplrk0
再起動ぐらい聞く前に試せと言いたいけど言わない。
724名称未設定:2006/07/18(火) 06:24:24 ID:AfM45w4d0
いろいろエラーのあるAppleScriptを試してると、
たまにおかしくなることあるよ。
「AppleScriptのホストが変になる」というのが自分の内部表現(w
725名称未設定:2006/07/18(火) 11:14:46 ID:q9+ZhTXP0
>>723
後から考えるとそうだけど、
スクリプトの構文エラーと再起動って、思考が直接的に結びつかなくって。
726名称未設定:2006/07/18(火) 13:42:22 ID:8WQteKpd0
AppleScript Studio使って作られたソフトとかあるから
そういうの使ってて何かおかしくなったりしたのかもね。
727名称未設定:2006/07/19(水) 00:32:09 ID:MroxpPSZ0
AppleScript StudioはCocoa-Javaのように消えてくだろ
728名称未設定:2006/07/19(水) 06:05:58 ID:xXHCkYjT0
LeopardにはRubyCocoaバンドルらしいので、
そっちに流れていくかもね。
729名称未設定:2006/07/19(水) 22:02:22 ID:aPAeVTVh0
>>722
俺も一部の自作スクリプトがiTunes6.0.5にしたら動かなくなった。
動かないのは、選択したトラックを取得するのに、うっかり
「set 変数 to a reference to selection」にしてなかったやつ。
これを書かないと以前から動いたり動かなかったりしてた。
730名称未設定:2006/07/19(水) 22:02:45 ID:tKMQMkXJ0
質問なんですが、AppleScriptで
「アプリケーションのプロセスを待って動作させる」というようなスクリプトは作成できるのでしょうか?
例えば「QuickTimeのエンコード終了を待って次の動作に移る」等。
可能であるならばその方法を教えていただけないでしょうか?
よろしくお願いしますm(_ _)m
731名称未設定:2006/07/20(木) 00:55:32 ID:p7ceYB7N0
on idleのタイミングでエンコード中のダイアログが出てるかUI Scriptingで調べるとか
732名称未設定:2006/07/20(木) 01:08:35 ID:GlRrYNtn0
QuickTimeからresult来るまでウェイト入れた空ループじゃ駄目なの?
733名称未設定:2006/07/20(木) 01:12:23 ID:g8sNbFz20
皆さんありがとうございます!

>on idleのタイミングでエンコード中のダイアログが出てるかUI Scriptingで調べるとか

なるほど、、、しかし、書き方がわかりません、、、申し訳ない。



>QuickTimeからresult来るまでウェイト入れた空ループじゃ駄目なの?

repeat with i from 1 to result
(中身)
end repeat

こういうことですか?
734名称未設定:2006/07/20(木) 01:45:27 ID:g8sNbFz20
いまはこういう書き方をしてるんですけど、いちいちQuickTimeを終了せねばならず。
そのためフォルダアクションで複数のファイルを処理する時に失敗するんです。
(1つしかエンコードできない)

tell application "Finder"
set applist to (name of application processes)
end tell
if "QuickTime Player" is in applist then

tell application "Finder"
delete file aItem
empty trash
end tell

end if
735名称未設定:2006/07/20(木) 02:42:22 ID:shwPOoJX0
>>706
もう見てないと思うけどスクリプト動かして起動できたよ。
736名称未設定:2006/07/22(土) 23:13:12 ID:CocKmnsj0
iTunesの、あるプレイリスト内のムービーの「ビデオの種類」を「ミュージックビデオ」に
変更するスクリプトをどう作ればいいか分かる方はいませんか?

スクリプトエディタのライブラリを見ても、該当するプロパティ?は見つかりませんでした。

使用しているOSは10.4、iTunesは6.0.5です。
737名称未設定:2006/07/23(日) 02:46:51 ID:CzN2p98D0
もはや発表会とは名ばかりか
738名称未設定:2006/07/24(月) 00:57:57 ID:wegvkJB70
質問の発表会。。ヾ(´∇`)。。
739名称未設定:2006/07/25(火) 09:47:50 ID:dfuHrfG60
>>562縺ョ襍キ蜍輔ョ繧」繧ケ繧ッ繧貞、峨∴繧九せ繧ッ繝ェ繝励ヨ縺後≧縺セ縺丞虚縺九↑縺??縺ァ縺?

repeat until (exists button縲懊?縺ゅ◆繧翫〒豁「縺セ縺」縺。繧?≧

迺ー蠅??OSX10.4.7縲`acBook縺ァ縺吶?√←縺ェ縺溘°蜉ゥ縺題亜繧偵r繧偵r
740名称未設定:2006/07/25(火) 09:50:34 ID:dfuHrfG60
>>562の起動ディスクを変えるスクリプトがうまく動きませんです

repeat until (exists button〜のあたりで止まってしまいます

環境はOSX10.4.7、MacBookです、どなたか解決方法を教えてください
文字化けすいません
741740:2006/07/25(火) 10:30:08 ID:dfuHrfG60
自己解決

システム環境設定>ユニバーサルアクセスの「画面表示」タブの一番下にある
「補助装置を使用可能にする」にチェックを入れると動きました

562さんありがとう
742名称未設定:2006/07/25(火) 11:15:41 ID:pGhhrrLi0
bless?使ってもっとシンプルなの作れなかったっけ。
まあいいや。
743名称未設定:2006/07/30(日) 14:57:10 ID:IvFaWGqE0
ほしゅ
744名称未設定:2006/07/31(月) 10:08:18 ID:GSUtYZTM0
OSX10.4で
ttp://homepage1.nifty.com/ton_b/tips/Handler/Recursive.html
ttp://homepage1.nifty.com/ton_b/tips/Reference/Plural.html
みて再帰処理でドロップしたフォルダ内全てのファイルを処理したいんだけど、
サンプルを実行するとエラーがでるんだけど。OSX10.4でなにか変わったのでしょうか?
745名称未設定:2006/07/31(月) 14:19:53 ID:GL7aWMae0
> OSX10.4でなにか変わったのでしょうか?

リリースノートでも読め。
ttp://developer.apple.com/releasenotes/AppleScript/index.html
746名称未設定:2006/08/01(火) 04:39:27 ID:JiFW6OPM0
このスレかどこかで俺が質問したやりとりがあったような気がしたけど、
do shell scriptでコマンドのfindを使って
フォルダ以下のファイルのリストを出して
ループで順番に処理して行く方法がありますよ。
747名称未設定:2006/08/01(火) 06:36:41 ID:WH1ijfh80
AppleScript に System Events の menu item 関係の命令で右クリックの命令なんてないよね??
748名称未設定:2006/08/01(火) 09:13:53 ID:KWMx4E2U0
Ctrl押したまま選択とかじゃね
749744:2006/08/01(火) 09:35:39 ID:ePM4mbTt0
>>745
今回は、アップルスクリプトだけで処理を書き直してみようと思って挑戦してたのですが、駄目なようですね。
情報ありがとうございました。
750名称未設定:2006/08/07(月) 10:19:44 ID:MpajR1Ui0
pismo400MHzでOS X 10.3.9を使っているんですが、
iTunes でライブラリ中のmp3ファイルをconvert コマンドでAAC に変換しようとすると、
2分くらいでアップルイベントがタイムアウトしてしまい、作成されたファイルの参照を取得できません。
変換自体は最後まで行われますが、作成されたAACファイル(track)の情報を取得するにはどうしたらいいのでしょうか。
まあタグ情報自体は元のファイルから引き継がれるようなので、enable を false に出来ればいいんですが。
751名称未設定:2006/08/07(月) 17:59:50 ID:1OcA356R0
こういうこと?

tell application "iTunes"
set curEncoder to (current encoder)
set current encoder to encoder "AAC Encoder"

with timeout of 3600 seconds
set encodedTracks to (convert (selection as list))
end timeout

set current encoder to curEncoder
return encodedTracks
end tell
752名称未設定:2006/08/07(月) 22:45:11 ID:eD9/OPBs0
>752
そういうことです。有り難うございます、勉強になります!

‥‥‥、timeout って汎用的に使えるのか。
753名称未設定:2006/08/10(木) 18:24:21 ID:ekj8vQPu0
ITunesスレでと思ったのですが、こちらの方が詳しい方多そうなので教えてください。

エンコーディングし直すと消えてしまう「最後に再生した日」を
指定して設定するか、もしくは今日に設定するAppleScriptって
どうしたら良いのでしょうか?

ttp://members.at.infoseek.co.jp/obto/script/script3.html#playedcount

再生回数を変更というのは見つかったのですが...。
発表ではないのですが、よろしくお願いします。
754名称未設定:2006/08/10(木) 20:53:28 ID:/hppnkkL0
そんな君には最後に再生した日にエンコードすることをお勧めする

どうしてもScriptで、と言うならば
>>3
のサイトを回って、Appleのサンプルを見れば、
半日もあれば書けるようになるはずだ。
ぷろぐらみんぐ知識ゼロからでも問題ない(俺)
755名称未設定:2006/08/10(木) 23:10:23 ID:ekj8vQPu0
>>754
無事できました。ありがとうございます。
今は「最後に再生した日」と現在の「再生回数」+1に同時に処理するのが
できるよう、また勉強します。
756名称未設定:2006/08/11(金) 02:11:15 ID:dHyzPpgt0
>>755
はやっ。すげ。
あなた様の努力を前に、
適当な回答をしたことを後悔しています。

と思った矢先ですが、あいにく
>「最後に再生した日」と現在の「再生回数」+1に同時に処理するのが
というのが意味がわからず、今回もまっとうな回答はできません。
ごめんなさい。
757名称未設定:2006/08/11(金) 02:45:14 ID:mP7GlcA60
>>753
--最後に再生した日を変更
tell application "iTunes"
set seltrack to a reference to selection
repeat with x in seltrack
set pldate to ((played date) of x as string)
if pldate is "missing value" then set pldate to (current date) as string
set newdate to text returned of (display dialog "最後に再生した日を変更" default answer pldate)
set (played date) of x to date newdate
end repeat
end tell

ってことで、そのページにも載せといた
758名称未設定:2006/08/15(火) 17:24:33 ID:BOQTRGx80
safariで現在のタブから画像ファイルのアドレスを抽出するにはどうしたらいい?
759名称未設定:2006/08/15(火) 21:30:57 ID:jofmHk9N0
>>758
ウインドウメニュー>構成ファイル一覧
760名称未設定:2006/08/16(水) 02:36:05 ID:VJ0p8aWL0
761名称未設定:2006/08/16(水) 07:41:01 ID:gkbF1T330
iChatのメンバーリストの人数を調べるスクリプト
iChatのメンバーリストを前面に持ってきて実行

activate application "iChat"
tell application "System Events"
tell process "iChat"
try
set tbl to table 1 of scroll area 1 of window 1
set tblRow to row of tbl
set num to number of tblRow
display dialog num & "人"
end try
end tell
end tell


762名称未設定:2006/08/16(水) 07:44:37 ID:gkbF1T330
ごめん。
display dialog num & "人" as string
としないとエラーになる。
763名称未設定:2006/08/16(水) 20:27:14 ID:IJuZ3yrr0
>>758
何したいのかわからんけど、lynx入れて
set imageLinks to do shell script "path/to/lynx -dump -image_links URL"
とかが手っ取り早いんじゃ?
764名称未設定:2006/08/17(木) 12:30:45 ID:sVUCFaPi0
アップルスクリプトでブラウザの
テキストボックスの入力と、ラジオボタンの選択、メニュー項目の選択を
自動で行わせ送信するやり方ってありますか?
765名称未設定:2006/08/17(木) 12:55:36 ID:LaflLNWq0
あるね
766名称未設定:2006/08/17(木) 14:01:24 ID:kDCkY2Az0
バージョンも書かんと質問する奴ってのは絶えんもんだの。
767名称未設定:2006/08/17(木) 14:18:21 ID:sVUCFaPi0
Script Editor 2.0
Safari 1.3.2

property target_URL : ""

open location target_URL

set textboxvalue to ""
set radioboxvalue to ""
set optionvalue to ""

スクリプトやった事ないのでコレしか分かりません。
ググってもソレらしい関数が見つかりません。
やり方か説明サイト教えてくれませんか?
768名称未設定:2006/08/17(木) 14:43:51 ID:LaflLNWq0
GUI スクリプティング
UIElementInspector
769名称未設定:2006/08/17(木) 14:56:04 ID:kDCkY2Az0
770名称未設定:2006/08/17(木) 15:19:21 ID:sVUCFaPi0
>>768-769
有り難うございます。色々分かりました。
UI Element Inspectorでカーソルの情報を習得し、
apple scriptでウィンドウのカーソルの座標を利用して入力して行く感じですね。
apple scriptの関数はまだ知りませんが、何とかなるでしょう。
771名称未設定:2006/08/17(木) 17:51:25 ID:ChchAyoL0
実際やるとなるとうまくいかないことが多いんだよね・・・UIって。
772名称未設定:2006/08/17(木) 18:27:54 ID:RwGBdV2AP
>>760
のdo javascriptでもできるんじゃないかな
試しにグーグルで書いてみた
tell application "Safari"
open location "http://www.google.co.jp/"
delay 2

-- 検索ワードに1~5を入力
repeat with i from 1 to 5
do JavaScript "document.f.q.value = " & i & ";" in document 1
delay 1
end repeat

--ウェブ全体から検索 日本語のページを検索のトグル
do JavaScript "document.f.lr[1].checked = true;" in document 1
delay 1
do JavaScript "document.f.lr[0].checked = true;" in document 1
delay 1
do JavaScript "document.f.lr[1].checked = true;" in document 1

--検索実行
do JavaScript "document.f.submit();" in document 1
end tell

Safari 1.3.2でdo JavaScriptができるかは知りませんけど
773名称未設定:2006/08/18(金) 05:04:04 ID:gQtP13lr0
>>772
もの凄くいいこと聞いた。
774名称未設定:2006/08/19(土) 00:06:35 ID:oOgaebit0
>>772
AppleScriptの威力に驚きました!

>do JavaScript "document.f.lr[1].checked = true;" in document 1
このようなコマンドは、Safariのソースを表示して、それを目で読んで、
解析して、Javascriptに手で入力する必要がありますか?

簡単に行う裏技などはございますか?
775773:2006/08/19(土) 13:10:09 ID:rCILBtZI0
強いて言えばFirefox/MozillaのDOMインスペクタを使うこととか。

でも、「簡単に」は無いな。
JavaScript DOMでググるといいよ。
776名称未設定:2006/08/20(日) 16:20:58 ID:fFVjCPjq0
iTunesの「ライブラリに追加」をAppleScriptまたはAutomatorから呼び出す方法を教えてください。
ScriptEditorについてる、マニュアルは一通り読んだのですがなさそぅなので。
777名称未設定:2006/08/20(日) 16:43:38 ID:sUsNHhvY0
試してないけどaddコマンドとか
778名称未設定:2006/08/20(日) 19:08:01 ID:3zT69OL90
>>776
tell application "iTunes" to open (choose file with multiple selections allowed without invisibles)


# 灯台下暗し
779名称未設定:2006/08/20(日) 21:07:58 ID:+F+DKr+C0
>>776
あるアプリケーションを使うAppleScriptを書きたい時は、
そのアプリケーションをスクリプトエディタで開いてみるといいです。
(アプリケーションのアイコンをスクリプトエディタのアイコンにドラッグ&ドロップ)
780名称未設定:2006/08/22(火) 01:44:44 ID:vk5PF/zm0
複数のアプリケーションのスクリプト辞書をマージしてひとつの新しい辞書を作る AppleScript を作ってみました。

*Script Editor が開いたスクリプト辞書の実体は /tmp に作成された sdef ファイルですので、それらを操作します。
 ちなみに辞書ウィンドウのタイトルバーのアイコンをデスクトップにドラッグすれば、/tmp にあるそれらの sdef のエイリアスがデスクトップに作成されます。

*はじめに、Script Editor で好きなアプリケーションの辞書をいくつか開いてください。
 Macを起動してから既に何度か辞書を開いたことがあるなら、その必要はありません。

*このスクリプトは、Saveダイアログで指定した名前の sdef ファイルを作成します。ただ、その作成されたファイルは TextEdit か何かの書類アイコンになっています。これを Script Editor で開いて、終了します。
このウィンドウに対して "Save as..." コマンドを実行すれば、正しいアイコンのファイルに置き換えることができます(ダブルクリックで Script Editor が開く。)

* マージされた辞書のなかで "Standard Suite" などが重複しないようにしていますが、例えば iTunes ではこの部分の "****" という文字列が "????" になっているので、別のスイートと解釈して重複します。

*基本的にクソです。
781名称未設定:2006/08/22(火) 01:47:05 ID:vk5PF/zm0
(* sdefMerge.applescript *)
-- 1/2
set suiteTags to {}
set suiteObjects to {}

do shell script "ls /tmp/*.sdef"
repeat with sdef in paragraphs of the result

set FH to open for access (sdef as POSIX file)
set x to read FH using delimiter "<"
close access FH

set {theSuite, inDepth} to {"", 0}
repeat with i in x
if inDepth < 2 then
if i begins with "suite" then
if (i as text) is not in suiteTags then
set theSuite to theSuite & "<" & i as text
set end of suiteTags to i as text
set inDepth to 2
else
set inDepth to 3
end if
end if
782名称未設定:2006/08/22(火) 01:48:31 ID:vk5PF/zm0
-- 2/2
else if inDepth = 2 then
if i begins with "/suite" then
set theSuite to theSuite & "<" & i as text
set end of suiteObjects to theSuite
set theSuite to ""
set inDepth to 1
else
set theSuite to theSuite & "<" & i as text
end if
else if inDepth = 3 then
if i begins with "/suite" then set inDepth to 1
end if
end repeat -- with i

end repeat -- with sdef

--
set line1 to "<?xml version=¥"1.0¥" encoding=¥"UTF-8¥"?>"
set line2 to "<!DOCTYPE dictionary SYSTEM ¥"file://localhost/System/Library/DTDs/sdef.dtd¥">"

set outputFileRef to (choose file name default name "Various Suites.sdef" default location (path to desktop folder))

set AppleScript's text item delimiters to return
set suiteObjects to suiteObjects as text
set AppleScript's text item delimiters to ""

set FH to open for access outputFileRef with write permission
write line1 & return & line2 & return & "<dictionary>" & suiteObjects & "</dictionary>" to FH
close access FH

tell application "Script Editor" to open outputFileRef
783名称未設定:2006/08/27(日) 00:37:55 ID:poBZfix20
 教えてクレクレ君で初登場します。
特定のホルダーに同じテキストが1000枚あります。
この中の各書類の「ABCDE」という部分だけを「あいうえお」と置き換えるスクリプトってどう書けばいいのか教えて下さい m(_ _)m ゴシゴシ
 有名なHPは見たんですが、なにぶん意味がよくわかりませぬ・・・・・
784名称未設定:2006/08/27(日) 01:01:59 ID:orWIXy400
OSバージョンも書かずに何言ってんだボケ

Jeditのマルチファイル置換とか使えば良いんじゃねーの?
同じテキストってんなら、1個書き換えて999個コピーすりゃ良いんじゃねーの?
785名称未設定:2006/08/27(日) 01:12:32 ID:wzt6c3lt0
>>783
やりかたはあるがASは昔からテキストの扱いは遅くて使い物にならんからやめたほうがいい
同じことが出来るアプリはいくつもあるんだが
自分で作ったものに組み込みたいという話ならPerl使え。
786783:2006/08/27(日) 01:25:25 ID:poBZfix20
OSXです。
各書類に通し番号のリンクが張ってあるhtml文書なので、コピーができないんです。
0001.html〜0999.htmlみたいな感じです。
Jedit、Perlですか。ちょっと見てみます。どうも、です。m(_ _)m
787783:2006/08/27(日) 02:14:34 ID:poBZfix20
Jedit、すばらしいです。超簡単ですた。
788名称未設定:2006/08/28(月) 03:29:49 ID:ek0Kjxqg0
>>786
次からはOSXのバージョンも書きましょうね
OSX10.x.yのyまで
789名称未設定:2006/08/28(月) 21:13:49 ID:SFaWeRSn0
>>788
横やりいれるが、なんで??
790名称未設定:2006/08/28(月) 21:19:17 ID:PeGrrzzL0
(´д`)
791名称未設定:2006/08/29(火) 02:19:40 ID:yBb/YZ5b0
(´д`)
792名称未設定:2006/08/29(火) 10:44:09 ID:Vz+35o5B0
(´д`)
793名称未設定:2006/08/31(木) 14:14:42 ID:iLgwAL7r0
自分はマルチファイル置換ならAppleScript使ってる。
普通のデリミタ置換だったらかなり速い。
正規表現とか文字コードとか入ってくるとダメだけど。
794名称未設定:2006/09/02(土) 23:16:47 ID:xw0rVWxe0
OS9でテキスト操作は俺の場合OSAXでやってたから結構速かったけどな。
デリミタ使うのはちょっと面倒だし遅い。
795名称未設定:2006/09/02(土) 23:37:29 ID:LVzkzeQU0
書くのが簡単だからってdo shell script でperlとか使うと、あとで大変な目に遭う。
デリミターのほうが遥かに速い。個人でしか使わないならosaxでいいけど。
796名称未設定:2006/09/02(土) 23:48:03 ID:TANFKvo30
>あとで大変な目に遭う

このへんを具体的に詳しく。
797名称未設定:2006/09/03(日) 01:26:17 ID:Z32bhVhy0
do shell scriptのオーバーヘッドが大きいってことでしょ。
repeatループの中で細かくdo shell scriptすると大変なことになるってことだろう。
798名称未設定:2006/09/03(日) 11:24:55 ID:E5sumffD0
ごく簡単な置換スクリプトを、
delimitersで書いたときと、do shell scriptで書いたときと、
repeatで100回回してみれば、速さの差は歴然。
799名称未設定:2006/09/03(日) 19:03:28 ID:SA8UZTXV0
過去ログを探しているんですが、まとめサイトってあります?
4,5スレは、まだ2ch側でHTML化されてないので読めなくて。
800名称未設定:2006/09/03(日) 20:15:30 ID:PmV8cIRr0
801名称未設定:2006/09/03(日) 21:59:09 ID:pp5U4xYG0
>>800
サンクスでした
802名称未設定:2006/09/04(月) 20:00:16 ID:dIIYrgLQP
最近
set thePath to "/private/tmp/tmp.txt"
POSIX file thePath
でunixパスをhfs形式(file)に変換できることを知ったのでメモ
803名称未設定:2006/09/04(月) 22:47:33 ID:GA4rxehr0
>>802
知らんかった。




4 (ただし987レスまで)
ttp://xtp0001.s3.x-beat.com/cgi-bin/up/source/Sonata_20746zip.html
804名称未設定:2006/09/05(火) 13:36:22 ID:170rSk9J0
>>798
Perl内でループさせればいいじゃん

…っていう風にやってるとAS側はdo shell script以外何も書かない
ただの呼び出し用になったりするわけだがw
805名称未設定:2006/09/05(火) 16:51:22 ID:KRCcBaxC0
Automator -> AppleScript呼び出し用
AppleScript -> do shell script呼び出し用
806名称未設定:2006/09/05(火) 21:03:24 ID:4xAmLoDP0
もはやはじめからPerlで書いてもいいような気が...

変数の扱いがAS経由の方が楽なのか?
807名称未設定:2006/09/06(水) 01:21:36 ID:hU65Wacp0
>>803
サンクスコ
808名称未設定:2006/09/06(水) 11:50:28 ID:qZmE/1B60
>>806
そう、変数をあれこれ操作する場合にASのほうが楽。
テキストはテキストで細かいこと考えずに扱えるし。
つーか、俺がperlとかはよく知らないだけなんだけど、
エスケープ文字の扱いがめんどくさくていやになる。
809名称未設定:2006/09/06(水) 21:45:17 ID:TMezbApr0
そもそもアプリを操作するのにAS使わないと面倒なので。
810名称未設定:2006/09/06(水) 23:50:06 ID:DuyMOU6H0
リストが遅過ぎてperlやawkの用途には使えんな、AppleScriptは。
811名称未設定:2006/09/07(木) 06:23:55 ID:K27vXepD0
だからリストは使わずにテキスト操作でやってます
812名称未設定:2006/09/07(木) 11:32:57 ID:32yfDfBI0
どっちも良いところはあるけど
813名称未設定:2006/09/07(木) 19:31:25 ID:7BCL55gq0
コマンドラインから受けたエスケープされたパス
(日本語とか空白とか含むもの)って、
osascriptに渡すとエラーするみたいなんだけど
みんなどうやって対処しているの?
814名称未設定:2006/09/07(木) 19:37:06 ID:2jQzgdDv0
>>813
以前、その問題にぶつかったときは、日本語をファイルに書き込む。
受け側でファイルの中身を読み取る。って感じにしたような。
815名称未設定:2006/09/13(水) 09:22:51 ID:jtTWXuyG0
みんな色々ノウハウ持ってるんだなー。
そういうのどこかにまとめられたりしないだろうか。
816名称未設定:2006/09/13(水) 12:04:31 ID:WytsoAIK0
CocoaだとCocoa Wikiとかあるけどね
817名称未設定:2006/09/14(木) 01:20:38 ID:YZ7BSad+0
誘導されてきました。既出ならスマソです。

ムービーフォルダに貯まっていく.movの拡張子がついた録画ファイルを
夜中の12時なったら自動的に「携帯動画変換ちゃん」で.mp4ファイルに
変換、元のファイルを削除する、

このようなスクリプトをautomater とapple scriptで作りたいのですが
アドバイスお願いします。
818名称未設定:2006/09/14(木) 02:05:14 ID:Bjnyeigi0
まず、どこまで書けていて何がわからないのかを明確にせよ。
819名称未設定:2006/09/14(木) 05:46:28 ID:BG3apx5l0
820名称未設定:2006/09/14(木) 16:37:02 ID:DTXwhRJT0
携帯動画変換ちゃんがアップルスクリプトに対応しているかどうかが、まず肝心。
携帯動画変換ちゃんをスクリプトエディタに重ねてみて、変換用のコマンドがあるかどうか。
821名称未設定:2006/09/14(木) 18:07:24 ID:aM1jNbnT0
>>817
GUI Scriptingでがりがり書く。
822名称未設定:2006/09/14(木) 18:48:42 ID:vIpLp0yY0
817です。レスありがとうございます。
まだ何も書けていない状態のド素人です。
今、携帯動画変換ちゃんのアイコンをスクリプトエディタにDrag and Dropして
みましたが無反応でした。対応してないようです。
GUI Scripting 初耳です。Apple ScriptやAMに対応していなくとも
いけるのでしょうか?

823名称未設定:2006/09/15(金) 13:33:06 ID:8swwBzUg0
GUI Scripting使えば、ASに対応してないアプリでもメニューの中にある機能
やショートカットのボタンを操作して動かせるよ。
http://allabout.co.jp/computer/macos/closeup/CU20031220asc/index.htm

押すキーを書いていくだけだからまずは自分で試してみては。
824名称未設定:2006/09/15(金) 18:55:29 ID:CcUDHIMm0
>>823
トンクスです。さっそくいじくってみます〜!
825名称未設定:2006/09/15(金) 23:21:08 ID:Dn0sqRbd0
ほとんど同じ機能のMETでいいじゃんか。
あれなら連動にも対応しているし。
826名称未設定:2006/09/16(土) 19:12:28 ID:eMtdMXbW0
iTunesのアップルスクリプトが7で少し変わった。
新機能がらみのプロパティの他に、従来は開始時間や停止時間の設定で値がヌルでもよかったのが、0としないとエラーするようになった。
827名称未設定:2006/09/17(日) 00:13:40 ID:ORQ+CIEg0
再生中の曲のジャケットをデスクトップピクチャにできないかと思ったが無理そう
artwork of current track が取り出せないような
828名称未設定:2006/09/17(日) 00:35:41 ID:wHhKKTWL0
>>827
アートワークは複数登録できるので

artwork [番号] of current track

でおk。
829名称未設定:2006/09/17(日) 00:59:21 ID:yDnYZmUtP
昔再生してる曲のアートワークをDragThingのゴミ箱アイコンにしてたので
それをちょっと改造してみた。別途osaxが必要です。
--iTunesで再生してる曲のアートワークをデスクトップピクチャにする
--必要なosax GraphicsImporter OSAX
--http://www.azug.gr.jp/~h-abe/freeware/gio/index.ja.html
tell application "iTunes"
set theCurrentTrack to current track
try
set theArtwork to data of artwork 1 of theCurrentTrack
on error error_message
return -1
end try
end tell
-- iTunes7で取得したアートワークは形式不明で変換しないと駄目みたいだった
-- 昔埋め込んだのはpictで取り出せるけどpictはデスクトップに貼れないみたい
try
set theArtwork to giconvert theArtwork type "JPEG" --resolution {72, 72}
on error error_message
return -1
end try
set theFolder to path to desktop as string
set theHFSFile to theFolder & "iTunes_Artwork_to_Desktop.pict"
set refNum to open for access theHFSFile with write permission
if refNum > 0 then
write theArtwork to refNum
close access refNum
else
return -1 --アートワークを保存できなかったので終了
end if
tell application "Finder"--PICT、TIFFは設定できないみたい
set desktop picture to theHFSFile as alias
end tell
830名称未設定:2006/09/17(日) 01:19:32 ID:yDnYZmUtP
.pictは.jpgの方がいいですね
あと、デスクトップピクチャをランダムで指定してると
スクリプトから変更できない見たいです。
詳しくはよくわかりませんが
831名称未設定:2006/09/17(日) 03:31:01 ID:ORQ+CIEg0
>>828 サンクス
>>829で解決してるが、色々やってみたので一応報告
以下、僕の環境ではartworkのformatがどれも「JPEG picture」しか返さないのでそれ以外の場合は不明

・artworkのdataをそのままファイルに保存&クリエータをJPEGにしても画像ファイルになってないが、
 GraphicConverterで無理矢理開くとJPEGとして開いてはくれる
・先頭の220バイト程度(ファイルによって異なるようだ)を削ったらJPEGになったっぽい
 (Finderプレピューも表示され、set desktop pictureで設定できた)
832名称未設定:2006/09/17(日) 04:28:57 ID:XUomvoiY0
このページ紹介しておきます。

TBBOY'S ROOM: iTunesのアートワークを.jpgや.pngに変換
http://tbboy.cocolog-nifty.com/tbboys_room/2006/09/itunesjpgpng_5603.html

ただ、上でも言われているように、このスクリプトでも
.pngと.jpgの判別が甘いというか、うまく判別ができないようです。
833名称未設定:2006/09/17(日) 08:17:40 ID:ALQpUbC20
iTunesがdata of artworkで返すのはjpegやpngを埋め込んだPICTです。
PICTは柔軟なフォーマットで、中に他の画像形式を埋め込める。表示時は自動的に
QuickTimeが解釈する。
PICTに埋め込まれた元データを取り出すにはQuickTime APIを使わないとダメ
AppleScriptでは無理っす。上げられてるスクリプトは画像変換し直してるけど、
かなり遠回り。
834名称未設定:2006/09/17(日) 16:14:59 ID:hR2t04mM0
>>833
PICTって昔からそうだけどフォーマットというよりはパッケージに近いね
内部構造でいえばEPSやPDFみたいな。
835名称未設定:2006/09/18(月) 02:40:23 ID:u6C6Dq950
832のスクリプトのtheDataはクリップボード経由で扱える(iTunes7でのみ確認)。
画像処理アプリに渡すみたいな時は

set the clipboard to theData

してやれば、アプリ側でペーストでける
836名称未設定:2006/09/18(月) 05:58:23 ID:akJmAfEg0
ほんとだ

tell application "iTunes"
tell current track
tell artwork 1
set |art data| to data
set the clipboard to |art data|
end tell
end tell
end tell

これ実行したあとプレビューで新規作成できる
837名称未設定:2006/09/19(火) 00:41:51 ID:YvMX6Vwz0
Apple Mailでちょっとした日記をつけることにしました(自分のGmailアカウントに送信)。
Subjectに日付を入れているのですが、夜遅くの、日付が変わってから書くことが多いので、
午前6時まではその日付を前日のものにするかどうか訊ねるダイアログを出すようにしました。

ダイアログで"Yes"を選択すると、前日の23:59頃のDateオブジェクトを作って、一度セットした
変数を上書きするようにしています。
以下のコードでうまく動いていますが、もっといい方法があれば知りたいです。

set {y, m, d, w, h, min, sec} to my date2list((current date))
if h < 6 then
display dialog "The date has been changed already." & return & "Do you want to overwrite the date as it is still on the previous date?" buttons {"No", "Yes"} default button 2 giving up after 15
if button returned of result is not equal to "No" then set {y, m, d, w, h, min, sec} to my date2list((current date) - h * hours - min * minutes - sec - 60)
end if

set wkd to item w of {" (Sun)", " (Mon)", " (Tue)", " (Wed)", " (Thu)", " (Fri)", " (Sat)"}
set sdate to "" & y & "-" & m & "-" & d & wkd

sdate


on date2list(aDate)
if class of aDate = date then
set theDate to aDate
else
set theDate to current date
end if
tell theDate to return {year, its month as number, day, its weekday as number, its hours, its minutes, its seconds}
end date2list
838名称未設定:2006/09/19(火) 04:54:10 ID:Pta6O2Lf0
>>836
コレいいですね! しかし、うっかり再生しないで実行すると、
-------------------------------------------------------------------
<<class pPCT>> of <<class cArt>> 1 of <<class pTrk>> of
application "iTunes" を取得できません。
-------------------------------------------------------------------
とエラーになってしまいます。
選択するだけで値を取得することは難しいのでしょうか?


あと、その>836スクリプト実行後、プレビューで自動的に新規作成するのは

tell application "Preview"
activate
end tell

なんて追記すればいいのでしょうか?
make new ? do shell scriptとか?

最近勉強始めたばかりで質問ばかりですが、よろしくお願いいたします。

839名称未設定:2006/09/19(火) 19:33:15 ID:9WpoI1rO0
プレビューってアップルスクリプトに対応してないんだねえ。
まあ、とりあえず、こうするか。

tell application "System Events"
tell application process "Preview"
tell application "Preview" to activate
delay 0.5
keystroke "n" using command down
delay 0.5
end tell
end tell
840名称未設定:2006/09/19(火) 19:56:02 ID:9WpoI1rO0
選択した曲のアートワークをプレビューで表示させる

set cb to the clipboard as record

tell application "iTunes"
set seltrack to a reference to selection
set theartwork to data of artwork 1 of item 1 of seltrack
set the clipboard to theartwork
end tell

tell application "System Events"
tell application process "Preview"
tell application "Preview" to activate
delay 0.5
keystroke "n" using command down
end tell
end tell

set the clipboard to cb
841名称未設定:2006/09/19(火) 21:03:50 ID:Pta6O2Lf0
>>840
ありがとうございます!!!
842名称未設定:2006/09/20(水) 00:39:18 ID:fGZFVg2B0
あらかじめプレビューを起動してない場合、起動が完了する前にコマンドNしてしまうので、
tell application "System Events"の段落はこうしたほうがましかも。

tell application "System Events"
tell application "Preview" to activate
repeat
if (visible of process "Preview") is true then exit repeat
end repeat
tell application process "Preview"
delay 1
keystroke "n" using command down
delay 1
end tell
end tell
843名称未設定:2006/09/20(水) 17:35:22 ID:LlDkRovY0
>>840
いいですね!ありがとうございます。

>>832
そのスクリプトだと、.pngと.jpgを判別しても結局.pngで
保存してる気がするのですが、どうでしょうか?

Save Album Art to Album Folderというのもあるのですが、
ダイアログがいちいち出て保存まで手間が掛かります。

最終的には曲ファイルのアートワーク画像をバックアップする。
という感じで、ネタ元を見ながら自分なりに書き換えてみてますが、
よく分からなくなってきてしまいました... _| ̄|○
なにかヒントご助言いただけたら幸いです。


●課題
・選択してる曲を保存、可能であれば複数選択にも対応
・既に同じファイル名が保存されてる時はスキップする
・保存先フォルダを設定できるように

●疑問
・ファイル名に問題あるキャラクターを除去がDoug'sのまま挿入してるので、
 もっとスマートになるかどうか?
・アートワークデータをtmpに書き出さずに処理できるか?
844843:2006/09/20(水) 17:36:45 ID:LlDkRovY0
(*
再生中のアートワークを保存 β
ネタ元 ♪ Art to Desktop Picture ♪ Save Album Art to Album Folder ♪ Show Artwork in Preview
http://www.dougscripts.com/itunes/scripts/scripts09.php
http://tbboy.cocolog-nifty.com/tbboys_room/2006/09/itunesjpgpng_5603.html
*)

tell application "iTunes"

set current_track to item 1 of selection
set artworkData to data of artwork 1 of current_track
set imageFormat to format of artwork 1 of current_track as string

-- 画像フォーマットを判定
if imageFormat contains "JPEG" then
set extension to ".jpg"
else if imageFormat contains "PNG" then
set extension to ".png"
else
return
end if

-- ファイル名を設定
set art to artist of current track
set alb to album of current track
set file_name to (art & " - " & alb & " Artwork" & extension) as string
845843:2006/09/20(水) 17:37:25 ID:LlDkRovY0
-- ファイル名に問題あるキャラクターを除去
if file_name contains "/" or file_name contains ":" then
repeat with c from 1 to length of (file_name as string)
if item c of file_name = "/" or item c of file_name = ":" then
set file_name to (text 1 through (c - 1) of file_name) & "_" & (text (c + 1) through length of file_name)
end if
end repeat
end if

-- tmp にアートワークデータを書き出し
set tempFile to ("tmp:" & "Artwork.bin" as string)
set fileRef to open for access tempFile with write permission
write artworkData to fileRef
close access fileRef

-- アートワークデータから先頭222バイトを削りデスクトップに保存
do shell script "cd ~/desktop/ ; tail -c +223 " & quoted form of the (POSIX path of tempFile) & " > " & quoted form of (file_name)

end tell
846名称未設定:2006/09/20(水) 20:16:33 ID:Eo2y9CO/0
>>843
複数の選択を可能にしたければ、
set seltrack to a reference to selection
repeat with x in seltrack
set artworkData to data of artwork 1 of x
以下同様に処理
end repeat

保存先の指定は、set savefolder to POSIX path of (choose folder)
とでもする。

禁止文字の変換はこうすると文は短いが、、、
do shell script "echo " & quoted form of thename & " | sed s/'¥¥/'/_/g | sed s/'¥¥:'/_/g"

tmpを使わぬ処理は
tell application "Finder" to set thefile to make new file at thepath with properties {name:ファイル名}
set thefile to thefile as alias
という風に、先に空のファイルを作ってから、
そこにopen for access〜のようにデータを書き込み、頭222Bを削る。

部分的に検証しただけだけど、できます。
847名称未設定:2006/09/20(水) 20:37:02 ID:OXxUJLl50
半角スラッシュはファイル名に使えるよ
先頭のドットが注意必要
848名称未設定:2006/09/20(水) 21:27:54 ID:Vd+qGiCA0
スラッシュ使えるけどなんか気持ち悪いのでこんな風にしてます。

set theName to ".text/text:text.text"
do shell script "echo " & quoted form of theName & " | sed 's/^./_/;s/[/|:]/_/g'"



"_text_text_text.text"
849843:2006/09/20(水) 22:43:09 ID:LlDkRovY0
>>846
即答、有り難うございます。
あまり詳しくないので他がまだですが、保存先の指定は出来ました!

>>848
試したのですが、843のfile_nameに置き換えたところ、
「:」は「/」に変換されて、先頭のドットが
変換されずにエラーになってしまいました...

とりいそぎレスいただいた方、有り難うございました。
850名称未設定:2006/09/20(水) 23:40:43 ID:Vd+qGiCA0
書き出せてるけどなあ。。。
ttp://amb.sakura.ne.jp/hanyou/img-box/img20060920233711.png
ttp://amb.sakura.ne.jp/hanyou/img-box/img20060920233859.png

もし「"iTunes Music"フォルダを整理する」にチェック入ってるならこれが確実。

tell application "iTunes"
set extension to ".jpg"
set current_track to current track
set track_loc to location of current_track
end tell

tell application "Finder"
set alb to name of (container of track_loc)
set art to name of (container of (container of track_loc))
set file_name to (art & " - " & alb & " Artwork" & extension) as Unicode text
end tell
851名称未設定:2006/09/22(金) 19:51:59 ID:5Lj13njP0
choose folder
set objlist to files of result
で、リストに不可視ファイルも含めたい場合
どのようにすれば良いでしょうか。
852名称未設定:2006/09/22(金) 20:17:46 ID:gHXFlnyX0
invisibles true
用語説明に載ってるだろ。
853名称未設定:2006/09/22(金) 23:16:56 ID:5Lj13njP0
ありがとうございます。
まだ始めて1週間な物で…がんばってみます。
854名称未設定:2006/09/23(土) 18:02:05 ID:ILNPg0X40
>>846をまとめてみた。ちと長いので下記に。
禁則文字がややこしくなったのでシェルスクリプトは使わず。

http://members.at.infoseek.co.jp/obto/script/script3.html#artworksave
855名称未設定:2006/09/23(土) 23:01:25 ID:7w4w5+ad0
自動保守スクリプトマダー
856名称未設定:2006/09/25(月) 02:14:30 ID:lYKeEm9d0
>>837
シェルスクリプトを使って書くとこうなるっぽい

set theDate to do shell script "date +%Y-%m-%d¥¥ ¥¥(%a¥¥)"
set hr to (do shell script "date +%H") as number
if hr < 6 then
set theDate to (do shell script "date -r $(($(date +%s)-86400)) +%Y-%m-%d¥¥ ¥¥(%a¥¥)")
end if
theDate
857名称未設定:2006/09/25(月) 10:40:20 ID:s7obF/BH0
ここで聞くことじゃないとは思うんだけど…

ttp://homepage.mac.com/okunott/
ここの人はどこ行っちゃいましたか?参考にスクリプトを落とそうと思ったら
ページが消えてました。
858名称未設定:2006/09/25(月) 12:16:00 ID:s7obF/BH0
ごめん、キャッシュ見て理解した。
スレ汚しすまんです。
859名称未設定:2006/09/25(月) 19:02:07 ID:h0pit1it0
>>854
843です、ありがとうございます!自分にはやはり難しい部分も
あったので甘えさせて使わせていただきます-。感謝
860名称未設定:2006/09/29(金) 23:00:12 ID:sbmxveHv0
質問です。どなたか指導お願いします。
Safariで開いてるページのリンクにマウスポインタをあててそのまま一定間隔マウスクリックと同じ動作(連打)をするためにはどのような文を書けばいいのでしょうか?
GUIの方を見てみても具体的にmouse関連のがなかったので……
861名称未設定:2006/09/30(土) 00:18:41 ID:9sV+0IQJ0
>どなたか指導お願いします。

こういう一文を付けるやつって
これが丁寧なんだと勘違いしているのか
誰でもいいから早く答えろという意思がにじみ出ているのか
どっちなんだろう。

内容もどう見ても厨だし・・・
862名称未設定:2006/09/30(土) 00:19:44 ID:j3LaJ7fk0
厨とか厨じゃない以前に言ってる意味が理解できなかった
863名称未設定:2006/09/30(土) 03:07:48 ID:nXl0e7P30
Web上の漫画かなんかのページをめくる動作を自動でやりたいとかかなあ
864名称未設定:2006/09/30(土) 04:23:54 ID:n/KFtEdF0
UI関係はややこしくてよくわからんが、いじるならbuttonだと思う。
865名称未設定:2006/10/03(火) 01:36:46 ID:tvd/8IG30
age
866名称未設定:2006/10/06(金) 18:13:42 ID:v7/Ilwsl0
-- スクリプトフォルダ直下に何個もスクリプトとかエイリアスを置くとメニューが開くのに
-- 時間がかかるので、それらを別の場所に置き、リストから選んで起動するようにしました。

-- "~/Library/Script/Load Script….scpt"
property script_lib_location : (path to library folder from user domain as string) & "Application Support:Script Menu:"


(* On Run *)

tell application "Finder"
set scriptsList to displayed name of files of alias script_lib_location
set chosenFile to file (script_lib_location & (item 1 of my chooseFromBigList(scriptsList, 10, 1)))
if name extension of chosenFile is not equal to "scpt" then return (open chosenFile)
end tell

tell (load script (chosenFile as alias)) to run

-- [cont]
867名称未設定:2006/10/06(金) 18:15:22 ID:v7/Ilwsl0
(* Subroutines *)

on chooseFromBigList(aList, itemsPerPage, startPage)
set nextPageLabel to "[ Next page ] >>"
set firstPagelabel to "[ First page ] >>"
set totalItems to the length of aList
set pageItems to itemsPerPage as integer
set pagingOption to nextPageLabel

-- handling some likely errors...
if totalItems < pageItems then return (choose from list aList) --with multiple selections allowed)
if startPage > (totalItems div pageItems + 1) then
error "Invalid argument: startpage=" & startPage
end if

set topItemIdx to (startPage - 1) * pageItems + 1

if totalItems < (topItemIdx + pageItems) then
-- here we've reached at the last page.
set pagingOption to firstPagelabel
if not totalItems = (topItemIdx + pageItems - 1) then set pageItems to totalItems mod pageItems
end if

-- [cont]
868名称未設定:2006/10/06(金) 18:16:15 ID:v7/Ilwsl0
set lastItemIdx to topItemIdx + pageItems - 1

set theList to (items topItemIdx thru lastItemIdx of aList) & pagingOption

choose from list theList with title (topItemIdx & " - " & lastItemIdx & " of " & totalItems & " items" as string) default items {pagingOption} --with multiple selections allowed
if the result = false then
return false
else if the last item of result = nextPageLabel then
return my chooseFromBigList(aList, itemsPerPage, (startPage + 1))
else if the last item of result = firstPagelabel then
return my chooseFromBigList(aList, itemsPerPage, 1)
else
return the result
end if

end chooseFromBigList
869名称未設定:2006/10/06(金) 18:56:09 ID:oRTeKvUs0
日本語でおk
870名称未設定:2006/10/06(金) 23:27:07 ID:0DYHFGiV0
--"~図書館/スクリプト/負荷スクリプト….scpt"
特性のスクリプト_リブ_位置: (ストリングとしてのユーザドメインからのライブラリフォルダーへの経路)
「アプリケーションサポート: メニューに原稿を書いてください」


(*走行に関して*)

アプリケーション「ファインダー」を言ってください。
別名スクリプト_リブ_位置のファイルの表示された名前にscriptsListを設定してください。
chosenFileにファイルするように設定してください。(スクリプト_リブ_位置と(私のchooseFromBigList
(scriptsList、10、1)の項目1))
chosenFileの名前拡大が"scpt"と等しくないなら、戻ってください。(開いているchosenFile)
終わりは言います。
稼働するために言ってください(負荷スクリプト(別名としてのchosenFile))。

--(ry
871名称未設定:2006/10/07(土) 02:43:17 ID:9MVN3e0X0
--Safariで開いてるページのURLをローカルのフォルダにインターネットショートカット形式で保存するだけです・・・
--spotlightではてブみたいな事ができないかなぁと。

--get URL data
tell application "Safari"
set fileName to name of document 1
set tarURL to URL of document 1
end tell

set myComment to text returned of (display dialog "コメントを入れてください" default answer "")

--where to save
set mySave to "Documents:BookMark:"
set fileExt to ".url"

872名称未設定:2006/10/07(土) 02:44:17 ID:9MVN3e0X0
--escape of file name
set fileName to do shell script "echo " & quoted form of fileName & " | sed -e s/:/\\\\//g"

--make unique file name
set myDir to ((path to home folder) as string) & mySave
set fileNames to fileName & fileExt
set i to 0

repeat while ((fileNames) is in (list folder myDir))
set i to i + 1
set fileNames to fileName & i & fileExt
end repeat

--make file
tell application "System Events"
set theFile to make new file at end of folder myDir with properties {name:fileNames}
set thePath to path of theFile
end tell

--Internet Shortcut data(it needs to be saved by Shift-JIS & CRLF)
set wMsg to "[InternetShortcut]" & (ASCII character 13) & (ASCII character 10) & "URL=" & tarURL & (ASCII character 13) & (ASCII character 10)
do shell script "echo " & quoted form of wMsg & " | iconv -f UTF8 -t Shift-JIS > " & quoted form of (POSIX path of thePath)

--set comment
tell application "Finder"
set theFinderFile to file thePath
set comment of theFinderFile to myComment
end tell
873名称未設定:2006/10/07(土) 18:11:54 ID:2eRiKU3/0
>>870
アプリケーション「Finder」について
(以下略)
だろ。
AppleScript日本語を知らない世代なのかな...
874名称未設定:2006/10/07(土) 18:42:15 ID:IvT5H1UB0
>>871
せっかく2行に縮めたのに長過ぎて書き込めねえええ

tell application "Safari" to set aList to {(URL of document 1), (do shell script "echo " & quoted form of ((name of document 1) as Unicode text) & --改行
" | perl -pe 's/(^" & (ASCII character 128) & ".|" & (ASCII character 128) & (ASCII character 128) & "|:)/_/g'")} --改行
tell application "Finder" to (make new internet location file at (folder "BookMark" of (path to documents folder)) to --改行
(item 1 of aList) with properties {name:(item 2 of aList), comment:(text returned of (display dialog "コメントを入れてください" default answer ""))})
875名称未設定:2006/10/10(火) 00:37:02 ID:2eF2arbi0
テキストエディタ上の選択されている文字列(シェルコマンド)を最前面のterminalにペーストして(出来ればその後リターン)してくれる様なアップルスクリプトって無いでしょうか?
876名称未設定:2006/10/10(火) 01:19:22 ID:20VtVVvx0
>>875
tell application "System Events" to tell process "TextEdit" to tell scroll area 1 of window 1 to set A to value of text area 1
tell application "Terminal" to do script A in window 1

でいいですかね?あんまUI Element使ったスクリプトって好きじゃないんですよ・・・

分かりやすい書き方だと
tell application "System Events"
tell process "TextEdit"
tell scroll area 1 of window 1
set A to value of text area 1
end tell
end tell
end tell
tell application "Terminal" to do script A in window 1
877名称未設定:2006/10/10(火) 01:46:10 ID:2eF2arbi0
>>876
サンクス。いまから試してみます。
TextEditだけではなく任意のアプリケーションでの選択文字列ってなると難しくなるのかな?
例えば、他のテキストエディタであったりブラウザで表示されてる文字列だったりってのは。

このアップルスクリプトをicecofeeでコンテクストメニューから実行したら便利そうだ。
878875:2006/10/10(火) 01:54:37 ID:2eF2arbi0
>>876
だめだったですorz

スクリプト実行中にエラーが起きました。
System Events でエラーが起きました:
NSReceiverEvaluationScriptError: 4

Evalなんたらってことは文字列をコマンドとして実行するのはダメよ!ってことかな?
879名称未設定:2006/10/10(火) 01:57:10 ID:20VtVVvx0
ごめんなさい・・・
多分、ソレだと、選択文字じゃなくて、文章全体を変数に入れてますね・・・

tell application "System Events"
tell process "TextEdit"
tell text area 1 of scroll area 1 of window 1
set A to value of attribute "AXSelectedText"
end tell
end tell
end tell

tell application "Terminal"
do script A in window 1
end tell

これで動かなかったらすみません。
880875:2006/10/10(火) 02:06:29 ID:2eF2arbi0
>>879
残念ながら同じエラーが出てしまいますた。
なかなか難しい物なのですね。
881名称未設定:2006/10/10(火) 04:20:56 ID:8QbJY7Au0
Jeditだとそれができるんだけどね。
テキストエディットやサファリではselectが使えないのが痛い。
これがあるとないとではアップルスクリプトの使いようが大幅に変わるんだよなあ。
882名称未設定:2006/10/10(火) 07:59:27 ID:3sccagFE0
単純にコピペじゃいかんの?

tell application "System Events"
tell application "TextEdit" to activate
tell process "TextEdit" to keystroke "c" using command down
tell application "Terminal" to activate
tell process "Terminal"
keystroke "v" using command down
keystroke return
end tell
end tell
883エスパー:2006/10/10(火) 17:54:37 ID:S6SnnmPN0
>>875よ、
/アプリケーション/AppleScript/AppleScript ユーティリティ.app
を起動して「GUI スクリプティングを使用可能にする」のじゃ。
884875:2006/10/11(水) 01:23:49 ID:V5R8j3TD0
>>881
Jedit Xで試したけどだめみたいでした。

>>882
見事!ばっちりです。

tell application "System Events"
tell application "Jedit X" to activate
tell process "Jedit X" to keystroke "c" using command down
tell application "Terminal" to activate
tell process "Terminal"
keystroke "v" using command down
keystroke return
end tell
end tell

Jedit Xの部分をそのときに前面に来てるアプリに出来たらいいけどまったく想像がつかないや。
例えば、webブラウザでsqlのクエリを勉強してるときに選択してそのままターミナルからsql実行出来たらいいな、なんて。


>>883
見たところ、元々オンになってました。
ユニバーサルアクセスの方をいじくった事があるせいかもしれませんが。
885名称未設定:2006/10/11(水) 05:15:07 ID:wlu2vNIM0
>>884
Jeditだとshellコマンドを実行っていうスクリプト機能がついてるのよ
886875:2006/10/11(水) 10:25:47 ID:V5R8j3TD0
>>885
Artman21 - Jedit X - ライブラリ
http://www.artman21.net/product/JeditX/library.html
Jedit Xのカーソル位置の行を shell コマンドとして実行し、次行以下にその結果を表示します

これの事でしょうか?
887名称未設定:2006/10/18(水) 18:47:13 ID:EqG0qfwt0
環境依存かもしれんけど
tell application "Finder" to open desktop
ってやると、開いたFinderウィンドウ内に(デスクトップに表示してる)ボリュームも含まれてるね
@10.4.8
888名称未設定:2006/10/26(木) 02:07:37 ID:RqdMZVDn0
スレ違いですが、FaceSpan3.52を有償で譲っていただける方いませんか?
本家では4.3しかなく買うことができなく、途方に暮れてます。
889名称未設定:2006/10/26(木) 09:56:03 ID:nvFQ8u7A0
本家にメールしてみるというのも手だと思うよ
890名称未設定:2006/10/27(金) 00:11:35 ID:r7viu+WJ0
>>889
レスありがとう。駄目元でメールしてみるよ。
891名称未設定:2006/10/27(金) 12:24:20 ID:Q9aWVgLW0
Classic環境ならREALbasicを使うのも手。
892名称未設定:2006/10/27(金) 15:01:19 ID:glYZYt/50
ハイパカ
893名称未設定:2006/10/27(金) 16:41:02 ID:WBwaLP/30
ハイパーカードに始めて触れた時の感動をもう一度味わいたい。
894名称未設定:2006/10/27(金) 22:30:30 ID:caSX3ce10
フォルダアクション用のスクリプトを作っているのですが、
行き詰まってしまって困っています。

例えば以下のようなスクリプトを参考にしてお尋ねしますが、
このスクリプトを使うと家の環境では延々と*******・・・・○○○
とファイル名の冒頭に*がくっついてきてしまいます。
(実際に自分で作っているものでも同様の状態になります)
これは何かスクリプト以外に原因があるということなのでしょうか。

on adding folder items to open_folder after receiving target_items
tell application "Finder"
repeat with obj in target_items
set name of obj to "*" & name of obj
end repeat
end tell
end adding folder items to
895名称未設定:2006/10/27(金) 22:39:25 ID:caSX3ce10
書き忘れましたがOSは10.3.9です。
よろしくお願いします。
896名称未設定:2006/10/27(金) 22:49:06 ID:SgmFCgWE0
リネームで再度フォルダアクションが呼ばれちゃってんじゃないの
897894,895:2006/10/27(金) 23:25:19 ID:caSX3ce10
>>896
ではもう少し調べてみます。
ありがとうございました。
898894,895:2006/10/27(金) 23:44:36 ID:caSX3ce10
半日悩んでてんぱっていましたがやっと解決しました。
結局ファイル名を照合することで反復を回避するようにしました。
ありがとうございました。
899名称未設定:2006/11/04(土) 16:44:22 ID:DoZ4XvF20
ほしゅ
900名称未設定:2006/11/08(水) 12:09:50 ID:rYDFVHlj0
tell "2ch"
get 900 of 2ch/mac/おもろい、めずらしいアップルスクリプト発表会 6
end tell
901名称未設定:2006/11/08(水) 13:19:11 ID:thFr+p+80
tell "2ch"
delete 900 of 2ch/mac/おもろい、めずらしいアップルスクリプト発表会 6
end tell
902名称未設定:2006/11/08(水) 13:57:11 ID:Oeg5r+600
試したわけじゃないが、それじゃあエラーになるぞ、たぶん。
get response 900 of topic "2ch/mac/おもろい、めずらしいアップルスクリプト発表会 6"
じゃないか?
903名称未設定:2006/11/08(水) 23:04:45 ID:BkRH0Hdj0
get responce id 900 of topic "おもろい、めずらしいアップルスクリプト発表会 6" of bbs "mac"
904名称未設定:2006/11/15(水) 02:43:16 ID:kNmxGg6+0
http://wakaba.c3.cx/s/lotsablankers/lotsawater.html

「AMSTracker」あわせた面白いものできないかな
905名称未設定:2006/11/20(月) 18:11:13 ID:aCr0B3ho0
curl使えば、Amazonチェックして、
在庫ありになったらカートにつっこむようなもの、作れそうだよね。
cookieの扱いがちょっと面倒かと思うけど。
906名称未設定:2006/11/24(金) 19:58:12 ID:nTyAPfWu0
tell thread "おもろい、めずらしいアップルスクリプト発表会 6" of bbs "http://pc7.2ch.net/mac/"
 get content of response 900
end tell
907神経質な性格だから:2006/11/24(金) 20:47:05 ID:Rxlxs3Ac0
tell application "iTunes"
tell current EQ preset
if not modifiable then error "The current preset cannot be modified."
set preamp to my qroundFloat(preamp)
set band 1 to my qroundFloat(band 1)
set band 2 to my qroundFloat(band 2)
set band 3 to my qroundFloat(band 3)
set band 4 to my qroundFloat(band 4)
set band 5 to my qroundFloat(band 5)
set band 6 to my qroundFloat(band 6)
set band 7 to my qroundFloat(band 7)
set band 8 to my qroundFloat(band 8)
set band 9 to my qroundFloat(band 9)
set band 10 to my qroundFloat(band 10)
end tell
my checkEQLevels()
end tell

---- Subroutines ----
on qroundFloat(aFloat)
return aFloat div 0.25 * 0.25
end qroundFloat

on checkEQLevels()
tell application "iTunes" to tell current EQ preset
display dialog "........Preamp level: " & preamp & " dB" & return & "
..32 Hz band level: " & band 1 & " dB" & return & "..64 Hz band level: " & band 2 & " dB" & return & "125 Hz band level: " & band 3 & " dB
250 Hz band level: " & band 4 & " dB" & return & "500 Hz band level: " & band 5 & " dB" & return & "..1 kHz band level: " & band 6 & " dB
..2 kHz band level: " & band 7 & " dB" & return & "..4 kHz band level: " & band 8 & " dB" & return & "..8 kHz band level: " & band 9 & " dB
16 kHz band level: " & band 10 & " dB" buttons {"OK"} with title "iTunes EQ preset - " & its name with icon 1
end tell
end checkEQLevels
908名称未設定:2006/11/27(月) 08:29:12 ID:6mITRRlK0
既出でしたらスマソ
(OS X 10.4.7で)クリップボード経由でFinderアイコンを
コピーやペーストするスクリプト作ろうとしたんですが、

tell application "Finder"
activate
set thelist to selection
set theIcon to {icon of item 1 of thelist}
set the clipboard to theIcon
end tell

みたいにすると、クリップボードの内容が「不明」となり、うまくいきません。
theIconの内容も見てみたんですが、「missing value」とのことで、
なんかうまく取得できてないみたいです。

原因や対策など、ご教示おながいしまつ・・・
909名称未設定:2006/11/27(月) 09:07:37 ID:/Y/p05Kj0
thelistの内容を見るんだ
910名称未設定:2006/11/27(月) 09:50:45 ID:juwTIPxC0
そもそもほとんどのアイコンはプロパティーのiconで設定されてないみたいだけど、どーなんだろ
911名称未設定:2006/11/27(月) 23:43:22 ID:enAoaX+I0
-- カスタムアイコンがセットされていない限りpropertyのiconはmissing valueなので、
-- 対策...
tell application "Finder"
tell selection as list
if its length < 1 then return 0
open information window of item 1
set infoWindow to name of the result
end tell
end tell

tell application "System Events"
tell window infoWindow of process "Finder"
set iconButton to a reference to button 2 of scroll area 1
if not focused of iconButton then click iconButton
keystroke "c" using command
end tell
end tell

tell application "Finder"
close window infoWindow
end tell
912名称未設定:2006/11/28(火) 00:36:19 ID:Ln/Hzn640
>>911
それね、フォルダだと

button 1 of scroll area 1

になる模様。
913911:2006/11/29(水) 00:48:01 ID:RFvE8OhX0
では
last button of scroll area 1
に修正。試してないけど。
914908:2006/11/29(水) 18:38:47 ID:dD4ee4ON0
レス遅れてすいません

>>909-913さん、アドバイス&例示下さってアリガトンですm(_ _)m

itemのproperty使わずに、GUI Scriptingで直に操作するのが確実そうですね。
>>911=913さんの言うとおり、当該箇所を「last button of scroll area 1」にしてみると、
フォルダアイコンのコピーもエラーが出ずに出来ました。
とりあえずproperty使っての操作は諦めて、ペーストの方も組んで、AmScriptCMXに突っ込んで
使ってみます。

前述のmissing valueの他にも、>>910さんの話や、property「icon family」が
「NOT AVAILABLE YET」になってたりとか、Xでのアイコン周りのAppleScriptは、10.4に
なってもあんま整備されてないよーな気が('A`) GUI操作を純正環境だけで出来るのは
9の頃より遙かにウマーですけど。

蛇足スマソです&皆様改めてアリガトンヽ( ´∇`)ノ
915名称未設定:2006/11/30(木) 01:22:49 ID:4JP/PMZ70
AmScriptsCMX でクリック位置にある項目をスクリプトに渡せたら最高なんだけどな。
デスクトップ以下の項目を移動しようとしたらデスクトップフォルダを移動しちゃったことがあって以来怖くて使えない。
916(・∀・):2006/11/30(木) 02:42:08 ID:PN79DLVh0
作者に要望してみては。
917名称未設定:2006/11/30(木) 08:56:50 ID:DSA6lM5o0
Finderで右クリック使う時って、
右クリックした項目が選択状態にならないまま操作できちゃうもんね。
この事自体がどうなのかって感じる事もあるけど、
FinderのAppleScript辞書に「右クリックされてる項目」を指す
用語があれば、AmScriptsCMXから、
普通の右クリックと同じ感覚で操作できそうだけどね。
918名称未設定:2006/12/02(土) 23:22:54 ID:nLcAyM9/0
ごめん、AppleScript入門者なんだけど、
言語は読めば理解できるんだが、
書いたものをどこに置けばいいのかが分からん。
そういう情報はどこに書いてあるんだ?
~/Library/Safari/Scripts
とかを作って、そこに置けばいいの?
Appleのweb見るとiTunesは↑みたいにしろってあるんだけど、
Safariにはどうすりゃいいんでしょ。
~/Library/Application Support/hoge/Scripts
みたいな場合もあるようだし、規則がよく分からん。
919名称未設定:2006/12/02(土) 23:52:47 ID:qy+Dx43z0
>>918
逆だろ
/Library/Scripts/Safari/か
~/Library/Scripts/Safari/
スクリプトメニューをインストールした時に表示される場所がデフォと考えれば
いいだろう。

とか書いてたらこれは10.3の場合で10.4では違うな。
/Library/Scripts/Safari/か
~/Library/Scripts/Applications/Safari/
取り敢えずApplescriptユーティリティでメニューをオンにしてみれば?
920名称未設定:2006/12/03(日) 00:09:40 ID:k4Oos03c0
>>918
スクリプトはどこに置いたっていいんだよ。

どこそこに置け、と指示があるのは、例えば iTunes の
メニューバーから直接スクリプトを呼び出すためとか、
スクリプトメニューにスクリプトを表示させるためとか、そういう
ことであって、ただ自分のスクリプトを実行させるために
どこそこに置かないと絶対にダメ、という意味ではない。
921名称未設定:2006/12/03(日) 00:32:51 ID:kyHCQf7Y0
>>919-920
れすさんくす。
おk。理解した。

>例えば iTunesのメニューバーから直接スクリプトを呼び出すためとか
この機能にアプリが対応してるか知るにはどうすればよい?

ttp://www.apple.com/applescript/itunes/
Appleのページ見るとiTunesのとこには
~/Library/iTunes/Scripts
におけって書いてあるんだけど、Safariのとこでは記述がない。
で、試しに
~/Library/Safari/Scripts
を作ってみてscriptを置いたんだけど、メニューに出ない。
これはSafariではメニューに出ないっつーことかしら。
922名称未設定:2006/12/03(日) 01:08:13 ID:fd/NtXWZ0
スクリプトメニューをインストールする。
safariを立ち上げる。
スクリプトメニューの「スクリプトフォルダを開く」に「safariフォルダを開く」が出てくる。
そこにsafari用のスクリプトを入れる。
safariがアクティブなときはそれがスクリプトメニューに現れ、
他のアプリがアクティブなときは現れないのですっきり。
923名称未設定:2006/12/03(日) 01:51:36 ID:kyHCQf7Y0
>>922
できたできた。ありがとう。
んでも、ショートカットが設定できないのか。
924名称未設定:2006/12/03(日) 07:49:57 ID:uAINv7so0
そう言えば前は声で実行させたりしてたけど、
あれ今でもできるのかな。
925名称未設定:2006/12/04(月) 06:54:19 ID:Xxwxdp1F0
エクセルをアップルスクリプトで動かしてみようとしたけど、
やたら機能が多いのはいいんだけど、わかりづらいなー
926名称未設定:2006/12/09(土) 09:55:13 ID:VcqjbtcM0
AppleScriptの皮をかぶったVBA
927名称未設定:2006/12/09(土) 11:11:53 ID:tKT1tWrt0
だいぶ昔のバージョンだけど、
VBAのほうと用語を照らし合わせてみたら
対応してて面白かったような覚えがある。
記述方法も癖があったようななかったような。
928名称未設定:2006/12/17(日) 00:17:27 ID:E1f87bwq0
初心者なんですが、
{a,b,c}と{d,e,f}という2つのリストを
{{a,b,c},{d,e,f}}のような形にするには
どうすればいいのでしょうか。
929名称未設定:2006/12/17(日) 08:16:12 ID:oGl4vDy40
最近tigerにしたんだけど
___ctl-t とかでショートカット設定できなくなっちゃったの?
930sage:2006/12/17(日) 16:23:19 ID:cJIHguLoO
はじめますて。超初心者です。
Mail.appのルールでスクリプトを指定して実行できるみたいなんだけど、
届いたメールを自動で印刷とか可能ですか?
教えていただけたらと。
スクリプト覚えたいです。
931名称未設定:2006/12/18(月) 01:36:18 ID:iJJx9Ykl0
君んところはスパムとか来ないのか
932名称未設定:2006/12/18(月) 03:54:07 ID:ctln39cs0
>>928
まず
set theList to {}
と空のリストを宣言して、
set end of theList to hoge
と、なにかを順次格納していく。
-- 検証コード
set theList to {}
set end of theList to {1, 3, 5}
set end of theList to {2, 4, 6}
theList
933名称未設定:2006/12/18(月) 21:57:06 ID:EJmnkHip0
set theList1 to {1, 2, 3}
set theList2 to {4, 5, 6}
set finalList to {theList1, theList2}
934名称未設定:2006/12/19(火) 00:08:18 ID:PDW9qp5C0
>>932
どーもです。
普通にリストを結合しても、思うように行かなかったもんで。
助かりました。ありがとうございます。
935名称未設定:2006/12/19(火) 12:34:21 ID:H46l0VSY0
そのへんのリストの扱いは、AppleScript Parkに詳しい記述があったような。
936名称未設定:2006/12/21(木) 21:28:47 ID:8zr6VPSP0
ファインダーでクリックして開いたファイルを掴むにはどうしたらいいですか?
そのファイルを開いた、という情報が取得したいです。
937名称未設定:2006/12/21(木) 22:04:38 ID:hH+3Fjvo0
通知を受け取る機能がないから無理だけど、
>そのファイルを開いた、という情報が取得したいです。
その先で具体的に何がしたいの?
938名称未設定:2006/12/21(木) 22:32:57 ID:JPn2VnqX0
>>937
どのファイルを開いたのか記録したいんです。
結果的にはそれを、コメント欄に回数として記入したいと思います。
939名称未設定:2006/12/22(金) 00:00:41 ID:Ihg9Qcd30
標準的には出来そうにない気がする。

別手段として、このTrackerとか使えば情報は収集出来るのかも。ここの英文、
俺にはどうにも読みこなせないが。
ttp://rixstep.com/4/0/tracker/
940名称未設定:2006/12/22(金) 00:09:32 ID:zbHmjtWQ0
似たような感じで、スクリプトエディタの記録が使える環境なら
open document file の部分を抜き出してカウントできる。
941名称未設定:2006/12/22(金) 04:28:51 ID:viuUar760
そういえば昔、AppleEventを記録するようなソフトあったよね。
942名称未設定:2006/12/22(金) 08:04:13 ID:3eOgjxUy0
SpotlightはkMDItemLastUsedDateというMetadata Attributeにオープンした
時刻を記録してる。mdlsコマンドで確認できる。
AppleScriptから利用するのは難しいけど、OSAXかヘルパーアプリを書けば
アクセスできる。
943名称未設定:2006/12/25(月) 08:52:12 ID:Kv6YEQdi0
do shell scriptではだめそうなの?
944名称未設定:2006/12/25(月) 21:02:34 ID:avuDy7cv0
おいらの力じゃ書けないっす
945名称未設定:2006/12/27(水) 20:12:28 ID:T0rh068Z0
(*************************************************************************************
  FinderウインドウをOS 9のポップアップウインドウのようにするスクリプト
  自動的に終了しないアプリケーションとして保存する事
*************************************************************************************)
on run
return
end run
on idle
try
with timeout of 35791394 seconds
tell application "Finder"
set |window list| to every Finder window
repeat with |Finder window| in |window list|
if (frontmost is false) or ((index of |Finder window|) is not 1) then
set (collapsed of |Finder window|) to true
end if
end repeat
end tell
end timeout
end try
return 3
end idle
on quit
continue quit
end quit
946名称未設定:2006/12/28(木) 00:43:54 ID:N+Pputka0
今、プレビューで開いてる画像を再度開けるようにワークスペースの保存みたいのってできないですかね?
947名称未設定:2006/12/28(木) 12:46:41 ID:5eF7fDOZ0
>>946
プレビューはアップルスクリプト非対応。対応してりゃ何でもできるって訳でもないけど。
GUIスクリプティング使ってブックマークでもしとけば?
948名称未設定:2006/12/28(木) 14:43:31 ID:1BQu06HN0
>>947
非対応か…。ファインダーで指定ファイルを開いた方が早そうだな。
949名称未設定:2006/12/28(木) 16:58:20 ID:Ae8HJiM90
一応、open、quitぐらいはできるよ。
PantherのPreviewはできないけど、TigerのPreviewはprintも理解する。
基本的に、どのアプリでもそのくらいはできるようになっているわけだが。

tell app "preview"
open (choose file)
end tell

以下のGUI Scriptingの手法でPreviewで開いてるファイルのパスのリストが取得できる。
(事情でPantherのPreviewで試してんだけど……)

set values to {}
activate application "Preview"
tell application "System Events"
tell process "preview"
repeat with i in windows
set values to values & value of attribute "AXDocument" of i
end repeat
end tell
end tell

後はがんばってくれ。

GUI Scriptingだからお膳立てが必要だよ。詳しくはググれ。
950名称未設定:2007/01/04(木) 23:01:01 ID:PEh8CLR50
AppleScript Shell
http://hayne.net/MacDev/Ash/

Ashだって。
951名称未設定:2007/01/07(日) 12:31:14 ID:cjj4q7kw0
Mail.app で多言語を含むメールを作成する場合、
Mail.app のエンコーディング (最小文字セット) の
選定アルゴリズムがおかしいようで、ISO2022JP
で送信してしまうようです。
メニューから手動で「UTF-8」を選択してから送信
すれば問題無いのですが、それをうっかり忘れると
先方から「読めない」と指摘されることになります。

そこで、新規メール作成ウインドウを開き、UTF-8
に設定するスクリプトを作ろうと考えたのですが、
肝心の「UTF-8」を指定する方法が分かりません。
良い方法があったら教えていただけないでしょうか?

tell application "Mail"
  set newMessage to make new outgoing message
  set visible of newMessage to true
  make new to recipient at end of to recipients of newMessage with properties {address:"user@domain"}
end tell
952名称未設定:2007/01/07(日) 13:14:52 ID:4A/jLrmY0
953名称未設定:2007/01/07(日) 14:09:11 ID:cjj4q7kw0
>>952

そうでしたね。ありがとうございました。一応、成果物。

tell application "Mail"
  set newMessage to make new outgoing message
  set visible of newMessage to true
  make new to recipient at end of to recipients of newMessage with properties {address:"user@domain"}
end tell
tell application "System Events"
  pick (menu item "Unicode(UTF-8)" of
   menu "テキストエンコーディング" of
   menu item "テキストエンコーディング" of
   menu "メッセージ" of
   menu bar item "メッセージ" of
   menu bar 1 of
   application process "Mail")
end tell
954名称未設定:2007/01/24(水) 08:07:02 ID:uMGeKA4R0
ウインドウのサイズとか見た目を特定のものにするスクリプト書いたんだけど
それ使ってそのまま閉じてしまうと次開いた時、設定が反映されてない
使った後ちょっとカーソルで窓を動かしたりすれば反映されるんですが

そのへんの設定は.DS_Storeに保存されているという噂を聞いたんだけど
.DS_Storeが更新されてないっていうことでしょーか
だとするとスクリプトだけで.DS_Storeが更新されるようにするにはどうすれば良いんでしょう?
955名称未設定:2007/01/24(水) 13:00:49 ID:onicjvkw0
よー知らんけど、updateイベント送ってみたら?
956名称未設定:2007/01/25(木) 12:07:37 ID:gb7wVTgp0
>>954
> ウインドウのサイズとか見た目を特定のものにするスクリプト書いたんだけど
> それ使ってそのまま閉じてしまうと次開いた時、設定が反映されてない
> 使った後ちょっとカーソルで窓を動かしたりすれば反映されるんですが

俺もその対処で悩んだことある。
ツールバーの表示ON/OFFを一度切り替えたらウインドウサイズが保存されたけど、その後しばらくすると
ウインドウの内容が再描画されなくなった。同じような感じで何か別の表示を切り替えるといいかも。

> そのへんの設定は.DS_Storeに保存されているという噂を聞いたんだけど
> .DS_Storeが更新されてないっていうことでしょーか
> だとするとスクリプトだけで.DS_Storeが更新されるようにするにはどうすれば良いんでしょう?

試してないけど事前に.DS_Store削除しちゃえば強制的に作成されるかも。
ただ、Appleは.DS_Storeの仕様を公開していないので、直接.DS_Storeを操作するようなことはしないほうがいいと思う。
957954:2007/01/25(木) 18:24:19 ID:9VQoCFYe0
>>955-956
サンクス
まだ直せてないけど
参考にしていろいろ試してみます
958348:2007/02/01(木) 00:18:59 ID:qan9JakM0
ファイルをシェルスクリプトで処理した後にアップルスクリプトに渡して,
またそこで処理をしたいのだけど,上手くファイルパスを渡せません。
ファイルパスに日本語が入っているとアップするスクリプト側で
execution error: Can't make file "..." into aliasとエラー。
アルファベットだけのファイルパスだと問題ないので,
コード変換に問題があるのかも知れないけど,
具体的な原因が判らないので対策もわかりません。
とりあえず以下のようなシェルスクリプトでエラーです。

#!/bin/sh
filepath='/Users/フルパス/ほげほげ.jpg'

cat << EOS|iconv -f UTF8 -t SJIS|osascript
tell application "Finder"
set myFile to (POSIX file "${filepath}") as alias
copy comment of myFile as Unicode text to content
display dialog content
end tell
EOS
959名称未設定:2007/02/01(木) 00:26:36 ID:ApIWqajD0
>>958
>filepath='/Users/フルパス/ほげほげ.jpg'

パスストリングをコマンドラインに渡すんであれば、
(quoted form of posix path of HogehogePath)
でワンセットにしてみたらどうよ。
960348:2007/02/01(木) 00:52:36 ID:qan9JakM0
>>958
コマンドラインに渡したいのではなくアップルスクリプト側に渡したいのです。
処理対象のファイルをPOSIX path型からalias型にしたいのだけれど,その変換中にエラーが出るらしい。
961名称未設定:2007/02/01(木) 01:05:16 ID:xjo41QvB0
>>958
set myFile to (POSIX file ("${filepath}"as Unicode text)) as alias
でどうですか?
962348:2007/02/01(木) 01:22:51 ID:qan9JakM0
>>961
うまくいきました。ありがとさんです。

で,ついでに,as Unicode text とするのだから,コード変換は必要ないかなと実験しましたが,
cat << EOS|osascript も osascript << EOSとしてもエラーが出てしまいます。
(シェルスクリプト自体はUTF8です。)

963名称未設定:2007/02/01(木) 03:03:03 ID:nGX93S0h0
>>962
osascriptは標準入力&テキスト形式のスクリプトでは
unicodeを受け付けなかったと思うぞ。
あと、display dialogとかのユーザーインタラクションも
osascript経由では使えないはず。
964名称未設定:2007/02/01(木) 04:38:16 ID:fCwPeITd0
> あと、display dialogとかのユーザーインタラクションも
> osascript経由では使えないはず。

tell application "Finder" の中だから一応使えるだろ。
965名称未設定:2007/02/02(金) 21:02:30 ID:PiX7os3k0
>>964
こんなん?

MESSAGE="hoge¥n"

display_message () {
osascript <<-EOF
tell application "Finder"
activate
set dd to display dialog "$MESSAGE" giving up after 30
set UserResponse to button returned of dd
end tell
EOF
}

res=`display_message`
966名称未設定:2007/02/03(土) 03:01:21 ID:QN6wgMDq0
Finderじゃなくてもいいんだけどね
echo 'tell app "System Events" to display dialog "Hoge"' | osascript
967名称未設定:2007/02/03(土) 19:31:59 ID:SOWzu8cZ0
教えて下さい!
テキスト内の特定のワードを全て置き換えるにはどう書けばよいですか?
テキストファイルの「AAAA」というワードを「CCCC」に置き換えるスクリプトを作りたいです。
968名称未設定:2007/02/03(土) 19:40:47 ID:3dlQaoE10
使てるエディタの辞書を見れ。
969名称未設定:2007/02/03(土) 21:37:37 ID:SOWzu8cZ0
すみません。見たのですがどうすればよいのかわかりませんでした。
Find/Replace を使えばできそうな気はするのですが具体的にどう書けばよいのか…
Jedit3使ってます。
970名称未設定:2007/02/03(土) 22:11:23 ID:ne7VDeyI0
古…

Jeditならスクリプトマニュアルって付いてない?
replace 命令。例も書いてある。4だけど。これも結構古いかw

もしマニュアル付いてなければ、ここで適当なの漁って。
ttp://www.artman21.net/product/Jedit3/Jedit3Script.html
971名称未設定:2007/02/04(日) 23:01:53 ID:vt9VHor20
ありがとうございました。
色々調べている途中ではありますがJeditを使用せずに
アップルスクリプトだけで置き換えができないものかと
考えています。アドバイスお願いします。
972名称未設定:2007/02/04(日) 23:21:45 ID:DOW/ezez0
日本語はエディタに任せた方が安心、面倒がないと思うけどなあ。

ま、一応。ページの一番下、Replacing Characters in a String
ttp://www.apple.com/applescript/guidebook/sbrt/pgs/sbrt.07.htm
973名称未設定:2007/02/05(月) 00:11:53 ID:e6Q4Kzpy0
AppleScriptでなく他の言語であれば…なんだがな。
974名称未設定:2007/02/05(月) 04:00:27 ID:tqi8tuWU0
文字・テキストの単純な置換は、AppleScriptよりも、Perlの方が速くてラクチン。
10万行以上でも数秒で終わるのと数時間かかるくらい違う、文字色を着けるとか以外は。
975名称未設定:2007/02/05(月) 04:52:01 ID:e6Q4Kzpy0
スレ違いだけどrubyでも置いておく。
文字列fooをbarに置換するスクリプトとして、
任意のファイル名hoge.rbを作成し以下のように記述。

#!/usr/bin/ruby -i
while gets
gsub!('foo', 'bar')
print
end

で、ターミナルから「ruby hoge.rb 置換対象のファイル名」。
976名称未設定:2007/02/05(月) 12:11:36 ID:3M0LCzLZ0
みなさん、ありがとうございます!!!
AppleScript何で勉強しなかったのだろうかとハゲしく後悔。
Perlという手もあるのですね。名前は聞いたことありますが
??のモノでした。
アドバイス頂いたこと勉強してきます。
977名称未設定
>>967-976
ttp://www.vector.co.jp/soft/mac/util/se362780.html
みたいなソフト使った方が楽だと思う
フォルダ突っ込んで一括置換も出来るし
これも中身はPerlだけど