おもろい、めずらしいアップルスクリプト発表会 6 at MAC
[2ch|▼Menu]
1:名称未設定
05/06/05 22:58:26 KGQNvadS
【前スレ】
おもろい、めずらしいアップルスクリプト発表会 5
スレリンク(mac板)l50
おもろい、めずらしいアップルスクリプト発表会 4
スレリンク(mac板)l50
おもろい、めずらしいアップルスクリプト発表会
URLリンク(pc.2ch.net)
おもろい、めずらしいアップルスクリプト発表会
URLリンク(mentai.2ch.net)
面白い&便利なアップルスクリプト
URLリンク(mentai.2ch.net)

・関連スレ
【標準装備】スクリプトエディタ
スレリンク(mac板)l50
【中の人】Automator【小人】
スレリンク(mac板)l50
Macでシェルスクリプト総合 Part 1
スレリンク(mac板)l50

・関連スクリプトのまとめ
URLリンク(members.tripod.co.jp)

2:名称未設定
05/06/05 22:58:40 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:名称未設定
05/06/05 22:59:31 KGQNvadS
【入門サイト】
AppleScript入門教室(掌田津耶乃氏)
URLリンク(www.h5.dion.ne.jp)
AppleScript Lab(狩野正嗣氏)
URLリンク(www.drycarbon.com)
AppleScript Beginner's(JinJin氏)
URLリンク(homepage.mac.com)
AppleScript PARK(大串敏史氏)
URLリンク(homepage1.nifty.com)
AppleScriptサンプル(Okamoto氏)
URLリンク(www.asahi-net.or.jp)
Apple Scriptの覚え書き(水沢和彦氏)
URLリンク(www.kiwi-us.com)

【さらに詳しく】
AppleScript Developers [英語]
URLリンク(www.apple.com)

Xcode Tools(Developer Tools)をインストールしている場合
/Developer/ADC Reference Library/documentation/AppleScript/あたりにドキュメントがあるかもしれません。

4:名称未設定
05/06/05 23:31:54 KGQNvadS
生きてるリンクを前スレから拾ってみた。
-------------------------------
AppleScriptリファレンス--古いけどAppleScripterの聖典
URLリンク(store.sbpnet.jp)
ちゃらんぽらん
URLリンク(www1.odn.ne.jp)
藤棚工房別棟 −徒然−:Unicode textとstringについて
URLリンク(blogs.dion.ne.jp)

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

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

・AmScriptsCMX
コンテキストメニューにスクリプトメニューを追加。
URLリンク(www5.wind.ne.jp)

>AppleScript で日本語(ファイル名とか)を扱うとき
>UnicodeUtils.osax ってのが非常に便利っす。
UnicodeUtils OSAX
URLリンク(www.bekkoame.ne.jp)
-------------------------------
OSAXは使ったことないのでどなたかよろしく。

5:名称未設定
05/06/05 23:48:34 fbg8HeAT
田中求之先生のサイトにOSAXの情報があります
Web Scripter's Meeting
URLリンク(mtlab.ecn.fpu.ac.jp)
トップページ
URLリンク(mtlab.ecn.fpu.ac.jp)


6:名称未設定
05/06/05 23:53:54 KGQNvadS
>>5
あ、どうもありがとうございます。

7:名称未設定
05/06/06 02:03:21 Up5D2c3A
>>1


8:名称未設定
05/06/06 10:20:08 H/+JJ0l9
>>1

何やら前スレよりもずいぶん情報が増えてるね
miでアップルスクリプト書けるのなんてすっかり忘れてたよ

9:名称未設定
05/06/06 23:20:34 YcoLbNsa
これもテンプレとして貼っとこうかな。このスレの人には既出かもしれないけど。

スクリプトメニューからスクリプトを実行したときに
最前面(System Eventsの下)のアプリをアクティブにする方法。
URLリンク(mtlab.ecn.fpu.ac.jp)
URLリンク(homepage.mac.com)
URLリンク(homepage.mac.com)

