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リファレンスとかも労力に見合うほど売れてなかったりするのかなー。。
143:名称未設定
05/08/29 02:36:36 9B68a1cp
Products [CD販売中] AppleScript Studio秘伝書CD v2.0 (ShareWare)
AppleScript Studioでアプリケーション開発を行う際の、さまざまなノウハウをまとめたCDです。
144:名称未設定
05/08/29 20:39:48 6qenkZWc
なるほどぴよまるソフトウェアさんはそういうの売ってるのね。
ちゃっかりしてらっしゃる。w
FAQ眺めるとなんかこう、おいしそうなのからえーこれで金取るのってまで混ざってるな。w
145:名称未設定
05/08/29 20:42:42 6qenkZWc
けっこー初歩的な質問ですが。。
非公式?だけど便利なハンドラ「on reopen」がありますが、
(既に起動中のアプリのアイコンをドックでクリックした時などに実行)
AppleScript Studioでこれの代わりになるハンドラってなんでしょうか?
File's Ownerのactivated?
146:名称未設定
05/08/30 11:53:52 jNx+Fim/
>>145
on reopen そのものがどこかにあった気がする。
147:名称未設定
05/08/30 15:19:32 MpFfq2Mz
ほんとですか?
コンパイルは通るんですけどね。。
148:名称未設定
05/08/31 00:23:26 eIHwi7CC
Mac OS Xになってから、AppleScriptでは金払わないとcgi書けなくなっちゃっ
たんですね。せめてosascriptがユーザwwwでも普通に動くといいんですが。
sudoで動かそうとしたけどパスワード入力で止まっちゃって無理だった。
echo "
" | sudo osascript -e "set aa to 1"
偽RD-Styleを目指してEyeTV 200用のcgi試しに書こうとしたとです。
149:名称未設定
05/09/02 11:51:58 XK+0qGLz
>>148
そりは困った事ですね。
Web Scripter's Meetingのほうとかでいいアイディアをおもちの方がおられませんかね。
150:名称未設定
05/09/02 11:52:53 XK+0qGLz
Jon's Commandsって、OSX版が出てたんですねー。
キー入力の検出ができたりするみたい。
151:名称未設定
05/09/03 20:50:36 aSLKcfbY
ファイル名の中の一文を置き換えるようなスクリプトってどうすればいいでしょうか?
名称未設定OSX.txt→名称未設定OS9.txt
みたいなのを大量に処理したいんですが。
152:名称未設定
05/09/03 21:31:59 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:名称未設定
05/09/04 07:53:54 /QQrhNHa
OS XならPerlとか呼び出せばかなり複雑な事もできるね。
>>151
そもそもファイル名の取得と変更の基本的な事はわかってるのかな?
>>152さんのはテキスト置換部分だからそれにちょっと付け足せばいいんだけど。
set 変数 to name of ~ で現在の名前を取得。
set name of ~ to 変数 で名前を付ける。
あと複数処理ね。
ドロップレットにするかFinerのselectionで選択対象のリストを得る。
repeat with 変数 in リスト
を使って一個ずつ処理する事になるね。
~~~~~~~~~~~~
結果が欲しいだけならAutomatorでもできるよ。
リネームソフトもあるし。
154:名称未設定
05/09/04 17:35:47 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:名称未設定
05/09/04 17:57:10 S3WLaW7i
○(外に出す)
------------------------------
on open
end open
on replaceText()
end replaceText
×(ネストしない)
------------------------------
on open
on replaceText()
end replaceText
end open
156:名称未設定
05/09/07 19:30:14 O48sruLh
Script Menu.menuというのをクリックすると右上のバーにスクリプト項目が表示されて、
そこからScriptを実行したりできるわけですが、
ドロップレットのかわりに、ファイルを選択してそこから実行するようにするにはどうすればいいでしょうか?
on run
tell application "Finder"
set sentaku to every item of selection
みたいにやってみたんですが、どうもうまくいきません。
157:名称未設定
05/09/07 20:03:01 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:名称未設定
05/09/07 20:20:57 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:名称未設定
05/09/07 20:53:44 xqO5ONDa
>>157
日本語変数かよw
懐いぜ。
>>158
何でそういうサブルーチン作って分けてるのか
いまいちわからんのだけど。
不必要じゃないか?
むしろリピートの中で一々サブルーチン呼んでたら速度低下とか色々あるでしょ。
デスクトップフォルダの場所が知りたいだけなら
リピートの外で一回実行すればいいだけで、分ける必要もないと思うが。
160:名称未設定
05/09/07 21:26:00 2nHUp/3B
HDDのスクリプト溜めの中の全然別のスクリプトから切り出してきたのでそうなっ
てんだ。
161:名称未設定
05/09/07 21:45:49 xqO5ONDa
それにしてもなあ。
切りだし元の書き方に汎用性がないって事にもなるし。
まあ直せるならいいけど。
162:名称未設定
05/09/07 21:48:17 eX6ZJATJ
Finderで複数の項目を選択して、それらのアイコンを削除し、
表示をデフォルトに戻すスクリプトを制作していただけませんか?
大量のjpgファイルにサムネイルがついてしまい、なおかつ、そのサムネイルが汚くて
非常にまいっています。よろしくお願いします。
163:名称未設定
05/09/07 21:52:46 Ozt2EC4O
動かなくてもいいからまず自分で書いてみなよ
164:名称未設定
05/09/07 21:58:04 EroFEonN
>>162
URLリンク(www5.wind.ne.jp)
URLリンク(www5.wind.ne.jp)
では駄目でAppleScriptがいいの?
165:名称未設定
05/09/07 22:12:24 eX6ZJATJ
いいえ、これでもかまいません。ありがとうございましたー
サンプルをちょっといじってみたら、自分の書いた文章がアラートとして表示されました。
軽く感動。スクリプト、ちと勉強してみます。
166:名称未設定
05/09/08 01:02:50 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:名称未設定
05/09/08 05:16:47 +30f54Ms
ちょっと質問です。
マイク入力でスリープを解除させるようなスクリプトは可能ですか?
168:名称未設定
05/09/08 06:07:39 JQ3TRJE9
>>167
無理。スリープ状態では普通のアプリケーションは停止するし。
そういうのはスクリプトの仕事ではない。
(仮に元々そういう設定が隠し設定としてシステムに存在していて
コマンドラインから設定できるとかいう場合ならスクリプトでどうにかなるけど)
169:名称未設定
05/09/08 12:56:00 BNL3nlcb
>>167 あんたこれ作りなさい。「チャイムコードへ」、とある先にキーボードつなぐ。
CtrlとかCommandとかOptionとか、いつ押しても問題無いキーを押させる。
URLリンク(homepage1.nifty.com)
Wake On LANというセンもあるけど。省エネルギーのオプションを参照。
↓Cで書かれたwolクライアント。玄箱でもMacでもコンパイルできた。
URLリンク(www.gcd.org)
↓wol解説
URLリンク(www.rtpro.yamaha.co.jp)
wolだとマジックパケットを送るマシンと、マイクからの入力をあれこれするプ
ログラムが必要になるから本質的な解決にはなってないね。
170:名称未設定
05/09/08 18:10:29 +30f54Ms
そうか、スリープしてたら普通アプリはとまってるよね(w
あっはっは。
ハード組んでまでやりたいことじゃないので・・・ちょっとハードはパスだに~。
サーバーにしてるノートがあって、リビングに鎮座してるので時計でも表示させようかなと。
で、大抵はスリープしてるんで手拍子で時計起動しないかな~とね。
画面スリープだけなら可能性あるかな?
可能だとしてマイク入力をイベントとして処理できますかね?
171:名称未設定
05/09/08 19:53:25 JQ3TRJE9
スクリーンセーバーみたいなものを起動させておいて
音に反応させるのは可能なのでは?
まあそれもAppleScriptじゃなくて Objective - C でどうぞって雰囲気だけど。
音に反応するアプリとかって昔ありましたよね。
ふーふーすると風車が回るやつとかはけっこう新しいやつでしたっけ。
>>169
チャイムの代わりに簡単な稼働部品をつけて
マウスでもつつかせればスリープは解除できますね。w
こういうの作れる人になりたかったなあ。
172:名称未設定
05/09/08 20:46:00 BNL3nlcb
>>178 ポーリングして値を見てやらんといかんでしょ。
URLリンク(developer.apple.com)
QuickTime Audio
Sound Input Manager Routines
SPBGetRecordingStatus
meterLevel: Integer;
Pythonでは/Mac/Modules/sndでいけるっぽい
URLリンク(mail.python.org)
PerlもMac-Carbon使うといけるみたい
URLリンク(search.cpan.org)
REALbasicでもSPBAudioLibっての使うといけたらしい
URLリンク(support.realsoftware.com)
0-255のintが返ってくるから、閾値を設定して最初のループで認識後、次のルー
プで閾値以下に戻ったのを確認して、さらに次のループで何秒以内にもう一度
入力があったらGO!みたいな感じに処理するといいと思うが。
SpeechRecognitionServerを使う手もあるね。でもこれ日本人にはきつい。
これ使うぐらいならハード作った方がましだと思う。
URLリンク(developer.apple.com)
>>171 キーを押すということは電気を通すということだから、
この先に電気で動かすスイッチであるSSRとかフォトカプラを置けばいいのよ。
キーボードを改造する必要はあるけど。
173:名称未設定
05/09/08 21:28:16 JQ3TRJE9
ああ昔内蔵マイクに向かって一生懸命
「What time is it now ?(ほったいもいじくるな!)」って言ってたさw
174:名称未設定
05/09/08 22:13:59 uwok69V8
>>157
ありがとうございます。でもalertのところで
end of line と書くところに
identifierがあります。
とかいうエラーがでてしまうようです。
そのままでは使えないと言うことでしょうか?
175:名称未設定
05/09/09 06:54:21 NbNIhW9h
>>174
display alertは10.3からかな?10.4からかな。
alertをdialogに書き換えたらOKのはず。
176:名無しさん@そうだ選挙に行こう
05/09/11 16:45:36 9x5INtFb
>>175
できました!ありがとうございます。
177:名無しさん@そうだ選挙に行こう
05/09/11 17:38:50 2Vc5XUJt
擦れ違い(本当はDTP板で聞く話なんだろうけど人少なそうだから)スマソ
OSX、インデザインCSでテキストの流し込み作業を行っているオペです。
大量に支給されるテキストファイルの中にwindows由来のものがあり、
改行コード(CR/LF)のLFが邪魔なのですが
「AppleScript's text item delimiters」使ってLFだけ削除することって
可能でしょうか?
選挙の日に初心者質問で申し訳ないですが、アドバイスお願いします。
178:名無しさん@そうだ選挙に行こう
05/09/11 18:51:40 YoGCJosM
たとえば「dos mac 改行 変換」でググると幾つか見つかるけど
179:名無しさん@そうだ選挙に行こう
05/09/11 19:50:38 6KL8DlIA
open for access で delimiterをascii character 12にしてリストとして読み、
as textでテキスト変換するとか。あるいは伝統的手法でAppeScript's text
item delimitersを ascii character 12にするとかやろうとしたけど、これっ
てなんかうまくいかないね。
このスクリプトがまさにそのもの。
URLリンク(www.vector.co.jp)
ソース読んだけど、一つ勉強になりました。
猫は去ってスクリプトを残すか。
{return & "
", return, "
"}
これでCRLF, CR, LFのリストになるなんて仏様でも知りますまい。
180:名無しさん@そうだ選挙に行こう
05/09/11 19:52:43 pVIsbdah
>>177
できるよ。
LFはASCII character 10だから頑張ってみて。
181:177
05/09/12 00:27:07 P5a7YGmb
おおっ、いきなり回答そのものが!
DTPのスクリプト初心者には、質問の場が少なくて困ってたのです。
ともあれ
>>178 >>179 >>180
どうもありがとう
182:名称未設定
05/09/15 05:11:58 FOLQLt2s
AppleScript StudioではCRLFが定義されてるんだけど、
スクリプトエディタでコンパイルし直さないといけない事になったりで、
結局いつも自分で変数crlfStrを定義している漏れ。
183:名称未設定
05/09/17 21:59:48 uDPMaqXg
ドロップされたファイルの拡張子が「.tar.gz」だった場合に「.tgz」、
「.tar.bz2」だった場合には「.tbz」に変更するスクリプト書いてくれませんか?
184:名称未設定
05/09/17 22:14:28 3ec1YaAm
>>183
拡張子だけ勝手に書き換えちゃってええのんか?
185:名称未設定
05/09/17 22:24:32 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:名称未設定
05/09/18 00:15:58 dyLn1tbv
>>183
せっかくだからautomatorかなんかで挑戦してみりゃいいのに。
187:名称未設定
05/09/18 01:55:24 SZiBV1Hi
>>185
おぉ、これで.tarが無駄に出てこなくなる。thx
188:名称未設定
05/09/18 02:47:41 dyLn1tbv
拡張子によってそんな違いあったっけ?
OSのBOMB?で解凍するとき?
ドラッグ&ドロップするんだったら直接解凍ソフトにドロップしてもいいよね。
189:名称未設定
05/09/18 04:51:18 6hySMFr2
Finderで選択している音楽ファイルを、ファイル名の逆の順番にiTunesに追加するスクリプト書いてもらえませんか?
一度に追加するのはAutomatorでできるんですけど、これだと追加する順番が決められないのです。
190:名称未設定
05/09/18 06:57:09 CofyOvnq
>>189
自分で書けよ
191:名称未設定
05/09/18 08:18:34 ngQMd9KO
一応発表会スレであって
スクリプト書くのが面倒だからヒマな他人にタダで書かせるスレ
じゃないんだが
192:名称未設定
05/09/18 10:29:39 YSWbvtjP
油断して、初級クレクレ厨の相手をすると
そのうち上級クレクレ厨がきて収拾が付かなくなる恐れがありますので。。
193:名称未設定
05/09/18 14:56:00 873xH2al
そうはいってもアップルスクリプトなんて今1から勉強するには環境整ってなさ過ぎ。
文法やパラメータまともに解説してるとこなんてないし、
俺も一応簡単なものは書くけど未だに辞書の見方よくわからんぜ。
そういうのを解決するために作ったのがAutomatorだったんだろうが、あれも結局ASに頼り過ぎで
バリバリ使うなら最初からスクリプト書いた方が楽=誰もアクションなんて作らない
194:名称未設定
05/09/18 18:50:54 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:名称未設定
05/09/19 03:00:05 wsMlmMYq
>>192
皮先みたいなヤシはそうそう居ないから心配するな。(w
ま、一人でも十分迷惑ではあるが。(w
196:名称未設定
05/09/19 12:17:54 J0dKOT4z
197:名称未設定
05/09/19 13:00:19 oPzgYFT4
>>194
Finderから渡されるselectionのリストって、ディレクトリエントリ順か、ア
イコンの座標順でなかった? カラムモードだけはファイル名順にならんだっけ
な。だから最初にソートしないといけない。10.4のFinderはsortがあったはず
だけど、それ以下だと自分でソートするハンドラ書かないといけない。
198:名称未設定
05/09/19 13:29:13 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:名称未設定
05/09/19 22:07:04 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:名称未設定
05/09/20 21:32:50 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:名称未設定
05/09/22 19:30:53 91z4zGvb
アップルスクリプトじゃなくてシェルスクリプトなんだけど
何か一つ手元に参考書が欲しいと思って、本屋に行ったら
入門風の薄い1,800円、翻訳本の2,800円の2冊を除いて
あとの5~6冊は全てどの本も2,200円。
陰謀のにおいがしました。
202:名称未設定
05/09/22 23:19:21 mGqBKDS5
漫画しか買ったこと無いの?
技術書としては市場が大きく類書が多いジャンルだから安い方だろ。
大体お前『バガボンド』の総部数と『シェルスクリプト入門』の部数を想像し
てみな。下手すっと4000倍違うぜ。
4000個作る量産品とワンメイクの特注品の価格を想像してみな。
『バガボンド』は読んで何が残る? 宮本武蔵になれるのか? 『シェルスクリプ
ト入門』は、読んだら明日からシェルスクリプトマスターになれるかもしれん
ぜ。お前の将来の職につながる知識になるかもしれん。
俺も昔は金無かったからお前の気持ちは分かるが。
まだ若いなら漫画買う金節約して自分を磨け!
技術書にも糞と名著があるから、Amazonとか関連スレを参考にして買うといい
ぞ。糞に当たると本当に損する。
203:名称未設定
05/09/23 02:10:03 2iIqnzH8
>>202
そうじゃなくて、「価格が同じ」ことに着目してるんぢゃないのかな?
>>201
それはあれだ。ナンバーズか何かをその番号で買えという虫の知らせだよw
204:名称未設定
05/09/23 02:11:09 2iIqnzH8
シェルスクリプトの本は逆引き500とかいうのがMac OS Xの事も載ってそうだしおもしろそう。
同じシリーズのターミナルコマンドのやつも使えるコマンドあった。
205:名称未設定
05/09/23 02:14:09 2iIqnzH8
>>200
10.4.2で実験してみたんだが、
そもそも
name of selection
ができなくなってるっぽい。
このへんはAppleScriptの仕様はわりといい加減っぽいので
あまり気にしないほうがええんでないかなあ。。
複数参照形式のなんたらは直接じゃないとだめらしいってのは
AppleScriptリファレンスにも確か書いてあったな。
元ネタは野本夏俊さんだっけ?
206:名称未設定
05/09/23 13:28:25 vT7jGwd/
一度地元の図書館に行ってみようw
Mac関係はPhotoShop系以外は割と借りやすい。
リクエストしたら購入してくれる所もあるし。
当たり外れが結構あるからなぁ。
207:200
05/09/23 14:23:00 qNq7GeR+
>>205
試して頂いてアリガトンです。最近は name of selection でもダメなんですね。
ひょっとしたら何か厳密なルールがあるのかと思ってますた・・・
あんま気にせずにやっていきますw
複数参照形式についても参考になりました。リファレンス買おうかな
208:名称未設定
05/09/23 14:45:15 2iIqnzH8
>>207
とんびさん(TigerたんWidgetの作者の人)のサイトのTipsのとこ見たら何か書いてあったような。
209:200
05/09/23 18:03:11 qNq7GeR+
>>208
tips/basic/の「複数参照」のところですね。アリガトです。(鳶嶋さんのサイト、困った時に
よくお世話になっているんですが、肝心なトコを見落としてました orz)
>難点らしい難点は(略)、パスによる参照のリストには対応していない場合が多いこと
って部分が、読んでみて正に当てはまってる・・ように思いますた。
>>200で頭をひねってた件って、つまり
・旧Mac OSのFinder等が持ってる「selection」は、単に「パスによる参照のリスト」を返すだけでなく、
(珍しく?)複数参照が可能なおかげで、「name」などの属性を一括して閲覧・変更することも出来る
・それは「selection」を直接扱う場合のみ可能で、変数に入れると、結果({file"○○"~,file"××"~}など)
だけが代入されてしまうために?、「selection」の神通力が失われた、単なる「パスによる参照のリスト」
になってしまい、複数参照が出来なくなってしまう
・・・みたいな感じ・・でしょうか。
長々と素人勝手な憶測スマソです&情報アリガトンです!
210:名称未設定
05/09/23 18:59:49 gFVb6HWn
10.4だと
name of (selection as alias)
ってやらないとだめだよね。
複数選択したものを変数に入れるときは
set x to selection
name of ((item 1 of x) as alias)
とか。
211:200
05/09/23 20:11:44 qNq7GeR+
>>210
鳶嶋氏の話だと、元々selectionで複数参照できるアプリ自体少ないみたいですし、
10.xになって、Finderもそっちの方へシフトしちゃったんでしょうか。
支障はほとんどないだろうけど、少し不便になってるみたいですね。
あ・・・関係ないですが>>209のやつ、変数に(a reference to selection)を入れれば
(とりあえず旧Mac OSでは)selectionと同等に使えますね orz キヅイテカナカッタ・・アホダ・・
212:名称未設定
05/09/24 02:30:35 Gfb0gZ2H
ん?うちの環境がおかしいのか?
>>210
tell application "Finder"
name of (selection as alias)
end tell
ってやると、「~をタイプaliasに変換できません」というエラーになるんだが。
10.4.2で、スクリプトエディタ上で実行。
as alias listだと、「name of ~ を取得できません」となってだめ。
213:名称未設定
05/09/24 02:36:55 Gfb0gZ2H
あと>>210の後ろのスクリプトだが、
一個の名前を取り出すだけなら、
tell application "Finder"
set selectionList to selection
name of item 1 of selectionList
end tell
でいいはずだけど?
214:名称未設定
05/09/24 17:49:40 2X5RufZd
ドロップレットってコンパイルしなきゃ使えませんか?
OpenOffice.org の開発者の人たちが、 X11 アプリである OpenOffice.org が
書類にアイコンをつかえて、Drag & Drop を受け付けられて、 X11 の
自動起動もできるようなアプリケーションバンドルを作りたいために、
AppleScript で起動スクリプトを書いているのですが、 (なんか変な日本語だな)
Make の中で使っている osacompile が、実行時に WindowServer を必要とするんですよ。
これは ssh などを使ってリモートでビルド作業をするのにちょっと都合が悪いんです。
CVSでソースを管理しているのですが、手元でコンパイルしてバイナリをコミットしておく、
というのも気持ちが悪い。osacompile がリモートでも普通に使えたら最高ですが、
そうでない以上、テキストのままドロップレット的な使い方ができたらいいなあ、と。
215:名称未設定
05/09/24 18:14:12 2X5RufZd
このまま質問で終わるとスレタイに反するので、スクリプト (LGPL) をあげときます。
URLリンク(www.hakusi.com)
…自分で書いたものでもないのに勝手に発表して、正直すまんす
216:名称未設定
05/09/24 19:13:37 vXtN8uu3
>>212
name of (selection as alias) で名前が返るのは選択項目が一個だけの場合。
選択項目が複数で変数を使わないときは
name of (item 1 of (selection as list))
かな?
>>213はそれでいけました。
前に試したときはどこか書き間違えてエラーになったんだと思う。すまんです。
217:名称未設定
05/09/25 03:09:11 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:名称未設定
05/09/25 17:46:58 fbXhR1L2
キーワードが文脈に依存するのが
219:名称未設定
05/09/26 15:39:19 4m0lABWf
>>214
書いてあることの90%理解できないんですが、
run script命令を使えばスクリプトの書いてある
テキスト書類を実行することはできます。
ドロップレットからテキストを実行するというのではダメ?
そういうことでないならスマソ
220:名称未設定
05/09/26 19:23:41 FKzYgqlQ
>>214
AppleScriptでやってるところをCocoaアプリで置き換えるとかしないとどうしようもない希ガス。
221:214
05/09/26 23:09:58 ggK2kh3R
>>219-220 の両氏、意味不明な質問に的確に答えていただいてありがとうございます。
小さい、テキスト版スクリプトを参照するだけのドロップレットを準備して、
テキスト版をアップデートしていく、というのがいいかも、と思えてきました。
222:名称未設定
05/09/27 17:26:57 +5vWJ405
TigerでFinderとDashboard以外の
全てのアプリを一斉終了させるスクリプトを
どなたか作っていただけませんか?
223:名称未設定
05/09/27 17:33:57 bHu7sgFp
スレタイを読めないのか?
224:名称未設定
05/09/27 17:36:52 RNZlfd2q
>>190-192
225:名称未設定
05/09/27 17:42:47 +5vWJ405
なんだ、役に立たないなコイツら
226:名称未設定
05/09/27 17:46:14 fSxb+Ndm
面白くないから却下
227:名称未設定
05/09/27 17:48:36 RNZlfd2q
なんだ、無能極まり無いなコイツ
228:名称未設定
05/09/27 22:06:07 C1OoRUCH0
>>222
なんかくれたら作ってやるよ
229:名称未設定
05/09/28 13:29:47 sEu9MoBc
>>228
俺の愛をあげよう
クロックが10倍になるスクリプト作ってくれ
230:名称未設定
05/09/28 13:38:34 L16rTDss
>>229
repeat 10 times
tell application "Finder" to open "/Library/Widgets/World Clock.wdgt" as POSIX file
end repeat
231:名称未設定
05/09/28 16:27:05 PWrWgjve
上手い!
232:名称未設定
05/10/08 22:20:13 dLpBPtEB
hosyu
233:名無しさん
05/10/10 12:24:16 q4ZpPXM0
AppleScriptでクラシック環境を起動したいのですが
スクリプトエディタで「記録」を押しても反応しません。
辞書にもないし…。無理ってこと?
234:名称未設定
05/10/10 12:37:12 p88XitxC
tell application "Classic Startup" to activate
辺りで起動するようだが?
quitは効かんようだった。
235:名称未設定
05/10/10 12:40:18 4Z/wu4io
スレタイが一瞬「おもらし、はずかしい」に見えた。
236:名称未設定
05/10/10 16:47:50 VpEKUMgG
>>235
半角の同好の士の居るスレに逝け
237:名称未設定
05/10/10 18:41:18 7IqaCPPz
いらっしゃい
238:名無しさん
05/10/21 01:03:03 Ix5NK4/A
Pantherでスマートフォルダのような機能を
実現したいのですが、フォルダアクションで
保存された検索内容に自動的に飛べるように
すれば可能かなと思うのですが、Finderで
検索結果を保存する方法がわかりません。
板の賢人の皆様どうかヒントを宜しくお願いします。
239:名称未設定
05/10/21 02:05:53 ZRX6qpKc
>238
そんな、検索結果を保存する機能なんて Panther にはない。
AppleScript でどうこう以前の問題。あきらめろ。
240:名称未設定
05/10/21 06:36:28 Z8Q6ffI+
スポットライト並みのスピードを求めなければ
mgrep osax のような検索出来る OSAX 使えば出来そうな気もするが。
241:名称未設定
05/10/21 17:39:07 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:名称未設定
05/10/21 17:40:55 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:名称未設定
05/10/21 17:41:40 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:名称未設定
05/10/21 17:42:26 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:名称未設定
05/10/21 17:44:01 YrOVRVel
うぅ・・改行が多いと怒られた(T_T)
素人ですみません
246:名称未設定
05/10/22 02:06:16 7EGIGlbe
>>238
OS 9のSherlockで検索条件の保存ができたけどねえ。
(俺としてはスマートフォルダよりも便利だったw)
>>245
乙。ナニゲにエラーメッセージが方言w
247:名称未設定
05/10/23 10:00:53 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:名無しさん
05/10/23 10:39:32 UdK1Dsa1
おお、これは便利そうだ!さっそく使ってみよう
249:名称未設定
05/10/23 14:08:43 vedwXWfx
純正アプリの連携って事ですげーわくわくするが、
問題は俺にはメールが来ないって事だ。
orz
250:名称未設定
05/10/23 20:50:06 S/siEewd
通販サイトとかAppleのニュースメール購読すればいい
251:名称未設定
05/10/24 19:49:26 9etpEvdp
say "She Ne"
252:名称未設定
05/10/25 06:07:33 D16BVUjP
ログアウトのスクリプトを作りたいと思い丸二日間格闘したんですが、
全然ウマく行かないんです。シャットダウン、スリープ、再起動は簡単にできたんですが…。
どのように記述したら良いのでしょうか?
まるっきりの素人な質問でごめんなさい。
253:名称未設定
05/10/25 10:18:00 j5bUr1Gi
まず、シャットダウン、スリープ、再起動をどう書いたのか聞きたい
254:252
05/10/25 10:49:21 D16BVUjP
>>253
そうですよね。ごめんなさい。
例えば、再起動はスクリプトエディタでこのように書いて、*.scptで保存しました。
tell application "Finder"
restart
end tell
他の2つは二行目が、Shut DownかSleepにしただけです。
問題は、ログアウトの場合に、この二行目をどう書いたら良いのか分からないことです。
大体、「変数***が未定義です」とエラーが返ってきます。
(何て記述すればいいか分からず、いい加減に書いてるから当然ですよね…。)
255:名称未設定
05/10/25 11:19:31 p+2Tpe3Z
>>254
スクリプトエディタでSystem Eventsの用語説明を開くと
Power Suiteにlog outがあるね
FinderのはLegacyに分類されてるから
ログアウトや終了関係はSystem Eventsを推奨ってことかな
256:名称未設定
05/10/25 11:27:13 R6y8q+hG
用語辞書の見方をご存知ないのでしょうか?
スクリプトエディタのファイルメニューから
「用語説明を開く...」を選ぶとアプリケーションのリストが表示されるから、
操作したいアプリケーションを選ぶと用語辞書が出ますよ。
まあわかりにくいと思うけど。
で、Finderの用語辞書で右上の検索欄などを使ってrestartを調べると
レガシー(遺産、遺物)ってとこに分類されてますよね。
そして同じ分類の中にログアウトに関する記述はない。
つまりこれは昔のスクリプトとの互換性を取るために残してある項目だと思われます。
じゃあどのアプリケーションを見ればいいのかって事になりますが、
System Events.appの用語辞書を見ると
log outという命令がある。
だから
tell app "System Events"
log out
end tell
でいいと思います。詳しくは自分で調べてみてください。
257:名称未設定
05/10/25 11:28:08 R6y8q+hG
かぶった上に無駄に長かった…。
orz オレハモウダメダ
258:名称未設定
05/10/25 11:53:49 f9UwVda9
>>257
通りすがりのものですが、丁寧ですごく参考になりました。
applescriptって256に書いてあるようなことがわからなくて
敷居が高い感じがしていました。ありがとう。
259:252
05/10/25 13:15:25 D16BVUjP
>>254-255
なんて厳しくも優しいレスなんだ。
目から汗がとまらん。
ぶわっ!!ってなってるよ、ぶわ!!って。
ちなみに、なんで今更ログアウトのスクリプトかと言いますと、
DashboardのiStarterっていうwidgetをどうしても使いたくて。
でも、持ってるOSは10.3で、konfabulatorしか使えないから作るしかなくて…。
でもおかげで、イメージ通りのやつを作ることができました。
ホント、丁寧に教えて頂きましてありがとうございます。
260:252
05/10/25 13:18:00 D16BVUjP
↑アンカー間違えました。>>255-256です。
駄レススマソ。
261:名称未設定
05/10/25 22:21:28 Q1+lAmRT
すみません、質問です。
HyperTalkで「set cursor to busy」みたいなコマンドがあったじゃないですか。
AppleScriptで、ちょっと時間のかかる操作をするとき、
カーソルをbusyにしたいんですが、どうすればいいのでしょうか???
262:名称未設定
05/10/25 22:30:01 R6y8q+hG
カーソル変える命令はたぶんない。
プログレスバーなら出せると思う。
263:名称未設定
05/10/26 08:21:27 OcbV3y9I
Jon's Commands X
URLリンク(www.seanet.com)
の set cursor to
264:261
05/10/27 23:48:33 VbWiZBB5
>>262-263
ありがとごじゃました。
265:名称未設定
05/10/29 13:15:57 yRq2YPwf
1分置きにチンコと表示出来るスクリプトを作っていただけませんか?大至急お願いします。今月以内で。
266:名称未設定
05/10/29 14:38:49 65/DjTpE
>>265
URLリンク(aploda.org)
267:名称未設定
05/10/29 21:52:59 6kmMgdMd
(´°∀°)
268:名称未設定
05/11/12 18:35:51 4SS5+GU0
質問です
MacOS9が単独で立ち上がってる時と
Classic環境として立ち上がっているのを
切り分けるスクリプトって書けますか?
なんに使うかというと、OS9の起動項目に入ってるソフトが
Classic環境の時にエラーを起こすので
それをClassic環境で立ち上がらないようにしたいのですが…
269:名称未設定
05/11/12 21:34:59 +iVrLi8z
Classic用の環境を作ってそれぞれのイメージを使い分ければ問題ない
270:名称未設定
05/11/12 21:55:10 NQ9agtRW
すね毛
271:268
05/11/12 22:26:21 4SS5+GU0
>>269
そこ以外は9で立ち上げてもClassicでも同じにしときたいんです。
だから「もしOSXが動いていないなら」
tell application ~
て書いて起動項目につっこんどけばいいのかなと。
でもできないのか…
272:名称未設定
05/11/12 23:36:10 rGZtSmXD
>>268
OS 9環境がないので試してないがこんなんでどうかな
tell application "Finder"
if (version as string) starts with "10." then return
end tell
273:名称未設定
05/11/13 02:31:13 7FB3dnyp
delayがCPUを食い潰すバグが10.4.3でやっと解消されたという話だ
274:268
05/11/13 23:50:30 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:名称未設定
05/11/14 11:52:34 gCjlTqNF
>>268
set isClassic to false
try
set isClassic to system attribute "bbox" has 1
end try
参照
URLリンク(developer.apple.com)
276:名称未設定
05/11/21 15:55:57 tDtj1Mgi
すみません、ググり回ったのですが見つからないので質問させて下さい…
date型の日付の書式はOSの日付の書式設定によって変動しますが
(日本語なら2005年11月21日月曜日、英語ならMonday, November 21, 2005といったように)、
OSの日付書式設定が何になっていようと、常にエラーを出さずに指定できる日付の書式というのは
存在するのでしょうか?
某所で「26Oct99」という形式なら大丈夫、という記述を見かけたのですが、
どうも情報が古いようで、実際試してみると言語によってコンパイルエラーが出たり
エラーは出ないものの変な日付に変換されたりで、残念ながら使い物になりません。
277:名称未設定
05/11/22 13:00:45 p+yxjjdC
出力じゃなくて入力の書式を一つに決めたいの?
278:名称未設定
05/11/22 18:24:04 5PkpqUw/
情報不足ですみません、入力です。
279:名称未設定
05/11/22 20:28:38 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』
URLリンク(developer.apple.com)
URLリンク(developer.apple.com)
のdateの箇所(PDFだと62ページあたり)を読んでみるといいんじゃないかと。
280:名称未設定
05/11/23 00:33:39 OpVMn+ne
>>279
質問者じゃないが、それじゃだめなはず。
問題のひとつは順番で、
アメリカでは月/日/年、ヨーロッパ圏では日/月/年で書くのがデフォルト。
その手の設定になっていると、"2005"が月や日に解釈できずにエラーが起ったり、
"22"が"2022年"と解釈されちゃう。
でも、10.4だと、「カスタム設定はUnicodeアプリだけで…」みたいな注意が、
環境設定で出て、スクリプトだとうまくテストできないなあ(^^;
281:名称未設定
05/11/23 04:24:57 bB1tkWUM BE:20109863-#
俺もうまくテストできなかったのでよくわからんが、
例えば「yyyy.mm.dd」っていう風に書式を限定するなら
年、月、日に分解して解釈するようなルーチンが書けないかな?
各国語版を作るほうが簡単な気もするけど。
282:名称未設定
05/11/23 07:00:46 0Sp+i+wO
>>276
OS9だとTanaka's osax使えば簡単だけど、OSXですよね。
それ以前に環境変わるんじゃosax使えないですね。
OSXだとシェルスクリプト?perl?
とりあえず、とんびさんのAppleScript PARK>Tips>Basicに有るこの方法で出来ないでしょうか?
>日付属性の設定方法
>URLリンク(homepage1.nifty.com)
>まとめて属性を設定(その1)
これなら定型日付入力をリストに分解するだけで使えそうです。
283:名称未設定
05/11/23 07:04:21 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
URLリンク(www.w3.org)
284:名称未設定
05/11/24 16:54:10 N8ktUmBS
おお!ありがとうございます。
最近のバージョンのOSXとの事ですが、これはどのバージョンからかはご存知ないでしょうか?
class isotでググってもたったの4件しか出てこないのでびびりました…
285:名称未設定
05/11/26 06:05:42 VnMxi28J
これはAppleEvent Managerの型変換機能を使ってる。OSX10.2のAERegistry.hには
定義があるので少なくとも10.2以降では使えるはず。
286:名称未設定
05/12/05 04:25:05 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:名称未設定
05/12/05 04:49:33 PBnb/lnH0
つ URLリンク(developer.apple.com)
288:名称未設定
05/12/05 10:04:18 Qu8STzUP0
1行で済むな。
289:名称未設定
05/12/05 11:25:11 C4y9Tqbn0
ココログのサポートアイコンが酷似している件について
290:名称未設定
05/12/05 12:22:49 Qu8STzUP0
巻き物?っぽいアイコン、けっこう色々使われてるよね。
291:名称未設定
05/12/06 00:49:21 2zmZHbfL0
do shell script "cd パス | コマンド" でいいんじゃないの
292:名称未設定
05/12/06 05:59:08 3WJiVZeB0
>>291
こらこら、ウソを教えるなw
|でつなぐのは「パイプ」でしょ。
単に複数の命令を一行で連続して行わせたい時は;でいい。
もう一つ言えばこの場合あらかじめcdで移動する必要もない。
フルパス書いちゃえば済むから。