10:名称未設定
05/06/07 00:25:06 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:名称未設定
05/06/07 00:25:58 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:名称未設定
05/06/07 00:26:18 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:名称未設定
05/06/07 00:30:59 skwXDRr+
あ、URLというのは保存したページの元URLのことです。
Property List Editorでwebarchiveを開いて
Root>WebMainResource>WebResourceURLから
手作業で取り出すこともできます。

14:名称未設定
05/06/07 15:26:20 2/NktH+R


15:名称未設定
05/06/08 01:16:19 UsDQl7ci


16:名称未設定
05/06/08 07:45:40 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:名称未設定
05/06/08 23:32:36 ZzffE7AI
わからんので display dialog で代替とか

18:16
05/06/10 02:55:50 wCviQyR7
>>17
ないのかなあ。結局、iKeyのショートカットを併用する方法に逃げてしまいました、とさ。

19:名称未設定
05/06/11 20:34:05 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:名称未設定
05/06/11 22:01:04 p0skEWMJ
最初にクリップボードの中身を捨てて、
中身が空じゃなくなるまで何回か再試行するって方がいいんでは?
昔、同じようなのを作って動作が不安定だった。


21:名称未設定
05/06/11 23:07:41 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:名称未設定
05/06/11 23:56:58 4xBsWyh4
ちなみに
if (text of (the clipboard)) is not "" then
というところは
「クリップボード内容がテキストだった場合のみ以下を実行」
のつもりで書いたんですけど
""でなくて{}と書くべきでした。
さっき気づいたorz。

23:名称未設定
05/06/13 17:53:12 S0XtIU+o
パスを取得するCM

AmCopyPathCMX
URLリンク(www5.wind.ne.jp)

PathSnagger CM
URLリンク(www.versiontracker.com)

24:名称未設定
05/06/15 23:14:24 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 ("fhttp://" & UserName & ":" & UserPassword & "@" & FTPaddress)
upload file fullPath to FTPURL replacing yes with progress without binhexing
quit
end tell
return 20
end idle

25:名称未設定
05/06/16 00:05:45 z9OQ6jRJ
>>24
同じスレを見て、ちょうど同じものを作ってたんですがw
自分は最後のアップロード部分だけcurlで書きました
do shell script ("curl -T " & jpgpath & " -u " & username & ":" & passwrd & " " & ftpaddress)

しかし、何だかキンタマっぽくてアレな感じ

26:名称未設定
05/06/16 20:06:41 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 "URLリンク(www.google.com)" & keyword & "&ie=UTF-8&oe=UTF-8"
end tell

27:名称未設定
05/06/16 21:33:19 MgWekGvj
>濁点、半濁点が一文字として数えられてしまう問題
これって普通のプログラムでもかなり具合悪い問題なんだよね。
ファイルネームから取り出した文字列を比較したりすると色々と困ったことになる。

28:名称未設定
05/06/16 23:29:29 fk8lNXDJ
>>27
それはプログラムのバグ、Unicodeを勉強しましょう。
Normalizeするか専用APIを使わないとUnicodeは正しく比較検索で
きない。バイナリ比較ではダメ

29:名称未設定
05/06/20 23:01:10 CP5nzhiZ
保守しようにもネタがないので
UI Element Inspectorのリンクでも貼っときますね(*´・ω・)(・ω・`*)ネー
URLリンク(www.apple.com)

30:名称未設定
05/06/26 02:17:01 Qo+51qp/
ほしゅ

31:名称未設定
05/06/26 02:40:49 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:名称未設定
05/06/26 02:41:05 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:名称未設定
05/06/29 05:03:45 H9awzwNk
も一個のスレで書くべきかと思ったんですが。。
GUI Scriptingについて
ある程度詳しく解説したサイトとか本とか無いですか?

34:名称未設定
05/06/30 01:15:31 ZWl3fBqM
スレ趣旨と全然ちがってしまうんですが、現在
「伝言課長」
URLリンク(homepage.mac.com)
というスクリーンセーバーを見つけて試行錯誤してます。
geektoolのスクリーンセーバー版、それも、geektoolがシェルスクリプトなのに対して伝言課長はAppleScriptでいろいろなことをするようです。

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

AppleScriptを介してシェルスクリプトやターミナルコマンドを実行させこれを伝言課長で表示。
もうひとつは、AppleScriptで、指定のテキストファイルを読み、それを伝言課長で表示させる。
どちらにしてもAppleScriptはさっぱりわからんので、
'ここにターミナルのコマンドを書く'
'ここにシェルスクロプとのパスを書く'
'ここに表示させたいテキストファイルへのパスを書く'
っていうのを含め含めた形でtel application 〜のところから教えていただけないでしょうか?

35:名称未設定
05/06/30 09:07:31 EmB59LnT
>>34
そのソフトをDLしてみないと細かい事はわかりませんが、
とりあえず下記URLの所を熟読してください。
URLリンク(developer.apple.com)

36:名称未設定
05/06/30 09:27:31 EmB59LnT
伝言課長のサンプルで「cal」の結果を表示するスクリプトが設定されてますね。
その「cal」の部分を入れ替えるだけでだいたいOKなんじゃないかと思います。
(と確認せず無責任な事を言ってみる)
伝言課長の使い方自体は付属のドキュメントを読んでください。

37:名称未設定
05/06/30 19:17:44 aipzy17H
do shell script "cal"
おわり

38:名称未設定
05/06/30 19:44:03 XdYV/xxK
>>37
do shell script "top"
みたいにプロンプトが帰らないものは、死ぬね。
システム環境設定のスクリーンセーバー呼び出すだけで固まっちゃうからちょっと焦った。


39:名称未設定
05/07/02 21:43:36 PPHHiydJ
つかぬ事をお聞きしますが、10.3とか10.4のスクリーンショットのフォーマットってどうなってるの?
10.2でスクリーンショットを日付時刻のファイル名のJPEGに変換するスクリプト作ったんですけど、
実用としてもスクリプトのサンプルとしても、今更需要ないですよね?w

40:名称未設定
05/07/02 21:47:09 QDUI6jPD
10.3 PDF
10.4 PNG

41:名称未設定
05/07/02 22:00:00 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:名称未設定
05/07/02 23:23:18 1hwocL1u
プレビューで変換すりゃいいじゃん。

43:名称未設定
05/07/03 00:02:36 oq99HcNG
>>42
一個ずつ変換するのが面倒になったもので。。

44:名称未設定
05/07/03 00:06:25 oq99HcNG
ちなみに。。
もう一個のスクリプトスレに書いてますが、
最初はプレビューをGUI Scriptingでコントロールしようとしたんですが、
セーブダイアログのシートをどう操作するかわからずあっさり手詰まり。
で、こうなりました。
GUI Scriptingも覚えたいんだけどなー。。けっこう敷き居高いです。

45:名称未設定
05/07/03 23:49:11 ypFtIuQq
覚えるほどには使わないので必要になったら
いちいち一から調べなおす漏れは負け組

46:44
05/07/04 00:54:57 MTliIprm
あー。僕も触らない時は全然触らないですし、
いつもAppleScriptリファレンスで調べながらやってますよ。
後、過去の自分のコードが頼りかな。
ゼロからってのはちょっとやってられません。

ただGUI Scriptingについては基本的なやり方自体がまだよくわかってないんですよね。
わかりやすい教科書みたいなものがあるといいんだけどなー・・。
フォーサイトのUI Browserはちょっと高過ぎます。

47:名称未設定
05/07/04 12:13:48 s91Q9fv9
GUI Scriptingだからって他のAppleScriptの記述とそんなに変わらん気がするけどな

これ↓とSystem Eventsの用語説明のProcesses Suiteの項目見ながら書けば何とかなると思うが
URLリンク(www.apple.com)

48:名称未設定
05/07/04 15:25:18 MTliIprm
はげましtksです。
いじってたら何となくわかってキタ━━━(゚∀゚)━━━ !!

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

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

ただしUI Element Inspectorの画面で
「PopUpButton」なのがAppleScriptでは「pop up button」だったり、
「press」が「click」になってたりするので注意が要りますね。

49:名称未設定
05/07/04 16:12:49 MTliIprm
UI Element Inspectorでcommand + F10した時に出るもう一つのパレットは何??
部品に命令を送ってみたりできるのかな??

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

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

例えば、「保存」ボタンを押した後、同名ファイルが存在していて
上書きするか問い掛けるダイアログが出たとしても、
スクリプトから感知できない。
あらかじめ調べておかないといけませんね。

50:名称未設定
05/07/04 16:17:39 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:名称未設定
05/07/09 13:16:30 o7crlrS2
スレ違いかもしれませんが、
スクリプトつかってiPhotoのアルバムを順番にスライドショーさせることってできないでしょうか?
教えて下さい。

52:名称未設定
05/07/09 18:05:24 o7crlrS2
補足です。
複数のアルバムやムービーを順番に繰り返し自動で映してくれるようなスクリプトはどこかにないでしょうか?
「start slideshow」「stop slideshow」を使うとできそうな気がするのですが、スクリプトを書いた事がないのです。
どなたか教えて頂ければ助かります。


53:名称未設定
05/07/11 07:06:53 r17XUk5r
全然レスついてないね。。
iPhoto使ってないからよくわからんのだよなー。
画像登録してないし。。

54:名称未設定
05/07/11 19:34:24 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:名称未設定
05/07/11 20:32:04 6QoMWvBH
よーわからんけど、ホゲホゲタイプって4文字じゃないの?

56:名称未設定
05/07/11 22:15:59 Ac+vuz6H
>>54
MP3のファイルタイプはMPG3。

57:名称未設定
05/07/11 22:19:59 r17XUk5r
>>55
という事で久々にファイルタイプとクリエータを調べるスクリプトなんてのを
Xcodeで作って、調べてみた。w

>>54
iTunesで作ったMP3ファイルを調べたら
クリエータが hook でファイルタイプは MPG3 だったよ。

58:名称未設定
05/07/11 22:20:28 r17XUk5r
リロードしてなかった・・・。
orz

59:名称未設定
05/07/11 22:24:24 r17XUk5r
あれ?iPhotoって完全に市販ソフトになったんだっけ?
試そうかと思ったけど俺のTigerには入ってないや。

60:名称未設定
05/07/11 22:40:00 O0VBwvLI
>>59
バンドルされてたバージョンなら只
それ以外はiLife買わないとダメ。

61:名称未設定
05/07/12 00:32:02 An03UZvW
>>54
>>55氏の指摘するとおり、最後の一文字の半角スペースが足らない。
「Mp3 」

62:名称未設定
05/07/12 01:21:47 uzqk+21s
>>61
>>56,57
???

63:名称未設定
05/07/12 01:28:34 uzqk+21s
あらほんとだ。ファイル検索したら『Mp3 』のもいくつか出てきた。
全部iTunesじゃないファイル。

64:54
05/07/12 21:13:28 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:名称未設定
05/07/12 22:49:37 uzqk+21s
へぼい英語もどきでもいいし、
日本語のローマ字書きでもいいから
変数名、ルーチン名は、意味のある言葉にした方がいいよ。
(ここに掲載するために書き換えたのかもしれないけど)

66:名称未設定
05/07/15 14:41:44 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:名称未設定
05/07/23 01:19:35 g3sV0Mso
擦れ違いですが、適当な場所が見つからないので失礼します。

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

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

クレ厨質問で恐縮ですが、ご指導、ご誘導おねがいします。

68:名称未設定
05/07/23 01:34:43 ftUU2b3N
よくわからんがOSごと再インストールしてみるのが一番早いのではないかと

69:名称未設定
05/07/23 02:05:12 e3MUEdxb
>>67
まああれだ。地味に
・機能拡張マネージャや手作業で非標準の機能拡張やコンパネを排除
・デスクトップの再構築
やって、駄目なら

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

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

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

旧Mac OSのいいところの一つは健康なシステムのバックアップと
それを再び使用する事が簡単な事。
まっさらなシステムに最低限必要なものをインストールしていって
これなら健康に動くというシステムができたら、
丸ごとCDに焼いたりして保存しとくといいよ。

70:名称未設定
05/07/24 01:35:22 0Hk7FGP+
お手上げ状態なので教えて下さい。OSX環境。

ドロップレットで、
1.フォルダとファイル(混在可、複数可)をドロップすると
2.下の階層も含め、すべてのファイルについて
3.ファイル名の拡張子に応じてタイプ、クリエータを固定値(自分がいつも使うものをスクリプト中に書き込んでおけばよい)に変える
(1)が「複数ファイルをドロップ」のものは作ってある。再帰呼び出しを使うんだろうけど調べてもよく分からない。

71:名称未設定
05/07/24 01:41:01 netavl3M
その作ってあるものを晒せば手直ししてくれる人がいるかもしらん。

72:67
05/07/24 12:34:02 QUYFYJXY
>>68 >>69

結局OS再インストールで直りました。罵倒されるのも覚悟の上の
質問だったんですが、親切なアドバイスありがとうございました。

73:名称未設定
05/07/24 20:37:21 vAaIf/kw
>>70
うあー。これまた懐かしいなあ。w

Tigerたんでスレが立っちゃった鳶さんのサイトのAppleScriptのコーナー見てみそ。
再帰関係は詳しいよ。

74:名称未設定
05/07/27 08:54:07 hvMTIN31
細かい話だけど。

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

同じ事で悩む人が居るかもしれないので書いておきます。

75:名称未設定
05/07/27 20:22:13 FfcLoIpy
tellする対象がまちまちなので、ハンドラでなく、includeだとかrequireみた
いな感じでスクリプトを展開するだけの記述をしたいのですが、この場合はど
うしたらよいでしょう。

script objectを使うのかと思ったのですが、ほしい効果をもたらしてくれるも
のではなさそうです。呼び出し元のその時点のtell対象に、呼び出したスクリ
プトを機能させたいのですよね。


76:名称未設定
05/07/27 21:24:10 hvMTIN31
うーん。。Cとかほとんどわからないのでそっちの概念で書かれてもわからないです。ごめんなさい。

ハンドラでだめな理由がよくわからないです。
具体的にどういう事をやろうとしてるのかもうちょっとわかれば。

77:70
05/07/27 23:57:32 JcCcvLtY
今までのものと改変中のものをアップロード。
「wwwwwwwwww.net/」に ファイル 146、パスワード as
わかる人は教えてください。

78:名称未設定
05/07/28 00:09:23 SbUgNemi
>>70
entire contents じゃダメなの?

79:名称未設定
05/07/28 00:09:49 GgthWHD8
落とすのめんどい。
ここに晒せ。

80:名称未設定
05/07/28 08:55:16 AvWVyX5U
>>77
てか、〜のサイトを見てみたら?ってレスしたんだから、
見たのかどうかくらい書いてくれるとうれしいんだが。

81:名称未設定
05/07/28 13:48:22 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:名称未設定
05/07/28 18:13:04 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


83:70
05/07/29 00:17:41 2YZ6dhG8
言われる前からそこは読んでいた
それでもそこからの変え方が分からなかったんだよね

84:名称未設定
05/07/29 00:25:44 Nr6PDJVV
だから、ここに晒せって。

85:名称未設定
05/07/29 00:25:55 wgK8tZ6N
相手の言うことには答えないくせに
自分の知りたいことだけ教えろ的な態度はよくないよ?

なんか工房臭がぷんぷんするね

86:名称未設定
05/07/29 00:30:07 nusPQWPz
実のところ何も出来てない(誰かにほぼ丸ごと作って欲しい)から晒せないんでそ

87:名称未設定
05/07/29 01:39:45 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:名称未設定
05/07/29 15:00:04 M23of279
横入りしてスマソ。

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

と、ここまで書いてて思い出した。
どっかで文字コードいじらないといけないんでしたっけ?

89:名称未設定
05/07/29 21:34:12 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 = "URLリンク(map.hatena.ne.jp)" + Str + "&.submit.x=0&.submit.y=0"

open location adr


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


どうすれば正常に動作するのでしょうか?

90:名称未設定
05/07/29 21:46:58 4S6qiW3H
文字は&で結合

set c to "a" & "b"


91:名称未設定
05/07/29 23:00:18 BpwUrXFn
>>90
ありがとうございます。+を&にして、open locationの後を改良したら表示されるようになりました。

92:名称未設定
05/07/31 02:18:26 m+2lsOST
スクリプト晒させておいて放置って、
お前らなかなかやるな(w


93:名称未設定
05/07/31 08:56:05 TtASbzjH
そもそもここは質問スレではない。

94:名称未設定
05/07/31 08:58:13 ApoepvFe
URLリンク(homepage1.nifty.com)

95:名称未設定
05/07/31 14:18:12 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:名称未設定
05/07/31 15:28:34 m+2lsOST
$ zsh
% /Developer/Tools/SetFile -c JED3 -t TEXT */*/*.txt


97:名称未設定
05/07/31 15:54:53 GzPe9L0a
マニア御用達?zshキター!!
それって項目数とか階層が増えてもぜんぜん大丈夫ですか?

98:名称未設定
05/07/31 15:57:04 GzPe9L0a
>>95
一個抜けてた。
AppleScriptに組み込むつもりだったらディレクトリの指定の部分も変数にしないとだめやね。

99:名称未設定
05/07/31 16:30:41 m+2lsOST
>>98
多分大丈夫だよ。さいきてきにどんどんいくので。
SetFileはしらなかったよ。


100:名称未設定
05/07/31 17:27:09 GzPe9L0a
>>99
そうですか。
find xargsを使ったやり方は処理数オーバーになったりするのを
自動的に防止してくれるらしいです。

SetFileは漏れはターミナルコマンドポケットリファレンスとかいう本で知りました。
Developer Tools限定じゃなくて標準搭載にしてほしい便利なアイテムですね。

101:名称未設定
05/07/31 23:01:16 zhGWBMHX
>>87ありがとう。とりあえず試したけど問題なく行けてる気がする
>>95せっかくだけど今の自分には分からない。でも憶えておくよ。ありがとう。
>>79逆にその気をなくしたよ

102:名称未設定
05/08/01 08:19:40 C4PeiVjP
87は別の人だったのか。。
よく読んでなかったぽ。
orz

103:名称未設定
05/08/03 14:45:48 uGA2gvae
いつの間にかScript Debuggerが3.0.9にアップデートしてるね。
Tiger対応したとある。あと、SpotlightのImporterも出てた。
Script Debuggerのスクリプトをインポートできるプラグイン。

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



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

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

のようにbindingからkeyを取得する書式で、保存する度に"|"の部分が
勝手に消されてしまいます。
変数名に"|"を入れる際には、何か特別な工夫が必要なのでしょうか。

105:名称未設定
05/08/06 12:07:53 lZRiqwqQ
ん、チュートリアルからのコピペで入力するとうまくいく場合もあるようで
…よくわからん

106:名称未設定
05/08/06 19:10:31 g9rt0GkA
2バイト文字を変数に使うための方法だったと思う

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

ASCII文字だけの場合、確かにコンパイラが消す場合と消さない場合があるようだね

107:名称未設定
05/08/06 19:15:06 gjXqh3Ki
予約語とバッティングするような変数名を使いたい時にも使う。

set |set| to "abc"


108:名称未設定
05/08/06 19:51:43 oyLPcSJR
すげー懐かしい。

109:名称未設定
05/08/07 14:06:22 +WT6BpIX
全アプリケーションのウインドウ名を得るにはどうすればいいでしょうか
最前面のアプリのウインドウ(s)は取得できましたが、全アプリとなるとロウレベルな部分へのアクセスが必要なのでしょうか

110:104
05/08/07 14:33:55 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:名称未設定
05/08/07 20:31:10 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:名称未設定
05/08/07 23:07:49 +WT6BpIX
>>111
ありがとうございます。このようなものを求めていました。


113:名称未設定
05/08/08 16:40:15 r+B7EZlh
7/29に、FaceSpanがLate Night Softwareに買収されとった!

URLリンク(www.facespan.com)

Late Night SoftwareからFaceSpanから販売する準備をしてるところだと。


114:名称未設定
05/08/08 16:43:08 5Fo16CXb
FaceSpanって今でも使ってる人いる?

115:名称未設定
05/08/08 18:17:46 LhZ4wDmd
懐かしいなー。
最近どっかのスレのスクリーンショットであれっぽい菱形(というか角で立った正方形)のアイコンを見てちょっと思い出したところだった。

しかしだ。AppleScript Studioのある今、FaceSpanの存在意義は?

116:名称未設定
05/08/08 18:46:47 5Fo16CXb
>>115
Classic OSとかかな?
Dialog Dirctorで代用できるかもしれないけど。

117:名称未設定
05/08/08 19:13:06 bv5WB+LM
AppleScript Studioでは不完全な形でしかできない(少なくとも自分が試した限
りでは)Global Floating Windowが簡単にできることとか。

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

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

って「SK8」ってどんな塩梅だったの?


118:名称未設定
05/08/24 19:01:52 NLEdTlhp
SK8あったねー

119:めんどうくさがり
05/08/24 20:16:05 +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:名称未設定
05/08/25 09:52:58 cJIJ+GJg
へー。スクリプトで隠されてもメニューから復活できるんだ。
そのネトゲがMozilla系でできるかどうかわからないけど、
Firefoxならあらかじめ、JavaScriptでアドレスバーとかステータスバーを隠すのを禁止する事ができるよ。

121:名称未設定
05/08/25 11:04:40 cJIJ+GJg
>>120の一行目の「スクリプト」って、JavaScriptの事です。
どうでもいい書き込みスマソ。

122:名称未設定
05/08/26 19:04:59 ZFUK01z8
>>120
Win環境のIEとかなら無理だったりするらしい。ソース閲覧不可とかありえませんね。
火狐はインターフェイスがあまり。。なのでSafariマンセーかな

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

ショートカット入力させるだけでもいろいろ便利になりますね、AppleScript

123:名称未設定
05/08/27 22:45:18 frsLVu8F
アプリケーション(例えばiTunes)が現在起動中かを if文 で判別する方法を教えてください

124:名称未設定
05/08/27 23:04:07 wC5K5M17
>>123
tell application "Finder"
if "iTunes" is in (name of every process) then
log "Yes."
else
log "No."
end if
end tell

125:名称未設定
05/08/27 23:07:55 YBwuAvay
>>123
tell application "System Events"
if (name of processes) contains "iTunes" then
display alert "起動してる"
end if
end tell


126:名称未設定
05/08/27 23:11:24 frsLVu8F
>>124-125
キタ━━(゚∀゚)━━ッ!!
thx

127:名称未設定
05/08/27 23:39:52 ngj41HCr
近頃、おもしろくも、めずらしくも無いな

128:名称未設定
05/08/28 00:50:54 E4rJqwYg
子供相手にそうカリカリすんなや。

129:名称未設定
05/08/28 02:02:28 SVPj9b+3
某所でスリープを感知して動作するスクリプトを見つけたんだが、
どんな仕組みでやってるのかな?
サイトに書いてある事によると、idleハンドラを10秒周期で回して
スリープから復帰する時に背後で行われる作業かなんかを調べてるっぽいんだけど。

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

あとそのスクリプト、色つきの半透過のウインドウを出すみたいなんだよね。
そのやり方も気になる。display alertって、普通にそんな事できるの??
フォントもスタイル付きだったし。

130:名称未設定
05/08/28 02:04:17 SVPj9b+3
>>129
×:スリープを感知
○:スリープ解除を感知

131:名称未設定
05/08/28 02:05:21 M61crGs6
Gなんとかっていうのを入れるんじゃなかったっけ。
要はウインドウを出すだけのソフト。


132:名称未設定
05/08/28 02:12:23 lrijzcNQ
某所とか言われてもな

133:名称未設定
05/08/28 02:45:29 SVPj9b+3
>>131
そうなの?
アプリケーションバンドル形式だったからパッケージ開いてみたけど、
それっぽいものが見付からなかったんですよね。
その部分だけCocoaか何かで書いてるのかなあ??

>>132
情報としては上記の説明で充分と思ったんで晒すのもどうかと思ったんだけど、
別に隠す事でもないか。ぴよまるソフトウェアさん。
要望出そうかと思ったら連絡先がないみたい。

134:名称未設定
05/08/28 03:03:34 lrijzcNQ
>>133
ども、ダウンロードしてみた

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

スリープ感知で一番簡単な方法としては、on idleで10秒毎に時間を記録しておいて
前回の記録との間が10秒より有意に大きければ、途中でスリープした可能性ありと
判断できるかもね(他にも複数の方法を併用してるようだけど)

135:名称未設定
05/08/28 03:07:50 lrijzcNQ
一見アプリケーション形式のスクリプトに見えるけど
icnsにアプリケーション形式スクリプトのアイコンを使ってるだけであって
実態は普通のAppleScript Studio製Cocoaアプリだと思う

136:名称未設定
05/08/28 03:49:15 SVPj9b+3
>>134,135
AppleScript Studioで、半透過のウインドウって簡単に作れるんですか?

> 時間を記録しておいて〜
はっはーなるほどー。

137:名称未設定
05/08/28 04:31:49 M61crGs6
Objective-Cのクラスを使う形で実装するようだよ。


138:名称未設定
05/08/28 05:30:39 SVPj9b+3
call methodですか〜。使えるようになりたいなー。

そういうのに便利なCocoa APIのリファレンス本ていうか、
そういうのないですかね?
・・・日本語で。w

139:名称未設定
05/08/28 10:29:55 BPGTYoyE
>>136
通常のウィンドウを半透明にするだけなら、単にset alpha valueすればいいんだけど
ウィンドウ枠を持たない、いわゆる不定形ウィンドウはcall methodを使うみたいね
「AppleScript Studioでゼンマイびゅんびゅん!!」に作例が載ってたよ
>>138
oomoriさんとこのCocoa APIリファレンスには
call method用の構文も載ってて便利

140:名称未設定
05/08/28 10:37:55 BPGTYoyE
ごめん、call methodは使ってないや
IBでウィンドウにCuntom Classを適用するだけでいいようだ

141:名称未設定
05/08/28 10:38:29 BPGTYoyE
Custom Classね

142:名称未設定
05/08/28 13:31:49 8uyYtYD3
しかし自分もたいていソース非公開だから言えたもんじゃないが
スリープ解除感知とかいう有用なノウハウは公開して貰えると
とてもうれすぃ。
まあそれ用のハンドラがAppleのほうで用意されるのが一番いいんだろうけど。

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

>>139
いっそ誰か(どこか)金出して
oomoriさん中心でAppleScriptで使うためのCocoaの本を出してくれたりしないものか。。
AppleScriptリファレンスとかも労力に見合うほど売れてなかったりするのかなー。。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4271日前に更新/298 KB
担当:undef