おもろい、めずらしいアップルスクリプト発表会 5
レス数が1000を超えています。これ以上書き込みはできません。
00011
03/10/29 04:03ID:poGphYMeおもろい、めずらしいアップルスクリプト発表会 4
http://pc.2ch.net/test/read.cgi/mac/1026844857/l50
おもろい、めずらしいアップルスクリプト発表会
http://pc.2ch.net/test/read.cgi/mac/971295440/l50
おもろい、めずらしいアップルスクリプト発表会
http://mentai.2ch.net/mac/kako/957/957215209.html
面白い&便利なアップルスクリプト
http://mentai.2ch.net/mac/kako/962/962044994.html
・OSXのスクリプトに関してはこちら
「AppleScript,Perl,Shell」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1055091471/l50
・関連スクリプトのまとめ
ttp://members.tripod.co.jp/obto/script/script.html
【入門サイト】
AppleScript入門
ttp://www.apple.co.jp/applescript/begin/index.html
AppleScriptTutor(掌田津耶乃氏)
ttp://www.netjoy.ne.jp/~tuya/AppleScriptTutor/
AppleScript Lab(狩野正嗣氏)
ttp://www.drycarbon.com/applescript/
AppleScript Beginner's(JinJin氏)
http://homepage.mac.com/jinjin/applescript/
0002名称未設定
03/10/29 04:05ID:poGphYMe3スレ目はこちら
http://pc.2ch.net/mac/kako/971/971295440.html
0003名称未設定
03/10/29 04:06ID:poGphYMe乙。
0005名称未設定
03/10/29 11:49ID:VPUjhqSj前スレ、早くも落ちてしまいますた。
0006名称未設定
03/10/29 16:27ID:ksJyDnW10007名称未設定
03/10/29 21:25ID:x8Lfg8ud0008名称未設定
03/10/30 18:50ID:k74TLggKこちらに載っている
補足情報(2001/07/03)
ATMで「画面上でフォントの縁をスムージング」を指定するのはアンチエイリアス機能を使うためですが、256色モードではこ
の機能が効果を発揮しません。フルカラーでお使いください。また、アピアランスで「Finder 表
示用フォント」を変更しても再起動するとデフォルトの[Osaka]に戻ってしまうことを確認しました。Finder 表示用フォントまで
変更したい方は、起動のたびに指定するかAppleScriptを書いて自動化する必要があります。
これに載ってるフォントを切り替えるスクリプト教えてください〜
0009名称未設定
03/10/30 22:13ID:A/dW7GY300118
03/10/31 16:52ID:IJy4rfCHset views font to "ヒラギノ丸ゴ Pro W4"
set views font size to 12
end tell
自分でここまでは発見出来たのですが、実行するとアピアランスコンパネが開いてしまいます。
アピアランスコンパネを開かないで変更するにはどうしたらよいのでしょう???
0012名称未設定
03/10/31 16:56ID:gAJtODe800138
03/10/31 17:03ID:IJy4rfCHアピアランスコンパネの画面がでないようにしたいんです.
tell application "アピアランス"
set views font to "ヒラギノ丸ゴ Pro W4"
set views font size to 12
quit
end tell
ってしたら閉じるんですけど、コンパネの画面が前面に来てしまうんです。
出ないようには出来ないのでしょうか??
0014名称未設定
03/11/07 02:27ID:BA/EK9Ls0015名称未設定
03/11/08 14:56ID:Q0UkXungFinderがアクティブになっちゃうのね。
んで、たとえばイラレ使っててMOを取り出した後に、イラレをアクティブに戻す
ってのはどうやればいいですかね?
0017名称未設定
03/11/08 19:38ID:tuIppE8x0018名称未設定
03/11/14 23:47ID:dptsBLX8メニューでもいいけど。
0021名称未設定
03/11/17 11:50ID:T1hRDMwsそんで、探し物なら他でどうぞ。
0022名称未設定
03/11/18 01:07ID:Y/Tpel1Dぺn
0023名称未設定
03/11/20 13:58ID:PMWDp00v具体的にはSafariで選択した文字列を取ってきてURLに加工したいんですが。
0024名称未設定
03/11/22 00:51ID:OUmtzoIYkeystrokeでコマンド+Cをポストしてクリップボードから文字列とりだせばよいんでないか?
Quickeysと組み合わせた方が簡単だけど。
0025名称未設定
03/11/23 05:50ID:MVXaa5es以前からそれやってます
OS9にiCabでCMScript使って、、だけど
コンテクストメニューから出来ると便利です
Safariでもittecみたいなの使って出来ないかな
0026名称未設定
03/11/23 14:19ID:Yqo8QCc5iCab+CMScriptは漏れも使ってまつ。
0027名称未設定
03/11/23 17:04ID:Lw3zqp/zコンテクストメニューでいいなら
OnMyCommandCM
http://free.abracode.com/cmworkshop/on_my_command.html
ってので選択した文字をゲットできますが
AppleScriptだけでは無理なので結構めんどくさいですね。
日本語が絡むとさらにめんどくさくなるけど
一回テンプレートになる物を作ればあとは楽になるかな。
わたしはPerlで書いてます。
・選択文字をgooの和英、英和辞書で検索する
・選択文字をGoogleで検索する
・選択文字の中からURLっぽい部分を探して開く
ってのが今は登録されてます。あんまり使ってないけどね
0028名称未設定
03/11/25 00:29ID:aUEej+l+必要なメニューだけが出てくるのがいいですね。
FinderでOSAメニュー開くとズラッと並んじゃうようになったんで、
OSAメニューの方はほとんど使わなくなりました。
0029名称未設定
03/11/25 02:07ID:k1OBoONd対象項目によって出現するしないを制御できるのが便利だよね。
0030名称未設定
03/11/28 13:16ID:jSQA3gr70031名称未設定
03/11/29 01:15ID:pDrLkXiZ以前、別スレで発表したWindows Media 連続再生メタファイルを作るスクリプト。
パンサで使えますかねえ?
on open file_list
tell application "Finder"
set file_list to (sort file_list by name) as list
set current_folder to container of item 1 of file_list
set wvx_text to ""
repeat with wm_file in file_list
set wvx_text to wvx_text & "<entry><ref href=\"./" & name of wm_file & "\"/></entry>" & return
end repeat
set wvx_text to "<asx version=\"3.0\">" & return & wvx_text & "</asx>"
set wvx_file to (make file with properties {creator type:"Ms01"} at current_folder) as alias
try
open for access wvx_file with write permission
write wvx_text to wvx_file
close access wvx_file
on error
close access wvx_file
end try
end tell
end open
0032名称未設定
03/11/29 01:34ID:pDrLkXiZon open file_list
tell application "Finder"
set suf_fix to text returned of (display dialog "拡張子" default answer "")
set old_delim to AppleScript's text item delimiters
repeat with cur_file in file_list
set file_name to name of cur_file
set AppleScript's text item delimiters to suf_fix
set file_name to text item 1 of file_name
set AppleScript's text item delimiters to old_delim
if (character -1 of file_name) is in {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} then
if (count file_name) = 1 then
set name of cur_file to "0" & character -1 of file_name & suf_fix
else if (character -2 of file_name) is not in {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} then
set name of cur_file to plain text 1 thru -2 of file_name & "0" & character -1 of file_name & suf_fix
end if
end if
end repeat
end tell
end open
0033名称未設定
03/11/29 01:51ID:pDrLkXiZWindows Mediaの特定の箇所だけをリピート再生
on open file_list
tell application "Finder"
set wm_file to item 1 of file_list
set current_folder to container of wm_file
set start_time to (text returned of (display dialog "開始秒" default answer "0")) as integer
set start_time to "<starttime value=\"0:" & ((start_time div 60) as string) & ":" & ((start_time mod 60) as string) & "\"/>" & return
set duration_value to (text returned of (display dialog "再生秒数" default answer "30")) as integer
set duration_value to "<duration value=\"0:" & ((duration_value div 60) as string) & ":" & ((duration_value mod 60) as string) & "\"/>" & return
set repeat_count to (text returned of (display dialog "再生回数" default answer "3")) as integer
set repeat_count to "<repeat count=\"" & (repeat_count as string) & "\">" & return
set wvx_text to "<entry>" & return & start_time & duration_value & "<ref href=\"./" & name of wm_file & "\"/>" & return & "</entry>" & return
set wvx_text to "<asx version=\"3.0\">" & return & repeat_count & wvx_text & "</repeat>" & return & "</asx>"
set wvx_file to (make file with properties {creator type:"Ms01"} at current_folder) as alias
try
open for access wvx_file with write permission
write wvx_text to wvx_file
close access wvx_file
on error
close access wvx_file
end try
end tell
end open
0034名称未設定
03/11/30 12:47ID:gvIvCxOP0035名称未設定
03/12/07 08:32ID:Gm019T9q0036名称未設定
03/12/13 01:56ID:yPjIq1fK0037名称未設定
03/12/14 07:21ID:lkBo6yEabpmカウンターというのをapple scriptで作る事は可能ですか?
===
bpmカウンターとは、
bpm、beat par minute(1分間にビートを何回刻んだかを表した数字)
を計測する装置で、大体4~8回程度、タップするとbpmを計算して表示してくれる。
003837
03/12/14 07:31ID:lkBo6yEa2度目のタップからbpmを表示し続けるのもあるし(タップ毎に表示が変わる)
>>37で書いたように、例えば8回タップした後にbpmを表示するのもあります。
004137
03/12/16 22:07ID:9rS7HNe+OSAX?
参考書買って来ます。。
>>40
ほとんど、12インチなのと、リッピングもしないんで
今のとこ使えないんだけど、情報ありがとうございます。
0042名称未設定
03/12/21 02:22ID:kkS2ZyF10043名称未設定
03/12/26 00:05ID:GgyQCNfN0044名称未設定
04/01/01 13:05ID:EsbC9NKJ0045名称未設定
04/01/08 09:27ID:KBAeJUO6BPMカウンタの用途を考えるとその方法は手数が多すぎて実用的じゃないね
BPMカウンタ使用時ってのは恐らく曲を再生しながら他の作業もしているはず
例えば、2枚のレコードのテンポ(BPM)を合わせたりとか
だから2回のタップで即座にBPMが表示される様な仕組みでないと使ってられない
>>37
OS XのAppleScriptStudioならApplicationクラスにon keyboard downイベントがあるんだけど
0046名称未設定
04/01/09 03:05ID:LJf6up8Fまあ厳密さは要求されないけどさ。
0047名称未設定
04/01/09 09:52ID:oXHUApl+市販のBPMカウンタ買った方が良いと思うよ
操作性とか携帯性とか考えると
BOSSのDB-12とかマジおすすめ
板違いレススマソ
0048名称未設定
04/01/19 00:47ID:IknwxPKdだけでは申し訳ないので、一応
keydownはJonユs CommandsやS穫di's Additions
あとはGetMilliSecなどのOSAX使えば出来ると思いまつ。
しかし、keydownなんぞで苦労するとは…
やはりHyperCardは偉大だなと今更ながらに思う今日この頃。
0049名称未設定
04/01/23 22:03ID:VFBfTDmz上層のウィンドウさえ開いていれば
set fList to every folder of window 1
repeat with obj in fList
open obj
end repeat
これでいけるんですが、
というか、特定階層だけじゃなく、階層の深さ別に別々の命令を実行させたいのですが。
0050名称未設定
04/01/25 03:12ID:lC2PYkkR鳶嶋工房さんとこのAppleScript/Tips/Basic/複数参照に有ったものを
ほとんどそのまま利用して…
tell application "Finder"
activate
set theFolder to choose folder
repeat with fdepth from 1 to 3
if fdepth = 1 then
open theFolder -- 1階層目の処理
else if fdepth = 2 then
-- 2階層目の処理
else if fdepth = 3 then
-- 3階層目の処理
end if
set theFolder to (a reference to (folders of theFolder))
if contents of theFolder = {} then exit repeat
end repeat
end tell
こんな感じでしょうか?
if文はスマートじゃないのでハンドラやスクリプトオブジェクトなどを使って
工夫してみて下さい。
0051名称未設定
04/01/25 23:14ID:uNSIwcABなるほど。ありがとうです。
ご教示いただいたサンプルとは関係ないんですが、
複数のフォルダを開き、その1つ1つ対してウィンドウ操作の命令を与えようとすると、
命令がずれますね。
ウィンドウ位置などを統一しようとすると、避けられない問題でしょうか。
0052名称未設定
04/01/26 06:50ID:JW20HDbz命令がズレると言うのが良くわからないので
スクリプト書いてもらえませんか?
一応、ココ「発表会」だし。
もしかして、window 1とかで操作対象指定してます?
そういう事ならcontainer window of 〜 とかを使って下さい。
open thefolder
repeat with thisfolder in thefolder
set view of (container window of thisfolder) to 2
end repeat
こんな感じで、どですか。
操作するウィンドウが無いとエラーになるので
その可能性が有る場合は操作直前にウィンドウの存在チェックするか
又はエラー構文など用意しておいた方がいいですよ。
0053名称未設定
04/01/26 19:58ID:bhb/aScWズレるというのは、複数ウィンドウの各階層ごとに与える命令が、
複数ウィンドウの連続open動作に、追随しないという意味で書きました。
で、ウィンドウの指定には、
window 1
window of insertion location
の両方で試行錯誤していました。container window of thisfolderは、
set position命令を受けつけないので。
今は、>>50のif下を
open theFolder
set position of window 1 to {361, 78} --階層ごとに数値が変わる
こうしていますが、複数ウィンドウを次々に開ききった後の
一番上のウィンドウだけしか、動かないです。
set position式をrepeatしても同じです。
0054名称未設定
04/01/26 20:01ID:bhb/aScWすいませんでした。
特定階層のフォルダに(←>>50で解決)
open命令を与えて開き、
set positionでウィンドウの左上位置を指定する。
(ここまで正常に動けば、close windowを追加)
これをやろうとしています。
0055名称未設定
04/01/27 00:09ID:hQYd7SzGtheFolder の中身が1つの時はリストにならないので
repeatを受け付けないのだと思います。
あと、目的がそういう事ならIF文より計算かpropertyで指定する方がいいかも。
ということで>>50のif構文を以下の様なスクリプトに置き換えてはどうですか
set X to 60 + (fdepth * 30)
set Y to 40 + (fdepth * 30) --適当に
set folderlist to (open thefolder) as list --強制的にリスト化
repeat with thisfolder in folderlist
set position of (container window of thisfolder) to {X, Y}
end repeat
0056名称未設定
04/01/27 07:04ID:1guJgef9なるほど。これは簡潔ですね。
ただ、新しい問題が起きました。
これを実行すると、上層フォルダの仕分けに関わらず、同一階層の全フォルダを
一度に開こうとするので、Finderメモリ割り当て量か、命令結果の待ち時間を
オーバーすることが多くなります。
同時に開くフォルダの数を少なく抑えるために、上層フォルダ別にopen~closeを
完了するか、深めの階層のフォルダをターゲットにしてシーケンスを実行するかで
今夜帰ったら作ってみます。
0057名称未設定
04/01/28 00:44ID:uKDpV+a2これを避けるためにFinderのresultが来るのを待つ必要が有るため
速度が遅いのは最初から覚悟していました。
時間が掛り過ぎる場合はtimeoutを調整して下さい。
操作対象のwindowが確実に開いているなら
ignoring application responses
で実行速度をあげる事も出来るでしょう。
なんでopenしたfolderを位置設定だけしてすぐ閉じるのか良くわからなかったんですが、
朧げながら、あなたのやろうとしている事が分って来た様な気がします。
もしかすると、opening folderなどのフォルダアクションが利用出来るかもしれません。
フォルダアクションはスクリプトで任意のフォルダに付け外し出来ますので…
出来たら、ここにスクリプトを書き込んでみて下さい。
005837
04/02/03 01:55ID:F+mU8OWZbpmカウンタは持ってるんですが、複数あればより正確に測定できるという目的と
ただMacで、やってみたいなって理由です。
あらかじめbpmは測定してフロア用のはだいたい覚えてるし、ジャケにもシールで貼ってるんですが
アンビエントのdjする時はけっこうbpmの管理って大変で。
最初、スパコラで作りたいな。って思ったんですが
もともと他のパッチを修正して使うぐらいしかできないので
0から作るのは無理でした。
時間ができたらオブジェクト指向のプログラムの本でも買ってがんばります。
亀レススミマセン
レスありがとう。
0059名称未設定
04/02/08 14:37ID:NwubDhVf電池が切れたMacにNTPで自動修正させたいんですが、
1904年の状態だとTCP/IPが動作しないんで、
起動時に最近の適当な日時に設定したいんです。
006059
04/02/08 15:08ID:NwubDhVfほかにも機能もりだくさんでうれしいかぎりです。
0063名称未設定
04/02/08 15:16ID:stC4Ysw310.3
0064名称未設定
04/02/08 15:26ID:sJR8dOR4かぶったw
>>63
OSXはこちらの方がよいかと
「AppleScript,Perl,Shell」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1055091471/l10
たぶんターミナルでサクッと出来ると思うよ
0065名称未設定
04/02/17 15:12ID:JY+/mNmS0066名称未設定
04/02/19 15:30ID:B+hO59+ttell application "Finder"
set tr to (choose from list {"Shut down", "Restart", "Sleep", "Quit", "StartupDisk"} with prompt "Tell Finder to..." default items "Shut down" with empty selection allowed) as text
if tr = "Shut down" then
shut down
else if tr = "Restart" then
restart
else if tr = "Sleep" then
sleep
else if tr = "Quit" then
quit
else if tr = "StartupDisk" then
open "omaesama:System:Library:PreferencePanes:StartupDisk.prefPane:"
else
error number -128
end if
end tell
俺はF4に割り当てて使ってます。
0067名称未設定
04/02/20 06:46ID:8CcmdAge0068名称未設定
04/02/20 07:12ID:tLtYgDE2Super Shut Down 1.0.2
ttp://www.bajram.com/downloads/softwares/
006966
04/02/20 16:22ID:g3gGCAo6終了系のキーコンビネーションは知っているけど使いたくないので。
「ボタン一つで」かつ「マウス使わず」終了系のメニューを実行させたいって
のがもともとのコンセプトです。
>>68
というわけでこのソフト良さげですね。対応するメニューのイニシャル打てば
選択できるっぽいし。しばらく使って様子を見た上で乗り換えます。
ありがとう。
0070名称未設定
04/02/27 00:09ID:gZ2P+Hvr0071名称未設定
04/03/06 12:43ID:KY9cA+nV0072名称未設定
04/03/11 22:38ID:58GlCs9qなんでこんなに寂れてる!!!
0073名称未設定
04/03/19 23:45ID:Zsj2gS20しかしそれをアプリケーション形式で保存してダブルクリックで実行すると、
途中で実行が終わって不完全なまま終了してしまう。
何が原因なんだろう・・・? バグ? OSX10.3.3です。
0074名称未設定
04/03/20 01:45ID:FafNnvhk007573
04/03/21 14:08ID:Jd4rCgHrOSXスクリプトスレにあった下記の方法を試したら正常に動作しますた。
FAQ: アプリケーションに保存すると日本語が使えません
(1) 保存時の「フォーマット」を「アプリケーションバンドル」に。
(2) Finderで「Japanese.lproj」という名前の空フォルダを作っておく。
(3) Finderで(1)で保存したアプリを選択し、
情報を見る=>言語=>追加で、(2)のJapanese.lprojを選ぶ。
0076名称未設定
04/03/24 23:58ID:1eVmXpxf標準でついてる「Go To Time...」だと、時間を入力する際に、1時間14分35秒なら「01:14:35」
のように入力しなければならず面倒(「11435」と入力すると「11435秒」と解釈される)。
このスクリプトなら「11435」と入力すれば1時間14分35秒に、「845」と入力すれば8分45秒に
飛べるのでコロンを入力する手間が省けます。
「スクリプト」形式で保存して、「ホーム/ライブラリ/Application Support/DVD Player Scripts」
に入れてください。
tell application "DVD Player"
set et to elapsed time
set h to round (et / 3600) rounding down
set et to et - 3600 * h
set m to round (et / 60) rounding down
set s to et - 60 * m
set t to text returned of (display dialog "Go to time" default answer (h & m & s as string))
if t as number < 10000 then set t to ("0" & t as string)
if t as number < 1000 then set t to ("0" & t as string)
set {h, m, s} to {(character 1 of t), (character 2 of t & character 3 of t), (character 4 of t & character 5 of t)}
if (h as number) > 0 then set h to (3600 * h)
if (m as number) > 0 then set m to (60 * m)
set elapsed time to h + m + (s as number)
end tell
0077名称未設定
04/04/03 13:49ID:dwufcYEl0078名称未設定
04/04/06 12:09ID:ilrATQYG0079名称未設定
04/04/06 12:12ID:ilrATQYG見れました
0080名称未設定
04/04/07 20:39ID:0Z7zTZDb0081名称未設定
04/04/07 21:14ID:KsLP6+bk0082名称未設定
04/04/07 21:31ID:0Z7zTZDb他のある特定のURLの後ろにくっつけてそのページを表示したいんですけど。
0083名称未設定
04/04/07 22:12ID:Ck9yXmv50084名称未設定
04/04/07 23:28ID:gxWOtCUh例えばこんな感じかな
tell application "Safari"
set hokanourl to "http://nantara/kantara/"
set motonourl to URL of document 1
--仮に"http://pc3.2ch.net/test/read.cgi/mac/1067367790/l50"とかなら
set AppleScript's text item delimiters to "/"
set nukidasi to text item -2 of motonourl
open location hokanourl & nukidasi
end tell
0085名称未設定
04/04/07 23:59ID:4sMS9gynset AppleScript's text item delimiters to "/"
set nukidasi to text item -2 of motonourl
この部分を
.netより前の一単語を抜き出すとか、
もっと具体的に指定することは可能ですか?
0086名称未設定
04/04/08 00:02ID:OkyIjWvD0087名称未設定
04/04/08 00:24ID:IKoY4Fxpset AppleScript's text item delimiters to "/"
set nukidasi to (text item 3 of motonourl)
set AppleScript's text item delimiters to "."
set nukidasi to (text item 2 of nukidasi)
こんな感じの考え方で
0088名称未設定
04/04/08 05:26ID:o3sv/8Qy0089名称未設定
04/04/08 11:52ID:IUguQvfL人の書いたスクリプトをもとに自分なりにああしたいこうしたいと思って学ぶものだし。
0090名称未設定
04/04/08 12:52ID:nH/2skOJ0091名称未設定
04/04/08 21:16ID:GPnFjvWJわかりやすいサンプルありがとうございます。
一応思った通りのものは出来たのですが、
コンパイルしてCMScriptで使おうとしても反応しないのですが、
CMScriptで使う場合に変えなければならない部分があるんでしょうか?
0092名称未設定
04/04/08 23:14ID:2AZZr05fもう放置ってことで。
0093名称未設定
04/04/08 23:58ID:ShgSub30ttp://homepage.mac.com/tkurita/scriptfactory/Monologue/CMScript/
この辺を参考に。
0094名称未設定
04/04/09 12:39ID:xDraMp8X0095名称未設定
04/04/09 22:51ID:+1StqS8hつーか、91が一連のやりとりで作ったスクリプトを発表してみれば、
丸く収まる。
0096名称未設定
04/04/09 23:11ID:hpBeVwpn0097名称未設定
04/04/10 00:01ID:pq/Yb/8Xしかしながらアドバイスを下さった諸先輩方には感謝の念を禁じ得ません。
煽って下さった方々の新たなスクリプトの発表を期待しつつ
私はこの辺で失礼したいと思います。では
0098名称未設定
04/04/13 00:42ID:qxPmDXY3発表しなければ逆に「単なる教えて君」で厚顔無恥だと思うよ。
0099名称未設定
04/04/16 13:08ID:PXijATwOこれって、食い逃げじゃないか。
ネットというものはギブ&テイクでなりたってんだぞっていう
10年も前の話を蒸し返したくなった。
0100名称未設定
04/04/16 13:29ID:4UZlskxQ文句を言っても無意味っしょ。マターリいきましょ。
#彼が旋毛をまげたのも俺が「厚顔無恥」なんて言葉を持ち出したせいだろうし。
ちょい反省。
0101名称未設定
04/04/16 18:25ID:4ET29Dtj(´・∀・`)つ〃∩ヘーヘー
0102名称未設定
04/04/19 12:34ID:Q0aIRuCr0103名称未設定
04/04/19 13:22ID:zzIuLqbI0104名称未設定
04/04/19 13:49ID:Q0aIRuCr0105名称未設定
04/04/19 17:11ID:o/T8j0k60106名称未設定
04/04/19 17:48ID:iHugRxj+0108106
04/04/20 14:42ID:cl+YINft0109名称未設定
04/04/21 04:19ID:5i36Zz3mアップルスクリプトじゃなくて、ブックマークレットと呼ばれてるものらしいけど、
俺は↓のようなのをお気に入りに入れてるんだけど、
if (window.location == 'http://my.yahoo.co.jp/'){
document.fm.login.value='ここにID'; document.fm.passwd.value='ここにPASSWORD'; document.fm.submit(); void(0)
}
もちょっと汎用性があるように誰か改良して欲しい。
0112名称未設定
04/04/21 18:05ID:UGUyi4lYこっちの方がいいかも。
http://pc3.2ch.net/test/read.cgi/mac/1047361032/l50
0113名称未設定
04/04/24 16:43ID:8KPeuyyk翻訳結果を新たに開いたウインドウに表示するのではなく
同じウインドウの異なるタブに表示するにはどこを変えれば
宜しいのでしょうか?
0118名称未設定
04/04/25 00:49ID:NzKP49F8ここにあるjavascriptをホットリストに入れてじゃ駄目?
俺これ重宝してるよ
ttp://freezone.kakiko.com/bookmarklets/
0119名称未設定
04/04/26 12:02ID:nuDH+nw0javascript:
document.forms[0].passwd.value='パスワード';void(0);
setTimeout('document.forms[0].Login.click() ',1000);void(0);
bookmarkletだけど。
0120名称未設定
04/05/11 19:56ID:Zrr/Ybg/0123名称未設定
04/05/12 15:22ID:xsrqZv8Mここと併合するの?
0124名称未設定
04/05/12 15:54ID:MJ8sMq4Eアップルスクリプトが2つあるのはややこしいよ。
このスレもともとクラシック専用じゃないし、もう「OSXで」って時代じゃないでしょ。
OS9の場合はそのことを書くようにすれば?
0125名称未設定
04/05/12 17:14ID:RJoyG+7bAppleScript
オンリーのスレが出来るのは賛成なんだけど、そうなると「おもろい、めずらしい」
という括りが邪魔な気が。AppleScriptがカタカナ表記なのも正直ちょっと……。
最近このスレも停滞気味だし、いっそAppleScript総合スレってのができると嬉しい。
#「AppleScript,Perl,Shell」OS Xでスクリプトスレ自体、結構重宝してたんだけどね。
0126名称未設定
04/05/12 18:33ID:/6tuWuza作って作ってクレクレスレに成り下がるので。
0127名称未設定
04/05/12 18:54ID:Yt9Adumdそれに、他にAppleScriptスレ作らなければ嫌でも総合スレになるのでは?
0128新しく作るんならこんな感じ?
04/05/12 19:06ID:p5lOPGy5AppleScriptを語るスレです。
AppleScriptの発表、質問なんかあったらどうぞ。
製作依頼は原則的に受けません。自分で頭ひねろう。
関連スレはこちら
・おもろい、めずらしいアップルスクリプト発表会4
http://pc.2ch.net/test/read.cgi/mac/1026844857/l50
前スレはこちら
・「ご主人様ご命令を!」OSXでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50
・「AppleScript,Perl,Shell」OSXでスクリプトスレ
http://pc5.2ch.net/test/read.cgi/mac/1055091471/l50
参考リンクは>>2-5あたり
0129名称未設定
04/05/12 19:08ID:p5lOPGy5・AppleScriptリファレンス--古いけどAppleScripterの聖典
ttp://store.sbpnet.jp/isbn/1011/preface.html
・AppleScriptタコ入門
ttp://www.macos.com/octopus/
・ビブロスのプログラム
ttp://www.dd.iij4u.or.jp/~banban/program/program.html
・ちゃらんぽらん
ttp://www1.odn.ne.jp/~cge02410/index.html
・鳶嶋工房(Tobishima-Factory)
ttp://homepage1.nifty.com/ton_b/
0130名称未設定
04/05/12 19:09ID:p5lOPGy5・mi スクリプト書きに便利なエディタ
AppleScript、Perl、C言語、その他色々の言語に便利な機能が付いたエディタ。
ttp://www.asahi-net.or.jp/~gf6d-kmym/
・Scriptmenu
AppleScript、シェルスクリプト、Perlスクリプトをメニューバーから実行できる。
ttp://www.apple.com/applescript/macosx/script_menu/
・SystemOSAX
シェルコマンドをAppleScirptから実行できるスクリプティング機能拡張。
めちゃくちゃ便利。SAMPLEも勉強になる。
ttp://www.bekkoame.ne.jp/~iimori/sw/systemOSAX.html
0131名称未設定
04/05/12 19:41ID:RJoyG+7bお〜、乙。個人的には【クレクレ】〜【厳禁!】の方がいいかと思ったり、制作依頼は「原則禁止」じゃなく「絶対禁止」にした方が気持ちよく常駐できるかと思ったり。
ところでいつの間にか「AppleScript,Perl,Shell」OSXでスクリプトスレ復活してるね。
新スレ立てる必然性が弱くなった気もするけれど、総合スレがあればやはりありがたい気がするので、総合スレ新規立ち上げに一票。
私見だが、将来的には
・AppleScript総合スレ
・作品発表系の本スレ
・OSXで〜&「AppleScript,Perl,Shell」OSXで〜スレを統合してスクリプト全般スレ
・Xcode&DeveloperTools等、開発環境総合スレ
なんてラインナップになると嬉しいかも。
0132名称未設定
04/05/12 20:22ID:8wRb9hTHAppleScript総合スレが「OSXでスクリプトスレ」の次スレってのも変だし。
0133名称未設定
04/05/12 20:37ID:6KRlDQAnAppleScriptで、Classicの起動有無チェックや、停止、起動は制御できるのでしょうか?
Classic内フォントフォルダのフォントを出し入れするScriptを作っているのですが、
出し入れの前にClassicを停止し、出し入れが終わったらClassicを起動させるようにしたいのです。
OSX10.3.3です。どうかみなさん、よろしくです。
0134名称未設定
04/05/13 01:48ID:28c+VHmEtell application "System Events"
processes
end tell
"Classic Support" の有無でclassicが起動しているかどうかを調べられる。
name of processes でやったほうが処理は楽だけど。
classic起動アプリは"Classic Startup" という。
0135名称未設定
04/05/13 03:45ID:86L1jYdMOS 9で使っていたスクリプトをOS Xに持ち込んだら、
empty (trash of disk "ABC")
ここで「"trash of disk "ABC""が取得できません」とエラーがおきるので、
empty trash
にしたらいけました。
OS 9での指定はおかしかったのかな…?
あと、
duplicate selection to disk "Disk123" with replacing
ってやったら、OS 9時代と違ってコピーされたファイルの修正日が変わっちゃうんだね。
バックアップだから修正日も同じがよかったのに…( ´・ω・) ショボーン
0137名称未設定
04/05/16 11:05ID:YXVzPiE3昔使っていたリファレンス本探したらみつからない…………
0138名称未設定
04/05/21 06:23ID:FxyGEABa逆ギレののたん置いていきますね
∋oノハヽo∈
(`?D´ ) <なんに!
O^ソ⌒とヽ
(_(_ノ、_ソ
0139名称未設定
04/05/21 15:31ID:istz2+O/0140名称未設定
04/05/24 02:17ID:p3nMqvQ/OSX 10.2.8で、System Events 経由で他のアプリケーションの特定の
menu item の enabled 属性を調べたいのですが、うまくいきません。
tell application "System Events"
tell process "Jedit4"
tell menu "編集" of menu bar 1
get enabled of menu item 1
end tell
end tell
end tell
みたいな感じ。position とかsizeとかどうでもいい属性はきちんと取り出せる
のに、enabled属性だけはgetすると、
"System Events でエラーが起きました:
NSCannotCreateScriptCommandError"
になって、成功しません。どうすればいいんでしょうか?
0141名称未設定
04/05/25 03:15ID:jTw5tg6Xtell process "Jedit4"
tell menu "編集" of menu bar 1
get every menu item whose enabled is true
end tell
end tell
end tell
0142名称未設定
04/05/25 16:48ID:IPgUFLHdQuarkXPress3.3Jを、OSXのClassic環境で動作させているのですが、
AppleScriptで、例えばPictureBoxのプロパティを得ると、
bounds:《data FRMS0038B1630038B16300C66CDA00C66CDA》
みたいになってしまいます。
通常ならbounds値は、
bounds:{100mm,100mm,100mm,100mm}
のようなリストで帰ってくるはずなのですが……。
これはOSXのClassic環境では仕方のないことなのでしょうか?
それとも、設定が必要とか……。
0143140
04/05/25 19:49ID:tXI8j9ISどうもです。でもそれもやはり同じエラーが出て蹴られるんだな。
get every menu item whose name is "カット"
なら問題なく通るのに、enabled属性の時だけ蹴られるんですわ。なんでenabledだけ、
いつものような書式が通用しないのか理由がわからん。
これってひょっとして私のところだけ? 他の人のところでは、enabledも他の属性
同様に扱えてるんですか? 私のところでは対象アプリケーションはJedit4だけでなく
とも、なんであっても同じように蹴られるんですが。
====================
で、なんとか自己解決しました。
get (properties of menu item "カット") as list
copy item 10 of the result to x
みたいに、属性レコードを一度リストに変換してitemを取り出せばできました。
でも、なんでこんな回りくどいことしなければならないのだろう?
0146名称未設定
04/05/28 23:05ID:6JAp8G/3とりあえず、
tell application "System Preferences"
activate
end tell
tell application "System Events"
tell process "System Preferences"
click menu item "ディスプレイ" of menu "表示" of menu bar 1
delay 10
click radio button "ディスプレイ" of tab group 1 of window "カラー LCD"
delay 1
set value of slider 1 of group 2 of tab group 1 of window "カラー LCD" to 0.1
end tell
end tell
っていうのは作ったんですけど、実行速度が遅くって...
tell application "System Events"
key code hogehoge
end tell
っていうスクリプトで、明度↓キーを押せないかと考えたんですが、キーコードが分からず。
107(F14?)を指定してやるとそれらしい表示は出るんですが、明度が下がらない。
困ったんでどなたかアドバイスください。
0147名称未設定
04/06/05 22:29ID:iCy5XZqT0148名称未設定
04/06/12 04:59ID:P6SALBfl0149名称未設定
04/06/19 16:23ID:RSTkpEgg0150名称未設定
04/06/19 22:47ID:cOPzDllr0151名称未設定
04/06/26 03:38ID:zeKayWJw0152名称未設定
04/06/26 03:50ID:BbguurDB用語説明なら
スクリプトエディタのメニュー「ウインドウ」の「ライブラリ」で表示できる
ウインドウにSafariがあるならそれをダブルクリック。無ければ追加する。
もしくはSafariをスクリプトエディタにドロップ。
0155名称未設定
04/06/26 22:37ID:2uyxcqOtDesktop
Library
Music
Public
Documents
Movies
Pictures
Sites
あたりのフォルダを参照するのって"Macintosh HD:Users:〜ってずらずら書くしかないの?
0156名称未設定
04/06/26 22:58ID:ah2QLxOgを見る。
0157名称未設定
04/07/05 22:38ID:ZVhnPpmI0158名称未設定
04/07/14 00:21ID:jHw/7rkj0159名称未設定
04/07/14 15:05ID:gjBqyPmmどうにかしてくろよ
0160名称未設定
04/07/16 13:16ID:0SBEIijE0161名称未設定
04/07/23 02:47ID:G/iPxOOnAppleScript、ってなかったでしたっけ?
「あなたの脳ミソに重要な欠陥が発見されました。修復はできません。」みたいな。
0162名称未設定
04/07/25 17:33ID:NnwVfnmZ0163名称未設定
04/07/25 23:26ID:G9SMYOehここに書かせてもらいます。10.3.4を使ってます。
ライブの音源(録音、配布はすべて許可されていました)
をたくさんダウンロードしたのですが、曲名が日付になっています。
01-2004-06-21.wav
02-2004-06-21.wav
...
そして、正しい曲名がはいったテキストファイルもいっしょに
ダウンロードしました。iTunes(v4.6)で手作業で曲名を
変更していますが、これをアップルスクリプトをつかって
テキストファイルから曲名を読み込ませて一気に変更
するにはどうしたらいいでしょうか?
テキストファイルのなかみはこんな感じです。
01 song1.wav
02 song2.wav
...
0165名称未設定
04/07/25 23:38ID:zNojXqcY0166名称未設定
04/07/25 23:47ID:Ln2StDlC01-2004-06-21.wav = 01 song1.wav
02-2004-06-21.wav = 02 song2.wav
という事?
て言うか、共通する部分が有れば良いけど。
だったら可能だよ。
やり方としてはまず、元ファイル名をリストに取って、
変更したいファイルネームの入ったファイルを開いて、リストに取って。
んで、共通する部分でsortして、
リピートして名前変えて行けば良いんじゃん?
漏れだったらperlだな。
0168名称未設定
04/07/25 23:54ID:Ln2StDlCなんで?
0169名称未設定
04/07/26 00:05ID:a+E/jU6yどうしたらいいでしょうか?じゃなくて作りなさいよ。
易しい記述でできるから。実際俺はよく使ってる。
必要なのはiTunesのリストの取得とファイルのオープン/クローズだけ。
0170名称未設定
04/07/26 00:21ID:qkSDcJBRオカシイナ。
>>164
>不可能
>手作業でやれ
これは嘘、出来るもの。
>>167
>彼はAS何も知らないと思う。
>レスしたなら最後まで面倒見てあげてね。
何故163がASを何も知らないと言うのか、意味が分からん。
>>163 は
>一気に変更するにはどうしたらいいでしょうか?
こう言っている。
だから考え方を言っただけだし、これ以外の方法も何通りでもある。
漏れなら、perlでsortしながらglob()して、ファイルをopenして、…
レスしたから全部面倒を見る?
オマイそうしているのか?
だとしたら、良い香具師だな。
嘘つきではあるが。
0171163
04/07/26 01:07ID:CMN4F3GW>>166
>順番はその通りなの?
>01-2004-06-21.wav = 01 song1.wav
>02-2004-06-21.wav = 02 song2.wav
>という事?
そういうことです。
ちなみにASのことはほとんど知りません。
他のスクリプト言語は昔少しだけかじったことがありますが、
ほとんど忘れています。
>>169
>易しい記述でできるから。実際俺はよく使ってる。
もしさしつかえなければ、あなたが使っているスクリプトを
ここにのせていただければ感謝いたします。
0173名称未設定
04/07/26 01:35ID:45QR3iXrもっともそれを承知でクレクレ言ってる節もあるが。
0174163
04/07/26 01:59ID:CMN4F3GWまあここはスクリプトの質問スレではないですもんね。
昔使ったスクリプトの本をさがしてトライしてみます。
こまったら質問にきますね。
0175名称未設定
04/07/26 03:50ID:rGfsDYwK0176名称未設定
04/07/26 19:59ID:1LuHabEMスクリプトエディタから実行すると正常に実行できて、
アプリケーション形式で保存してダブルクリックで実行
するとエラーになるという現象が起きてます。
>75
に10.3.3での解決方法がありますが、うちは10.2.8のせい
か、「アプリケーションバンドル」で保存や情報を見る=>
言語=>追加が出来ません。解決方法を御存じの方がいらっ
しゃいましたら御教授願います。
(10.3にする、ってのはなるべくさけたいです)
0177名称未設定
04/07/26 20:51ID:45QR3iXr0178名称未設定
04/07/26 23:07ID:DTt+8Jxxそのスクリプト自体を晒してくれるのが一番良い。
0179176
04/07/27 11:41ID:5hk3Umg9根本的な解決には至らなかったのですが、一応目的は達成した
ので報告します。
tell application "SystemSound Extension"
activate
open file "Shutdown.SSIDoc"
end tell
tell application "Finder"
activate
shut down
end tell
サウンドファイルを鳴らしてからシャットダウンするスクリプト
です。SystemSound ExtensionはSystem7サウンドファイル
を鳴らすアプリで、これ入れとけばシャットダウン時に音が鳴る
って聞いたんですが、ダメなのでスクリプトを書きました。
で、新規作成でアプリケーション形式で保存・実行すると
エラーになるので、HDにあったKuGoShutdownという
スクリプトをコピーして上記のスクリプトをコピー・上書き
保存したら、正常に動作するようになりました。
長文失礼しました。
0180名称未設定
04/08/06 22:32ID:jFIExWeW0181名称未設定
04/08/19 19:58ID:t6Toq4HR0182名称未設定
04/08/24 13:43ID:Fgl/d5RWdo shell scriptについてなのですが、
tell application "terminal"
do script " "
end tell
の場合ように、shell scriptに処理はまかせてapple Scriptで処理を継続する方法は
ないでしょうか?
try timeout と ignoring applicatiron responsesを試したのですが、
どちらも処理が終わるまで戻ってきませんでした。
terminalを立ち上げたくないんですけど、仕様なんですかね…?
0183名称未設定
04/08/24 14:02ID:iO9BUeXUttp://developer.apple.com/ja/technotes/tn2065.html
Q: スクリプトの出力に非常に時間がかかります。
結果が出た時点でそれを読むにはどうすればよいですか?
A: これについても、方法はありません。
do shell script は、コマンドが完了するまで戻ってきません。
ただし、対処法としては、コマンドをバックグラウンドで実行し(次の Q&A を参照)、
出力をファイルに送信し、ファイルが完成したらファイルを読むという方法があります。
Q: バックグラウンドサーバプロセスを開始したい場合、do shell script に
コマンドの完了を待機させないようにするにはどうすればよいですか?
A: 「do shell script "command > file_path 2>&1 &"」を使います。
do shell script は、結果なしで直ちに戻り、AppleScript スクリプトは
シェルスクリプトと並行して実行します。シェルスクリプトの出力先は file_path になります。
出力に関心がない場合は、"/dev/null" を使用します。AppleScript からの
バックグラウンドプロセスの取得や操作は、直接的にはサポートされていません。
0184名称未設定
04/08/24 16:00ID:Fgl/d5RWありがとうございます。そこのページは読んでいたのですが、見落としていました。
で、やってみたのですが、
Q: 1 つの do shell script で複数のコマンドを使用するにはどうしたらよいですか?
A: 1 回の呼び出しで複数のコマンドを実行するには、次のようにセミコロンでコマンドを区切ります。
これとの共存は出来ないみたいですね。複数コマンドの最後に付けただけでは戻ってきませんでした。
こりゃ、terminal立ち上げないと駄目かな。
0185名称未設定
04/08/24 17:15ID:sLkeE8wQ試してないけど、こんな感じで入れ子にできないかなw
do shell script "osascript 'do shell script "command a;command b"' > file_path 2>&1 &"
0187名称未設定
04/08/24 18:44ID:G2fUZM820188名称未設定
04/08/24 19:05ID:Fgl/d5RW""大杉とスクリプトエディタに怒られました。
だめっぽいです。
>>187
うほ!できた。普通に括弧使えたんですね。知らなかった(w
&で並行処理ができるってのもさっき調べて知りました。
ただ今回の場合処理の順番が重要なので&だと駄目だったんですよね。
これを機にshell scriptもきちんと勉強することにします。
ありがとうございました。
0189188
04/08/26 22:02ID:QvvKFSXb今度はdelayコマンドなんですけど、これって馬鹿みたいにCPU喰うんですけど、
仕様でしょうか?
appleScript Studioで使うと消費しないみたいなんですけど、
will finishing launchと組み合わせて使うとやっぱりCPU喰いまくる模様。
do shell script "sleep" でやるとCPUの消費は回避できたんですけど、
今度はdo shell scriptから戻ってこないので、操作不能に陥って、
途中で処理を終了させたいような場合にどうしようもなくなってしまいます。
CPUを喰わずに数秒間処理を待たせる方法って無いでしょうか?
0191188
04/08/26 23:03ID:QvvKFSXbもちろん do shell script "sleep 秒数" でやってます。
ファイルを監視して、サイズの増加がなければ処理を続行するというスクリプトで、
repeat until ファイルA = ファイルB
ファイルA
delay 10 (またはdo shell script 〜)
ファイルB
end repeat
こんな感じでやってます。
この状態で、delayなら他のオブジェクトをクリックしたら処理を中断する
といったことが出来るのですが、代わりにCPUを馬鹿食いする。
do shell scriptだと、CPUを喰わない代わりにRepeatを抜けるまで操作不能で強制終了しか
手段が無くなるといった状況です。
0192名称未設定
04/08/26 23:27ID:Lu6c7XBIreturn 秒数
end idle
だと軽いという話もあるようですが
0193188
04/08/27 00:34ID:MfOmeuVx捉えられないため、ファイルの増加を捉えるにはチェックする2点間の時間差を
作る必要があります。
idleの使い方がいまいちわからないのですが、
調べた限りではidleに挟まれたスクリプトを延々続ける
常駐スクリプトを作るためのものですよね。
となると時間差を儲けるためには利用できないような…。
idleを呼び出して待機させるみたいな使い方って出来るのでしょうか?
idle
ファイルA
do shell script "sleep1"
ファイルA'
return 30
end idle
(ファイルABは不適切だったので変更しました。)
これでCPUの消費を抑えつつ30秒に一回チェック(但し一秒間固まる)
という風にできるのでなんとかごまかしにはなるのですが、
プログレスバーとかを利用するとその都度止まるのでやはり目立ちますね。
う〜ん…。
0194名称未設定
04/08/27 20:02ID:5v0uKj1E普段使わないパーティションをアンマウントする
スクリプトはどう書けば良いのでしょうか? 10.3.5です。
以前、たしか10.1.5のころは
tell application "Finder"
activate
eject disk "普段使わないHD"
end tell
でいけてた気がするんですけど、10.3.5だとできない、
ひさびさにXをさわっているので、よくわからない…
教えてくんですみません。
0195名称未設定
04/08/27 22:55ID:DSSUIhBxdo shell script "diskutil unmount /Volumes/ボリューム名"
0196194
04/08/27 23:32ID:5v0uKj1Eありがとうございます!できました。
けど、アンマウントするまでにけっこう時間(10秒くらい)がかかりますね。
0198188
04/08/31 18:21ID:n5TGMAoPもしかしてdelayで馬鹿みたいにCPUを喰うのはうちだけですか?
AppleScript , Delayあたりでぐぐって見たんですけど、
CPU消費に関する記述を見つけれられず。
海外のフォーラムで一件、CPUを消費しないようなことが書いてあったのですが、
たとえば、
repeat
delay 10
beep
end repeat
だけでもうちでは半分以上のCPUを消費してます。同時に別の重い処理をさせたいので
これだとお話にならないんですよね。
今のところ、インジケータなどの動きが鈍くなるのは諦めて、
idleとdo shell script "sleep 〜"の組み合わせでごまかしてるんですが…。
0201188
04/08/31 20:06ID:n5TGMAoPやっぱそうですか。仕様なのかな?
>>200
う〜ん、趣味のレベルなのでそれを言われると辛い(笑)
入門用にはApple Scriptってわかりやすくて良かったと思います。
(未だにファイル参照とかでなんでうごかねーんだよ!とかしょっちゅうですが…)
Apple Scriptで出来るようなことは、shell Scriptで大抵出来るのでしょうか?
今回いくつかの箇所で利用しているので、次はこの辺りに手をつけようかとは
思っているのですが…。
0202名称未設定
04/09/02 04:10ID:fHTzBjY9(、 )
)/
AppleScript
0203名称未設定
04/09/02 05:20ID:Jd5S/g7D0205名称未設定
04/09/05 02:47ID:M+cmEJlOScriptはできまんのん?
0206名称未設定
04/09/05 04:38ID:+FH99fMKtell application "System Events"
tell process "Finder"
keystroke "N" using command down
end tell
end tell
0207名称未設定
04/09/05 04:40ID:+FH99fMKtell application "System Events"
tell process "Finder"
keystroke "#" using {command down, shift down}
end tell
end tell
0208名称未設定
04/09/12 16:23:24ID:G03Za5Edが
"56789"
になるという書き方をさっき知りました。
items -3 thru -1 of {1, 2, 3, 4, 5}
もできるのですね。
0209名称未設定
04/09/14 09:18:54ID:09iP1ErFon will finish launching theObject
try
set str1 to contents of defult entry "field1" of user default
set contents of cell "field1" of matrix "form1" of window "Main" to str1
on error
make new default entry at end of default entries of user defaults with properties {name:"field1" ,contents:""}
end try
end will finish launching
on will quit theObject
set str1 to contents of cell "field1" of matrix "form1" of window "Main"
set contents of dafault entry "field1" of user default to str1
end will quit
これで起動時に初期設定ファイルを読み込んでcellに文字を入力するのは
理解できたのですが、ラジオボタンやポップアップボタンで同様に初期設定を
利用するにはどうしたらよいのでしょうか。
state of 〜 とか title of 〜 とかに変更してやってみてはいるのですが動いてくれません。
0210名称未設定
04/09/15 00:58:38ID:DbtHs2Q3will finish launchingでは読み込んだのをproperty変数に代入するだけにして
launchedでコントロールをセットするようにしてみれば?
0211名称未設定
04/09/15 18:01:51ID:zXjUXSSNタイトルからは見つからなかったんですが。
スレ汚しですみませんがちょっと教えてください。
0212名称未設定
04/09/15 18:21:57ID:XTXzTDIJ0213209
04/09/15 21:19:25ID:mpexBGZ+色々試したところ、popup buttonについてはコントロールの理解がイマイチだったようで、
set contents of popup button "popup1" of window "Main" to str2 でいけました。
ただ、ラジオボタンはうまく動かないので、(この辺も私の理解が甘いだけだとは思うのですが…)
得られるtrue,falseからそれぞれのボタンを起動時に個別にON OFFすることで対応しました。
launchedは使いませんでしたが、別で処理させる参考にさせていただきました。
ありがとうございました。
0214名称未設定
04/09/15 21:23:49ID:dBgMYZZitrue,false は as boolean を付けて明示的にboolean値として
default entry に書き込んでやればよい。
as boolean を付けないと、次にdefault entry から読み出すときに
boolean 値として取り出せなくなって、ラジオボタンのstateをset
するときにうまくいかなくなる。
0215211
04/09/15 22:31:45ID:zXjUXSSNMail.appで指定のメールをスクリプトから表示させたいのですが
何か方法はありますか?
0217名称未設定
04/09/16 00:10:03ID:ll1/7IA10218名称未設定
04/09/16 06:24:59ID:cCQwtS+V0219215
04/09/16 17:54:09ID:oFS8A0dj一応見ました。
messageクラスがメールの参照ですよね?
これを外部から参照する方法と、ウィンドウで表示(選択でも良いですが)する方法が分かりません。
前者はmessage viewerなどでselected messagesで取り出すくらいしかわからなかったです。
メールボックス内の番号とかでメッセージの参照を取り出せないもんでしょうか?
後者は簡単にできそうなのにさぱーり見つかりません。
ここを良く見ろ、程度のヒントで良いのでよろしくお願いします。
>>218
分かりにくくてすみません。
Mail.appを前に持ってきて指定のメールを表示させる、ということです。
「何日までに返事をしなくてはいけないメール」を表示するスクリプトを作って、
cronで自動表示させるとかそんな感じのことをやってみたいわけです。
0220名称未設定
04/09/17 17:56:22ID:s1RVMjq/辞書の message viewer に selected mailboxes と selected messages があります。
リスト形式なので注意、あと動かない場合はバグです。
0221名称未設定
04/09/17 19:12:41ID:qWgoraYNtell application "Finder"
set thePath to folder "my:hd:folder:"
set theIconSize to 64
set theTop to 50
set theLeft to 50
set theXMax to 6
set theFiles to (files of thePath)
set theX to 1
set theY to 1
repeat with theFile in theFiles
set position of theFile to {theLeft + theX * theIconSize, theTop + theY * theIconSize}
set theX to theX + 1
if theX > theXMax then
set theX to 1
set theY to theY + 1
end if
end repeat
end tell
0222名称未設定
04/09/26 05:16:06ID:f5zIxPkz0223名称未設定
04/10/02 14:28:57ID:d9+dOiduどなたか使っている方がいたら教えてください、お願いします。
0224名称未設定
04/10/02 16:47:35ID:wEwo/pjv買ったら?
0225名称未設定
04/10/02 16:55:36ID:4i3TFRo20226名称未設定
04/10/02 19:20:04ID:kgEAA4v6Finderからfileをmakeして、クリエーターとファイルタイプを
それぞれ"drag"と"clpt"に変えてみたのですが、Finderから開けませんでした。
クリッピングファイル作成のコマンドを教えてください。
0227名称未設定
04/10/02 19:40:31ID:MG1WP7kQ0229名称未設定
04/10/02 20:54:08ID:I2LNiOMXありがとうございました。
0230名称未設定
04/10/07 10:12:06ID:m8rgYK90Inspectorでは見えてるのに探してもみつからないorz
0231名称未設定
04/10/07 20:57:06ID:Cjni9kAp答えになってないかもしれんが、do JavaScript "..." in document ... で扱える。
ここら辺を参考に
http://www.apple.com/applescript/safari/
0232名称未設定
04/10/08 00:39:22ID:IIC+pTPt解決してるかな。
スクリプトのままだと思い切りCPUパワーを食いますが
「アプリケーション」等にすれば問題なかったです(うちで約2%)。
>>206なんと、OSXだと純正で命令方法があるんですね。
>>230ちょっとInspectorで覗いたけど
textfield 、 scrollarea 等の扱いがよくわからなかったです。
「アプリケーションパッケージ」にしたらスクリプト途中の quit (me)を受け付けませんね。
無理矢理解決したけど。
0233198
04/10/09 21:46:33ID:bAxtWyCzお、本当ですね。バグなのかな?
結局、idleが使いにくいのと、indicatorが元気に回るとこれまた妙に
CPUを喰うので、do shell script "sleep"一本でやることにして、
反応が鈍くなるのは諦めました。
ちなみに作ったのはこれです。スクリプト内容は公開してませんが、
AppleScriptと基本的なshell scriptの組み合わせで書きました。
http://homepage.mac.com/tarak/AccelerCoder/index.html
で、一応delayに置き換えてみたんですけど、やっぱり駄目ですね。
AppleScript Studioの場合、スクリプト自体はアプリケーション形式に
ならないみたいだから駄目なのかな?
0234非通知さん
04/10/10 10:22:21ID:MB8bCHWKStudioアプリではアプリの中の1オブジェクトのスクリプトがquitするだけなのかも。
tell my application to quit
でいけそうな予感。
だれか検証して。
0235名称未設定
04/10/10 11:28:20ID:Y84ktt850236名称未設定
04/10/10 12:04:33ID:kMxucGfVquit
でアプリ自身がquitしてるけどなぁ。
0237名称未設定
04/10/10 21:52:06ID:h4mMySUsうちのも単にquitでアプリが終了したよ。
ところで質問なんですけれども。
AppleScript Studio で popup button を使いたいのですが
ポップアップに含まれる項目を設定する方法がわかりません。
デフォルトで「item1」〜「item3」というのが設定されているのですが、
これを変更するにはどうすればよいのですか? 教えてちょうだい。
0239名称未設定
04/10/10 22:03:51ID:h4mMySUs最初からポップアップにある「item1」〜「item3」ってのを
例えば「あ」「い」「う」「え」にしたいんだけど。
説明ベタ?ですまんね。おねがいだから教えてください。
0240名称未設定
04/10/10 22:05:09ID:LfejAz8I・画像ファイルのアイコン'icns'を読み込む方法
Satimage.osaxが必要
http://www.satimage.fr/software/en/scripting_additions.html
set icnsData to (load resource -16455 type "icns" from theFile)
tell application "DragThing"
set full trash icon to icnsData
end tell
で設定できます
・画像ファイルにアイコンをつける方法
tell application "Image Events"
launch
set theImage to open theFile
save theImage with icon
close theImage
end tell
・画像データの種類を変換する方法
GraphicsImporter OSAXをつかう
http://www.azug.gr.jp/~h-abe/freeware/gio/index.ja.html
set theTiff to giconvert theImage type "TIFF"
iTunesのアートワークの形式も好きな画像タイプに変換できる
--
これらを組み合わせるとiTunesで再生中の曲のアートワークを
DragThingのゴミ箱アイコンに設定できた
0241名称未設定
04/10/10 22:14:08ID:bFirPcIRPopUpButton に MenuItem を追加するには、
PopUpButton をダブルクリックして Menu を表示させた状態で
InterfaceBuilder の Cocoa-Menus パレットにある Item を
その表示された Menu にドラッグ&ドロップする。
MenuItem に表示される文字を変更するには、
変更したい MenuItem をダブルクリックする。
こういうことが訊きたいのか?
0242名称未設定
04/10/10 22:24:32ID:h4mMySUsおおっ、まさにそれが聞きたかった!
なるほどメニューを表示させた状態で設定するんですね。
InfoパネルのAttributesから設定できなかったので
コード内から直接いじくるしかないのかと思ってました。
どうもありがとう。多謝。
ちなみにコード内からset ~ とかでいじくる方法はないんでしょうか?
0243名称未設定
04/10/12 19:38:12ID:uKbR7eDJ画像を再圧縮するのでjpgとかに使うと劣化しますので注意してください。
0244名称未設定
04/10/12 22:35:05ID:LpjzlUgf狭い世界だから...
0245名称未設定
04/10/17 00:04:01ID:tRjBl8peアイコンのことなんですがtiff2icnsってtiff画像をicnsに変換できる
コマンドがあるのを知りました。
set theTiffPath to POSIX path of "どっか:foo.tiff"
do shell script "tiff2icns " & (quoted form of theTiffPath)
みたいにやると変換できました。
ただ日本語ファイル名だと変換できないようです。
エラーはでてませんがicnsもできてません。
なんとかならないのかなあ。
0246名称未設定
04/10/24 13:13:01ID:rw3ptXbP0247名称未設定
04/10/25 03:14:49ID:rR2cymuu0248名称未設定
04/10/25 03:56:35ID:rR2cymuu0249名称未設定
04/10/25 05:51:23ID:EhC+PGLPAppleScript Studioアプリに非標準UNIXコマンドをパッケージ内にバンドル
したいのですが、アプリの設置パスを獲得する方法はないでしょうか。
0250名称未設定
04/10/25 06:42:08ID:rR2cymuuアプリの設置パスって path to current application とか?
バンドルならまんま bundle があるし。
AppleScriptKit を見ればわかるでしょ。
0251名称未設定
04/10/25 18:52:40ID:x+qjW0Wyなんかそこに至る為のお勧めな本とかありませんか。
技量はベーマガ世代でPHPでシンプルな掲示板くらいなら作れてCocoa+Objective-Cでヘボなシューティングゲーム作った事がある程度です。
0252名称未設定
04/10/25 19:16:21ID:piCvLv0u「AppleScript Programming for Mac OS X」(掌田津耶乃著・ソシム刊)は
AppleScriptの基礎的な部分の解説が充実しててわかりやすかったですね。
アスキーから出てる「AppleScript Studioでゼンマイびゅんびゅん!!」の方は
Cocoaアプリ作成例集といった感じですた
0253名称未設定
04/10/25 20:53:00ID:BBr9rcmXプロジェクトのResourcesに'gawk'をドラップして、
set gawkPath to ((POSIX path of (path to current application)) & "Contents/Resources/gawk")
set content of text field "tv" of window "wi" to (do shell script gawkPath & " '{print $0}' " & targetFilePath)
こんな感じでOKでした。ありがとうございます。
単体で機能するフロントエンドが作れますねぇ。うれしい。
http://developer.apple.com/ja/technotes/tn2065.html
ところで、AppleScriptKit(用語辞典?)の中をGrepするにはどうしたらよいんでしょう。
AppleScriptKit.asdictionaryをスクリプトエディタで開いても、
左のコラムでは展開しているクラスやコマンドにしかヒットしないし、
右のコラムでは単ページ検索になってしまいます。
なんかこれ使いにくいですよねえ?
>>252
僕も掌田津耶乃氏のページを見てやっています。
本も欲しいですね。
0255名称未設定
04/10/28 05:55:31ID:yfjLVJw4常に最上位に表示するにはどうしたらよいんでしょうか。
ヘルパーアプリを作っているんですけど、それがネックで……。
トグルできるといいんですけどね。
ゼンマイびゅんびゅんに載っているっぽい感じですが。
週末には買おうと思いますが、ご存知の方がいらしたら教えてください。
0256名称未設定
04/10/28 06:38:24ID:7qCTI3vXフローティングウインドウにしたいなら
set floating of window "hoge" to true
で逝けるかと。ググり情報なんで違ったらスマソ。
以前作りかけたアプリで使ったのに削除してたよorz
何か作る度にWebと睨めっこするのは効率が悪いな。
自前でリファレンス作ってまとめなきゃならんか……。
0257名称未設定
04/10/28 09:45:01ID:yfjLVJw4"最前面"とか"常に最上位"とかでググってました。
> set floating of window "hoge" to true
これだけでは何かダメだったです。
とりあえず、最前面に固定することには成功しました。
question about global floating window
http://lists.apple.com/archives/applescript-studio/2004/Jun/msg00178.html
on awake from nib theObject
set floating of theObject to true
set hides when deactivated of theObject to false
end awake from nib
こういうハンドラを書いて、windowのAppleScriptのActionにNibのawake from
nib のチェックボックスをONにすればOKでした。
後で作り途中のヘルパーアプリに適用してみようと思います。
ありがとうございます。
0258名称未設定
04/10/28 10:35:11ID:JYWwq5Znprogress indicatorの最大値最小値の設定をしたくて以下のようなコードを書きました。
1: tell progress indicator "indi1"
2: display dialog "aaa"
3: set minimum value to 1
4: display dialog "bbb"
5: set maximum value to 100
6: display dialog "ccc"
7: end tell
しかし3行目でも5行目でも
NSCannotCreateScriptCommandError (10)
というエラーが出てしまいます。
これはテスト用に数字を決め打ちしていますが、実際に作りたいアプリケーションの中では
最大値が時によって変わるため、どうしてもコード上で最大値最小値の設定をしたいのです。
どこか「その書き方間違ってるだろ!」とか「ここの設定見てみろ」とかありましたら
ご指摘願います・・・
OSは10.3です
0259名称未設定
04/10/28 16:52:16ID:wVbz5O7P構文はあってる。
思うに progress indicator オブジェクトまでのパスが通って無い。
オブジェクトのある Windows もしくは Sub View に tell してないでしょ。
0260258
04/10/28 19:30:04ID:JYWwq5Zn2行目のdialogが表示されてれば、1行目のtellは通っているものだと思っていました・・。
確認したところパスが通ってない部分(凡ミス)を発見し
修正して無事動きました。
アホな質問ですみませんでした・・。
レスいただけて助かりました。重ね重ね感謝です。
0263255
04/10/30 08:39:21ID:PYKcwNWuすのはどうやるのでしょうか。用語を見ると、
select: Select this ^Object
select reference -- 割愛
[existing selection replace/add to/remove from] -- How to handle the existing selection
このようになっており、
select someItem with existing selection
とやると、選択に追加していくことができるのは分かるのですが、
> replace/add to/remove from
これはメソッドではないようなので、select と existing selection 、そして
その他の修飾語で実現すると思うのですが、よく分かりません。グループ化さ
れたアイテムを複数選択し、その中から操作対象を特定条件で選択。あとはア
ナログ操作、みたいなことをやろうと思っています。
よろしくお願いします。
0264名称未設定
04/10/30 16:25:29ID:IwTOxAemtell application "Finder"
display dialog "何と言わす?" & return & "日本語はローマ字で入力" with icon note default answer "" buttons {"OK"} default button 1
set SPEACH to text returned of result
say SPEACH as text
display dialog "んで、コレど〜するよ?" with icon note buttons {"どうもしない", "AIFFで保存"}
set Ans to result
if button returned of Ans is "どうもしない" then
return
else if button returned of Ans is "AIFFで保存" then
display dialog "ファイル名を決めれ" & return & "(英数字限定)" with icon note default answer "SPEACH" buttons {"OK"} default button 1
set FN to text returned of result
say SPEACH as text saving to {(FN as string) & ".aiff"}
display dialog "HDの第一階層にいるよん" with icon note buttons {"OK"} default button 1
end if
end tell
声はシステム環境設定のスピーチでデフォルトの声で設定されているものになります。
日本語を喋らせるにはちとコツが必要です。
「son na koto yori tyotto ki i te ku da sa i yo」とするよりは、
「son na koto yori chotto key te ku dasigh yo」とするカンジに、
ローマ字そのまんま入力するよりは、発音の近い英単語を組み合わせる方がいいです。
なお、OS10.3でしか動作確認しとりません。
0265255
04/10/30 18:56:13ID:PYKcwNWuがんばってますね。
激しく学習のモチベーションになるので、
AppleScript Studioも平行してみるといいですよ。
>>263
自己レスですが、CSの3枚目のCDに付いていたサンプルの中に、
select nothing
という表現を発見しました。
select nothing with existing selection
という表現も可能ですね。selectionから参照を取った後、
select nothing で選択解除、あとは地道にselectしていく
というのでも目的は果たせそうです。
unselect みたいなメソッドがあるといいんですけどね。
0266255
04/11/01 05:20:40ID:L8OLmO4Y最前面のウインドウをサイクルさせるスクリプトを作ったのですが、
set myUnSortedWindowList to windows
で取得できる参照のリスト(?)の順序が不定なのでソートしたいのです。
いい方法はあるでしょうか。普通にやろうとすると、型変換に失敗
してエラーになってしまいます。一応、下記で問題はないのですが、
ソートできればスッキリするだけに、ちょっとお聞きしてみました。
0267255
04/11/01 05:32:46ID:L8OLmO4Y--InDesignのダイアログで、タブブラウザみたいに
--ウインドウ選択みたくするのもいいかもですね。
property previousCurrnetItem : 1
property CurrnetItemNumber : 1
property myUnSortedWindowList : {}
tell application "InDesign CS_J"
if (CurrnetItemNumber is not equal to (count of windows)) or (myUnSortedWindowList is equal to {}) then
set myUnSortedWindowList to windows
set CurrnetItemNumber to (count of windows)
end if
if previousCurrnetItem is greater than (count of myUnSortedWindowList) then
set previousCurrnetItem to 1
end if
try
bring to front (item previousCurrnetItem of myUnSortedWindowList)
on error
set myUnSortedWindowList to windows
bring to front (item previousCurrnetItem of myUnSortedWindowList)
set previousCurrnetItem to previousCurrnetItem + 1
return
end try
set previousCurrnetItem to previousCurrnetItem + 1
end tell
0268名称未設定
04/11/01 06:12:23ID:ufV1fFkMInDesign を持っていないので出来るかわかりませんが、
window の id を取得して地道に並べ替える手が使えるのでは。
0269255
04/11/01 12:40:12ID:L8OLmO4Yそれがよくわからないのですよ。
参照がよくわかってない証拠です。
tell application "InDesign CS_J"
windows
end tell
> layout window id 28009 of document "名称未設定-1"
↑windowsからはこんな山椒が返ってきます。で、
tell application "InDesign CS_J"
set myWindows to windows
repeat with i in myWindows
set end of documentNameList to (name of i)
end repeat
こんな風にnameは取得できるのですが、(id of i)が取得できないのです。
nameは一意とは限りませんからねぇ。
(window id of i)とか、(layout window id of i)も試したのですが。
こんな基本すらできない自分が悲しい。
0270255
04/11/01 12:42:04ID:L8OLmO4YMicrosoft Excel(2004)で>>267と同じことをするスクリプト……っていうかコマンド。
iKeyなどでExcelのApplication in Front(Ver1系で言うSet)に割り当てると至極便利。
というか、標準であるのかな。ショートカット。ちょっと調べた限りではないみたい
だけど。
tell application "Microsoft Excel"
activate next of active window
end tell
0271名称未設定
04/11/01 14:40:05ID:ufV1fFkM用語辞書は知ってますよね。
set myWindows to windows
properties of front of myWindows
これで属性一覧を取得した中に id は入ってませんか?
これらが参照できる筈の属性なんですけど。
0272255
04/11/04 13:52:14ID:FBqNktlS結局ふつーの方法は無いようです。
do shell script で標準出力として値をもらって、
加工する方法を某せうxーさんのBBSで教えてもらいました。
わりと瞳孔が開く思いです。まさにこのスレの主旨に近い感じかと。
set window_id to word 4 of (do shell script "echo 'tell application \"InDesign CS_J\" to get layout window 1' | /usr/bin/osascript")
0273名称未設定
04/11/05 08:23:50ID:nNsLenx+買おうかと思うんですが、アンチエイリアスが切れなくて、
フォントが変えられない部分の表示が見辛くて仕方ありません。
これって何とかならんもんでしょうか。
0274コピペ推奨
04/11/05 08:29:09ID:Qvz7AgN/http://news17.2ch.net/test/read.cgi/news5/1080481431/l50
0275255
04/11/08 05:32:04ID:C7TaNx2pGlobal floating window 化には成功したんですが、
Global floating window 化したウインドウをクリックしても、
タスクがスイッチしないようにはできないでしょうか。
親アプリとシームレスなヘルパーアプリにしたいのです。
REALbasic ではウインドウのプロパティにある
Global floating window を ON にすると簡単にできるのですが、
できれば AppleScript Studio で作りたい……。
Interface Builder の NSPanel のプロパティに、
Non activating Panel (Panel Only) というそのものズバリの
ものがありますが、これは AppleScript Studio では、
現状無効なようです。
Info.plist の Expert View に LSUIElement のキーを作り、
Value を 1 にするとバックグラウンドで動くアプリになりますが、
これは Face Less なアプリを作るための属性のようで、
Dock に表示されず、ウインドウも出てこなくなってしまいます。
0276名称未設定
04/11/09 11:01:39ID:MS4Vk1agpropertyを並列的に書くことって、できるんでしょうか?
リストから名前を選ぶと、名前に対応した個人データ(URLなんですが)を
クリップボードに収める、というスクリプトを作って使ってるんですが、
名前とデータを別々のpropertyに収めています。
property nameList : {"あ","い","う"}
property siteList : {"A","B","C"}
これを
{"あ" "A",ノ
"い" "B",ノ
"う" "C"}
というように書きたいんです。
IMの辞書登録とファイルメーカーでも同じものを作ってますが、
一番使っているのがこのスクリプトなので、なるべくこれを
編集しやすくしたいのです。
0277名称未設定
04/11/09 18:56:55ID:gd/e3JdJキーボードを自由に打たせる、
例えばテキストエディットで文字を入力したり、削除deleteしたりする方法はありませんか。
シェアウェアではあるようですが。(Script Palette)
0278名称未設定
04/11/09 19:17:54ID:Iql0iAGatell application "System Events"
tell process "System Events"
key code 38 using {control down, shift down} --日本語入力に
keystroke "watasiha"
key code 49 --スペース
key code 36 --return
keystroke "neko"
key code 40 using control down --k
key code 36 --return
keystroke "desu"
key code 36 --return
delay 4
key code 51 --delete
key code 51 --delete
key code 51 --delete
key code 51 --delete
key code 51 --delete
key code 51 --delete
end tell
end tell
入力はクリップボードに入れてペーストさせた方がいいと思う
0279名称未設定
04/11/09 22:23:22ID:iHIIM52zこんな感じ?
property theLists : {{"あ", "A"}, {"い", "B"}, {"う", "c"}}
property theRecords : {{name:"あ", data:"A"}, {name:"い", data:"B"}, {data:"c", name:"う"}}
display dialog item 1 of (item 1 of theLists)
display dialog item 2 of (item 1 of theLists)
display dialog name of (item 1 of theRecords)
display dialog data of (item 1 of theRecords)
display dialog name of (item 3 of theRecords)
display dialog data of (item 3 of theRecords)
0281名称未設定
04/11/10 18:34:04ID:6t5+IuShありがとうございます。
これは、それぞれの入れ子の1つめ
(theRecords内のnameにある「あ,い,う」の3つのデータ全部、といったようなもの)
だけをリスト化することはできますか?
↓は使用しているスクリプトです。
property nameList : {"あ", "い", "う"}
property siteList : {"A", "B", "C"}
set theName to (choose from list nameList) as string
if theName is not "false" then
try
repeat with i from 1 to number of siteList
if item i of nameList is theName then exit repeat
end repeat
end try
set the clipboard to item i of siteList
display dialog (the clipboard)
end if
0282名称未設定
04/11/11 00:05:26ID:avdf/Eq1property theLists : {{"あ", "A"}, {"い", "B"}, {"う", "c"}}
property theRecords : {{name:"あ", data:"A"}, {name:"い", data:"B"}, {data:"c", name:"う"}}
set nameList to {}
repeat with i from 1 to length of theLists
set nameList to nameList & item 1 of item i of theLists
end repeat
set nameList to {}
repeat with i from 1 to length of theRecords
set nameList to nameList & name of item i of theRecords
end repeat
なんかスマートじゃない、、、
0283名称未設定
04/11/11 04:30:29ID:suhFhJaVproperty theRecords : {{name:"あ", URL:"A"}, {name:"い", URL:"B"}, {name:"う", URL:"C"}}
set theNameList to {}
repeat with i in theRecords
set end of theNameList to name of i
end repeat
set theName to (choose from list theNameList) as string
repeat with i in theRecords
if theName = name of i then set the clipboard to URL of i
end repeat
display dialog (the clipboard)
0284名称未設定
04/11/11 05:01:16ID:suhFhJaV(てきすとふぁいる)
あ,A
い,B
(すくりぷと)
tell application "Finder"
set theRecords to {}
set filenum to open for access file "てきすとふぁいる"
try
repeat
set end of theRecords to read filenum using delimiter "," before return
end repeat
end try
close access filenum
end tell
set theNameList to {}
repeat with i in theRecords
set end of theNameList to item 1 of i
end repeat
・
・
・
0285名称未設定
04/11/11 13:38:54ID:pWJTbFszAppleScript Studioならリストから対を取得すれば済む事だし。
0286名称未設定
04/11/12 09:41:11ID:BEYhNaaO>>283
>>284
ありがとうございます。なんか、できました。できたかも。
とにかく、入れ子にできるのは知らなかったです。
>>285
勤務先のが、お古のOS9機でして。
0287名称未設定
04/11/13 01:59:29ID:KHTuzFThマウスクリックを AppleScript で実行することは可能なのかな?
0289名称未設定
04/11/15 04:19:55ID:8u1xX1hEて何なのだろう。デバッグできねーじゃん!!
あと、ScriptDebuggerでコンパイルできて、ScriptEditorでコンパイルできな
いのがある。
あと、コメントでエラーが出ることがある?
わけわかんねー!!
0290名称未設定
04/11/20 08:12:06ID:3zze8c2Y0291名称未設定
04/11/20 17:09:22ID:WIEoO1BYStringとUnicode textを使えば問題ないと思うけど。
0292290
04/11/23 11:28:09ID:kaBH1AF/コンパイルできない時の指摘部分選択がずれる。
日本語がうまく入力できない時がある。(後ろに「-」等を書いておくと行けるけど)
>>291どうすればよいでしょ。
0293名称未設定
04/11/23 11:43:50ID:kaBH1AF/「常にこのアプリケーションで開く」でファイルを開くと、
タイプやクリエータは変更されず、リソースフォークが追加される。
(10.3.5にて /勘違いされていることがある)
それでファイルの整理として、
リソースは嫌いなので削除するとともに、if文を羅列したドロップレットで、
set file type of obj to "JPEG"
set creator type of obj to "prvw"
などとやるんだけど、aif等(他の音声形式も?)には命令が効かず、何の変更もされない。
何が悪いのでしょうか?
0294名称未設定
04/11/23 14:33:03ID:dr/z3RuG俺の場合AppleScriptStudioでファイル文字数を数えるスクリプトなんだけど、
濁点とかを一文字と数える場合があるらしくはまった。
規則性がイマイチはっきりしなくて対処に困ったんだけれど、
あまり意味のなさそうな部分にもひたすらstringを突っ込んだらうまく数えられるようになった。
でも凄く見にくいスクリプトになっちゃったので、俺も日本語のうまい使い方を教えて欲しい。
0295名称未設定
04/11/23 18:31:01ID:fXXVAEK6tell app "InDesign CS_J"
tell app "Microsoft Excel"
end tell
end tell
こういうネストはダメなんざんしょうか。
tell app "InDesign CS_J"内では、メソッドやオブジェクトはInDesign
のものとして扱われるのでダメだと分かるのですが、
スポット的にこの束縛から逃れる方法は無いでしょうか。
tell app "InDesign CS_J"
my useExcel()
end tell
on useExcel()
tell app "Microsoft Excel"
end tell
end useExcel
ハンドラ化してもダメでした。
0296名称未設定
04/11/23 20:02:28ID:eVOwJ40A別にダメなことはないと思うけど、全てをinDesignのtellブロックに
押し込む必要もないでしょうかね。
on run
tell application "InDesign"
…
…
end tell
tell application "Excel"
…
…
end tell
tell application "InDesign"
…
…
end tell
end run
Script 全体を包むのはInDesign へのtell ではなく、run ハンドラ
という意識を持って。
0297名称未設定
04/11/23 23:13:11ID:fXXVAEK6ありがとうございます。いちいち閉じて交互にやればいいんですけど……。
InDesignのオブジェクトの中に再帰的に中に入っていって、ループで調べつつ
最後に出てきたものにEXCELから取ってきたデータを流し込み、また次へ行くと
いう流れなもので、そういう交互の流れにはしにくいんですよね。
結局動いたのですが、動かなかったのはScriptDebuggerのDebuggingをONにして
いたからのようでした。なんで動かないのか分からず、髪の毛をかきむしりな
がら先走って書き込んでしまい申し訳ないです。
tell application "Microsoft Excel"
Select Row ((Row of Selection) + 1)
end tell
例えば、上のようなOne Linerが、Debugging OFFの状態では動くのに、ONだと
動かないといった具合です。(Excel X for Mac)
> Microsoft Excel got an error: row 5 doesn't understand the select message.
ScriptDebuggerの調子が悪いんですかね。メチャクチャ便利なんですが。
動かないといえば、最初のは動くのに次のが動かないのが謎。
tell application "Microsoft Excel"
Select Row ((Row of Selection) + 1)
end tell
tell application "Microsoft Excel"
tell worksheet 1 of workbook 1
Select Row ((Row of Selection) + 1)
end tell
end tell
0298名称未設定
04/11/23 23:42:33ID:eVOwJ40Aあ、動いたんだ。動かないのは変だなぁと思ってたから
それはそれでよかった。。
ScriptDebbugerとの相性は持ってないから何とも言えないが、
一行スクリプトなら
tell application "Excel" to Select Row hogehoge
と、正に一行で書いてみたら通らないかな。試しに。
0299名称未設定
04/11/27 21:03:37ID:Ctmsh+4Ifront above 〜ってすると、常に特定のアプリの前面に
ダイアログを表示できて、便利だったんだけど
AppleScript Studioで同じようなことする方法あります?
過去ログに常に最前面にする方法があったけど
特定のアプリの前面ってのがわからないんです。
0300名称未設定
04/11/27 22:13:21ID:kcjMJLOPScriptDebbugerを使っている方に質問です。
ScriptDebbuger v106JはOS9にてよく使っていましたが、現在のv.308+OSXの日本語の相性はどうですか?
デモ版を入れてみたところメニューやウィンウタイトルなどが文字化
けするようですが、その他の不都合などあれば教えてください。
0301255
04/12/01 02:07:44ID:M3RYh2dz今試してみたら、どっちでも動きます……。
いろいろ試しているうちに、どっがおかしくなっていたのかな。
何が何やら……。おかしくなったらログアウトするか再起動してみます。
0302255
04/12/01 02:27:10ID:M3RYh2dz僕が思い付くのは、常にfrontmostを監視する常駐スクリプトを別に走らせて
おき、ターゲットアプリがactiveになったら、もしくはdeactiveになったら、
AppleScript Studioで作ったヘルパーアプリ(?)に対してtellしてやる、という
ものです。例えば、以下をアプリケーション形式かつ終了しない設定で保存し
実行すると、それを行なう常駐アプリになります。動作は確認しています。
0303255
04/12/01 02:27:53ID:M3RYh2dzglobal oneTimeFlag
set oneTimeFlag to true
--以降起動中は間欠実行
on idle
if (((path to of frontmost application) as Unicode text) contains "Your Host Application Name") then
--ホストアプリケーションがfrontmostになったら実行
tell application "Your Applecation Name"
set floating of window 1 to true
set hides when deactivated of window 1 to false
if oneTimeFlag is true then
activate
set oneTimeFlag to false
end if
end tell
else
--frontmostがホストアプリケーションでなかったら実行
tell application "Your Application Name"
set floating of window 1 to false
set hides when deactivated of window 1 to true
set window 1 to last window
set oneTimeFlag to true
end tell
end if
return 5
end idle
0304255
04/12/01 02:46:45ID:M3RYh2dzることも分かりました。つまり、on idleハンドラをAppleScript Studioアプリ
内に書けるということです。上記をただ書いただけだと不満が出ると思うので
改良は必要ですが……。
tell application "Your Applecation Name"
↓
tell window "wi"
などとして、自分のウインドウオブジェクトに対してtellします。
on idleを置くことで、通常の処理とは別に、バックグラウンドで別のことをさ
せられるんですね。初めて知りました。on idleを使うスクリプトは専用に作る
しかないと思ってました。これはスクリプトの幅が広がるなぁ。
0305255
04/12/01 03:09:59ID:M3RYh2dz変数やリスト、レコードに日本語が入っていても、それが変数モニタ上で文字
化けして見られないということはないようです。
ソース内の文字列、コメントに日本語を使う際、カーソルを右に移動するとき
「1バイト文字、2バイト文字」というならびがあった場合、2バイト文字の間に
入ってしまうことぐらいですかね。
例えば「aあ」という文字のならびで、行頭から行末に向かってカーソルを移動
していくと、aの次にカーソルが移動するのは「あ」の1バイト目と2バイト目の
間です。行末から行頭に向けての移動では問題ないようです。
マウスでの指定は常に正常なので、困ったらマウスでポイントを移動するなり、
選択範囲を作ります。
あとは、特定の環境でフォントの設定が予期せずデフォルトに戻ってしまう、
ということを経験しています。
既に指摘されているように、フォント設定ができないところでは文字化けしま
すね。あと文字が小さい!! 小さい上にアンチエイリアスがかかるのでMac OS
X上では辛いです。
結構困るのは用語説明が文字化けしてしまうこと。本文に日本語が使われてい
るのを見たことがないので使う分には困りませんが、アプリケーション名が日
本語のものについては、開いてみないことには何だか分かりません。
0306名称未設定
04/12/01 11:05:24ID:qTzsl7tXtanaka's osaxの使用方法に関する資料を探しています。
特に文例みたいなものを探しています。Web/書籍問いません。tanaka's osaxに
辞書は付いていますが、辞書だけですぐ使い方が分かるほどのレベルではないのです…。
OSXが使えればPerlなんかで済ませられるんですがOSXを使えない環境で
スクリプト制作をしなければならないもので。
0308名称未設定
04/12/01 11:29:56ID:QYMIqq8Q0309300
04/12/01 12:00:18ID:kZHOTIgDご回答ありがとうございます。
Open Recentなどの日本語ファイル名が化けるのは意外に不便ですが、実質
上スクリプト作成には問題がないようですね。
>あと文字が小さい!!
確かに!ふと気づくと梅干し食ったような顔になっているときがありますw
>>306
ソフトバンクから出版されている「AppleScriptリファレンス」に幾つかの
コマンドについて田中氏本人による用例、解説がのっています。
もしくは、ご存知かもしれませんが田中氏のフォーラムがありますのでそち
らで聞いてみるのも良いかと思います。
http://mtlab.ecn.fpu.ac.jp/webcon.mtxt
0310名称未設定
04/12/01 12:22:57ID:Js4nfbxzAppleScriptリファレンス探してみます。フォーラムは知ってはいるのですが
私のような初心者が厨な質問をするのは失礼かと思いまして…。
Macperlは使えないのですよ。会社で使うので新たにソフトをインストールするのは
色々手続きが面倒で…。 tanaka's osaxはすでに入っている環境なので。
0311300
04/12/01 13:35:33ID:kZHOTIgD確認してみたら「AppleScriptリファレンス」に掲載されているコマンドは
MT Parse CGI, MT Pack CGI, MT List Files, MT Parse, MT Pick Strings,
MT Pick Linesの六つだけでしたorz
でも何かと役に立つリファレンス本なので持ってても損はしないかと思いま
す。それにしてもそろそろOSX対応版が出ねーかなあ、出ねーだろなあ...
0312名称未設定
04/12/01 18:55:03ID:PCpTKVdUそういうの出す体力ないかもしれないけど。
0313名称未設定
04/12/01 20:41:05ID:m/bP4cH+出しにくい一つの原因では。
0314名称未設定
04/12/01 21:11:38ID:X5ZVM1fr自分が参考にしているのはこれくらいです
Tanaka's osax 2.0 の解説文書
http://mtlab.ecn.fpu.ac.jp/mySamples/Tanaka_osax_2.txt.sit
(2.0.1とは少し違う部分も有るようです)
Tanaka's osax に関する覚書1
http://mtlab.ecn.fpu.ac.jp/webcon.mtxt$030123081933.html
0315277
04/12/01 21:14:02ID:SxbH7PCwでもテキストエディット上で動かしたところ、カタカナ化がうまく行かないです。
(ことえりだし手打ちなら行ける)
0317名称未設定
04/12/03 01:12:09ID:BY+ylefZていねいな回答ありがとうございます。
個人的にはon idleハンドラってこれまでなんとなく避けてたんです。
OS 9までは常駐アプリってうっとうしい感じがあったので。
今はそんなこと気にしてないくせに、自分では気づかなかったです。
作成中のスクリプトに組み込んでみます。
0318255
04/12/03 05:08:14ID:ncAXmMZ+InDesignのヘルパーアプリを作っていて、そういう動作ができるのがベストだ
な、と思っていたのでついでですよ。おかげで勉強になりました。
僕も常駐アプリをうっとおしがる方です。用が無いときにも定期的にアップル
イベントが飛んでいるのは気持ち悪いですし。
それより、REALbasic でウインドウのプロパティにあるGlobal floating
windowをONにしたとき相当のGlobal floating windowにする方法は無いですか
ねぇ。これを設定したウインドウは、クリックしてもタスクスイッチしないん
ですよね。あたかも親アプリのツールパレットであるかのようになります。
0319名称未設定
04/12/03 10:11:16ID:wkeVnTpAREALbasicってどうもいつもREALbasic本体にバグがつきまとう感じで
好きじゃなかったけど今は直ってるのかな。
0320名称未設定
04/12/03 12:12:31ID:fNDUM7/r0321名称未設定
04/12/03 12:29:17ID:bo7qMwm1OSXだとXCodeでアップルスクリプトにGUI簡単に付けられるしね。
0322名称未設定
04/12/05 12:23:34ID:8PM9ZCD+エクセルファイルをCSVファイルに変換して保存したいのですが、
数が多く、またCSVファイルにしたものを他のアプリケーションで
別の処理を行わせたいため、AppleScriptで組もうと以下のようにしてみました。
property inFile : alias "Mac:aaa.xls"
tell application "Microsoft Excel"
set aaa to open workbook workbook file name ((inFile as text) as Unicode text)
save workbook as aaa filename "Mac:aaa.txt" file format CSV Mac file format
end tell
変換してくれません…。
どこが駄目なのでしょうか。
0323名称未設定
04/12/05 12:33:55ID:vDPlr+JC>どこが駄目なのでしょうか。
質問の仕方とか。情報が足りない。
で、Excelを持っていないのでExcelのAppleScript辞書が見られないのだけど、
openやsaveのその妙な構文、それで合ってるの?
0324名称未設定
04/12/05 13:43:19ID:9CQS5XqLpath からうまく item扱いにできません。
0325名称未設定
04/12/05 14:45:20ID:IAHU0GHsread ((((path to me) as string) & "ファイル名") as alias)
これじゃダメ?
0326名称未設定
04/12/05 14:49:28ID:IAHU0GHsread ((((path to me) as string) & ":" & "ファイル名") as alias)
0327300
04/12/05 15:04:11ID:PVyAN4oG先ずExcelのスクリプトは全くやった事がないのでやっつけですまんが、
ちょっと辞書を見てみたところ...
3行目は単純に open inFile では駄目なの?
でもって
4行目さっぱり意味が分からん。単純に
save workbook 1 in (inFile as string &".csv") as CSV
では駄目?ひょっとして何か他の理由があるのかなあ。
ただこのままだとファイル名が aaa.xls.csv となってかっこ悪いので拡張子をかえるサブルーチンを作った方が良いと思うがまあそれはおいといて。
でその後に
close workbook 1 saving no
でワークシートを閉じる。
これで取り敢えずCSV形式で保存できると思うが。
もし貴殿の意図と違ってたら御免。
0328名称未設定
04/12/05 15:21:00ID:SFbSuPonそれじゃあ、アプリ本体のパスも入っちゃうよ。
set thePath to path to me as string
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set thePath to (text items 1 thru -2 of thePath) as string
set AppleScript's text item delimiters to oldDelim
read ((thePath & ":" & "ファイル名") as alias)
Finder使えばもっと簡単だけど
0329名称未設定
04/12/05 16:09:16ID:LhlHIRwI>>328
read ((thePath & ":" & "ファイル名") as alias)
これで行けました(意味が分からないけど)
>set thePath to (text items 1 thru -2 of thePath) as string
→ set thePath to (text items 1 thru -3 of thePath) as string
path末にコロンが潜んでいる?ようです。
delimiter処理も知りませんでしたが
これ単体としては文字扱いのままでも支障無しでした。
0330名称未設定
04/12/05 20:17:09ID:8PM9ZCD+すいません、環境をきちんと書いていませんでした。
使用OSは10.3.4、Excelのバージョンは2004です。
結論から言うと>>327さんの記述で保存することが出来ました。
今後の参考までに質問までの経緯を書いておきます。
>>327さんで書かれているopen,saveコマンドは、Standard Suiteのものです。
ただ、openは問題なく出来たのですが、他のアプリケーションと同じように
saveコマンドを使おうと、save document 1 や save window 1
と記述してみたのですが、エラーが出てしまいました。
(save のみなら上書き保存として可)
(エラー内容:window 1はsaveコマンドを認識できませんでした、となる。)
そこで他にファイルを保存するコマンドがないかと探すと、Microsoft Excel Suiteに
open workbookとsave workbook asというコマンドがありました。
二つともExcel独自のコマンドなのでしょう。
辞書が見られない状態ならば>>323の言う通り、妙な構文と感じると思います。
つづく
0331322
04/12/05 20:18:00ID:8PM9ZCD+辞書のない人のためにコマンドの説明をします。
カッコのないところは必ず記述、[]は任意に記述、()はユーザが記述するところです。
open workbook
workbook file name (Unicode text)
以下省略
Result : workbook
Unicode textのところは要はファイルのパスです。
Unicode textにしたいがために>>322ではas Unicode textにしています。
(as textは要らないですね)
resultでworkbookを返してくれるので、saveの時に確実に
開いたものを指定するためにopenではなくopen workbookを使用しました。
save workbook as (workbook)
[filename (Unicode text)]
[file format (add in file format/CSV file format/CSV Mac file format/...]
以下省略
>>322ではUnicode textでパスを記述して、file formatでファイルの形式を指定しています。
...で省略していますが、いろんな形式に保存できます。これはsaveでも出来ます。
ただsave workbook asは(open workbookでもそうですが)エクセルの機能をフルに使えます。
省略していますが、パスワードを指定したり、読み取り専用にしたりするオプションを
つければ、openやsaveだけでは出来ない細かな指定が出来ます。
今回はファイルの形式を変えるだけなので、saveで良かったですね。
つづく
0332322
04/12/05 20:18:52ID:8PM9ZCD+質問するに至った理由は、
(1) Excelは開いたファイルをwindowやdocumentではなく、
workbookとして保持する事に気付かなかった。
(2) save workbook asがファイルの形式の指定通りに保存してくれなかった。
の2点です。
(1)は完全に失念しておりました。
(2)について、文法的にはコンパイルを通して実行も出来ているし、ファイルの保存も出来ている。
ただしCSV形式にはならかった、と。
何が悪かったかは>>327さんが今回の目的を達成するための、別の方法を利用しての答えを
言ってくださったので、結論は分からずじまいです。
ApplescriptとExcelの情報が日本語では皆無に等しいため、
まとめさせていただきました。
>>322さん、>>327さん、回答ありがとうございました。
0333322
04/12/05 20:20:28ID:8PM9ZCD+ここは発表のスレなので、上記を作るまでに作ったサブルーチンを一つ。
最初はGUI Scriptingを利用して作成しようとしてました。
GUI Scriptingを利用して、メニューの選択を行うサブルーチンです。
当然ユニバーサルアクセスをONにしないと使えません。Panther以上です。
メニュー番号での指定は出来ませんので、
言語環境が切り替わると、突然使えなくなります。(汗)
pickAppには、アプリケーションの名称を指定(例;"Script Editor")
pickListには、メニューの項目名のテキストをリスト形式で指定
(例:{"スクリプトエディタ","スクリプトエディタについて"})
systemPickMenu("Script Editor", {"スクリプトエディタ","スクリプトエディタについて"})
on systemPickMenu(pickApp, pickList)
tell application pickApp to activate
tell application "System Events"
set pickItem to menu bar 1 of application process pickApp
repeat with i from 1 to (length of pickList)
if i = 1 then
set pickItem to menu bar item (item i of pickList) of pickItem
else
set pickItem to menu item (item i of pickList) of menu (item (i - 1) of pickList) of pickItem
end if
end repeat
pick pickItem
end tell
end systemPickMenu
0334名称未設定
04/12/06 19:33:09ID:qM8QEzat質問していいでしょうか?
ひさしぶりにスクリプト触ったら、基本から忘れてるし、
サブルーチンもライブラリ化してなかったから一々作らないといけないし、
OS Xの仕様の罠にかかって疲れました。
環境はOS X 10.2.8 AppleScript 1.9 スクリプトエディタ 1.9
作ろうとしたのは単に『Finderのあるウインドウの中のファイルのリストをテキストに書き出す』というもの。
1行にファイル名、作成日、修正日、サイズ、コメントを入れて
テキストはAppleScript内部で作るのではなくてデータをJedit4に渡すようにしました。
ところがFinderのファイル名か何かがclass『utxt』になっているらしく、これが『as text』などを使っても変わらないらしくて
Jeditに渡すところでエラーになります。
どうにかならんでしょうか・・。
0335名称未設定
04/12/06 19:51:27ID:4g+BzK2W0336255
04/12/06 20:13:53ID:Fmmo6R4vas Unicode textですかね。
OS Xではtextと使い分けないといけないようです。
>>303でも使ってますが、文字列照合でもハマるので覚えて覚えておいた方がいいですよ。
つまり、textとUnicode textを比較しても一致しません。
0337名称未設定
04/12/06 20:39:34ID:qM8QEzatas Unicode textではないように思います。
やはりダメでした。
0338名称未設定
04/12/06 21:03:07ID:qM8QEzat検証・添削してもらっていいでしょうか?
0339名称未設定
04/12/06 21:56:11ID:+0o5LVL70340334,338 貼っちゃいます
04/12/06 21:57:23ID:qM8QEzatactivate
set aDoc to make new document
end tell
tell application "Finder"
activate
set windowName to name of window 1
set lastNumber to number of items of window 1
repeat with itemNumber from 1 to lastNumber
set aFile to item itemNumber of window 1
set aRecord to "" as text
set aRecord to name of aFile & tab & size of aFile & tab & my date2Str(creation date of aFile) & tab & my date2Str(modification date of aFile) & tab & comment of aFile & return
tell application "Jedit4"
activate
set aRecord to aRecord as text
--display dialog class of aRecord
insert aRecord at end of aDoc
end tell
end repeat
end tell
on date2Str(dateTypeData)
set monthList to {January, February, March, April, May, June, July, August, September, October, November, December}
set theMonth to (month of dateTypeData)
repeat with aNum from 1 to 12
if item aNum of monthList is theMonth then
exit repeat
end if
end repeat
return aNum as string
end date2Str
0342340
04/12/06 22:49:56ID:qM8QEzatΣ(・_・)
マジですか。
よろしければ環境等教えていただけませんでしょうか。
私の環境(10.2.8 AppleScript 1.9?)では
> insert aRecord at end of aDoc
のところで、
『Jedit4でエラーが起きました:一部のデータを目的のデータ型に変換できません』
となります。
スクリプトエディタ上からの実行です。
0343名称未設定
04/12/06 23:05:48ID:mRHUEHgGマジっす
OSX10.3.6 + AppleScript1.9.3 + Jedit 4.2.3
スクリプトエディタ2.0上で実行
finkのフォルダをスキャンさせてJeditの書き込まれた結果をそのままコピペ
bin8.542373E+6911
etc3500.0911
faq.ja.html1.32403E+599
fink1.8015807E+7911
include2.73065E+5911
lib1.189513E+7911
sbin1.865264E+6911
share1.0915443E+7911
src0.099
var7.957421E+6911
他のフォルダも試しましたが日本語化けもないですよ。
0344340
04/12/06 23:08:42ID:qM8QEzat検証&報告ありがとうございました。(_ _)
盲点でした・・・。
Jedit4を4.2.0r0から4.2.3r0にアップデートしたところ
動くようになりました。
何だったんだぁ・・。
疲れた。 orz
さてこれからサブルーチンとかちゃんと仕上げないと。
そう言えばAppleScript関係のMLも見なくなってるから、
10.3になって変わった事とか調べてないなあ。
改良とかあったんだろうか。
0345255
04/12/06 23:20:52ID:9mNIMMGCrepeat with hoge in list形式にするには以下のようにすればいいみたいです。
tell application "Finder"
if not (exists window 1) then
return
end if
end tell
try
tell application "Jedit4"
set tempDoc to make new document
end tell
on error
return
end try
tell application "Finder"
set myFileName to name of window 1
repeat with i in (every item of window 1 & {})
set tempText to (name of i & tab & creation date of i & modification date of i & tab & size of i & tab & comment of i & return)
tell application "Jedit4"
insert tempText at tempDoc
end tell
end repeat
end tell
tell application "Jedit4"
set name of tempDoc to "Folder_" & myFileName & "_File_List.txt"
end tell
0346340
04/12/06 23:34:38ID:qM8QEzatおお!すっきりきれいなコードですね。エラー処理もしてあるし、
変数の名前もカッコ(・∀・)イイ!
> every item of window 1 & {}
の
『& {}』がミソなのでしょうか?
これは一体どういう事なのでしょうか?
けっこう知られてるTipsなのでしょうか。
0347255
04/12/06 23:56:27ID:9mNIMMGCof window 1のresultがリストじゃないみたいなので、リストにしてます。
自分は最近になってXからAppleScriptをいじりはじめたのでいつからかは分か
らないですが、Mac OS Xから、
((month of (current date)) as number)
こんな感じで月を数値化できるようになったそうです。
10.3から変わった点というのは把握してないですが、Mac OS Xから、というこ
とならまだいろいろありますよね。
0348340
04/12/07 00:05:19ID:L5iLS6TSぐっはー。
中断してる期間も含めてだけどキャリア10年近くなろうとしてるのに、
ぜんぜんわからんかった。
orz
色々ありがとうです!(・∀・)
その情報の源はどこですか?やっぱりMLとか?
0349名称未設定
04/12/07 00:39:42ID:bU+L+ncZ(month of (current date)) as numberは知らなかった。
&で似たようなやつだと
set x to "a" & 1 --> "a1"
set x to 1 & "a" -- > {1, "a"}
set x to "b" & {1, "a"} --> "b1a"
set x to {1, "a"} & "b" --> {1, "a", "b"}
などなど
&で結合すると第1オペランドのクラスに変換され、第1オペランドがlistやstring
でもなければかってにlistとして結合します。
AppleScriptはこういう事を勝手にやってくれ、それはそれで便利だけど時としてそ
れでどつぼにハマります、今も昔もorz
0350255
04/12/07 01:46:56ID:kjM0M1Mwmonthのas numberについては、APPLESCRIPT 1.9.2かららしいですね。
http://www.apple.com/applescript/releasenotes/192OSX.html
確か、ここを読んで知った気がします。
http://www.asahi-net.or.jp/~va5n-okmt/factory/applescript/as_zaregoto/
"string" & {} / number & {}という表現の初見はどこだったか忘れてしまいま
した。Web上だったと思います。
自分の情報源は、大抵の場合においてGoogleですよ。
情報が古いページが多いですが、AppleScript Studioについて言及しているペー
ジは新しい情報を置いていることが多いです。
MLはおっくうなので入っていません。
本は最近AmazonでAppleScriptと名の付くものを買いまくってますが、
今のところ頻用するのは「AppleScriptリファレンス」です。
コレクションに加えるべく「AppleScript言語ガイドム英語表現形式」を買おう
と思っているのですが、「AppleScriptリファレンス」がある以上、
恐らくは不要のものである上、相場が高くて悩み中。
0351名称未設定
04/12/07 02:22:16ID:L5iLS6TSは10.2.8じゃダメみたいですた。
0352名称未設定
04/12/07 02:23:34ID:L5iLS6TSorz
0353名称未設定
04/12/07 02:34:48ID:EnGxPlt3> 「AppleScript言語ガイド 英語表現形式」
昔ダウソしたpdfもあるけど、これって、Xcodeとかインスコすると見られる奴じゃ
なかったっけ?
0354255
04/12/07 03:42:57ID:kjM0M1MwこれはAppleScript Studioのものですね。
http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/AppleScriptLanguageGuide.pdf
内容的には上記のものでしょうが、「AppleScript言語ガイド 英語表現形式」
は日本のアップルから出ていた書籍で、日本語で書かれているはずです。
日本語版のpdfもあったんですかね? うpキボンヌ。
0355名称未設定
04/12/07 03:45:06ID:L5iLS6TSところで、Jeditの用語のsuspendってどんな時に使うんだろう。
って試してみればいいんだけど・・。
ハイパーカードで画面の変化を隠して動作を速くするようなのがあった気がするけど、そういうのとは違うのかな。
0356名称未設定
04/12/07 11:26:14ID:+/FTYqH90357名称未設定
04/12/07 22:23:10ID:Tg7BQRJ2weekday は無理か。
0358名称未設定
04/12/07 23:33:18ID:S20VFWzTこのフォルダAの中にある全てのファイル(pdf)をプリントアウトする、
というようなスクリプトってありませんか?
0359名称未設定
04/12/07 23:39:40ID:NRq0bMya0360名称未設定
04/12/07 23:44:45ID:eCYeY7Cq0361名称未設定
04/12/08 00:01:30ID:XF6w7z/wweekday of (current date) as text
↓
"Wednesday"
0364名称未設定
04/12/08 01:06:12ID:D2tEr0a2まずサンプルはどの程度探したのかと問いたい。apple.comで検索したキーワードとかもあわせて聞きたい。
0365360
04/12/08 01:25:16ID:ydK11mTiなんかくやしいんだよねw
date ({2004, " ", 12, " ", 31} as string)
で数字から直に date を作れるのに
書式の影響で汎用では使えない
0366名称未設定
04/12/08 01:54:49ID:y96g/90fプリントアウト フォルダ 全て ファイル スクリプト
こんな感じのキーワードでググッたけども、めぼしいものにあたらない。
apple.comでサーチですか。 それはやってなかった。
さて
script print out これでサーチしてみましたが、やはりみつからない。
0367名称未設定
04/12/08 02:03:13ID:JHLewExGプリント方法より「AppleScript 基礎」とかで検索して
AppleScriptの基本を学んだ方が早いんじゃない?>>1のリンクとか。
あと、「アウト」は要らないよ。プリント。print。
print 命令はrequired suite…全アプリが必ずサポートしているから、
焦点は「どうやって特定のフォルダにあるすべてのpdfファイルを参照するか?」
ということになるでしょう。
repeat ループでフォルダの全ファイルを見て、
name属性やcreator、file type属性をチェックしてpdfだったら
print すればいいんじゃないかな。
0368名称未設定
04/12/08 02:09:27ID:Q3YmnXXu0369名称未設定
04/12/08 21:23:11ID:rHd1qJSGhttp://www.apple.com/jp/software/
米アップルにはPantherの次にAppleScriptがあるのに日アップルにはAppleScriptがないショボーン。
Downloadのところとかちょっとバージョンが違ってるようだけど、どうなんだろ。。。
0370名称未設定
04/12/09 08:49:29ID:umW4eyDoフォルダ開く
セレクトオールPDF
セレクションから名前を貰う
プリントできるアプリにわたして印刷
ここまで言えばあとはできるっしょ
0371名称未設定
04/12/11 11:08:46ID:kfmjvZvI-- AS date -> ISO8601 format
((current date) as <<class isot>>) as string
-- ISO8601 format -> AS date
"1997-07-16T19:20:00" as <<class isot>> as date
0372名称未設定
04/12/12 19:16:55ID:jaxA0+RB0373名称未設定
04/12/12 20:16:32ID:zh5VyTvy色んなモノで使われてるんでしょうか?
日付の後の『T』って何?タイム?時間と日付の区切りかな。
0375名称未設定
04/12/12 22:57:04ID:g70v/5cA<<と>>を半角のに置き換えてる?
化けると思うけど
"1999-07-16T19:20:00" as «class isot» as date
0377360
04/12/13 00:24:05ID:16exasSrXML-RFC and SOAP Suport 絡みなんかなあ?
だとすると10.1あたりから使えてたのかも。
TZの付かない時間表記はISO的には
問題ありそうな気もするけど、
こっちの目的には使えそう。さんくす
0378371
04/12/13 07:54:08ID:Kr19iChXhttp://www.w3.org/TR/NOTE-datetime
http://www.ietf.org/rfc/rfc3339.txt
>>377
TZの扱いはバグってます。Appleにバグレポートよろ。
AS dateの内部形式はUTCじゃなくてローカルだから、TZ無
しをローカル扱いするのは悪いと思えないが、TZを扱えな
くて良いとは言えない。
0379名称未設定
04/12/20 20:08:41ID:5SU4olvItell app "System Events" to get size of folder "/Users/アテクシ"
すればいいわけですが、結果は"1.2345E+5"となります。
as integerすれば、"123450"としてえられますが、
より大きな数字の場合は前述の書式になってしまします(´・ω・`)。
お手軽に整数を得られませんか?
ShellScriptの中で使う予定というか、AppleScriptと混在するかもなので、
Unixなコマンドでも可です。
クリスマスイブが休日なのに一人で過ごす漏れに間の手を!!
0380名称未設定
04/12/20 20:28:32ID:rW2XcJnZdu -hs $HOME とか?
0381名称未設定
04/12/20 20:45:56ID:5SU4olvI0382名称未設定
04/12/21 01:35:26ID:+UXZcmyK2^29が最大だからディスク容量の計算では簡単にオーバー
フローするよ。
"536870912" as integer -- error
0384名称未設定
04/12/21 09:45:03ID:AZsSIEDs0385名称未設定
04/12/21 18:42:51ID:/y9RBT52変な方向で解決を図ってはダメ。Cならローカライズ数値表記を得るAPIを呼
ぶだけだが、ASだと簡単なフォーマッタを自分で書けばよろしいかと。
on r2s(x)
if (x < 1000) then return x as integer as string
return r2s(x div 1000) & "," & characters -3 thru -1 of ("00" & (x mod 1000 as integer))
end r2s
on sizeof(x)
tell application "System Events"
return size of x
end tell
end sizeof
--r2s(9.87654321E+6)
r2s(sizeof(path to home folder))
0386名称未設定
04/12/22 02:09:43ID:rd5/iTIJどこをどう変えたら・・。
ああ自分のアホさがうらめしい。
0387名称未設定
04/12/22 07:23:44ID:tLNkJgA1if (x < 1000) then return (round x rounding down) as string
return r2s(x div 1000) & "," & characters -3 thru -1 of ("00" & (round (x mod 1000) rounding down))
end r2s
as integerの動作は怪しいね。これだとOS9でも動くので大丈夫では。
0388386
04/12/22 12:42:45ID:rd5/iTIJScript Editor上で実行した時のエラーですが、
まず構文確認の段階で
『path to home folder』が通りません。
そこでその部分に
『alias "×○△:Users:××:"』と直接入れると構文は通ります。
実行すると
on sizeof(x)の3行目の『size』の部分がハイライトされて
『System Eventsでエラーが起きました:NSCannotCreateScriptCommandError』と実行エラーになります。
System Eventsの用語説明を見たところ、
size of 〜 はできないみたいな気がします。
で、System EventsをFinderに変えると、、
あれ?できた。さっきできなかった気がしたのにな。
すいません。
これから本題の数字のフォーマットについて考えさせていただきます。
ありがとうございます。
0389名称未設定
04/12/22 12:58:42ID:rd5/iTIJclass realだとプラマイ1.79769E+308までOK・・とAppleScriptリファレンスに書いてあったんですが、
さすがに大きすぎるのか、
r2s(1.79769E+308)はエラーになりますた。
0390名称未設定
04/12/23 17:13:34ID:8qBdA2ccぐぐると補助ソフトのようなものばかり出てくるんですが。
0392名称未設定
04/12/24 02:36:00ID:Hn9wSqaqAutomatorの影響がどっちに転ぶか・・。
もしAutomatorがAppleScriptジェネレーターなら、AppleScriptをきちんと仕上げない事には話にならないわけで。
AppleScriptを介在しないとしたら、AppleScriptはなおざりにされる可能性も・・。
Terminalもいじらなくてもヨユーで日本語使えるくらいであってほしい。
0393名称未設定
04/12/27 04:45:38ID:boXmZcO+JavaとシェルスクリプトとAppleScriptを組み合わせて
メールをチェックしてメールがあったら任意の動作を行わせるというものを作りました。
ソースと手順のテキストをアップしているので、
よかったら見てやってくださいませ。m(_ _)m
ttp://mac.oheya.jp/up/src/macroom0320.gz
圧縮はdmg.gzです。
0394名称未設定
04/12/27 20:38:18ID:yKQGCZ66set theURL to (URL of document of window 1) as text
set theChar to character 1 of theURL
display dialog theChar & " : " & (theChar is "h")
end tell
上のスクリプトをアプリケーションとして保存し、
Safariで適当にURLが"http"で始まるページを開いた状態で、
ダブルクリックで実行すると(theChar is "h")がfalseになりますね。
スクリプトエディタのウインドウの実行ボタンで実行すると
正しくtrueになるのでスクリプト自体のバグではなさそうです。
10.3.7でScriptEditorは2.0。ん〜、なんだかなぁ〜。。
0397名称未設定
04/12/27 23:18:08ID:w3uGIU7vツールバーに登録したいのですが。
・finderのウインド上で選択されてるフォルダを「新しいウインド」で表示するスクリプト
・選択されてる対象に関係なく、クリックすると「同じウインドのままで一つ上の階層に移動する」ボタンとして使えるスクリプト
おながいしまつ。
0398394
04/12/27 23:32:53ID:r11Dma3wおおthx.
URLがUnicode Textで返って来るのを知っていたから、
後で問題が起きないよう最初からtextに変換しておいたのだが、
それが裏目に出るとは、、、orz
ちなみに作っていたのはこんなスクリプト。
tell application "Safari"
set theURL to (URL of document of window 1)
set thePosition to count of character of theURL
set newURL to ""
set theFlag to false
repeat until thePosition = 0
set theChar to character thePosition of theURL
if theChar is "/" then
set newURL to "/" & newURL
set theFlag to true
exit repeat
0399つづき
04/12/27 23:33:18ID:r11Dma3wset newURL to (((theChar as number) + 1) as string) & newURL
set theFlag to true
exit repeat
else if theChar is equal to "9" then
set newURL to "0" & newURL
set theFlag to true
else if theFlag then
set newURL to theChar & "1" & newURL
exit repeat
else
set newURL to theChar & newURL
end if
set thePosition to thePosition - 1
end repeat
if theFlag then
set newURL to (characters 1 thru (thePosition - 1) of theURL as string) & newURL
set URL of document of window 1 to newURL
end if
end tell
0400名称未設定
04/12/28 00:48:41ID:8sRTLgZB"h" はstring型で theChar もstring型に変換してあるはずなのに
どうして?
0401名称未設定
04/12/28 06:12:12ID:RmynAZ9Ehttp://pc5.2ch.net/test/read.cgi/mac/1100447652/320
AppleScriptのスクリプトメニューをONにして、
ユーザ<ライブラリ<Scripts(無かったら作って)に
Applicationsフォルダを作りその中にFinderやAppleWorks等のアプリの名前のフォルダを作る。
アプリ名のフォルダの中にそのアプリで使うAppleScriptを入れておくと、
そのアプリがアクティブの時にアプリ名のフォルダに入れてあるAppleScriptだけが表示される。
AppleScriptを多用するする人には良いと思う。
0403名称未設定
04/12/28 13:50:32ID:mKqqdX27知らなかった。サンクス。
OS9の頃は何かのユーティリティー使ってそういう事してた気がするけど。
つかスクリプトメニュー表示させてるけど全然使ってないや・・・。
(-_-;
0404名称未設定
04/12/29 02:46:04ID:4isdLE/Gエラー報告が「タイプ1の・・・」とかクソの役にも立たないのもイヤ。
0405名称未設定
04/12/29 03:20:07ID:izRQESSe0406名称未設定
04/12/29 03:31:15ID:ssrmI0xS0407名称未設定
04/12/29 06:56:04ID:KYPwX0xa> さっきは動いたスクリプトが動かなくなるってのが結構ある
マジで?
単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で結果が違うとかじゃなく?
>>405
ちょっと古くなっちゃったけど
AppleScriptリファレンスに載ってる。
>>406
try構文で囲んでエラーコードを拾って分岐処理ってのも一応よくある手段。
0408名称未設定
04/12/29 13:09:48ID:4tQBrVPEis less than or equal toって毎回忘れるし
0409名称未設定
04/12/29 13:37:00ID:KYPwX0xaそうだっけ?そんなバグあった?
算術記号は日本語フォントじゃなくて英語のフォントにしといた方がよかった気がする。
0410名称未設定
04/12/29 19:33:17ID:4isdLE/G>単にスクリプトエディター上から実行した時とアプリケーション形式で実行した時で
それ。それが言いたかった。言葉足らずでごめんなさい。
アプリ形式だと実際上バグ追っかけられないのがツラい。
せいぜいダイアログで進行状況表示するくらいか。
>>408
is not greater than ではどうか。
0412名称未設定
04/12/30 05:46:02ID:H4At5RJU<=がコンパイル後に≦の半角のやつになるんだけど
和文フォントにこれは含まれてないので
半角の『イ』になっちゃうんだよね?
だからスクリプトエディタの編集メニューの
『AppleScriptフォーマット』で
上から2番目の『演算子など』を欧文フォントにしておくと、
コンパイル後にちゃんと≦が出るよね。
(スクリプトエディタのバージョンによってメニューの名前は違うかも)
この事を言ってるんじゃなかったらごめんね。
0413名称未設定
04/12/30 05:52:06ID:H4At5RJUそですねー。。
beepとかダイアログが頼り。
一ヶ所クリアしたらコメントアウトして、また次。
たいへんですよね。
なまじ『イベントログ』がわかりやすいだけにアプリ形式の時は困る。
idleハンドラを使う時なんかはアプリにしてみないとわからんですからね。
普通のデバッガに慣れてる人はAppleScriptStudioを使うと多少はマシなのかな?
漏れはAppleScriptから入ったんで、HyperCardのデバッガの使い方もよくわかんなくて、上記のASのアプリの時のような方法で確認したりしてた。w
0414名称未設定
04/12/30 12:44:29ID:1VBbbdnyデバッガが使えるのはいいんだけど、エラー報告は基本的にデタラメのまま。
GUI部品の参照がダラダラと長くなるのもウザイ。
なので漏れはStudioは嫌いです。
0415名称未設定
04/12/30 13:57:56ID:H4At5RJUあのできたアプリがパッケージ形式?になってるのがややこしい。
自分自身へのパスとか出すと変だったような気が。
0416名称未設定
04/12/30 14:50:41ID:iIvcEU2E文字列比較はUnicode textじゃないと意味不明にうまくいかないことがあるで
す。判定がおかしいと思ったらUnicode text、これです。
>>410
Script DebuggerでDebuggingをONにした状態で保存したアプレットは、実行時
にScript Debuggerでデバッグできますよ。
Script Debuggerにフックされた状態で起動して、一時停止になります。
その後はステップ実行したりと思いのまま。すべての変数とかも丸見え。
Affrusを買おうかどうしようか迷ってるところです。
あれがあるとScript Debugger同様経過と結果が丸見えなので、Perlの上達も早
い気がします。
0417名称未設定
04/12/30 15:47:02ID:H4At5RJUやっぱり有償の開発環境はそれ相応の機能があるって事ですね。
あれ?前はフォーサイトが日本語版売ってたような・・。
今フォーサイトのサイトに行ったら無いみたいですね。扱いやめちゃったのか・・。
AppleScriptを本格的に使ってるような人は英語に困らない人が多いって事かな。
(漏れは困ります)
そういえばフランスの方のフリーウェアの開発環境もありましたよね?
Smileだっけか。
色々機能ありそうだけど使い方よくわかんなくて
結局スクリプトエディタ使ってました。w
何か今見に行ったらお金払うと3Dグラフとか書ける機能が付くみたい?w
Affrusというのは知りませんでした。
ttp://www.latenightsw.com/affrus/screenshot.html
なんかすごそうですね。
関心空間にもページができてるみたいですね。
うーん。。
Perlというと文字列変換やCGIしか思い浮かばない私^^;
0418Late Night Software社員
04/12/30 21:02:48ID:iIvcEU2E自分も英語はあんまり分かりませんが、特に英語力は必要ないような。
一度デモを試してみては? 起動して、既存のスクリプトをコピペして、
Command + Shift + Dを押して(Enable Debugging)、Stepボタンを数回を押すだ
け。結果を見るのに5分かかりません。しかし、これだけで価値が分かるはずです。
余裕があればFile >> Open Dictionary >> (適当なアプリ、例えばFinder) >>
Explorerタブを開いてみてください。これは、開いたDictionaryを持つアプリ
の、その時点のすべてのオブジェクトのすべてのプロパティを一覧階層表示し
てくれるものです。いちいちテストスクリプトを書いて個々のオブジェクトに
tellしてget propertiesで調査していたプロパティを、地引き網のごとく一獲
してくれるわけです。これがあれば初対面のアプリでも乗りこなせますよ。
総じてメチャクチャ見通しがよくなるので、Script Debuggerを使わずに
AppleScript を書いてきた期間が長ければ長いほど有難味が分かるはず。
Affrusは、話は簡単でScript DebuggerのPerl版です。
0419名称未設定
04/12/30 21:12:59ID:1VBbbdny0420名称未設定
04/12/30 21:34:45ID:H4At5RJU日本の住所から日本円で銀行振り込みで簡単に支払いできて納得できる値段なら買うけどね。
まあとりあえず買うのはSmileを試してからでも遅くないと思うよ。
0421名称未設定
04/12/30 22:14:06ID:H4At5RJU今Standard Additionsの辞書見ててふと思ったんですが、
Class URLとかClass Internet addressとかClass web pageって、どんな時にどう出てくるもんなんですかね?
0422名称未設定
04/12/31 02:16:03ID:Qcxym1t30423Script Software社員
04/12/31 02:54:09ID:KGn9I0FfiKeyを使ってみては?
http://www.scriptsoftware.com/ikey/
Finderがfrontmostの場合のCommand+D→hogehoge.as
TextEditがfrontmostの場合のCommand+D→foobar.as
こんなことができます。スクリプトファイルを別に用意しなくとも、iKeyの
ショートカット設定の中にスクリプトを書いておくこともできます。
Quickeysを知っているなら、まさにあのまんまの環境です。
2.0からはアプリごとにコンテクストメニューを変えられるようになってます。
もちろんコンテクストメニューからAppleScriptを起動することもできます。
コンテクストメニューをキーボードショートカットで表示することもできます。
0424名称未設定
04/12/31 04:48:32ID:Qcxym1t30425名称未設定
04/12/31 07:40:13ID:ZR1sj9Te0426名称未設定
04/12/31 13:56:58ID:ZR1sj9Tetell application "Firefox"
set URLstr to get ヌclass curlネ of window 1
end tell
tell application "Internet Explorer"
Activate
OpenURL URLstr
end tell
↑
Firefoxで今開いてるページ(表に出てるタブだけ)
をIEで開くスクリプト
0427名称未設定
04/12/31 14:35:07ID:aEx1M9U9今は必ず (a<b) or (a=b) と書くことにしてる。
notについては 「if not 〜」 という書き方もある。
改行と不等号はOS9から持ってくると不具合になるのが最初分からなかった。
0428名称未設定
04/12/31 15:58:50ID:CumcaP6v<=とか書く。
一度コンパイルすると一文字分の記号に起き変わる。(コンパイル後にちゃんと≦が出る)
そのあと他の場所を編集して
もう一度コンパイルすると…。≦のとこがエラーに…。
0429名称未設定
04/12/31 17:43:57ID:yi6OF309ScriptEditor2.0のバグです。International/LanguagesでEnglishを
最上位にしてloginすれば正常に動きます。AppleScriptはplain
textを返しますが、NSTextViewで扱うためにUnicode化する所で失敗
している感じです。
ScriptDebuggerはWASTEベースなので問題無く動きます。
0431名称未設定
05/01/03 21:27:40ID:ODSvvwzf「current date」で取得した「0000年00月00日 0曜日 0:00:0 00」を
「Mon, 03 Jan 2005 20:36:39 +0900」の形に直したいのですが、
どのようにすればいいでしょうか。
0432Late Night Software社員
05/01/03 23:00:50ID:dUGhtQw3set cd to (current date)
set str1 to characters 1 thru 3 of (weekday of cd as string) as string
if (day of cd) < 10 then
set str2 to "0" & (day of cd) as string
end if
set str3 to characters 1 thru 3 of (month of cd as string) as string
set str4 to (year of cd as string)
set str5Tmp to (time string of cd as string)
if characters -2 thru -1 of str5Tmp as string is "PM" then
set str5 to ((((characters 1 thru 2 of str5Tmp as string) as number) + 12) as string) & characters 3 thru 8 of str5Tmp
else
set str5 to characters 1 thru 8 of str5Tmp
end if
set timeStr to str1 & ", " & str2 & space & str3 & space & str4 & space & str5 & space & "+0900"
0433Late Night Software社員
05/01/03 23:02:59ID:dUGhtQw3if (day of cd) < 10 then
set str2 to "0" & (day of cd) as string
else
set str2 to (day of cd) as string
end if
0435Late Night Software社員
05/01/04 02:26:59ID:3OP8JbdVinternet location fileがらみですかね。
でもこれもFinderの力を借りないと開けないみたいですし。
Class URLは、例えばこんな感じです。下記の例では文字列をClass URLにキャ
ストした時点でネットワーク経由を見にいってプロパティを生成するようです。
set myGoogle to "http://www.google.co.jp/" as URL
set aa to path of myGoogleset bb to scheme of myGoogle
set cc to dotted decimal form of host of myGoogle
URL "ftp://user:[email protected]/"
上記の表記によるftpサーバへのURLだと、user nameとpasswordというレコード
が追加されるみたいです。
Internet addressは、Class URLのhost属性のクラスそのものだそうです。
Class web pageはよくわからないですね。
0436Late Night Software社員
05/01/04 02:49:38ID:3OP8JbdV・finderのウインド上で選択されてるフォルダを「新しいウインド」で表示するスクリプト
tell application "Finder"
set myTarget to selection
if myTarget is not {} then
set newWindow to make new finder window
set target of newWindow to item 1 of myTarget
end if
end tell
0437Late Night Software社員
05/01/04 03:05:38ID:3OP8JbdV・選択されてる対象に関係なく、クリックすると「同じウインドのままで一つ上の階層に移動する」ボタンとして使えるスクリプト
tell application "Finder"
set tmpPath to (target of window 1 as Unicode text)
set oldDelimiters to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to ":"
set newPath to ((text items 1 thru -3 of tmpPath) & "" as Unicode text)
on error
set AppleScript's text item delimiters to oldDelimiters
end try
set AppleScript's text item delimiters to oldDelimiters
set target of window 1 to newPath
end tell
でもこれあなた、Command + ↑でいいんでしょ?
まあ分かってて書いたわけですが。
0438Late Night Software社員
05/01/04 03:43:57ID:3OP8JbdVテキストの部分抜き出しは from character ? to character ? of〜でしたね。
0439名称未設定
05/01/04 08:05:40ID:Kx7/qYauその表記のuser nameとpasswordの記述は標準的なもので、http:のwebサイトとかでも使えますよ。
afp:でも使えたかな?
0440名称未設定
05/01/04 12:08:33ID:HiCEb5SXありがとうございます。
おおー。"URL文字列" as URL とかできたんですね。
.weblocファイルからURLを取り出したり、
.weblocファイルを作ったりできるんですかね?
それできると広がるんだけどな。
.weblocのファイル名をページのTitleにするとか
更新チェックするとか・・。
0441名称未設定
05/01/04 18:10:45ID:85MfkGAkcurrent dateは1904年からの積算秒数を返す。これがdate classの実体
0000年00月00日0曜日はそれを現在ユーザが選択しているローカライズ
フォーマットに従って文字化した物、表示用には使えるが何が返るか
は解らない。
ちゃんとしたAPIを使うのが筋だが、AppleScriptからなら
do shell script "date \"+%a, %d %b %Y %T %z\"" as string
辺りが相場でしょう。
0443Late Night Software社員
05/01/04 18:44:48ID:3OP8JbdV>.weblocファイルからURLを取り出したり、
on open itemList
tell application "Finder"
repeat with i in itemList
set myURL to (location of i as Unicode text)
display dialog myURL
end repeat
end tell
end open
>.weblocファイルを作ったりできるんですかね?
tell application "Finder"
set newWebloc to make new internet location file to "http://www.2ch.net/"
set name of newWebloc to "2ちゃんねる"
display dialog (location of newWebloc as Unicode text)
end tell
--ちなみにlocationはR/Oです。
0444Late Night Software社員
05/01/04 18:50:29ID:3OP8JbdV--次回起動時も値が保存される変数の宣言
property modDate : ""
property oldModDate : ""
set myURL to "http://www.yodobashi.com/"
--curlでヘッダを取ってきてgrepとsedでLast-Modifiedだけ抜き出し。
set modDate to (do shell script "curl -I" & space & myURL & space & "2>&1 | grep Last-Modified | sed -e 's/Last-Modified: //'") as Unicode text
--更新日が違ってたらhogehoge&基準更新日の更新
if modDate is not equal to oldModDate then
open location myURL
set oldModDate to modDate
end if
邪道な上に上記はちゃんと機能しないです……。Last-Modified:を返してくる
サーバが少ないのと、毎秒更新されてしまうところがほとんどです。Date:フィー
ルドも同様。ここは自分がよく理解してないです。適切な更新日時を取得する
方法が分かったら、上記がヒントになるでしょう。AppleScriptだけってのは
ちょっと無理。URL Access Scripting Additionでダウンロードしてきて、
open for accessで開いて中身を調査するという方法はあると思いますが、テキ
スト関連の機能が貧弱ですからね。
0446Late Night Software社員
05/01/04 19:09:46ID:3OP8JbdVTime Zoneはリテラルで足しましたが、正式には
set myTmpTZ to ((time to GMT) / hours) as integer
if myTmpTZ > 0 then
if myTmpTZ < 10 then
set myTZ to ("+0" & myTmpTZ as string) & "00"
else
set myTZ to ("+" & myTmpTZ as string) & "00"
end if
else
if myTmpTZ < 10 then
set myTZ to ("-0" & myTmpTZ as string) & "00"
else
set myTZ to ("-" & myTmpTZ as string) & "00"
end if
end if
display dialog myTZ
こんな感じですかね。基本的に端数は無いみたいなんで。
0447Late Night Software社員
05/01/04 19:42:04ID:3OP8JbdVset monthList to {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
set myMonth to item (month of (current date) as number) of monthList
set weekdayList to {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}
--"ツェラーの公式による曜日算出"
set cd to (current date)
set ycd to (year of cd)
set mcd to ((month of cd) as number)
--1月、2月は前年の13月と14月とみなす
if mcd is in {1, 2} then
set mcd to mcd + 12
set ycd to ycd - 1
end if
set dcd to (day of cd)
--(年 + 年/4 - 年/100 + 年/400 + (13*月+8)/5 + 日) mod 7
set myWeekDay to item ((ycd + ((ycd / 4) as integer) - ((ycd / 100) as integer) + ((ycd / 400) as integer) + ((13 * mcd + 8) / 5 + dcd) as integer) mod 7 + 1) of weekdayList
display dialog myMonth & space & myWeekDay
0448Late Night Software社員
05/01/04 19:51:28ID:3OP8JbdVAppleScript"1.9.3"以降に依存してますね。
"言語"に依存しないということで……。
それ以前だとそれぞれの言語が取りうる月の表記を全部比較参照して数値化し
ないといけないですかね。本当にAppleScriptって糞ですね(w
0449名称未設定
05/01/04 21:43:03ID:3OP8JbdVchoose URL
というのの返り値としてもClass URLが扱える……と思ったら、resultは単なる
stringですね。
set myURL to choose URL
myURL as URL
0450397
05/01/04 22:35:44ID:PL5tAsdNありがとうございますた。後ほどやってみます。
>でもこれあなた、Command + ↑でいいんでしょ?
もちろん解っててです。たまにどうしても片手だけでなんとかしたいときがあるんで。
0452名称未設定
05/01/04 23:31:42ID:z/iPYJlJ0453名称未設定
05/01/04 23:52:18ID:3OP8JbdVいろいろとエラー処理が必要ですね……。
つっても出たら無視してるだけだけど(w
僕は一つ上の階層にファイルをコピーする場合は、
Command + 3でカラム表示にしてます。
tell application "Finder"
set newPath to ""
try
set tmpPath to (target of window 1 as Unicode text)
on error
return
end try
set oldDelimiters to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to ":"
set newPath to ((text items 1 thru -3 of tmpPath) & "" as Unicode text)
on error
set AppleScript's text item delimiters to oldDelimiters
end try
set AppleScript's text item delimiters to oldDelimiters
set newWindow to make new Finder window
if newPath is not "" then
set target of newWindow to newPath
end if
end tell
0454名称未設定
05/01/05 00:03:50ID:iydlByFQつうのをコンテクストメニューに入れて使ってますが
これではダメですか
0455名称未設定
05/01/05 03:44:30ID:4/QiSZMS0456名称未設定
05/01/05 10:48:13ID:6gxeiD5Hlocation fileから取り出したURL文字列をclass URLにしようとすると
何故か失敗します。
(10.2.8)
tell application "Finder" to set itemList to selection
repeat with i in itemList
tell application "Finder" to set myURL to (location of i as Unicode text)
class of myURL
set myURL to myURL as string
class of myURL
set myURL to myURL as URL
end repeat
0457名称未設定
05/01/05 12:32:58ID:6gxeiD5HこれをAppleScriptに組み込もうとdo shell scriptで呼び出すと
エスケープが上手くいかないのかちゃんと動きません。
お知恵を貸してください。
curl -s "http://www.yahoo.co.jp" | perl -wne 'if ( m/\<title\>(.*)\<\/title\>/ ) {print $1;last}'
0458名称未設定
05/01/05 12:44:40ID:MZsOtLpO0459名称未設定
05/01/05 14:51:06ID:6gxeiD5Hとりあえず自分用という事でシェルスクリプトを別ファイルにしました。
何をするものかというと、
Webブラウザで保存したファイル名がURLになっている.weblocファイルをドロップすると、
ファイル名をページのタイトルにしてくれるドロップレットです。
UTF-8対応のnkfが/usr/local/binにインストールされている必要があります。
あと、スクリプトを置く場所までのパスに日本語が混じってると上手く行かないかも。
製作・実行環境は10.2.8です。
#!/bin/sh
export PATH=$PATH:/usr/local/bin
curl -s $1 | perl -wne 'if ( m/\<title\>(.*)\<\/title\>/ || m/\<TITLE\>(.*)\<\/TITLE\>/ ) {$pttl = $1;$pttl =~ s/:/_/g;print $pttl;last}' | nkf -w
↑
これをwebpagetitle.shという名前で保存してchmodで実行できるようにします。(なんていい加減なファイル名)
on open itemList
set myalias to path to me
tell application "Finder"
set myFolder to container of myalias
set fPath to POSIX path of (myFolder as alias)
end tell
repeat with i in itemList
tell application "Finder" to set myURL to (location of i as string)
set fNm to (do shell script fPath & "webpagetitle.sh \"" & myURL & "\"")
tell application "Finder" to set name of i to fNm & ".webloc"
end repeat
end open
↑
同じフォルダにこれをアプリケーション形式で保存。
0460名称未設定
05/01/05 15:44:44ID:6gxeiD5H問題が一つ発覚しました。
Amazonの商品ページのようにリダイレクトがかかる所だと上手く行かないようです。
curlに-Lオプションを付けてもだめ。
なんでやー。
0461名称未設定
05/01/05 17:06:08ID:4/QiSZMS0462名称未設定
05/01/05 18:13:24ID:6gxeiD5HFirefoxとかでURL欄からドラッグして作った.weblocとか、
あとSafariでも場合によるみたいだけど
ファイル名が『URL.webloc』になるでしょ?
それを、『ページのタイトル.webloc』にしたいんです。
0463名称未設定
05/01/05 20:27:14ID:UWA0ZDBb0464名称未設定
05/01/05 21:07:01ID:6gxeiD5H10.2だと、なっても文字化けとかURLになるとかいい加減っぽいです。
10.3でSafari党の人には不要なものですね。
あと個人的にFirefoxの方がよく使うので。
書き込みついでに、Safariを使ったバージョンを作ったんで貼らせていただきます。
こっちはたぶんどんな時でも問題なく動きます。
欠点は一々Safariのウインドウが開く事。
ところでSafariってOpenURLが用語に無いんですね。
on open itemList
repeat with i in itemList
tell application "Finder" to set myURL to (location of i as string)
tell application "Safari"
ヌevent WWW!OURLネ myURL
repeat
set fNm to name of window 1
if fNm does not contain "名称未設定" and fNm does not contain "を読み込み中" then exit repeat
end repeat
close window 1
end tell
set fNm to do shell script "echo " & fNm & " | sed s/:/_/g"
if fNm is not "" then tell application "Finder" to set name of i to fNm & ".webloc"
end repeat
end open
0465名称未設定
05/01/06 00:33:23ID:ai60fai5>ところでSafariってOpenURLが用語に無いんですね。
確かに無いけどこれでいいでしょ。
tell application "Safari"
set newDoc to make new document
set URL of newDoc to "http://www.google.co.jp/"
end tell
0466名称未設定
05/01/06 04:26:27ID:M3mQkVIX0468名称未設定
05/01/06 12:35:42ID:wXcKn9Iwtell application "Safari"
〜
activate
tell application "System Events"
tell process "Safari"
click menu item "新規タブ" of menu "ファイル" of menu bar 1
end tell
end tell
end tell
0469名称未設定
05/01/06 14:12:52ID:l65dp0juGUI scriptingでんな。
漏れジャガーやさかい使えませんのや。
使いたいー!o( ≧ _ ≦ )o
>>465
別スレで、SafariでURLを開く別の方法を書いてる人が居たので書いておきます。
tell app "Safari"
open location "URL文字列"
end tell
でいいんだって。
0470名称未設定
05/01/06 15:07:44ID:wXcKn9Iw残念!
残念ついでにFirefoxのタブ追加のファンクション。すまん
on AddNewTab2Firefox(theURL)
set the clipboard to theURL
tell application "Firefox" to activate
tell application "System Events"
tell process "Firefox"
key code 17 using {command down} -- cmd + t
key code 37 using {command down} -- cmd + l
key code 9 using {command down} -- cmd + v
key code 76 -- enter
end tell
end tell
end AddNewTab2Firefox
Firefoxが起動済みで、ブラウズウィンドが一番上にいないと上手く行かないorz
もっといいのがあったら教えてほすぃ
0471名称未設定
05/01/06 15:26:51ID:U6kxFFM+http://www.google.com/search?q=検索語
の様になるのを
http://www.google.co.jp/search?q=%E6%A4%9C%E7%B4%A2%E8%AA%9E
の様にエスケープしたいのだけど、perlの部分がさっぱり解らないので誰か教えて。
do shell scriptを使ってperlに渡して
http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape
こんな事をするまでは思いついたんだけど文が書けない…。
0473名称未設定
05/01/06 16:16:55ID:ai60fai5つか、何が分からないのか分からないよ。
これが分からないということかな?
(下記は意味なし)
set str1 to "あんまき"
set str2 to do shell script "echo " & str1 & " | nkf --mac | " & "perl -e 'while (<>){print $_;}'"
0474名称未設定
05/01/06 16:19:46ID:bzw1F3MhスクリプトでSafariからURL取るとエスケープされてましたよ。
tell application "Safari"
set theURL to URL of document 1 as Unicode text
set theWord to do shell script "perl -e '$_=\"" & theURL & "\"; /q=([^&]+)/; print $1;'"
set theGoogleURL to "http://www.google.co.jp/search?q=" & theWord
set the clipboard to theGoogleURL
--open location theGoogleURL --デコードされて表示される
end tell
なのでこれは必要なかった
set theWord to "まっく"
set theEncodedWord to do shell script "perl -e '$_=\"" & theWord & "\"; s/([^0-9A-Za-z_])/\"%\".unpack(\"H2\",$1)/ge; s/\s/+/g; print'"
open location "http://www.google.co.jp/search?q=" & theEncodedWord
0475名称未設定
05/01/06 16:53:35ID:l65dp0ju>>471の書き込み見て自分も一所懸命やってたんですが、
Perlのシンタックスエラーになっちゃうみたいでダメなんです。
よかったらどこがおかしいか教えてください。m(_ _)m
tell application "Safari" to set aURL to URL of document of window 1
set aURL to do shell script "PERL_BADLANG=0;export PERL_BADLANG;perl -we \"$str = '" & aURL & "';$str =~ s/(\\W)/'%' . unpack('H2', $1)/eg;print $str\""
まじまじと眺めて比べても"と'の使い方が逆?くらいなんですが・・・。
めっちゃ基本でしょうか。すいません。
0478名称未設定
05/01/06 19:16:39ID:1EgfsqrS0479473
05/01/06 19:23:06ID:x5ASSsWiクオートとエスケープがめんどくさいね。
tell application "Safari" to set aURL to URL of document of window 1
set aURL to do shell script "PERL_BADLANG=0;export PERL_BADLANG;perl -we '$str = \"" & aURL & "\";$str =~ s/(W)/\"%\" . unpack('H2', $1)/eg;print $str;'"
0480名称未設定
05/01/06 19:24:59ID:o5YUh2G/>>478
10.2.8とかなら標準で入って無かったっけ?
システム環境設定>ユニバーサルアクセス>補助装置にアクセスできるようにする
で出来ない?
0481名称未設定
05/01/06 20:02:15ID:l65dp0juユニバーサルアクセスでチェックしてから構文確認してみたけどだめでした。
再起動が必要なんですかね?
CoreServicesにはSystem Events 1.1.2が入ってます。
用語は
Standard Suite、Text Suiteってのがまあ普通にあって、
Disk-Folder-File Suite、Folder Action Suite、Power Suite(電源関係)、Processes Suiteと来て
次にSystem Events Suiteってのがありますが、do scriptとapplicationだけ。
最後にLogin Items Suite。
0482名称未設定
05/01/06 21:00:28ID:l65dp0juほんとに面倒くさいのにチェックありがとうございます。
なんか色々試してみたら、
do shell script "perl -e \"$str = 'abcd'\"" --エラー
do shell script "perl -e '$str = 'abcd''" --OK
ってところまでしぼれたんですが、何で上がエラーで下がOKなんでしょう??
ターミナルでは
% perl -we "$str='abcd'"
とすると、str: Undefined variable.
?????
0483名称未設定
05/01/06 21:35:14ID:EEAVD+jS0485名称未設定
05/01/06 21:57:38ID:l65dp0ju0486名称未設定
05/01/06 22:12:02ID:M3mQkVIX0487471
05/01/06 23:27:42ID:U6kxFFM+ありがとうありがとうとってもありがとう。後でいじってみます。
ちなみにどういう使い方をしようかと思ってたのか説明すると
自分はあるIRC(chatみたいな物)の部屋に常駐してるのですが
グーグルの検索結果とかwikipediaとかのURLをIRCに投げると
windows側のブラウザだと日本語のurlだと駄目みたいで
エンコードしてから送りたかったってだけなんです。
解らないってのはperlがさっぱり解らなかったのと返り値とかどーすんだって事だったのです。
長文レス失礼しました、ホントありがとう。
0488名称未設定
05/01/07 01:21:06ID:c4MmNJWB>% perl -we "$str='abcd'"
>とすると、str: Undefined variable.
シングルクオートじゃないと「シェルが」$strをシェル変数として展開しよう
とするから。以下をターミナルで試してください。=の前後は空白を開けてはだ
めです。
str="abcd"
echo "$str dayo"
#↑$strが展開される
echo '$str dayo'
#↑$strが展開されない
0489名称未設定
05/01/07 01:24:27ID:c4MmNJWBdo shell scriptを使う人は全員ここを読んだ方がいいよ。非常によいドキュメ
ントです。というか、読まないとマトモに使えないでしょう。
http://developer.apple.com/ja/technotes/tn2065.html
「quated form of」や「quated form of the POSIX path of〜」、文字コード
なんかの重要テク満載。
ただ、with administrator privilegesを使った管理者権限でのスクリプトの実
行は、セキュリティの問題でできなくなったんだっけな? 使ったことがないの
でよく分からない。もしできなかったら、そうらしいということにしといてく
ださい。
また、do shell scriptを使うなら、少しはShell Scriptを勉強しましょう。以
下を読んでください。Shell Scriptの知識は一生物なので損しないですよ。
http://www.tsden.org/takamiti/shText/
本ならISBN4-7973-2194-6
0490名称未設定
05/01/07 11:15:46ID:MWuih740めちゃめちゃありがとうございます!
シェルが変数を展開!そうかー・・。
普通にTerminalで打ち込んだ時もシェルスクリプトと一緒ですよね。
perlに引数として渡すものだからperlだけが解釈するんだとしか考えてませんでした。あほだ。
という事は、>>482の上の文も、do shell scriptで呼び出されたシェルにとって展開すべきだけど値のない変数を含んでるからエラー?
必要な事は調べながらやってるつもりだったのですが、全然足りなかったようです。
Googleに頼りすぎてAppleのそのページの事も忘れてました。
orz 勉強します。
0491名称未設定
05/01/08 09:05:54ID:jLt9Z+bfDec 2002 Mac OS X Developer Tools に入っている、
System Events 1.2 でないとダメみたいですね。
ただし、300MB・・・
気が向いたら Developer (フリー) になってDLしてください。
0492名称未設定
05/01/08 12:00:33ID:KINJa0I2すいません、援助を求めるような書き方をして、フォローを忘れてました。
その後Googleで検索してたらβ版の10.2向けGUI scripting対応System EventsのUIscriptingbeta.sitをダウンロード出来るところを見つけました。
ある日本語のページから、何故かダウンロードできます。(汗
でもファイルのURL自体は
www.apple.com/applescript/GUI/
から始まっているので、サーバから消去し忘れたものなのかも??
あと10.2のパッケージを購入してたのですが、
その中のDev ToolsのCD-ROMにオマケとして入ってるみたいでした。
調査&レスありがとうございます。
いちおーADCのメンバーなんですけど、パスワードとアカウントどこに書いてたかなw
0493名称未設定
05/01/08 16:13:23ID:KINJa0I2choose fileで決めた名前でテキストファイル開いて短い文を書き込んで閉じる
という簡単なスクリプト。
再帰呼び出しとかループとか全然無いんですけど
なぜかスタックオーバーフロー・・。
他にも同じような経験した方いらっしゃいますか?
0494名称未設定
05/01/08 17:06:58ID:8m+pPYhF様々な場面に対応して安定して書き込める書き込みサブルーチンを作るのは大変だよ。
とりあえず、今書いているスクリプトの一部でも上げてみては?
0495名称未設定
05/01/08 17:30:05ID:KINJa0I2レスありがとうございます。
>>493原因わかりました。
てっきり書き込みの部分でエラーと思っていたのですが、
書き込んだ後にそのファイルのファイルタイプ・クリエータをFinderで設定する所でエラーになっていたようです。
(try構文にひっかからないのでおかしいとは思ったんですが)
『choose file name』の返り値が『file "Mac形式のフルパス"』
なので、これを『as alias』でエイリアス型にしてから
(ひょっとして、この段階で作られたファイルの存在も認識される?)
Finderに渡したら大丈夫でした。
基本的な事だよなーと思いつつ、以前のOSでもこうだったか思い出せない・・。
AppleScriptリファレンスによると、旧OSでの
『choose file』の返り値はalias型のようです。
移植の障害になるかも?
0496名称未設定
05/01/08 21:25:13ID:LzXH+nMC0497名称未設定
05/01/09 02:16:11ID:JApCHH+h古いコードの流用で手抜きしたのがまずかったか。
orz
こんなんばっかや。スレ汚しすいません。
0498名称未設定
05/01/09 12:52:42ID:FVszgUCxdo shell script & touch を使っちゃう俺は負け組
0499名称未設定
05/01/09 13:15:50ID:JApCHH+htouchって知りませんでした。ありがとう。
今調べたらtouchって空のファイルを作るだけみたいですけど?
テキストファイルだったら、
echo 'なんとかかんとか' > foo.txt
で新規ファイル作って書き込みまで一発でできますよね?
0501名称未設定
05/01/09 13:41:40ID:JApCHH+h漏れもそういう事しないといかんなーと思いつつ、
テキトーに昔のスクリプトを検索で見つけて
開いてコードをコピペという原始的な事をしてます。
touchはtouchで使い道があると思います。
えーと確かIEか何かでファイルをダウンロードさせる時に
指定先に空ファイルが必要だった気が。
0502名称未設定
05/01/09 15:40:47ID:SNbTZcg7書き込もうとしたらボリュームがロックされていたり、書き込み途中でボリュームがいっぱいになったり、いろいろなハプニングがある。
場合によってはそのままファイルがopenされたままになって次に開けなくなるなど、トラブることがある。
それらに対する対処をぜんぶ盛り込むと読み書き命令はかなり長いサブルーチンになる。
独立したサブルーチンとして使い回ししやすくする方が賢い。
0503名称未設定
05/01/09 15:54:23ID:A+ufYLLPエラー処理も殆ど必要なくて便利です。
0504名称未設定
05/01/10 03:40:15ID:V5GsB8UW>書き込もうとしたらボリュームがロックされていたり、
>書き込み途中でボリュームがいっぱいになったり、
>いろいろなハプニングがある。
うわ。そういうのマジメにやった事ないや・・。
他人のコードは見た事ある気がするけど。
エラーコードで分岐ですかね。
今のとこ大ざっぱにtry構文で囲んでエラーがあったらcloseさせてるだけっす。
そういえばAppleScript Studioにはファイルの読み書き用のハンドル?が用意されてるみたいで、
それを使えば安全にできそうな気もするんですが、
いまいち使い方がわからない。
0505名称未設定
05/01/10 21:40:26ID:V5GsB8UW多ブラウザ対応のブックマークユーティリティーです。
ttp://mac.oheya.jp/up/src/macroom0348.gz
10.3.7の方に試してみていただいたところ、
ブックマークを開いた後にアプリが落ちるそうです。
クラッシュログもいただいたのですがわからなくて・・。
とりあえず関係ありそうなところを
ignore application responses
でくくってみたんですが、どうでしょう。
どなたかに試用していただけると幸いです。
0506名称未設定
05/01/11 07:21:55ID:RvfmBlcs0507名称未設定
05/01/11 10:12:11ID:yurdvSaaまたまた報告ありがとうございます。
ありゃ(ずこ
何で複雑なブックマーク作成はOKで単純なブックマーク開くがダメなんだろ・・。
速度犠牲にしてブラウザ別の命令に分岐した方がいいのかなぁ。
0508名称未設定
05/01/11 15:03:38ID:nIBENIiR0509名称未設定
05/01/12 02:01:13ID:CDPbrQ0m0510名称未設定
05/01/12 02:46:01ID:WdZ69FPSメソッド等との区切りも視覚的に分かりづらいし。
あと、親子の順序が逆なのものヤですね。
Child --> Parent (AppleScript)
Parent --> Child (ドット記法)
DashboardのWidgetもJavaScriptで書くようだし、
いっそのこと、OSAにJavaScriptが使えるようになるといいのに。
でも対応アプリが無いことには意味無しか。
0511名称未設定
05/01/12 03:07:20ID:WZ1UA0Js例えば、
ttp://www.latenightsw.com/freeware/JavaScriptOSA/
スクリプタブルアプリケーションは自分が扱えるオブジェクトを
辞書として公開し、OSAとAppleEventを使って交信するだけ。
だから、OSAの先の言語がASかJSかとかは関係ない。
オブジェクトが表記・操作できるような言語なら
OSAに組み込める可能性はある。
前からとか後ろからとかは、言語の問題でOSAの問題じゃない
0512名称未設定
05/01/12 04:24:05ID:UAHJFjiH0513名称未設定
05/01/12 05:13:53ID:WdZ69FPS既にあったのですね……。
つーか、自分、Late Night Software社員を名乗っていたものです……。
なるほど。Scriptableなアプリケーションというものは、
OSAに対応しているというだけで、
特にAppleScriptに束縛されているわけじゃないのですね。
OSAの実体は、AppleEventによるアプリケーション間通信の仕組みだと。
>前からとか後ろからとかは、言語の問題でOSAの問題じゃない
これは承知しています。
>いっそのこと、OSAにJavaScriptが使えるようになるといいのに。
のくだりは、言葉通り、AppleScript以外のOSA対応言語(?)があれば解消できる
問題という意味で言っています。
そういう意味じゃ、OSA+JavaScriptってなかなかいいじゃないですか!
JeditだろうがFinderだろうが、JavaScriptで制御できるってことですよね。
障壁が高くなって、人に使ってもらうのは望み薄になりますけどね。
>>512
いんや、ないです。
しょぼいエージェントでも作ろうかな、と思いましたが、
グラフィックを用意するのがめんどくさくて萎えました。
登録してないし。
0514名称未設定
05/01/12 05:27:25ID:UAHJFjiH何か違うような気もするが・・。
うーん。
ユーザーランドなんたら言うのは何だったっけ。
0515名称未設定
05/01/12 20:29:11ID:xusk0ph1AppleScriptでできませんか?
0516名称未設定
05/01/12 20:49:07ID:Oxx0AkgQ0517名称未設定
05/01/12 20:58:59ID:HmlJEPMlPanther なら System Events でも取れるかな。
0519名称未設定
05/01/12 23:29:19ID:UAHJFjiHその答えにAppleScript自体が返って来ちゃったり。w
0520名称未設定
05/01/12 23:31:40ID:MzPVJ2a8使ったことなかったけど。
昔はけっこうAppleScript以外のOSA対応言語があったよね。
AppleScriptにも日本語とかフランス語とかあったし。
なつかしー
0521名称未設定
05/01/13 00:54:19ID:ugV7KcoWって懐かし話してる場合じゃないや。
こないだ今一番手前に出てるアプリ(or ウインドウ)を調べようとして
>>519な感じだったんですけど、
何か解決策ありますか?
0522名称未設定
05/01/13 01:21:33ID:ywey2I130523名称未設定
05/01/13 02:09:37ID:ugV7KcoW起動したら前に出ちゃうから。
自分を下げる命令とかあったらいいんですけど、
他のをアクティベートするしかないわけで、
そしたら「今一番前のを知りたい」という目的に合わないですよね?
スクリプトメニューから実行すると大丈夫なのかな。
でもアプリじゃないと困る事もあるわけで・・。
ほかに手はないですかね。
OS Xになってウインドウばらばらになったから
今のウインドウの順番をリストで取得とかできるようにならないかな・・。
リストだったら自分自身は取得後に消せばいいわけで。
0524名称未設定
05/01/13 02:32:02ID:ZDc2IX21クドクドと言い分けじみたことを並べるより、ストレートに何がしたいか
つまり何故最前面アプリを調べたいか言うほうが良い
0525名称未設定
05/01/13 06:18:22ID:TuX+SZv8>>303 で書いたやつを参照のこと。
on idleハンドラからならfrontmostをチェックできます。
iKeyからの起動でも、frontmostをチェックできました。
RealBasicで、ウインドウをGlobal Floting Windowに設定し、
例えば以下の内容のAppleScript(ファイル名frontmosttest)を作り、プロジェクトに投げ込み。
tell application "Finder"
return (name of (every application process whose frontmost is true) as Unicode text)
end tell
ボタンとEdit Fieldを一つ作り、ボタンのActionイベントに以下のように書い
ておきます。
Sub Action()
dim var1 as String
var1 = frontmosttest
EditField1.text = var1
End Sub
これでビルドしてボタンを押せば、きちんとfrontmostが取得できますね。
自分自身のfrontmostがtrueにならないGlobal Floting Windowならではの芸当です。
Script Menuからだと、frontmostはSystem Eventsになりますね。
使用目的にもよりますが、現状一番有望なのはiKey経由の起動でしょうか。
あとはちょっとやってないですが、何かに対して(Dock?)System Eventsで
Command + Tabを発行してからdelayかけて、取得するっていうのはどうですか。
0526名称未設定
05/01/13 15:28:06ID:ugV7KcoWレスありがとうございます。
なるほど。Rbでそんな事ができるのですね。
残念ながらRbはとても古いのしか持ってないのですが、
手があるとわかってうれしいです。
AppleScript Studioで同じような事できませんかね。
Global floating Windowは作れないですよね。
on idle回しっぱなしは重いかなーと思うんですが、そんな事もないですか?
5秒間隔にしててもその間隙にユーザーが切り替える可能性もあるのがちょっと痛いですね。
ありがとうございました。
0527名称未設定
05/01/14 01:03:11ID:o7cKmW2A>AppleScript Studioで同じような事できませんかね。
>Global floating Windowは作れないですよね。
何度かこのスレで質問してますが、どなたもご存知ないようです。
>>257 >>275 >>318
>>257で出してるAppleのAppleScript StudioのMLにおいて話題が
出てます。
さらに詳しい話題が、以下のスレッドで出てます。
http://lists.apple.com/archives/applescript-studio/2004/Nov/msg00040.html
ここにある処置をほどこすことでfrontmostに影響を及ぼさないUtility
Windowを実現できるようです。目的次第では、これで十分かもしれません。
ただ、この処置を施しても、ウインドウをクリックすると、メニューやキー入
力送信先がAppleScript Studioアプリに移ってしまうらしく、完全なるGlobal
Floating Windowの実現はAppleScriptだけではダメで、Cocoaとの
(Objective-Cとの?)コンボ(複合記述のことだと思われる)が必要になるとの示
唆があります。回答者も示唆しっぱなしで、その詳しくはMLでは語られていま
せん。質問者も結局100%の解決を見ずじまいなようです。
0528名称未設定
05/01/14 01:07:07ID:o7cKmW2Aたら何か分かるかも。
Global Floating Windowを実現できるかもしれないソリューションがもう一つ
あります。それはFaceSpanです。MacOS9時代のFaceSpanは、それを簡単に実現
できたそうです。
http://www.facespan.com/facespan/pagespeed/url/features4.0/
これを新たに買ったり覚えたりするよりはREALbasicの方がいいや、ということ
で、自分は試用してません。
これ以上は>>526さんが何をしたいのかを推察する情報が開示されていないので、
on idleによる手法がいいとか悪いとか、答えようがないですね。
0529名称未設定
05/01/14 07:09:32ID:21e8pPmsLSBackgroundOnlyを指示すれば良い。
tell application "Finder"
set frontApp to item 1 of (processes whose frontmost is true)
end tell
tell frontApp
name of windows
end tell
みたいにすればfrontmost processを参照できるが、C/C++でProcess Manager
とAppleEventを使ってちゃんとしたコードを書いた方が良い。AppleScript
で書く方が難しいし、安定して動かない。
0530名称未設定
05/01/14 11:57:39ID:OaTTOcBTおお!興味深い情報。英語・・・。がむばって読みます。
>>528
今すぐ何かしたいというんでもないのですが、
たまに使いたくなってはあきらめるという繰り返しというか。
たとえば、最前面のアプリケーションに対して補助パレット的に働くようなものとか。
まぁ相手が明確ならそのアプリに対してtellすればいいんですが。
〜というアプリが最前面なら何かするとか。
>>529
> plistでNSUIElementかLSBackgroundOnlyを指示すれば良い。
をを!?
アプリ/Contents/Info.plist
???
いじる所がわかってない時点で触る資格なし??
orz
おー。検索すると何か色々出てきました。OMEの開発陣のお話とか・・。
> C/C++で〜ちゃんとしたコード
そんな能力があれば・・・。
(´・ω・`)
0531名称未設定
05/01/14 23:50:22ID:ks/+DBO/それらを施してなおキーイベント送信先やメニューが
AS Studioアプリに切り替わってしまうので、
GUI Scriptingが使えないことになります。
>>530
plistはXcodeのターゲットの中にあります。
Windowsのレジストリエディタで新しいキーを作るようにして設定します。
この辺が理解不能かつRbもFSも眼中にないなら、
iKeyを使うことをおすすめします。
Global Floating Toolbarから
ボタンでAppleScriptを起動することも可能です。
特定のアプリがfrontmostの場合だけ
Toolbarを表示させるということも可能だったはずです。
あ、でもこれも日本語のドキュメントが皆無か。
0532名称未設定
05/01/16 15:44:35ID:ApFVuSDE寝る前にiTunesを再生したあと、しばらくディスプレイがつきっぱなしになってしまうので…
御存知の方いませんでしょうか。
0533名称未設定
05/01/16 15:59:57ID:b2dqR9y4システム環境設定>省エネルギー設定>カスタム>ディスプレイがスリープするまでの時間を別に指定する
iBookやPowerBookならF1の明度ボタンで暗くする。
外付けのディスプレイならディスプレイの電源だけ切ってしまう。
0534その1
05/01/16 18:32:38ID:sr+u6daIglobal PW --"管理者パスワード"
set PW to "password"
if DimValue is "" then
set DimValue to my getDimValue()
my changeDisplayDialog("1")
my changePmset("1")
else if DimValue is "1" and my getDimValue() is "1" then
my changeDisplayDialog("20")
my changePmset("20")
set DimValue to "20"
else
if my getDimValue() is not "1" then
if (my getDimValue()) is not equal to DimValue then
set DimValue to my getDimValue()
end if
my changeDisplayDialog("1")
my changePmset("1")
else
my changeDisplayDialog(DimValue)
my changePmset(DimValue)
end if
end if
0535その2
05/01/16 19:02:06ID:sr+u6daIreturn (do shell script "pmset -g disk | awk '/dim/ {print $2}'")
end getDimValue
on changePmset(timeToDim)
get "sudo pmset -c dim" & space & timeToDim
do shell script result password PW with administrator privileges
end changePmset
on changeDisplayDialog(timeToDim)
display dialog ("モニタのスリープまでの時間を" & timeToDim & "分に設定します" as Unicode text) buttons {"OK"} giving up after 2
end changeDisplayDialog
その1とその2を合体させてください。モニタのスリープまでの時間をトグルで
切り替えるスクリプトです。
System Preferencesは実質Scriptableじゃないので、GUI Scriptingをせざるを
得ないようです。
pmsetというコマンドがあるので、それで設定してやります。今の設定が30分な
ら、1分と30分を実行するたびに交互に設定します。1分以下とか、即時にモニ
タを消すことはできなさそうです。元の設定が1分だった場合、20分と1分を交
互に設定するようにしてます。省エネルギー設定で設定を変更した場合、次か
らその新しい値と1分とを交互に設定します。
0536名称未設定
05/01/16 19:40:47ID:b2dqR9y4pmset -g diskなのは理由があるのでしょうか?
これだとノート型だとAC電源の場合とバッテリーの場合の2通り表示されます。
awkは詳しくないのでどっちの結果を拾うかわかりませんが。
pmset -g か pmset -g live なら現在使用中の設定が出ると思います。
0537名称未設定
05/01/16 20:03:46ID:sr+u6daI特に意味は無いです。ネタ元はapplescript-users mailing listで、そこに載っ
てたのをコピペしたというだけの話です。とりあえず動くし、自分じゃ使わな
いのでぶっちゃけ調べは適当です。
http://lists.apple.com/archives/applescript-users/2004/Aug/msg00017.html
iMac G5なので、いずれの場合もdimは一つしか表示されないです。
0538名称未設定
05/01/17 19:38:08ID:UoyTYoys,AppleScriptからクリッピングファイルを作るにはどうしたらいいのでしょうか。一応
以下のようにするとファイル自体は出来たのですが、これだけでは中身が無いようです。
tell application "Finder"
make new clipping to "hogehoge"
end tell
それと、出来ればテキストクリッピングだけでなくピクチャクリッピングというものも
作りたいのですが、これは可能でしょうか?(実はそもそも見た事ない>ピクチャクリッピング)
0539名称未設定
05/01/17 22:46:25ID:0f4TU0z4OS9だとTanaka's osaxのMT Write Clippingでテキストもピクチャも(URLも)出来ますが。
0540名称未設定
05/01/17 23:37:23ID:UoyTYoysレスありがとうございます。
環境書き忘れてましたすいませんOS X 10.3.7です。
ググったらこのスレが出てきたりしましたorz >>226で既出だった。。。
Tanaka's osaxというのはOS Xでは無理なのですね……これは残念です。
0541名称未設定
05/01/20 23:11:36ID:CErtLa24do shell script "curl 'http://www.google.co.jp/'"
これだけのスクリプトが、
『一部のデータを目的のデータ型に変換できません』となり実行できません。
なぜ???
0543名称未設定
05/01/21 00:46:03ID:wBJmQOuD0544名称未設定
05/01/21 01:09:18ID:bkZIOcofテキストから四百字詰の枚数を換算するAppleScriptってありませんかね。
0545名称未設定
05/01/21 01:27:20ID:gH5JIHoVttp://www.artman21.net/product/Jedit3/Jedit3Script.html#anchor96681
0546名称未設定
05/01/21 01:37:44ID:bkZIOcofいい機会だし勉強してみよ
0547名称未設定
05/01/21 01:42:46ID:bkZIOcof……AppleScript本買ってくるかな
0548名称未設定
05/01/21 05:02:48ID:ASsM4AEPレスありがとうございます。
どうもdo shell scriptの最終的なリザルトがUTF-8じゃないとエラーになる模様。
10.2.8
0549名称未設定
05/01/21 05:04:56ID:ASsM4AEPいわゆる2バイト文字である日本語と半角アルファベットが混じったテキストの字数を数えるのはけっこう面倒な気がします。
字数数えてくれるエディタなかったかな。
0550名称未設定
05/01/21 05:56:12ID:2o7SY2N40551名称未設定
05/01/21 06:23:25ID:o/80F/KU--クリップボードをUnicode textとして取り出し(Unicode textじゃないと化ける)
set myClipboard to ((the clipboard) as Unicode text)
--クリップボード内の行数を出す=改行コードの数
set CountOfParagraph to (count of every paragraph of myClipboard)
--クリップボード内の文字をバラバラのリストにする
set myEveryCharacter to every character of myClipboard
--文字数を数え、そこから改行コードの数を引く(改行コードも1字として数えられるので)
set numberOfCharacter to ((count of myEveryCharacter) - CountOfParagraph)
--さらに400で割り、小数は繰り上げ。
set DivBy400 to (numberOfCharacter / 400.0)
set numberOfWritingPad to round DivBy400 rounding up
set midStream to (numberOfCharacter mod 400) / 400 * 100
--1文字でもオーバーしたら1枚と数える
if DivBy400 < 1 then
display dialog "ただいま原稿用紙 " & (numberOfWritingPad as Unicode text) & " 枚以下です。" & return & "(" & numberOfCharacter & "文字 / " & midStream & "%)"
else
display dialog "ただいま原稿用紙 " & (numberOfWritingPad as Unicode text) & " 枚です。" & return & "(" & numberOfCharacter & "文字 / 最後のページは" & midStream & "%)"
end if
0554名称未設定
05/01/21 13:58:57ID:oumNNSO40555名称未設定
05/01/21 14:19:42ID:B7cXghTH0556名称未設定
05/01/21 14:24:51ID:fxhOK5rr一度自動化できれば人為的なミスも大部減りますし
0557名称未設定
05/01/21 14:55:30ID:BSPixBnQ文字コードが固定しているのなら、段落ごとに20文字で割って
20行で割ってってやっていったらできますよ。
それほど難しくないと思うから頑張ってみたら。
0558名称未設定
05/01/21 16:41:40ID:P+EwWvKQset theText to read item 1 of theList
set n to 0
repeat with i from 1 to count every paragraph of theText
set numberOfCharacter to count every character of (paragraph i of theText)
set n to n + numberOfCharacter div 20
if (numberOfCharacter mod 20) > 0 then set n to n + 1
end repeat
display dialog ((n div 20) as string) & "," & (n mod 20) as string
end open
on run
open (choose file) as list
end run
0559名称未設定
05/01/21 21:44:22ID:wevqu65Cそのままだと空の改行をカウントしないんじゃね?
5行めの後に
if numberOfCharacter = 0 then set n to n + 1
>>557
TEC OSAX入れるとテキストエンコーディングの判定と変換もできる
0560名称未設定
05/01/23 23:12:13ID:YU6TBoGBhttp://www.warprecords.com/bleep/
このサイト、試聴するのにとっても便利なんですが30秒で一時停止してしまいます。
もう一度再生ボタンを押せば通して聴けるんですが、この動作をアップルスクリプトでできますか?
0561名称未設定
05/01/24 00:41:46ID:5R+fZ1VG0562名称未設定
05/01/24 04:12:41ID:9zR/SnHH僕お得意のon ildeネタ(w 意外と動作良好。
Script Editorで保存するときにアプリケーション形式を指定、
「実行後、自動的に終了しない」のチェックボックスをONにして保存。
GUI Scriptingを使う以上、キーコードを送る際、
Safariを最前面にしないと無理です。Mac OS X10.3以降必要。
--http://www.warprecords.com/bleep/ 試聴Helper
--再生/一時停止ボタンにフォーカスを合わせてから実行
on idle
tell application "Safari"
activate
delay 0.5
set myTarget to windows whose name contains ("BLEEP" as Unicode text)
set index of item 1 of myTarget to 1
delay 0.5
end tell
tell application "System Events"
keystroke tab
--delay 0.5
keystroke tab
--delay 0.5
keystroke return
end tell
--待機秒数 / 環境に合わせて調整
return 32
end idle
0563名称未設定
05/01/24 04:15:12ID:9zR/SnHHTabを押して、です。再生/一時停止ボタンが黄色くなったらGO!
0564名称未設定
05/01/24 07:04:14ID:5R+fZ1VGうまく行く事を祈る。
GUI scriptingでactivate待ちとかはdelayを使えばいいのか。勉強になりました。
0568名称未設定
05/01/26 08:41:59ID:DcrUlE5Z0569名称未設定
05/01/26 18:44:42ID:+yPaCxWS0570名称未設定
05/01/26 21:06:52ID:uHC6uZmrうっわー。
Pages自体どうでもいいんだけど、
それをきっかけにスクリプタブルじゃないソフトが幅を利かせたりしたら嫌だねえ。
0571名称未設定
05/01/26 21:16:41ID:zRdMYf2+0572名称未設定
05/01/26 21:26:48ID:6ZCI/DB6下手に対応させないとAutomatorの首を絞めるかも。後々対応させるのでは?
0573名称未設定
05/01/26 22:14:04ID:ZrbI+GPE0574名称未設定
05/01/26 23:27:19ID:uHC6uZmrそうだといいなとは思ってます。
ADC会員で早く使ってる人は何も言えないだろうしなあ・・。
Appleから公式にそのへんのコメントないかな。
0575名称未設定
05/01/26 23:45:35ID:DcrUlE5Zまさにそういうことだね。
EGWordはAppleScriptへの対応ぶりがショボいし……。
Wordはちゃんと取り組んだことがないけど、MSアプリのAppleScript対応機能は
バギーだとMARo氏が書いてたな。
ところで、MARo氏って「これこれ、こういう方法を発見した」だの書いておき
ながら、具体的なことを書かないんだよね。
0576名称未設定
05/01/27 07:36:20ID:aPm7gDSr> MSアプリ〜バギー
そうなんだ。
でも対応はいい方ですよね。使える命令多いし。
漏れはIEくらいしかいじらんですけどOE関係のスクリプトなんかも一時期は多かったような。
WordはVBのマクロをちょこっと触った事しかないな・・。
AppleScriptは実行専用にするとソースが隠せる事もあってか
昔からけっこう秘密主義の人も多いですね。
あまり整った言語ではない?ために直球ではできない事やわかりづらい事も多いので、
そこをどうにかする変則的なノウハウのようなものも生まれてくるし。
オープンにしちゃうとシェアウェアとか商売でやりたい人は困るんでしょうけど、まだまだ小規模なコミュニティーだと思うしオープンにしてほしいよなと思う事もしばしば。
有償であっても書籍などの形で公開してくれればまだいいんですけどね。
0577名称未設定
05/01/27 18:48:15ID:4XTbR5mz環境はOS Xなんですが、Finderのentire contents命令って何かバグとかありますか?
ググったらそれっぽい記述があったんだけど、どうもその情報自体古いみたいで……。
0578名称未設定
05/01/27 21:04:03ID:+NpEMX5w0579名称未設定
05/01/28 05:23:24ID:uh1bNbrD0580名称未設定
05/01/28 07:33:03ID:p1w7CzElリンクありがとうございます。
AutomatorはASの自動生成をしてくれるインターフェースってわけではなさそうですね。
これはマジでASピンチ?
>>579
ずーっとそれ書いてますけど(別の人ならスマソ)WindowsでWSH使った方が幸せなのでは?
漏れはAS覚えた事を無駄にしたくない&ASはラクで(・∀・)イイ!と思ってるのでMacを使い続けてるんですけど。
0581名称未設定
05/01/28 11:35:50ID:b6oxW9te0582別の人
05/01/28 13:45:41ID:kOGmW4li実際どっちも使ってるんで、すすめられるまでもない。
こと、MacについてはAppleScriptにどうにかなってもらわなければ解決になら
ないわけで。
でもそんなにずっと書いてるかな? 一回話題にしただけだけど。
配列、連想配列と正規表現のサポートは、普通にうらやましいでしょ?
リストとレコードが配列と連想配列だけど、何かと使いにくいしなぁ。
OgreKit OSAX出ないかねー。
http://www-gauge.scphys.kyoto-u.ac.jp/~sonobe/OgreKit/#ToDo
Late Night SoftwareからOSA用のJavaScript落として使ってみたけど、
抽象化されているのはFinderの一部オブジェクトだけで、
ほかは全部アップルイベントを生書きするみたい。
そう甘い話は無いってことか。
0583名称未設定
05/01/28 15:19:54ID:p1w7CzElもちろんアプリごとの不統一だとかバージョンごとの細かいバグみたいなものとか標準での機能不足とか色々ASにしっかりしてほしい所はあるわけですけど、
だからといってJavaScriptで記述がメインになったからといってそれらが一気に解決するなんて事はありえないでしょうからね・・。
(正規表現っていうと文字列の検索とか置換とかでしょうか?
漏れは文字列扱う時は昔からPerl呼び出して使ってるし
それ用のOSAXもあるみたいですけど・・)
0584名称未設定
05/01/28 15:34:02ID:p1w7CzEl別のスレでDashboard関係の話題が出た時にも書いてあったからかな・・。
しかもその発言した人コンファブレーターのWidget作った事ないみたいだったし。
あれって使いたい機能によってはASやShellScriptを呼び出して使うようになってるはず。)
0586名称未設定
05/01/28 16:24:46ID:p1w7CzEl0587名称未設定
05/01/29 11:12:30ID:adSmIe+r何にたいしてどんなフィルタが実行可能なのかの一覧とか欲しいよほんとに
0588名称未設定
05/01/29 13:19:34ID:3EeyHq0Y0589名称未設定
05/01/29 18:57:46ID:t3TN3xE5そのクラスが持ってるプロパティーで条件指定してフィルタかけるっていうのが基本なんぢゃないの?とおそるおそる書いてみる。
あるクラスは上位のクラスの属性を継承してたりするからそのへんわからんとあれだけど「AppleScriptリファレンス」とか、ネット上で公開してくれてる人が居る用語集とか見ると書いてありますよね。
釈迦に説法だったらごめんなさい。
>>588
現状でどんな問題があるかは知らないです。最近MLも見てないし。
0590名称未設定
05/01/30 07:39:32ID:WLZgYj6DSnapz Pro Xというスクリーンキャプチャのアプリケーションの
動画でのキャプチャを自動化したいと考えています。
applescriptへの対応は微妙なので、ショートカットキーを押していくことで対応したいと思い、
とりあえず>>207を参考にして
tell application "System Events"
tell process "Finder"
keystroke "#" using {command down, shift down}
end tell
tell process "Snapz Pro X"
keystroke "4"
end tell
end tell
こう書いてみました。しかし、本当はビデオキャプチャ開始直前の状態までいってほしいのに、
Snapzのウィンドウが表示された時点で処理が一旦止まってしまいます。
プロセスとかウィンドウの優先順位の話だと思うのですが、あまり理解できていません。
どうすれば動くようになるでしょうか?
0591名称未設定
05/01/30 17:48:59ID:3fghS8oa試しに、Delayを書いてみると、
その後の処理はSnapz Proの支配下から逃れた後に実行されることが分かると思う。
tell application "System Events"
tell process "Finder"
keystroke "#" using {command down, shift down}
end tell
end tell
delay 1
display dialog "Test" as Unicode Text
Kinesisみたいにキーボードにマクロが付いてるやつを使えば、
こんなケースでも自動化できるけどね。
0592名称未設定
05/01/30 23:34:08ID:Gkkht6T/サイト見たかぎりでは関数をブラックボックス化して組み合わせるみたいだから
フォーマットに従えば自作のスクリプトも使えそうだ。
0593名称未設定
05/01/31 00:50:27ID:R1ubLn1JObjective-Cのどっちかで書くことになっている
・XcodeのActionタイプのプロジェクトに、AppleScript Automator Actionと、
Cocoa Automator Actionがある。
・ActionはUIを持っているけれど、main.nibのviewをInterface Builderでエ
ディットすることで作る。(AppleScript Studioでのノウハウが流用可能?)
つまり、AutomatorでAppleScriptが捨てられることは無いってことだ。むしろ、
桧舞台に上がったようなもんじゃない?
AppleScript Automator Actionでプロジェクトを立ち上げると、
以下のスケルトンが貼られてるみたい。
on run {input, parameters,}
set output to {}
if |ignoresInput| of parameters is false then
-- process input items into output items
end if
return output
end run
inputオブジェクトには、直前のワークフローのActionのoutputが大抵リスト形
式で含まれている。parametersオブジェクトにはActionのユーザーインター
フェースで作られたすべてのセッティングが含まれている。
Action終了時には、次のActionに渡すオブジェクトを返り値として用意する必
要がある。
だと。
0594名称未設定
05/01/31 01:37:37ID:bH+T6ZLE0596名称未設定
05/01/31 02:41:44ID:R1ubLn1J無しに、素早く、効果的に、楽々と、毎日繰り返す手作業を能率化できる。
大量のファイルのリネーム、数ダースもの画像の処理、アドレスブックに登録
した従業員の作業カレンダー作りといった仕事を、容易に「オートメート」で
きる。
一度「オートメート」すれば、それらの仕事を何度も何度も繰り返せる。
---
これってUNIXのツールチェーン、コマンドの直交性みたいな話でなかなかおも
しろいよね。Automatorが広く認知されたプラットフォームになったら、案外凄
いことになるかも。ちょっと形は違うけど、OpenDocを思い出す。
0597名称未設定
05/01/31 03:20:41ID:R1ubLn1JおのおののActionは、一つの仕事をこなすようにデザインされている。
例えば、Webページからリンクされた画像を見つけ出したり、あるフォルダにあ
るファイルを別のフォルダにコピーしたりといったようなことだ。
一つのツールですべてのことをやってしまうのではなく、一つのActionは、
「一つの仕事をうまくやる」ようにデザインされている。
Automatorのパワーは、ワークフローの中のActionの連鎖に由来している。
個々のAction一つでは成し遂げられない仕事でも、ワークフローの中にあるい
くつかのActionが力を合わせることで、素早く、容易に成し遂げられる。
この小さな個々の部品から機能性の構築をするというアイデアは、古きよき
UNIXに始まったものだ。
Automatorのもたらした躍進点は、直感的なGUIで小さなツールの組み立てをや
りやすくしたこと。
スクリプターや開発力のある人はだれでも、Actionの重要な作成候補者だ。そ
して、ほとんどのケースで、スクリプトを手で書くよりそれを早くできるよう
になるだろう。
# 「それ」が何を指してるのかよく分からん。Actionを作ることかしらん。
# よく読んだら、やっぱり古きよきUNIXの考え方にヒントを得たものなのね。
0598名称未設定
05/01/31 03:50:00ID:mWfqvAGV誰か晒していただけませんか?
0599名称未設定
05/01/31 03:50:33ID:R1ubLn1JActionは、Core ImageやCore Dataなどのcore OSフレームワークの機能にアク
セス可能。コマンドラインツール環境の「てこの力」や、個々のアプリケーショ
ンの専門化した特徴をうまく利用することもできる。
Actionは、AppleScript、もしくはObjective-Cのいずれか、容易な方で作成で
きる。
Automatorの登場は、顧客がワークフローで使うための小規模な機能性の拡張を
もたらすちっちゃなユニットの提供機会の創出を意味する。
あなたがアプリケーション開発者なら、ユーザのためのAction作りは、非常に
大きなビジネスチャンスだ。
# かなり適当な訳
0601名称未設定
05/01/31 03:56:48ID:mWfqvAGVあ、2004です。おねがいします。
0603名称未設定
05/01/31 04:11:44ID:mWfqvAGV0604名称未設定
05/01/31 05:43:26ID:R1ubLn1JFinderから得たファイルのリストをファイル名順にならべるのどうやるか忘れた。
do shell scriptでsort呼び出したはいいけど、戻すところでつっかかった。
ソートされたファイル名のリストを作ったら、後はrepeat文囲んでガガっとやればOK。
myPictureFileNameのクラスはaliasじゃなくてテキストね。
画像はアスペクト比が同じじゃないとうまくいかない。
--テストの画像
set myPictureFileName to "Macintosh HD:Users:anonymous:Desktop:picture.pct"
tell application "Microsoft PowerPoint"
--スライドをケツに一枚足す
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
--ケツの一枚にmyPictureFileNameで指定したファイルを貼り込む。
--20とか640とかのパラメータは自分で決めな。
do Visual Basic ("ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & myPictureFileName & "\", False, True, 20, 20, 640, 480"
end tell
0605名称未設定
05/01/31 05:56:14ID:R1ubLn1Jset myPictureFileName to "Macintosh HD:Users:anonymous:Desktop:picture:picture01.jpg"
tell application "Microsoft PowerPoint"
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & myPictureFileName & "\", False, True, 20, 20, 640, 480"
end tell
0606598
05/01/31 08:57:04ID:mWfqvAGV0607598
05/01/31 12:38:07ID:mWfqvAGVon open pictureFiles
repeat with anItem in pictureFiles
tell application "Finder" to set aPicture to anItem as string
set aPicturePath to (quoted form of POSIX path of aPicture) as Unicode text
do shell script "echo $[ `sips -g pixelWidth " & aPicturePath & "|grep [0-9]|awk '{print $2}'` / `sips -g pixelHeight " & aPicturePath & "|grep [0-9]|awk '{print $2}'` ]"
set horizontalPictFlag to result as number
tell application "Microsoft PowerPoint"
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
if (horizontalPictFlag as boolean) then
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, 0, 0, 720, 540"
else
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, 157, 0, 405, 540"
end if
end tell
end repeat
end open
0608名称未設定
05/01/31 22:06:25ID:mIKwbED0を見る限り、
AutometorはコマンドラインのGUI版って感じかな
普通のユーザーにも簡単に、たぶんAppleScriptよりも
ずっと容易に使えるだろうけど、ただ、この手のものは
制御構文や変数の扱いが貧弱なのが普通だから、
あまり複雑な処理には向かないと思う。
アプリ開発者から見ると、Autometorはユーザーに
簡易マクロ機能を提供する手段として、あるいは、
汎用のデータを扱うアプリなら、これをプラグイン環境
としてとらえることもできるかも。
スクリプターから見ると、Autometor自体がスクリプタブル
なのかが気になる。いや、それよりAutometorのコマンドは
入出力の定義を持っているわけだから、これをAppleScript上の
オブジェクトの型として直接扱えたらきっと楽しい…が、
それは難しそうな気が…。
0609名称未設定
05/01/31 22:41:48ID:ORR1Vo1i複数のブロックにまたがるような制御構文や変数は無理そうだね。
もちろん個々のブロックの中では自由に記述できるだろうけど。
ところで、引数と返り値のバケツリレーで型チェックはないっぽいので
自分で書くとつまらないバグに悩まされそうで心配。
Javaで書けばこんなカンジでしょ?↓
Object[] hoge(Object[] input, Object[] parameters) {
...
}
何番目のデータが何を表して、ということを自分で管理しなければならず、
しかも実行時エラーの報告が今のようなデタラメだらけでは・・・
0610590
05/01/31 23:00:29ID:9m7bIpaBAutometorで盛り上がっているところすみません。
無理ですか…
他のプロセスをストップしているってことだったんですね、つまりアップルスクリプトの
プロセスもストップしていると…、そりゃ動きませんよね。
なんだかものすごく納得です。
納得はしましたが、困ったなぁ。
何か裏技的な方法ないんでしょうか。
Kinesisというのは、あの不思議なキーボードですね。
これはこれでほしいけど、やりたいことは人の手を入れない自動化だったので、これまた無理ですね。
とほほ。
0611名称未設定
05/02/01 00:43:53ID:fl5m62Mgset thisEncoder to item 4 of encoders
set current encoder to thisEncoder
convert selection
end tell
iTunesのスクリプトメニューから「MP3に変換」を実行するスクリプト。
(時によってAIFFにしたりACCにしたりするので同様のスクリプトを用意)
しかし必ず「AppleEventがタイムアウトしました」というメッセージが出てくる。
OKを押してしまえばエンコードが進行するとはいえ、解決策はないもんでしょうか。
delayじゃだめっす。
0613名称未設定
05/02/01 00:55:04ID:oeenYfdD以下のような感じでどうでしょうか。
tell application "iTunes"
set thisEncoder to item 4 of encoders
set current encoder to thisEncoder
ignoring application responses
convert selection
end ignoring
end tell
0614名称未設定
05/02/01 01:25:18ID:fl5m62Mgありがとうございます、が、どっちも解決せず。
どうもiTunes側のせいのような気がしないでもない。
AppleEventがよくわからないからな〜
0615名称未設定
05/02/01 01:29:15ID:tp0PTV+SSnapz Proをあきらめたら? でも、Snapz Proほどパーフェクトなキャプチャユー
ティリティもまた無いんだよね。
古いキーボード改造してPICつないで自動化したら? 押す必要があるキーボー
ドの個々のスイッチに、フォトカプラを介してPICのポートをつなぐわけ。
プログラムはループ待ちとポートへの出力命令のみだから簡単。
初歩の初歩であるLEDの点滅レベルでOK。
インターバル時間が長いとタイマの分周器を使っても間に合わないかもしれな
いから、レゾネータはkHzオーダーの周波数の低いものにしておくと、考えるこ
とが少なくていいかも。
PICはライターが必要だから、それだけで6,000円ぐらいは見ておく必要がある
けど、それ以外の材料費はPIC含めて1,000円以内で収まると思う。
PIC タイマ シーケンサなどでググるといいよ。
秋月通商から4CHのシーケンサキットが出ているから、これをキーボードにつなぎゃOKかも。
http://akizukidenshi.com/catalog/items2.php?q=%a5%b7%a1%bc%a5%b1%a5%f3%a5%b5&s=score&p=1&r=1&page=#K-00127
http://www.t-net.ne.jp/~masa_hp/diy/fr_sequencer.html
0616名称未設定
05/02/01 02:08:22ID:tp0PTV+Sなかなかやるね。ポートレートとランドスケープで処理を変えるわけか。
$[ ]この構文は知らなかったなぁ。
自分はexpr A / Bだったな。echo A / B | bc とか。
しかし、複数のファイルをDrag & Dropすると、必ずしもファイル名順にならなくない?
だれもファイル名順じゃなきゃダメとはいってないけどね。
0617名称未設定
05/02/01 02:26:59ID:tp0PTV+S普通のユーザーにも自動処理の門戸が開かれるということが重要。職場の人間
とか見てると、言語やスクリプトはおろか、マクロ、キーマクロすら知らない
し理解不能だから、ほとんど手作業だしね。そういう人間向けの道具としては、
分岐処理や変数などは理解を妨げるだけなので不要だと思う。
一本道でも素人に自動処理が出来るんであれば、それは喜ばしいことだと思うよ。
WindowsはいきなりWSHだから普通の人には無いも同然。普通の人に使わせると
いうアプローチの自動処理環境がOSに標準装備って、結構痛快。
>>609
型チェックはあるっぽくない?
Actionのプロパティで入力と出力の型を宣言するのでは。
それを見てAutomatorがActionの嵌合をチェックするんじゃないかな。
Actionの天地にある「Files/Folders」や「Images」というのがそれだと思うん
だけど。
0618607
05/02/01 04:38:40ID:VaIkiZyftouch `jot -w %03d_file 100 1`
と
on open myFiles
my main(myFiles)
end open
on run
tell application "Finder"
set myFiles to selection
my main(myFiles)
end tell
end run
on main(myFiles)
set myFilesPath to {}
repeat with anItem in myFiles
set myFilesPath to myFilesPath & (anItem as string)
end repeat
choose from list myFilesPath
end main
で試した限りではなんとか行けそうに思うのでつが...。
# この板と海上氏とこばやし氏に感謝。
0619名称未設定
05/02/01 05:16:31ID:tp0PTV+S実際に使う画像は、あっちこっちから集めてきたものではない?
どっかの実際に使ってるフォルダでselectionを取得してみたら?
tell application "Finder"
selection
end tell
……で、今調べてみたら、アイコン表示とリスト表示のselectionは、ファイル
作成日、もしくはファイル変更日順みたい。カラム表示のselectionはファイル
名順のリストになった。selection取得時にカラム表示にしとけば、ソートはい
らんね。
0620名称未設定
05/02/01 08:20:28ID:oeenYfdDやってる事、言ってる事が高度でわからにゃあ・・。
$[`いろいろ1`/`いろいろ2`]
の前後のどちらかが場合によって実行されるという事?
ネットのシェルスクリプト入門のページに載ってるでしょーか。
0621名称未設定
05/02/01 08:23:12ID:oeenYfdDMS-Wordのヘルプとかけっこう丁寧にマクロの書き方説明してあったと思うけどね。
ヘルプだけ見て簡単なタグ挿入みたいなの書いた事あるし。
普通の人は存在も知らないだろうね。
0622607
05/02/01 13:15:10ID:VaIkiZyf$[ 4 / 3 ]が整数演算。この場合は1になる。
つかうjpgが4:3か3:4なので。やけに縦長・横長なファイルだと{"0", "1"}以外になって
>>607のスクリプトではエラーになる。
sipsについては↓ここ参照。
http://pcweb.mycom.co.jp/column/osx/073/
0624名称未設定
05/02/01 14:15:02ID:tp0PTV+SFinder Basics見ると、将来の版ではちゃんとソート方法を明示的に指定してリ
ストが獲得できるようになるようだね。参照が格納されたリストはソートしづ
らいから、これは助かる。Tigerに期待。
sort: (NOT AVAILABLE YET) Return the specified object(s) in a sorted list
sort reference -- a list of finder objects to sort
by property -- the property to sort the items by (name, index, date, etc.)
[Result: reference] -- the sorted items in their new order
>>622
普通の人は、
理解不能なもの>余計な努力をする必要があるもの>不要
マニュアル>見えない>言葉で説明されても理解不能>人に目の前でやってみせられて初めて理解
我々みたいに、「楽をするためならどんな努力でもする」、という人間とは真
逆。Automatorですら、彼らにかかると上記から逸脱できないかもしれない。
0625名称未設定
05/02/01 14:44:38ID:DkBGhz+8sipsはAppleScriptからも使える……のだが、よくわからんw
たぶんこんな感じだと思う
set selImage to choose file with prompt "Choose an image"
tell application "Image Events"
set anImage to open selImage
set imgDimensions to dimensions of anImage
close selImage
end tell
set horizontalPictFlag to (item 1 of imgDimensions) >= (item 2 of imgDimensions)
--横長か正方形ならtrue、縦長ならfalse
0628名称未設定
05/02/01 19:10:49ID:DkBGhz+8Image Eventsについては、
ttp://www.apple.com/applescript/imageevents/index.html
で、よろしこ
0629611
05/02/01 19:33:52ID:1FXb6MdN0630名称未設定
05/02/01 20:53:32ID:YYzm9ADLにImage Events使ったフォルダアクションのサンプルがあります。
0632名称未設定
05/02/01 22:11:48ID:oeenYfdDタイムアウトのエラーが出なかった・・。
長い曲じゃないとダメなのかな。
スクリプトエディタから実行したから?
0633名称未設定
05/02/01 23:18:44ID:h01xe7q20634名称未設定
05/02/02 02:36:05ID:a4wOLqCYスクリプトエディタからだと大丈夫なのよ。
iTunesのスクリプトメニューから「スクリプト書類」でやるとだめなのよ。
「アプリケーション」で保存してやればいけるけど、なんか居心地が悪いし。
0635名称未設定
05/02/02 03:55:30ID:/90GZ5L+る。強化されたり、サックリ無くなってたり。
スクリプトウインドウ、マクロメニューが前より強化されたのはいいね。
個人的には、allow redraw / inhibit redrawが無くなったのが気になる。
パフォーマンスは大丈夫だろうか。
bookmarkも使い手があるね。正規表現で文書をなめて、ひっかかったのを一覧
にする、なんてことができると思われる。
Jedit XはCocoaだからI-Searchが使えるし、例のカスタマイズで多段のキーバ
インドが使えるのがいいね。そろそろ4から移行のタイミングかもしれん。
0636名称未設定
05/02/02 04:02:35ID:5R81zHAkうちのiTunes 4.7.1 @ OS 10.2.8 には
スクリプトメニューが無かったんで取りあえずエディタ上から実行してみたんだけど、環境依存的な問題なのかな。
間にはさまるメニューの実行環境がイベントの終了メッセージ待ちしててタイムアウト??
(メニューエクストラのスクリプトメニューの事?)
> 居心地が悪いし
しょっちゅう使うものだったらアプリにしてDockとかDragThingとかに入れとくのもアリと思うけどな。
勝手に終了しないようにしてon reopenで実行されるようにしとけば起動時間もかからないし。
0637名称未設定
05/02/02 04:05:02ID:5R81zHAkうち試せないんでがしがしフィードバックしてください。
削られた用語は単にまだ実装できてないのか、
それとも将来にわたって不要と考えて削ったのか、
どっちなんでしょうね。
OS上げたら試すつもりなんで楽しみだ。
0638607
05/02/02 04:34:37ID:oSqPmYuvtell application "Finder"
try
set current view of window 1 to column view
end try
set pictureFiles to selection
my main(pictureFiles)
end tell
on main(pictureFiles)
repeat with anItem in pictureFiles
tell application "Finder" to set aPicture to anItem as string
tell application "Image Events"
set anImage to open aPicture
set imgDimensions to dimensions of anImage
close aPicture
end tell
set widthValue to (item 1 of imgDimensions)
set heightValue to (item 2 of imgDimensions)
set aspectRatioValue to (heightValue / widthValue)
次につづく。
0639607
05/02/02 04:35:43ID:oSqPmYuvif aspectRatioValue = 0.75 then
set outputDimensions to {0, 0, 720, 540}
else
if (aspectRatioValue > 0.75) then
set outputWidth to (((540 * widthValue) / heightValue) div 1) as number
set widthMargin to ((720 - outputWidth) / 2) div 1
set outputDimensions to {widthMargin, 0, outputWidth, 540}
else
set outputHeight to (((720 * heightValue) / widthValue) div 1) as number
set heightMargin to ((540 - outputHeight) / 2) div 1
set outputDimensions to {0, heightMargin, 720, outputHeight}
end if
end if
set outputString to item 1 of outputDimensions & ", " & item 2 of outputDimensions & ", " & item 3 of outputDimensions & ", " & item 4 of outputDimensions
tell application "Microsoft PowerPoint"
do Visual Basic "ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank"
do Visual Basic "ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture \"" & aPicture & "\", False, True, " & outputString
end tell
end repeat
end main
終わり
0640名称未設定
05/02/02 05:17:16ID:/90GZ5L+名前が変わっていたり、別々だったものが一つのメソッドのプロパティという
形になったりで、仔細を比較しないと全体像が見えない。
無くなったと思われる用語
aliasFile, picture, movie, sound, play --> attachmentになった?
byte, line, text flow(story) -->lineとparagraphの違い何だっけ。
select / selection --> さすがにこれはサポートされると思われ。つか今びっくりした。改善しる!!
undo, revert --> スクリプトからはあまり使わないよね。
style run --> attribute runになったっぽい?
text style info --> colorというのが増えた。ほかは?
OpenURL --> open locationがあれば無くても困らない?
allow redraw / inhibit redraw --> Cocoaだといらない?
justify
speak --> AppleScriptに元々あるしね……。
suspend
updateMacroMenu --> システム変わって不要になったのかも。
0641名称未設定
05/02/02 05:36:27ID:/90GZ5L+結局Finderからselection取得する前にカラム表示にしたのね。
そこまで書けるならPowerPointの部分も自分で書けるだろうに(w
スクリプトと旅の恥は書き捨てだから、目的を果たすことこそが重要か。
>>637
あ、今のバージョンはAppleScriptに対応した最初のベータ版だから、リリース
版までには改善されると思われる。
0642名称未設定
05/02/02 06:45:50ID:5R81zHAk報告ありがとうございます。
たしかJeditの場合は
文書幅によって決まる表示上の行→line
改行まで→paragraph
だった気がします。
両方あった方が便利な時もあると思うんだけどな・・。
(関係無いですがパラグラフの終端に改行を含むかどうかの扱いがエディタによって違ったりしたはず)
Jeditで使った事ないですけどOpenURLってヌevent WWW!OURLネなんですかね?
これ使うとAppleScript対応してないっぽいWebブラウザでもURL開けたりするんだけど古いイベントだから無くなるのかなあ。
まあopen locationでいいんですけど。
0643名称未設定
05/02/02 16:33:50ID:kBgS6He+つか、全部付属ドキュメントに書いてあった。
selectionはselected textなどとして取得できること、
set selected text toなどでselectの代わりになること、
クラス構造の変化、文字コード関連など、重要な情報満載ですた。
0644名称未設定
05/02/02 19:52:43ID:5R81zHAk付属ドキュメントは大事ですね。
俺も自分でDLしない事には始まらないですね。うずうず。
そういうやり方がOS Xっぽいんですかね?
SafariもドキュメントのURLをsetってやり方でページ開いたりするみたいだし。
0645名称未設定
05/02/03 03:53:26ID:0kuLDbVlhttp://e-words.jp/w/OOP.html
オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの
は、OOPの基本概念ってことでいいんだよね?
よく分からん。それは表面的な理解だって話もあるし。
0646607
05/02/03 06:10:47ID:Mt/B37Aoいや、VBAはてんでわからんかったので。PPTもTestDriveで試してたんです。
実は、俺のツレが毎週50枚の写真を使ったプレゼンに倒れそうになってたので、
「俺がスクリプトでなんとかしてやるから、iBook買え!!!」
なんて言ってしまって。
「2ch 新・mac板のおかげで出来た」と伝えておきました。(w
0647名称未設定
05/02/03 07:07:45ID:0kuLDbVlほー。そうなのか。あつい友情(愛情?)だね。
Office XのPPTのAppleScript対応はdo visual basicのみだったけど、
2004になってからガツンときてるから、2004ならAppleScriptでも
同じことができるはずだよ。
今ExcelのVBAを勉強してるので、MSのアプリはVBAの方が分かるというだけ。
VBA馬鹿にしてたけど、結構おもろい。
0648名称未設定
05/02/03 12:28:33ID:QjSLg15A>オブジェクトと、オブジェクトに内包されるプロパティを操作するっていうの
>は、OOPの基本概念ってことでいいんだよね?
俺的なOOPの基本概念
・実装(メソッド)とデータ(プロパティ)を一体化させた
オブジェクト(クラス)を定義できる
・変数の隠蔽(カプセル化)が可能
・継承したり抽象化したりというOOP的な考え方を支える仕組みがある
個人的にはカプセル化ができるか否かが最も重要
0649名称未設定
05/02/03 18:23:14ID:7ps7o9II0650名称未設定
05/02/03 18:52:48ID:OJ1xhJAS変数が全部グローバルスコープなのが気持ち悪いね。
いちおう予約語にclassとかあるけど将来の拡張のためというよりは
Javaのをパクってきただけな希ガス。
0651名称未設定
05/02/03 20:07:31ID:89KovW5sApple Event Object Modelで最初からオブジェクト指向になっている。
1992年のこの記事は今でも通用する。
http://www.mactech.com/articles/develop/issue_12/Berdahl_final.html
OSXになってFinderを始め色々なアプリのApple Event Object Model
サポートはかなり後退した。今は少しずつ修復している過程
0652名称未設定
05/02/06 03:09:17ID:UJtEtkP6この考え方自体古いか。
0653名称未設定
05/02/06 03:25:56ID:2vVTYR/Xなんでいまさらapplescriptなんだよ。
0654名称未設定
05/02/06 03:29:24ID:DQPJzWp30656名称未設定
05/02/06 04:27:09ID:hStjbpSE0657名称未設定
05/02/06 04:47:47ID:0y2KSM4d0658名称未設定
05/02/06 05:41:22ID:+BeKYxeyShell ScriptでAdobeアプリやOfficeを制御してみてくれ。
Shell ScriptでCocoaアプリを作ってみてくれ。
Shell Scriptも使ってるがな。併用しないと辛いし。
ともすると、「全部それShell Scriptでいいじゃん」
みたいなのを書いてることもある。
0660名称未設定
05/02/06 08:26:13ID:2vVTYR/XOSXになってからバッチ処理はシェルスクリプトでやればいいし、
アップルスクリプトの出番が少なくなってるのも事実。
シェルスクリプトからでもアップルスクリプト呼びだせるしね。
例えば、
osascript -e 'tell application "Finder" to empty trash'
osascript -e 'tell application "Finder" to eject disk "DVD100GIRLS_02"'
とか。
066325
05/02/06 08:42:12ID:8vGLAJKs0664名称未設定
05/02/06 11:01:41ID:ieaqnQz9皮先君 キタ━━━━(゚∀゚)━━━━!!!!
のか? もうあのスレ見るの止めたけど。
0665名称未設定
05/02/06 14:34:59ID:hStjbpSEおまいらせっかくshellscriptが使えるのに
なんでいまさらapplescriptなんだよ。
660 :名称未設定 :05/02/06 08:26:13 ID:2vVTYR/X
まぁ俺も>>653に同意。
OSXになってからバッチ処理はシェルスクリプトでやればいいし、
アップルスクリプトの出番が少なくなってるのも事実。
シェルスクリプトからでもアップルスクリプト呼びだせるしね。
例えば、
osascript -e 'tell application "Finder" to empty trash'
osascript -e 'tell application "Finder" to eject disk "DVD100GIRLS_02"'
とか。
わかりやすい自演、乙。
0666名称未設定
05/02/06 14:41:05ID:TlPR2W2E正論だと思うぞ。
AppleScriptでしかできないことは確かにまだまだ多いが、
一方でShellScriptの方が向いてる分野も多々ある。
これからのOSXerの正しいあり方を指摘していると思われる。>>653
0667名称未設定
05/02/06 16:09:00ID:9sLDKg670668名称未設定
05/02/06 16:18:07ID:5moctVhn0669名称未設定
05/02/06 16:21:24ID:+BeKYxeyなんでいまさらShell Scriptなんだよ。
と言い返しちゃうぞ。
(Perl|Ruby|Python)がShell Scriptを無用化するほど多機能で記述力が高いほか、
Shell Scriptにあるクオート、エスケープの問題が無いからね。
メタキャラクタやクオートがシェルで展開されることを考える必要が無い。
evalで多重展開するスクリプトを書いてみな。どこをどうエスケープしていい
か、わけわかんなくなるから。evalの中でメタキャラクタでも使おうもんなら、
もう何が何やら。
シェル変数のスコープの問題もある。この処理はカレントシェルで実行されて
いるのか、子亀か、孫亀か、孫亀からのResultの継承は、などということを考
えるうちに眠くなってくる。
だから、何でも自分でやっちゃう(Perl|Ruby|Python)みたいなインタプリタが
台頭するわけ。
AppleScriptにも、>>653を昨日感動させたパイプやバッククオートメカニズム
に匹敵する武器がある。それは、アプリケーション間通信。
AppleScriptの本質は、最初からそれ。
だから、言語仕様ががらんどう。
OS Xになって、AppleScriptが「使ってやる」対象にShell Scriptも入っただけ。
そう、AppleScriptはスクリプト界のプロデューサーなのだよ。
つまり、スクリプト界の つんく。すべては手駒に過ぎない。
0670名称未設定
05/02/06 20:20:51ID:Jz7NgqXA0672名称未設定
05/02/06 21:23:12ID:xaloEAaTjavascriptだのshellなんたらだの言ってる香具師多いね。
0673名称未設定
05/02/06 21:28:05ID:QW3lm4+V>>672
つか、shellscriptの中にapplescriptを埋め込めるのに、
なんでわざわざ難しいapplescriptで作ろうとするのかな、
と疑問に思っただけ。
PerlとかRubyとかPythonといった、素人には「わけわからん言語」
のことなど誰も聞いてないよ。
ここは素人のための素人によるスレであって、
Perlとか使いこなすプロの方はPerlスレで勝手に暴れてくれ。
少なくとも俺はshellscriptに関しては数日で学習できたが
Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど
学ぶだけ時間の無駄と思ってる。
0674名称未設定
05/02/06 21:33:51ID:hStjbpSE0675名称未設定
05/02/06 21:38:22ID:xaloEAaT0676名称未設定
05/02/06 21:43:57ID:VITFGbAv> Perlとかいった「眺めただけではさっぱり意味不明な言語」のことなど
>学ぶだけ時間の無駄と思ってる。
どんな言語も最初は意味不明。perlは言う程、シキイ高くない。
折れにとっては、AppleScriptの方が難しい。
0678名称未設定
05/02/06 22:53:57ID:4HdbS1o+皮先くんosascriptを知る。
ttp://pc7.2ch.net/test/read.cgi/mac/1105074933/406
このスレで釣りを始める。
>>653
自演する。
>>660
IDの変えかたを知る。
>>666
再度釣る。
>>673
皮先くんにまじレスしとくと物事には適材適所というのがあって
Shell ScriptにはShell Scriptの
AppleScriptにはAppleScriptの
Perlその他にもそれぞれ得意不得意があるので使い分けましょう。
0679名称未設定
05/02/07 04:34:22ID:InOvKOYR結局>>678さんの最後に書いてる事に尽きる。
適材適所。
それでも言いたい事を書いちゃう。
>>673
Perlは色々な環境で同じスクリプトが動く&CGIまで作れちゃうので勉強量的には省エネと思う。
どうせシェルスクリプトで文字処理するなら何か勉強しないといけないし、
制御文だって変数だって使うわけだし。
可読性についても長くなった時のエスケープ・クォートのややこしさ等考えると
シェルスクリプトよりも読みやすいと思う。それは書きやすいという事でもあり。
正規表現はややこしくなるとひどいけどシェルスクリプトでも不可避のものだし。
データの入出力の部分がわかれば後は書けると思う。
省略して書く方法が多いので省略せずに書いた方がわかりやすい。
AppleScriptを一番上の制御役に持ってくるとダブルクリックで起動できたりドラッグ&ドロップさせたりできるし、ボタンやメニューのついた立派なGUIアプリにもできる。
GUIアプリケーションを制御して仕事させると余計な描画が付くぶん遅かったり邪魔だったりするが、工程が目で見えたり細かい処理を勝手にやってくれるので安心という利点もあったりする。
逆に言えばシェルスクリプトによるCUIソフトの制御は速さが利点かな。わかってる人が書くと構文もすごく短くて済むしね。
0680名称未設定
05/02/07 09:57:22ID:UliWkihy>>679
俺様は皮先くんです。
ありがとうございます。
そんな意見を待ってました。(他のやつらはチンカス以下!)
やはり適材適所ですよね。同意です。
Perlもよさそうですが、最近phpが多いような気がするのですが、
phpを学ぶのと、Perlを学ぶのと、どっちかひとつだけ、
としたらどっちがおすすめですか?
俺みたいなものぐさにとって。
0681名称未設定
05/02/07 10:28:21ID:NS99lvICAppleScriptに関連してのShell ScriptやPerlの話しならともかく
単体でそういう話がしたいのなら別スレでどうぞ。
0685名称未設定
05/02/07 12:25:10ID:dcniy7vh何のためにPaperが控えてると思ってんだ? お前のケツを拭くためだぞ。
0686名称未設定
05/02/07 12:49:38ID:UliWkihyつか、おまいらを釣るのにも飽きてきたので
(だって簡単すぎるしw pgr)
そろそろ巣に帰りますね。
0687名称未設定
05/02/07 15:18:42ID:c6LiRSrB気のせいだから。キミはShellScriptが使えるんだからそれで満足してなさい。
-- これ以上ほかのスレにまで出没されたらたまらん。
0688名称未設定
05/02/07 15:46:51ID:InOvKOYRつか、どうせp2のカスタマイズにPHPいじってるだけなんでしょ?
0689名称未設定
05/02/07 17:01:29ID:uaeFl3WY皮先さんは学生さんですか?それとも高校生?中学生?(あまりにも考え方が幼いので)
先生(paperさん?)の書くことはよく聞くようですが
しつもんするときはもう少し丁寧にした方がいいですよ。
ネタにしてもあまりにもひどすぎます。
よく考えて書き込むようにしましょう。社会に出たとき苦労しますよ。
0690名称未設定
05/02/07 17:16:48ID:iXAwgYDp0692名称未設定
05/02/07 17:50:36ID:UliWkihy0694名称未設定
05/02/08 00:08:34ID:yfLNGpsG何かネタない?
発表か質問カモーン。
0695名称未設定
05/02/08 00:29:17ID:itdMN3ZT半年前に
set button1 to button 1 of (中略) of window 1
とやって簡略化を図ろうとしたら妙なエラーに悩まされ、
それがトラウマとなって以来 Studio は使っていない。
エラー箇所で button1 ではなく律儀に
button 1 of (中略) of window 1 と書くとちゃんと動くという・・・。
0696名称未設定
05/02/08 01:58:55ID:AW2KFPrOって、折れも判らんレスだなぁ...
0697名称未設定
05/02/08 02:36:43ID:i5Y/CwOy0698名称未設定
05/02/08 02:41:27ID:j0zefuHnset button1 to a reference to (button 1 of (中略) of window 1)
にすればうまくいくかもしれない。
0700名称未設定
05/02/08 14:14:35ID:oKaQu5Wq0701名称未設定
05/02/08 23:01:57ID:uklUH9tt上から順番に読んでいると面白いな。
前半はともかく、後半は感情的には同意できる。
ただ、折れはsh系すらうまくつかえてない純粋なAppleScriptなんで、他の発言は大半が意味不明。
0702名称未設定
05/02/09 00:43:12ID:oHF7ndsg0703名称未設定
05/02/09 03:48:35ID:Qgsn8LD2レス番号ズレてないよね?
落ち着いて読めばそれぞれの言語の経験がなくてもだいたいわかる内容だと思うけど。
『シェルスクリプトには色々問題点があって、
シェルスクリプトでできる事を全部置き換えられるような便利なスクリプト言語が台頭して来てる。
だから君(653)の理屈だと「なぜ今更シェルスクリプトを使う?」と言い返せてしまうぞ。
(でもシェルスクリプトだって使われている。それには理由がある)
AppleScriptの場合のそれを使うメリット・本質は(以下はわかるでしょうから省略)』
と、これだけの話。
sh系“すら”っていうのはおかしいな。シェルスクリプト使えなくてもPerlは使える。
KTの頃からMacでも使えたわけだし。
さあ次のAppleScriptに関する話題をどうぞ。
0704名称未設定
05/02/09 04:09:00ID:3Owgs39W0705名称未設定
05/02/10 02:20:48ID:EqyNj7bdtell application "Finder"
do shell script "./Users/hoge/hoge.sh"
set kekka to result
display dialog kekka buttons {"へぇ"} default button "へぇ" with icon note
end tell
普通にダブルクリックでこのappを起動すると正常に動作するのですが、
Dockに登録して起動すると、一回目の起動時に必ず
書類"(null)"を開くための必要なデフォルトアプリケーションが指定されていません
と起こられます。そのまま二回目のクリックを行うと
普通に動作します。
その後またDockから起動すると・・・と延々と繰り返しでもう疲れました。
これはどういうことなのでしょうか?
0706名称未設定
05/02/10 03:21:07ID:0sL11/a+0707名称未設定
05/02/10 03:52:55ID:E7o87DXrアプリケーションと認識できてないのかね?
1度Dockから登録外して
Macの再起動したあと登録しなおしでもすれば直りそうな気がするな。
あとそのスクリプトたぶん最初の1行と最後の1行要らない。
0708名称未設定
05/02/10 04:35:44ID:DPAQjVzn0709705
05/02/10 05:03:33ID:EqyNj7bd多分違う。
>>707
再起動したけどダメっぽい。
buttonsを日本語にしてて、tell application・・・・を
つけないとなぜか文字化けしてしまうのですよ。
0710名称未設定
05/02/10 05:07:50ID:DPAQjVzn>>444
これをこのアップルスクリプトで動かします。
tell application "Finder"
do shell script "./Users/sheel/sh/filebach.sh"
set kekka to result
display dialog kekka buttons {"へぇ"} default button "へぇ" with icon note
end tell
http://pc7.2ch.net/test/read.cgi/mac/1105074933/445
素直に隔離スレに(・∀・)カエレ!
0711705
05/02/10 05:24:40ID:EqyNj7bdそんなに怒るなやw(pgr
おまいらは俺様の質問に答えるだけでいい。
0712名称未設定
05/02/10 05:25:55ID:U22pb/O5/○。_、 _ヽ
\|;;;:::... ,_ノ` |/
.\;;;::.... /
| ̄ ̄ ̄| Think Defferent
Apple
0713名称未設定
05/02/10 06:05:34ID:E7o87DXrやっぱりFileMakerを前にすえるか、
(いまいちどういうものかわかってないけど)Valentinaアプリケーションを使うっていう感じなんですかね?
さほど大げさなものじゃなくてもデータのリストみたいなのを扱いたい時ってあると思うんですけど・・。
AppleScript Studioで扱おうにも??
MySQLとかいうのがフリーのリレーショナルデータベースでどうのこうのっていうから検索してみたけど、Webアプリケーション?用のものみたいだし、
使いやすいインターフェースもなさそうだし、ちょっと用途とずれてるような感じ。
Valentinaは下記URLのとこで販売されてます。Rb用のプラグイン?みたいなのもあるみたい。
ttp://www.paradigmasoft.com/product/vapp_jpn.html
0714名称未設定
05/02/10 06:17:32ID:EqyNj7bdどういうデータを扱いたいの?
テキストデータならshell scriptが得意としてるけどね。
MacOSXに標準装備されているし。
0715名称未設定
05/02/10 08:09:04ID:hI5kF7xE要求が分からないので、アドバイスしようがない。
普通にFileMakerを使うというのではダメなの?
AppleScriptを使わなきゃならない理由が見えない。
mySQLは、Webアプリに限ったものではないよ。
普通にdo shell scriptでmysqlを呼び出すと使える。このへんを読んでみれば。
http://lists.apple.com/archives/applescript-studio/2004/Jul/msg00152.html
mySQL4AppleScriptというハンドラがあるよ。
http://www.yvs.eu.com/otherproducts.html
大きなデータを扱うなら、??SQLみたいな信頼性の高いデータベースをバック
エンドで動かして、自作部分はフロントエンドとして設計するっていうのは、
いいんじゃない。作ったデータも汎用のものになるしね。
AppleScript自前のlistやrecordでシコシコやるというのはおすすめできない。
REALbasicはPluginをインストールするとmySQLやPostgreSQLに直接アクセスできるよ。
だから、クライアントを、おそらく容易に作れる。MySQLClassという、そのもの
のクラスがある。
クライアントがブラウザでも構わないなら、普通にLAMP、MAMPでいいんじゃな
い。PHPはmySQLとの親和性が高いらしいから、AppleScriptでdo shell script
を使って必死にやるより簡易な記述ができると思う。
ただしフォーム(UI)の設計が面倒そうだけど。PHPのRAD環境ってあるんですかね。
0716名称未設定
05/02/11 04:10:19ID:CjH87wXJ0717名称未設定
05/02/11 06:36:34ID:CjH87wXJAppleScript で日本語(ファイル名とか)を扱うとき
UnicodeUtils.osax ってのが非常に便利っす。
ttp://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html
ところで実行時にそのスクリプトのファイル名を取得する方法はないかね?
0718名称未設定
05/02/11 07:19:13ID:jzIl1wyYpath to current application
アプリケーション形式でないとダメ。
0719名称未設定
05/02/11 07:40:04ID:CjH87wXJああ、やっぱりそうなのか・・・。
.scpt のファイル名を使いたかったんだが、諦めて設計を変えますた。
Script Editor.app で実行すると Script Editor.app のパスが返り、
スクリプトメニューから.scptを実行すると System Events.app のパスが返る・・・。
0720名称未設定
05/02/11 09:39:03ID:T3bKTCXkファイル名が変わるんでなければ決め打ちでいいんだろうけど。
0721名称未設定
05/02/12 01:44:49ID:cVGEe72Jファイル名の頭にナンバリングするとメニューが煩雑になるので
FinderPopのようにメニューでは非表示になるナンバリング方式を用意してほしい。
0722名称未設定
05/02/12 14:14:17ID:VjEfmBLX強者が何人かいらっしゃるので、お願いします。
わたしは今、英会話教室に通っていて、その教室では、その日習ったことをNet上で
復習するシステムがあり、わたしはMacのSafariを使って勉強しています。
Safariの「表示された英文を、サービスメニューからSpeach(Text読み上げ)」
をよく利用するのですが、同じ箇所を何度も聞き直す際、サービスメニュー経由
では手続きが煩雑で、これをAppleScriptでアプリケーションとして保存、
Dockにそのアイコンを置いておいて、英文を選択したらDockのアイコンクリックで英文読み上げ開始となればなぁ。あるいは、Contextual Menuから即、読み上げ
ならもっと便利だろうなと思っています。
そういうスクリプトをどなたか書いていただけないでしょうか?
0723名称未設定
05/02/12 14:26:43ID:jklcNu7Xって、Speechだろがよ。もっと手も使って覚えろ。
0724名称未設定
05/02/12 14:36:35ID:E/mIH8mGこんな感じでどうでしょう。
tell application "Safari"
activate
tell application "System Events"
tell process "Safari"
click menu item "コピー" of menu "編集" of menu bar 1
end tell
end tell
if (clipboard info for string) is not {} then
set theText to the clipboard
end if
say theText as string
end tell
スクリプトメニューから動かしてます。
「ユニバーサルアクセス」→「補助装置にアクセスできるようにする」のチェックをいれて試してみてください。
0725名称未設定
05/02/12 14:49:34ID:WvYut9kK>>723さんが書いてるようにショートカットの割り当てが出来る。
システム環境設定のスピーチの「読み上げインターフェース」のところ
「キーを押したときに選択しているテキスト」にチェックを入れて
横の「キーを変更...」ボタンでショートカットキーを設定。
(なおこれは10.2の場合なので10.3ではちょっと違うかも)
0726名称未設定
05/02/12 15:07:17ID:VjEfmBLXさっそくありがとうございます。試させていただきます。
AppleScriptに関しても初心者なもので、結果報告はちょっと時間をいだだいて
あらためて書き込みさせていただきます。ありがとう。
0728名称未設定
05/02/12 19:47:59ID:cVGEe72J0729名称未設定
05/02/12 21:03:46ID:hnrheJzfTN1164 ぐらいかなー
AppleScript Scripting Additions Guideは消えちゃったかな?
0730名称未設定
05/02/12 23:03:56ID:WvYut9kK0731名称未設定
05/02/16 20:28:24ID:Mu8c3jBM音量調節キーのないキーボードを使っているので、代わりに
ファンクションキーにAppleScriptを当てて、音量調節したいんですが、
どうやればいいんでしょうか?
Set Volume とか言うコマンドは音量の絶対値しか決められないみたい
なんで…。
押すと1コずつ音量が上がるスクリプトと下がるスクリプトを作りたいんです。
0732名称未設定
05/02/16 21:04:23ID:/MUYvP2cシステム環境設定>サウンド>「メニューバーに音量を表示する」
ではいけない理由を、誰でも納得できるように述べたら教えなくもない
0733名称未設定
05/02/16 21:08:54ID:D5jxoj+mまず get volume で今の音量の絶対値を取得して、
それに1なり10なり足した値を set volume してやればいいじゃない。
0734名称未設定
05/02/17 05:11:42ID:0lfqnZ2wtell application "System Preferences"
set current pane to pane "com.apple.preference.sound"
end tell
tell process "System Preferences"
tell window 1
click radio button 2 of tab group 1
set (value of slider 1 of group 1) to 0.05 as number
end tell
end tell
delay 1
tell application "System Preferences"
quit
end tell
end tell
0735名称未設定
05/02/17 05:20:32ID:WxrABtEa0736名称未設定
05/02/17 15:55:39ID:IWfnODka0737名称未設定
05/02/17 18:43:49ID:80c4zM+oドロップレットを作ったのですがdesktopに展開出来ないと言うエラー
が出てうまく行きません。勉強し始めたばかりでかなりお恥ずかしいの
ですが作ったスクリプトの添削をお願いします。
on open drop_items
tell application "Finder"
open drop_items
delete drop_items
end tell
end open
0738731
05/02/18 10:32:36ID:nX7eg9R6キー操作の方がラクなので…。
>>733
なるほど、get volume というコマンドもあるのですか。
そのへんの根本的なコマンド類をぜんぜん知らないもので…。
>>734
やってみたら、
click radio button 2 of tab group 1
のところで、
NSReceiverEvaluationScriptError:4
と出て、止まってしまいました。
>>735
新しもの好きで検索してみたんですが、これが意外と見つからなくて…。
>>736
あ、これは気付きませんでした。これでオッケーですね。ありがとうございます。
みなさん、いろいろありがとうございました。
0739名称未設定
05/02/18 14:30:52ID:Mr2Pe+Q/スレ違いになるけど、Vectorにいろいろあるよ。アップルスクリプトじゃないけど。
http://www.vector.co.jp/vpack/filearea/mac/util/operate/keyboard/index.html
0741名称未設定
05/02/19 17:35:12ID:6D/s0nw1メニューバーの
アプリ名 ファイル 編集 ココ
↑の5番目のプルダウンはこの記述じゃダメですか?
0743名称未設定
05/02/19 18:54:43ID:U1iF4K055番目のプルダウンってどこだyp
0745名称未設定
05/02/19 19:15:08ID:6D/s0nw10746名称未設定
05/02/20 00:05:25ID:btuO7ne7ということは、StuffItにtellするなり、do shell scriptでunzipしたあと、
アボーンすればいい事になるぽ。。。
0747名称未設定
05/02/21 00:40:54ID:FE4/CPRZ指定した位置の(毎回微妙な位置変動あり)テキストを抜き出したり
決められた形式(タイトルがあって、概要があって本文とか)の一部分を抜き出したり
そんなこんなの方法が書かれてるサイトってありませんか?「文字 抽出」とかで検索は
してみましたが、具体的なサイトは出てこなかったので知っている方がいたらお願いします。
0748名称未設定
05/02/21 01:10:15ID:96LJ+AqB何行目からというのはparagraph指定でいけると思います。
あとの指定位置や形式は…
Tanaka's osax が使えれば簡単ですが、OSXはわかりません。
0750名称未設定
05/02/21 02:34:17ID:sv5BM6410751名称未設定
05/02/21 03:43:09ID:FE4/CPRZ>>747
AppleScript以外は全く未知の領域です。学ぶしか無いのですかね。
Cocoaなんて言うのは具体的に何言語を使うのですか?C言語?
0752名称未設定
05/02/21 23:14:25ID:hBdhy10pとりあえず何のエディタでやるつもり?あるいは何のワープロで?
システム標準の命令の範囲でもそれなりのテキスト操作はできるけど。
paragraphとかlineとかcharacterとかAppleScript's text item delimitersとか範囲要素参照形式なんかをうまく使うべし。
でも複雑な事をやるのは正直たいへん。
>>749,750
OS8だろうがOSXだろうがある程度複雑なテキスト処理をやるなら
AppleScript中からちょろっとPerlを呼び出せば楽なのは間違いない。
while(<>){
s/検索語句/置換語句/g;
}
が使えるだけでずいぶん楽。
0753名称未設定
05/02/21 23:25:32ID:hBdhy10p例えばループで1行ずつ調べていく
もし目印となる語句を含んでいるならその行を変数に入れる・・とか。
0754名称未設定
05/02/23 11:16:20ID:hxcBD3foクリップボードから取り出せませんでしょうか?
以下のようにやってもダメでした。
tell application "Finder"
(the clipboard) as file
(the clipboard) as reference
(the clipboard) as alias
end tell
0755名称未設定
05/02/23 15:33:05ID:y61Z5Nj70757名称未設定
05/02/23 15:41:01ID:y61Z5Nj70758名称未設定
05/02/23 16:18:11ID:IeoSOmQsクリップボードからは取り出せない。
俺ならFinderのStandard Suiteのコマンドにあるselectを使う。
selectの使い方は入門サイトで勉強してきてね。
0759名称未設定
05/02/23 20:23:47ID:uPIGSApf(class furlの前後は "<<",">>" の1byte文字)
clipboardってのはデータが複数おかれてる場合がある。
例えばスタイル付きテキストは、まず'TEXT'データがあって、
そのあとスタイルデータが続くとか、PICTがあってPSがあるとかな。
この場合も複数のデータがあるので、データタイプを指定して取り出す。
clipboard info
を実行してみれば、どんなデータがあるかわかる
0760名称未設定
05/02/23 20:35:05ID:2YUFeCpL0761名称未設定
05/02/24 00:46:02ID:z8CnHUyGselectしてaliasのlist取って、repeat回してstringで渡す
んだろな。
0762名称未設定
05/02/24 15:40:33ID:aXmmZvP8おっしゃる通り1項目をコピーした場合はclipboard infoに<<class hfs>>と<<class furl>>があるので、
(FSRefとCFURLかな?と思いますが)それを使って何とかできないかと思いましたが、無理そうですね。
しかも、2つ以上をコピーした場合はclipboard infoにはstringとUnicode textしか入ってないですしね。
selection of application "Finder" を使うことにします。ありがとうございました。
0763hirano
05/02/25 18:23:11ID:zYl+IjDtWeb Scripter's Meetingというサイトで見つけましたが
tell application "Finder"
set theText to the clipboard as string
end tell
とやればクリップボードの中身がテキストtheTextで取得できます。
それとも>>754の質問の意図は
目的のファイルの「参照」なのでパス名が欲しいのでしょうか?
コピーしたあとなら、そのテキスト内容かと想像してますが。
0764名称未設定
05/02/25 22:56:56ID:e3ltjaXM0765名称未設定
05/02/25 23:30:30ID:JQ6nzVz5tell application "Finder"
set theFile to «class furl» of (the clipboard as record)
set theFile to theFile as alias
set name of theFile to "test." & (name of theFile)
end tell
0766asxをドロップするとwmvをDLするスクリプト
05/02/26 11:54:54ID:FkUJu6b5repeat with i in itemlist
tell application "Finder"
set fldpath to folder of i
set fldpath to fldpath as alias
end tell
set fldpath to POSIX path of fldpath
set urlStr to ""
set urlStr to do shell script "cat " & quoted form of POSIX path of i & " | perl -wne 'if (m#ref href=\"(mms://.+wmv)#i) {print $1;last}'"
--display dialog urlStr
if urlStr is not "" then
do shell script "cd " & quoted form of fldpath & ";mmsclient " & urlStr
else
set urlStr to do shell script "cat " & quoted form of POSIX path of i & " | perl -wne 'if (m#ref href=\"(http://.+wmv)#i) {print $1;last}'"
do shell script "cd " & quoted form of fldpath & ";curl -O " & urlStr
end if
end repeat
beep 3
activate
display dialog "Downloads complete." buttons {"OK"} default button "OK"
end open
0767名称未設定
05/02/26 12:59:19ID:pBGAUjimOS9.2.2,AS1.6,FinderPop,Sandi'sAdditions
以下のスクリプトで、クリップボードデータの受け渡しがうまくいかない。
使用方法はグローバルスクリプト。
どうしたら渡せるのか?
tell application ((path to frontmost application) as string)
activate
TypeText "c" with Command
display dialog (the clipboard as string)
end tell
0770名称未設定
05/02/26 15:43:33ID:BHNnr81h0771名称未設定
05/02/26 16:27:16ID:KXZW03yr0772名称未設定
05/02/26 21:28:16ID:9yHd50wEん?
フロントアプリケーションで使うんだからactivateはあってもなくても動く。
この場合あったほうが確実だろ?
>>769
それで動いたの?
それはだいぶ前にやってみてダメだったんだが。
>>770
標準機能追加は1.6だが。
0773754,756,762
05/02/26 21:32:58ID:O/k/FA51テキストでなくファイル参照です。alias か item として取り出せないかと。
>>765
それです!それがしたかったんです。
でも1項目じゃないとできないのが残念。
the clipboard は as record することで内容がかなり変わるんですね。
ありがとうございました。
0774名称未設定
05/02/27 00:35:03ID:jHfXP7qDクリップボード、
ToolBoxな名前ではスクラップって言うのだが、
これにはアプリ固有のプライベートスクラップと
システムの管理するデスクスクラップってのがある。
当然、the clipborad はデスクスクラップを意味している。
で、アプリでcmd+Cとかメニュー操作でコピーした時、
そのデータがプライペートになるか
デスクスクラップになるかはアプリ次第。
ただ、どこかのタイミングで同期は行われている。
で、大抵は、
アプリケーションが、
・最前面になったとき。
・最前面でなくなったとき。
ってのが一般的。
またデスクスクラップ自体、実はアプリケーションのヒープ内にあって
アプリケーションの切り替えが発生するたびにコピーされていたりするので、
書き換えを確実に取りたいなら、強制的に切り替えを発生させてやる
……とうまくいくかもしれない。
0775名称未設定
05/02/27 00:39:26ID:vaKQqrbzアプリを切り替えたときに「クリップボードに転送できませんでした」とか出るよね
0776名称未設定
05/02/27 04:59:47ID:yrI+gjWE0779名称未設定
05/02/27 18:39:21ID:JB5GEo6D一旦スクリプトを抜ければ良いと思うが、そういう方法あった?
HyperCardでApplicationメニュー(右上のアプリ切り替え)を
do menu で「実行」した時はうまくいった。
0780名称未設定
05/02/27 19:13:15ID:jHfXP7qD状況がわからないのでなんとも言えないが、
・クリップボードアクセスは基本的に最前面のアプリだけが行う(前提で仕組みができている)。
・データのサイズによって更新に多少時間が掛かる。
・アプリでコピーしたものが独自のデータ形式だと、外部からは参照できない(プライベートスクラップに止まる)。
・ダイアログが出てたりする場合は難しいかも。
みたいな…。とりあえず delay でも入れてみたら?
--sampleみたいな
tell application "TextEdit" to activate
TepyText "C" with Command
tell application ((path to me) as string) to activate
delay 1
set cbData to the clipboard
0781名称未設定
05/02/27 19:22:03ID:jHfXP7qDdelayを入れないとダメな場合がある。
このへんは更新に時間が掛かると言うより、
アプリに送られるイベントの順番あたりの問題かも。
0782名称未設定
05/02/27 19:28:28ID:jHfXP7qDFinderPopってことは自分自身がターゲットで
かつスクリプトロードをしてるってことになるのかなあ?
そのへんが問題なのかもしれないけど、
仕組みがわからないので、なんとも言えない。
一度 Finder を activate してとかやってもダメなの?
0783名称未設定
05/02/27 23:59:00ID:asDKO/5I試しにアプリケーションを切り替えるツールボックスを呼び出した時はダメだった。
クリップボード更新のタイミングが良く分からない。
ファインダーが絡んでいるようだが、一旦スクリプトを抜ける必要があるかも。
0784767
05/02/28 22:26:39ID:gSlR6Z3Sその環境はOSX?
そのスクリプトもクリップボードが更新しない。
delayは効果ない。
delay中に裏で更新してくれればいいのだが、そういう造りになってないだろ。
最終的にダイアログは使わない。
使わなくてもうまくいかない。
Finderに切り替えてみると、Finderで選択中のファイル名が取得されてしまう。
つまりFinderでコピーしているのと同じ。
クリップボードイベントの終了をチェックするような方法があれば可能なんだろうが。
あるいは>>783が言うように、一旦スクリプトを抜ける方法とか。
0785名称未設定
05/03/01 00:24:25ID:5ysN9tgMOS9.1
あくまでもスクリプトエディター上からの動作だけ確認している。
うちのシステムだとdelayがないとTextEditからは拾えなかった。
TypeTextした後にFinderに切り替えて、
Finderの選択項目を拾うなら、
それはなにかの理由でTypeTextが
ブロックされてるか、遅延を起こしてる
ってことじゃないのかな?
0786767
05/03/01 12:45:01ID:Rj33UOH5スクリプトエディタ上だけで動作しても意味ないんだよ。
TypeTextがブロックまたは遅延されないように、
先にも上げたクリップイベントの終了チェックや
一旦スクリプトを抜ける方法はないかと言ってるわけで。
0787名称未設定
05/03/01 13:28:17ID:COXLd6LA汎用的なコピーの手段で悩んだクチだけど、
まずtryでcopyを使ってみては?
……そのcopyもアプリによって意味が違うわけだけど。
Apple Eventには必ずcopyに相当するものって無かったでしたっけ?
0788名称未設定
05/03/01 15:58:33ID:EEUyvpus他のアプリでは使えないんじゃないか?
0789名称未設定
05/03/01 16:06:05ID:0BgmwL620790名称未設定
05/03/01 22:34:50ID:K5q1AeKX数ticks後に自分にイベントを送る、という機能がASあればいいのに。
RuntimeRevolutionの「send xx to yy in zz ticks」みたいの。
0792名称未設定
05/03/03 16:17:49ID:xCgerxvy環境 Mac OS 9.2.2
0793名称未設定
05/03/04 20:30:28ID:Sm7173gwフィールドのAS名をtextにして、Window名がwindow1で、
set str1 to string value of text field "text" of window "window1"
display dialog "こんにちは、" & str1 & "さん!"
とボタンが押された時のスクリプトに組み込んだのですが、
ボタンを押すとどうしても「The variable str1 is not defined. (-2753)」とダイアログが出てしまいます。
AppleScript系のサイトにある文そのものを引っ張ってきてテストしてみたので合ってるはずなのですが・・・
0794名称未設定
05/03/04 21:49:12ID:lhvASUCn構文はあっているみたいですけど。
他のオブジェクトにtellした中にいれたりしてませんか?
set str1 to string value of text field "text" of window "window1" of me
その場合は of me にすると上手くいきます。
0796名称未設定
05/03/06 01:05:57ID:5D4PwpvBうちにある本だと
set str1 to contents of text field "text" of window "window1"
ってなってるけどどうよ?
0797名称未設定
05/03/06 01:17:45ID:9JcdYuPY参考になさったの、つやのさんところですかね。
(全体的に流れがつかみにくい構成の文だったけど)
あの指示通りにやってみましたが問題なく動きました。
もう一度順を追ってやり直してみてはいかがでしょか。
0799名称未設定
05/03/06 15:21:27ID:vz85BPc4(-2753)は書式の問題らしい。
「Script Editor」の[編集]-[AppleScriptフォーマット...]の書式で、
使用するフォントを、「演算子および句読点(+&、)」は英字フォント(Chicagoなど)に、
その他は日本語フォント(Osakaなど)に設定で直るかも。
0800793
05/03/06 16:40:23ID:7CbZyZUjいえ、角ゴのままで今までScriptEditorで書いてきたのですが-2753は出てきませんでした。
なんでだろう・・・
あと、もう一つASStudioで質問なんですけど、どうしてもコマンド結果が出力されません。
つやさんの所ではCPUの使用率ということでpxコマンドの出力が出来る文が出てるので、
あれを加工してcurl >コマンドの結果をテキストビューに出そうとしたいのですが、
どうしても結果が出ずに録音コマンドだけが送られてしまいます。
ちなみにソースはこうです。
on clicked theObject
if name of theObject is "StartBTN" then
set URLf to contents of text field "URLf" of window "curlTest"
set OUTf to contents of text field "OUTf" of window "curlTest"
do shell script "curl" & space & URLf & space & ">" & space & "/users/" & OUTf
set contents of text view "TEXT" of scroll view "View" of window "curlRadioRecoder" to result
end if
end clicked
何度も何度もすみませんorz
0801名称未設定
05/03/06 18:16:38ID:vz85BPc4do shell script は非対話型にしか対応してません。
なので下記のようになります。
do shell script "curl -o " & OUTf & space & URLf
0802名称未設定
05/03/06 18:41:52ID:vz85BPc4「OUTf」でファイルに出力しているので、read かな。
read (OUTf as POSIX file as alias)
0804名称未設定
05/03/06 22:25:14ID:vz85BPc4result の部分を read ("/users/" & OUTf as POSIX file as alias) ですよ。
エラーを吐くという事は、やはり書式の問題では・・・
0805hirano
05/03/07 18:32:09ID:wGJTVuNVなるほど勉強不足でしたね。「参照」がわかってませんでした。
さて
>>793さんのAppleScript Studio、手元で実験しました。
MacOSX 10.3.8 + Xcodeでやってみると
793そのままのスクリプトで成功します。
Interface Builderで何箇所かに入れるチェックが
入れ忘れとかじゃないですかね。(想像)
参考書は掌田氏「ASSでゼンマイびゅんびゅん」です。
0806793
05/03/07 20:08:01ID:Lh5ie9nZすみません・・・場所を変えてもどうしても結果をリアルタイムどころか吐き出しません・・・
set OUTf to ~ と do shell script ~ の間だとCan't make file.
do shell script ~ と set contents of ~ の間だと録音のみで固まって結果を吐き出さないです。
なんでだろう・・・
0807名称未設定
05/03/14 22:38:53ID:QC+wTUPA最近studioを使い始めたので久々にage
0808名称未設定
05/03/15 12:35:52ID:a3uiFTN0しょうがないんかねー。
またTigerで変わるんやろうな。
0809名称未設定
05/03/15 19:10:51ID:Lq9Id6Teしかも放置されたまんまのバグもけっこうあるみたいだし。
0810名称未設定
05/03/15 23:00:44ID:hA447gju0811名称未設定
05/03/16 00:47:02ID:WS7r1QOdら、Automatorはフロントエンドに過ぎないと何度いったら(ry
0812名称未設定
05/03/16 01:37:38ID:MrijEpsc何でもかんでもASで完結させるんじゃなく。
0813名称未設定
05/03/16 07:06:36ID:M2Ai7LeZAutomatorはFilterTopの焼き直しですな。
こういうのは昔からあって出ては消えを繰り返してるんだけど、
知らない人には新しい物に見えると。次に登場するのはCommando
のposix版あたり?
0814名称未設定
05/03/16 10:10:18ID:FoOOlN/sそのへんでAS本体との棲み分けになるんだろう
0815名称未設定
05/03/16 11:11:09ID:miQ+MN4AそういうのはシェルやXcodeでやってくれ、ってことなんだろうな。(´・ω・`)
0816名称未設定
05/03/16 19:46:30ID:F4Qg1rYp↓
必要に応じてAppleScriptで編集(中・上級者)
こんなもんなんだろ?
0817名称未設定
05/03/17 00:27:00ID:RFSXuQGy0818名称未設定
05/03/17 03:06:04ID:ueGhawPn↓
2.Automator向けにモジュールを作る。(中・上級者)
↓
3.Automator使う。欲が出る。(初心者/クレ厨)
↓
1.に戻る
中・上級者がAutomatorにどんな意義を見い出せるかがポイント。
0819名称未設定
05/03/19 22:39:51ID:GrHwU7HNXCODEより少ししきいが狭いくらいか。
スクリプトアプリケーションで十分だ。
0820名称未設定
05/03/19 22:50:02ID:r0w1fw6jできあがったスクリプトは現在のアップルスクリプトと互換性あって
スクリプトメニューや各種AppleScript実行ソフトから
実行できるようになるのかな?
0821名称未設定
05/03/19 23:01:52ID:rLg9WzBm0822名称未設定
05/03/20 01:57:44ID:UESIBkw90823名称未設定
05/03/20 02:03:32ID:J/X/ATEk0824名称未設定
05/03/20 09:38:46ID:KmoEkUZ80825名称未設定
05/03/20 12:16:15ID:Le3n3OaK自動的に書いてくれるだけだと思う。
保存したファイル内では、Automatorのデータ部分と、
AppleScriptとして書き出した部分の二重構造になっていて、
実行するのはAppleScript、編集するときはAutomatorのデータ部分をいじることになると思う。
それがAppleにとって、一番開発費がかからない手法かと。
0826名称未設定
05/03/20 13:30:35ID:gUzs+FiP0828名称未設定
05/03/20 15:32:11ID:AdUH607Jコンパイルすると勝手に「thelist」になってしまう。
これはどうすればいいのでしょうか。
0829名称未設定
05/03/20 17:06:14ID:UESIBkw9スクリプトエディタを再起動する。
0831名称未設定
2005/03/21(月) 08:08:19ID:s0zjlu+Ettp://developer.apple.com/macosx/tiger/automator.html
0832名称未設定
2005/03/21(月) 10:53:33ID:32KGtOYWhttp://developer.apple.com/macosx/tiger/automator.html
のページのUsing Automatorのwindowの画像の下の下のパラグラフ
>>Once you have created a Workflow, you can save it as an editable document.
と
>>There aretwo more options for saving Workflows so that they can be run without Automator. The first is as a standalone application.
0833名称未設定
2005/03/21(月) 15:35:34ID:NDm48uZTエンドユーザがちょっとした作業の為に作るには少し敷居が高い感じ。
0834名称未設定
2005/03/21(月) 17:12:15ID:vFw7/cB+0835名称未設定
2005/03/22(火) 22:25:13ID:IVRdkebV旧来のapplescript's text item delimitersでやったほうが50倍以上速いね。
0836名称未設定
2005/03/23(水) 22:26:31ID:fHGhPwmV0838名称未設定
2005/03/23(水) 22:43:38ID:BoeEguXrttp://blogs.dion.ne.jp/fujidana/archives/109436.html
0839名称未設定
2005/03/23(水) 22:51:59ID:gU71zK1gas studioを使うようになってから文字列はとにかくas unicode textにしていたんだが、
boolean変換でつまづいたのはそういうことだったのか。
0840名称未設定
2005/03/25(金) 01:06:04ID:JT51xWuXこのスレのテキストをコピーして、改行を適当な文字列に置き換えようとしたりするとクラッシュするはず。
0841名称未設定
2005/03/25(金) 02:18:58ID:gUgPhIOv4000を超えるようなリストを変数に入れたりするとスタックオーバーフローになること?
それなら分割すれば大丈夫だよ。
0843名称未設定
2005/03/27(日) 11:13:58ID:Z7zQSB7L0844名称未設定
2005/03/30(水) 15:54:54ID:w/OwYmFM0845名称未設定
2005/04/02(土) 16:43:47ID:vG0R67c3うひゃー。そんな大きなデータ扱うようなもの作った事ないや・・。
スタックオーバーフローは再帰とかで見た事あるけど。
0846名称未設定
2005/04/02(土) 22:26:12ID:1WIG3DLi0847名称未設定
2005/04/02(土) 23:32:17ID:vG0R67c3デリミタでテキストをリストにする場合を考えたら
案外4000項目のリストっていうのも身近な話ですね。
でもそういうのはだいたいPerl(旧OSの時はMacJPerl)呼び出しでやってるからな。
0848名称未設定
2005/04/04(月) 01:29:52ID:R/CzAUEmそのままdefault entryに書き込むことはできないのでしょうか?
書き込んでも空のStringになってしまいます。
0849名称未設定
2005/04/04(月) 12:37:18ID:ueSxPmHXそれと、propertyでの設定で一つの代用に複数の文字列を入れたいのですが、
コンマ区切りやor区切りでやってもbooleanに変更できませんと言われたのですが、
これも実質複数の言葉を代入するのは不可能なのでしょうか?
0850名称未設定
2005/04/04(月) 19:12:40ID:7xMSgPA5set a to character -1 of text returned of (display dialog 〜〜〜)
display dialog 〜〜〜 default answer a
複数の文字列はリスト形式で。
property b : {"1", "2,", "3"}
その中のひとつを取り出すときは
item 1 of b
とする。二番目のを取り出すなら
item 2 of b
0852名称未設定
2005/04/06(水) 20:16:58ID:6DEvqp9hフォルダの並べ替えを選ぶの
property theSort : {"name", "size", "kind", "label", "creation date", "modification date", "comment", "version"}
tell application "Finder"
activate
choose from list theSort with prompt "Sort by:" default items "kind" without multiple selections allowed
set strSort to result
set view of window 1 to strSort
end tell
もいっこ、フォルダを選んで開くやつ
property theRecord : {ツ
{name:"cache iCab", URL:"OS9:書類:browser pref:pref iCab"}, ツ
{name:"cache Mozilla", URL:"OS9:書類:browser pref:pref Mozilla"}, ツ
{name:"cache MSIE", URL:"OS9:書類:browser pref:pref MSIE"}, ツ
{name:"cache Netscape", URL:"OS9:書類:browser pref:pref Netscape"}}
set nameList to {}
repeat with i in theRecord
set end of nameList to name of i
end repeat
set theName to (choose from list nameList with prompt "Cache folder of browser:" OK button name "OK" cancel button name "Cancel") as string
if theName is not "false" then
try
repeat with i in theRecord
if theName = name of i then set theLocation to URL of i
end repeat
end try
select file theLocation
open selection
end if
0853名称未設定
2005/04/06(水) 20:22:09ID:7si5qffvselect file theLocation
ここが怪しい。
0854名称未設定
2005/04/06(水) 22:33:30ID:fXVUda4qある座標を指定してクリックさせる事はできますか?
用語説明やネット検索で、メニューやダイアログのボタンなどは
クリックできることは分かりました。
しかし、用語説明で「at list」の後ろへ座標らしき{x,y}という記述はありますが
意味がよく分かりません。
なにかヒントがあれば教えてください。
0855せぶん
2005/04/07(木) 01:02:50ID:WWWb2Al0【OS】Mac OS 9
【Q】「そのファイルが入っているフォルダの指定方法」がわかりません。
【やりたいこと】「GraphicConverter」を使ってスライドショーを実行。
1)フォルダをドラッグ&ドロップしたら、そのフォルダ内容をスライドショーで表示。
ここの掲示板などを参考に下記のようなスクリプトを作り、問題なく動いています。
----------
--フォルダをDrag & Dropすると、その中身のスライドショーを開始する
on open the_Target
try
tell application "GraphicConverter"
activate
slideshow the_Target
end tell
on error
return
end try
end open
----------
《つづく》
0856せぶん
2005/04/07(木) 01:04:43ID:WWWb2Al02)もしドラッグ&ドロップされたものが「ファイル」だったら、そのファイルが
入っているフォルダをスライドショーの対象にしたい。
【考えたこと】
ドラッグ&ドロップされたアイテムのname(pathのほうがいいのか?)を取得し、
もし「:」で終わっていなければ「ファイル」と判断する。→
そのファイルが入っているフォルダを、上記スクリプトの変数「the_Target」に
指定する。
‥‥ということを考え、以下の部分を上記スクリプトの冒頭に追加しました。
----------
--Drag & Dropされたものがファイルの場合、そのファイルが含まれるフォルダを対象に。
tell application "Finder"
set Target_name to (name of the_Target as text)
if Target_name does not end with ":" then
set the_Target to path to container window of the_Target
end if
end tell
----------
↑この部分がどうしてもうまくいきません。
何か根本的な間違いをしていると思うのですが‥‥。
ご存じの方、よろしくご教示ください。
《つづく》
0857せぶん
2005/04/07(木) 01:05:18ID:WWWb2Al0【さらに・・・】
対象のフォルダの中身はPhotoshop EPSファイルです。
中身をざっと確認するだけならPhotoshopよりもGraphicConverterのほうが
早いのでこのスクリプトを作ろうと思ったわけですが、エラー処理として
「もしフォルダの中身のファイルがEPSファイルでなかった場合は中止」と
いう処理を追加したいと思いましたが、それ(↓)もうまくいきません‥‥。
if (file type of the items of entire contents of the_Target) is not equal to "EPSF" then return
《EOF》
0858名称未設定
2005/04/07(木) 01:18:14ID:KOJlqDrjぱっと見ただけだけど、the_targetはリストだから
アイテムを1個1個取り出して処理しないとだめじゃない?
特に最後のEPSうんぬんは。
0859名称未設定
2005/04/07(木) 01:35:20ID:ogGYkybHttp://www.lemkesoft.com/en/graphscripts.htm
0860せぶん
2005/04/07(木) 15:06:30ID:WWWb2Al0>>858
》ぱっと見ただけだけど、the_targetはリストだから
》アイテムを1個1個取り出して処理しないとだめじゃない?
フォルダにしろファイルにしろ、ドラッグ&ドロップするのは1つだけなのですが、それでもリスト形式になるのでしたっけ?
具体的な処理方法がわからないのですが、、、もう少し調べてみます。
》特に最後のEPSうんぬんは。
画像ファイルが入っているフォルダは、EPSならEPSのみ、PICTならPICTのみとなっており、ファイルタイプは混在していません。
ですからその中の1つでもEPSファイルでなければ処理中止‥‥と考えたのですが。
>>859
》ここにスライドショーdropletあるけど参考にならないかな?
》http://www.lemkesoft.com/en/graphscripts.htm
見てみましたが、私が855に書いたスクリプトとほぼ同じでした。
0861名称未設定
2005/04/07(木) 19:29:11ID:eKpM0HIx何かの参考になるのかな。
0862名称未設定
2005/04/07(木) 21:25:43ID:NqRAyWp/多分、、、name of と path to と window がいらない
>>857
フォルダの中の第一階層だけ見ればいいのか
set not_EPSF to every file in the_Target whose file type is not "EPSF"
ひとつでもEPSファイル以外のモノがあれば中止するのか
if number of not_EPSF > 0 then return
フォルダの中のフォルダの中にEPSファイルがある時はどうするかとか
細かい所が解らないと対処出来まへん
0863名称未設定
2005/04/07(木) 22:02:35ID:rkqsmelEon open the_Target
tell application "Finder"
set the_TargetOne to (item 1 of the_Target) as alias
if kind of the_TargetOne is not "フォルダ" then
set the_TargetOne to (container of the_TargetOne as alias)
end if
if file type of item 1 of the_TargetOne is not "EPSF" then return
try
tell application "GraphicConverter"
activate
slideshow the_TargetOne
end tell
on error
return
end try
end tell
end open
複数フォルダのドロップには対応してません。
0864名称未設定
2005/04/07(木) 22:56:19ID:rkqsmelE0865せぶん
2005/04/07(木) 23:29:06ID:WWWb2Al0先にこちらから‥‥。
>>863
ご教示、ありがとうございます。
結果は大成功でした!!!
>>864
後述しますが、対象の画像フォルダの中にはさらにフォルダはない
のでOKです。
自分のスクリプトと見比べると余分なものがなく、すっきりとして
見通しがいいですね。
また、「kind of」や「as alias」の使い方も勉強になります。
自分のはそれらしいコマンドを羅列しているだけのようで、恥ずか
しいです。
重ねてありがとうございました。
・・・とこれだけで終わってしまっては単なる教えてクンになって
しまうので、もう少し続けていいでしょうか。
私と同様のところでつまずいている初心者の手助けになればと‥‥。
0866せぶん
2005/04/07(木) 23:38:07ID:WWWb2Al0アドバイス、ありがとうございます。
--on open the_Target
--Drag & Dropされたものがファイルの場合、そのファイルが含まれるフォルダを対象に。
tell application "Finder"
set the_Target to choose file★ -- for debug
set Target_name to (the_Target as text)
display dialog Target_name -- for debug
if Target_name does not end with ":" then
set the_Target to container of the_Target
end if
display dialog (the_Target as text) -- for debug
end tell
--if (ここにファイルがEPS形式でなかった場合の処理) then return
--try
tell application "GraphicConverter"
activate
slideshow the_Target
end tell
(*
on error
return
end try
end open
*)
−−−−−−−−−−−−−−−
《つづく》
0867せぶん
2005/04/07(木) 23:39:19ID:WWWb2Al0ご指摘の部分を削ってみました。
スクリプトがどのように動作しているのかを確かめるために、ドロップレットだったものの
「on open」と「end open」をコメントアウトし、「-- for debug」の行を書き加えました。
また「try〜on error〜end try」部分もコメントアウトしました。
【実験ファイルの置き場所状態】
Data HD:Test folder:sample_file-01.eps、sample_file-02.eps・・・・
(Test folderの中に入れ子になっているフォルダはありません)
【実験方法】
上記スクリプトの★の箇所を「folder」と「file」に変えて実験。
【結果】
1)フォルダを指定した場合→従来通り問題ありません。
■フォルダを指定した時の「履歴」ウインドウ内容-----------
tell application "Finder"
choose folder
--> alias "Data HD:Test folder:"
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
end tell
tell application "GraphicConverter"
activate
slideshow alias "Data HD:Test folder:"
end tell
《つづく》
0868せぶん
2005/04/07(木) 23:40:52ID:WWWb2Al0コロンの場合はそれを含むフォルダにする」というのはうまくいって
いるようです。しかしスライドショーは実行されず、エラーになります。
■ファイルを指定した時の「履歴」ウインドウ内容--------
tell application "Finder"
choose file
--> alias "Data HD:Test folder:sample_file-01.eps"
display dialog "Data HD:Test folder:sample_file-01.eps"
--> {button returned:"OK"}
get container of alias "Data HD:Test folder:sample_file-01.eps"
--> folder "Test folder" of disk "Data"
get folder "Test folder" of disk "Data"
--> "Data HD:Test folder:"
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
end tell
tell application "GraphicConverter"
activate
end tell
tell application "Finder"
ヌevent GKONslidネ folder "Test folder" of disk "Data"
--> Finder got an error: folder "Test folder" of disk "Data" doesn't understand the slideshow message.
ここ↑の最後を見ると「slideshowという命令が理解できない」とありますが、そのエラー
を出しているのがGraphicConverterではなくFinderだというのもナゾです。
最後の「tell application "Finder"〜」の部分はスクリプトにはないものなのですが、そ
ういう仕組みになっているのでしょうか?
※毎回、長文ですみません・・・。
0869せぶん
2005/04/07(木) 23:41:30ID:WWWb2Al0コロンの場合はそれを含むフォルダにする」というのはうまくいって
いるようです。しかしスライドショーは実行されず、エラーになります。
■ファイルを指定した時の「履歴」ウインドウ内容--------
tell application "Finder"
choose file
--> alias "Data HD:Test folder:sample_file-01.eps"
display dialog "Data HD:Test folder:sample_file-01.eps"
--> {button returned:"OK"}
get container of alias "Data HD:Test folder:sample_file-01.eps"
--> folder "Test folder" of disk "Data"
get folder "Test folder" of disk "Data"
--> "Data HD:Test folder:"
display dialog "Data HD:Test folder:"
--> {button returned:"OK"}
end tell
tell application "GraphicConverter"
activate
end tell
tell application "Finder"
ヌevent GKONslidネ folder "Test folder" of disk "Data"
--> Finder got an error: folder "Test folder" of disk "Data" doesn't understand the slideshow message.
ここ↑の最後を見ると「slideshowという命令が理解できない」とありますが、そのエラー
を出しているのがGraphicConverterではなくFinderだというのもナゾです。
最後の「tell application "Finder"〜」の部分はスクリプトにはないものなのですが、そ
ういう仕組みになっているのでしょうか?
※毎回、長文ですみません・・・。
0870せぶん
2005/04/07(木) 23:45:55ID:WWWb2Al0あれっ、どういうわけかダブってアップされてしまいました。
申しわけありません。
0871名称未設定
2005/04/08(金) 01:10:47ID:5n7nWWNzslideshow alias "Data HD:Test folder:"
という書き方でないとだめで
slideshow folder "Test folder" of disk "Data"
だと怒られるようです。なので>>866の
set the_Target to container of the_Target の部分を
set the_Target to (container of the_Target as alias) または
set the_Target to (container of the_Target as string)
としてやればいいみたい。多分。
0872名称未設定
2005/04/08(金) 01:15:08ID:33KIGIidset afolder to container of afile as alias
これじゃだめ?
0875名称未設定
2005/04/11(月) 22:25:42ID:7VynQ2X5できますか?
0876名称未設定
2005/04/11(月) 22:52:39ID:1aQmMcXH0877せぶん
2005/04/14(木) 21:35:21ID:qWyBe5xV>>871
みなさんのアドバイスを元に、下記のようにしました。
-------
on open the_Target
tell application "Finder"
set Target_name to (the_Target as alias)★
if Target_name does not end with ":" then
set the_Target to container of Target_name as alias
end if
end tell
(* 対象ファイルがEPSFでなかったらreturn *)--今回は記述を割愛
try
tell application "GraphicConverter"
activate
slideshow the_Target
end tell
on error
return
end try
end open
-------
この状態では「ファイルをDrag & DropするとOK、フォルダをDrag & Dropすると
NG(そのフォルダの上の階層が対象になる)」となります。
★印の「as alias」を「as text」に変えると、逆に「ファイル=NG(Can't get
container of "ファイルのフルパス"‥‥というエラー表示)、フォルダ=OK」となります。
う〜む、どうしたらいいんだろう‥‥。
0878名称未設定
NGNG0879名称未設定
2005/04/14(木) 23:39:19ID:J8NuRQa9if (Target_name as text) does not end with ":" then
set Target_name to (the_Target as alias)
else
set the_Target to container of Target_name as alias
end if
とでもすればいいんでないの
0881名称未設定
2005/04/15(金) 15:16:37ID:H/awuOw80882名称未設定
2005/04/15(金) 16:39:48ID:hwvvIIeE0883名称未設定
2005/04/15(金) 20:02:51ID:iV54wXpJ「この曲なんだっけ」「誰だっけ」と思ったタイミングで
ID3タグの情報をiAlertで表示するスクリプト。
CornerClickやSparkと組み合わせると使い勝手が良くなります。
どんなに小さくてもフローティングウインドウは邪魔と感じるiBookユーザーにおすすめ。
要iAlert 5.1以上。Panther専用スマソ。
iAlert
http://angeman.perso.cegetel.net/iAlert/index.php?language=en
0885名称未設定
2005/04/17(日) 06:17:32ID:mcj8jRuvtell application "Safari"
activate
open location "http://www.apple.com/jp/"
end tell
delay 5--環境次第で調節
tell application "System Events"
tell process "Safari"
click menu item "プリント..." of menu "ファイル" of menu bar 1
delay 2--環境次第で調節
click button "PDF として保存..." of UI element 3 of sheet "プリント" of window 1 of application process "Safari" of application "System Events"
delay 2--環境次第で調節
click button "保存" of window "ファイルに保存" of application process "Safari" of application "System Events"
end tell
end tell
0887名称未設定
2005/04/17(日) 17:36:47ID:91kqFC49repeat
activate application "CocoMonar1096"
tell application "System Events"
tell application process "Cocomonar"
keystroke "r" using command down & shift down
keystroke "test"
keystroke tab using shift down
keystroke "sage"
keystroke "r" using command down & shift down
end tell
end tell
delay 30
end repeat
0890名称未設定
NGNG0891名称未設定
2005/04/23(土) 22:17:22ID:9IYi4adUで、こうやったら完了していないToDoを取得できたんですけど、、、
set theToDo to {}
tell application "iCal"
set CalendarList to every calendar
repeat with CurrentCalendar in CalendarList
set TodoList to every todo of CurrentCalendar
repeat with CurrentTodo in TodoList
if not (exists (completion date) of CurrentTodo) then
set CurrentData to {summary, priority, due date} of CurrentTodo
set end of CurrentData to title of CurrentCalendar as Unicode text
set end of theToDo to CurrentData
end if
end repeat
end repeat
end tell
theToDo
問題点の一つ目は、「メモ」の取得の仕方が分からないこと。もう一つは、うちのiCalのカレンダがClieのeにちょんがついてるんだけど、あの文字が化ける。
誰か教えてくらはい。
0892名称未設定
2005/04/23(土) 22:33:15ID:NotZGERX0893名称未設定
2005/04/23(土) 23:07:31ID:9IYi4adUありがとさんです。
取得した文字はREALbasicから使おうと思ってまして、実は、REALから読むと、ちゃんとeにちょんになってました。スクリプトエディタの結果の表示がおかしかっただけですた。
おさわがせしてすみません。
メモのほうはどなたかご存じない?
0894名称未設定
2005/04/23(土) 23:08:51ID:DDGgejQLhttp://192.168.11.2/
http://192.168.11.2/~ss.jpg
http://D49SFF1X/
http://D49SFF1X/~ss.jpg
0895891
2005/04/25(月) 04:43:19ID:F6QWpO70documentに書いてないものはやっぱり無理っすかねえ。
出て来たものを文字列で処理したんですが、この文字列、UTF-16みたいです。
REALbasicはUTF-8で処理するので、変換する必要がありました。
どなたかの参考になれば。
0896名称未設定
2005/04/27(水) 12:31:12ID:tD+fUi0hハクるぞ!!
AppleScript Studioはどうなってるのかな。
0897名称未設定
2005/04/30(土) 01:49:18ID:RTLZjgqYあと部品がいろいろ増えてるけどワカンネ
0898名称未設定
2005/04/30(土) 05:03:27ID:L6nO+Nbp0899名称未設定
2005/05/01(日) 02:16:13ID:q5+1IYgQ使いたい場面が出てくれば使うのかもしれないが、ASヲタなら書いた方が速いもんなあ。
0900名称未設定
2005/05/01(日) 11:12:18ID:C4qsokWK「キーボードから文字を打ち込む」時点で「漏れには無理」と尻込みする人もいるから
そういう人に向けた機能だと思った方がいいかもしれない
でも本当に単純な作業の繰り返しならAutometorの方が楽だった
条件分岐とかはできないからそういう時はAppleScript使えってことで
0901名称未設定
2005/05/01(日) 11:41:59ID:GYXYiYUL乙女タンいまいち。
0902名称未設定
2005/05/01(日) 22:14:26ID:rk7FUsukファイル名を取り出そうとして name of input とやると
name of alias "Macintosh HD:Users:username:desktop:hoge.txt" を取得できません
とか言われちまう。いや、そこに出てるファイル名が欲しいんだけど...
0903名称未設定
2005/05/01(日) 23:20:25ID:PAEjegQQ0904名称未設定
2005/05/01(日) 23:56:21ID:s4x92j3ton idle
try
tell application "Finder"
set current view of window 1 to column view
end tell
end try
return 1
end idle
コンパイルする→アプリ保存→ログイン項目に登録
ログアウト→ログイン→アクティビティモニタを開く
なんかやたらにCPU喰ってる。んだけど、
ログイン項目に入れないで、ふつうに起動すると、べつにそうでもない…
なんだこれ?
0906名称未設定
2005/05/05(木) 14:03:37ID:ScyJQFY8で中身が変わった。utf16の項目ができた。
と思う。
0907367
2005/05/07(土) 22:01:25ID:rVjkPLja0908名称未設定
2005/05/07(土) 23:54:27ID:t9iL9F8mパーソナルWEB共有開始をするスクリプトを作ってみたんですが、
もっと、マシなやり方は、ありますか?。
do shell script "sudo apachectl start" password "hogehoge" with administrator privileges
一応、動作はしてますが・・・。
0911名称未設定
NGNG10.3では
do shell script "ls ~/Library/Application¥ Support/"
これで問題なかったスクリプトが、10.4だとエラーになる。
10.4ではこれならいける。
do shell script "ls ~/Library/Application¥¥ Support/"
aliasをPOSIX path of〜で変換した結果は従来通りなので混乱の元になる。
0912名称未設定
2005/05/10(火) 02:27:55ID:pBeFJmQ510.3でも動かないよ。
do shell script "ls ~/Library/Application' 'Support/"
と書くべき
0913名称未設定
2005/05/10(火) 11:05:03ID:sH/Q7RjT0915名称未設定
2005/05/11(水) 20:41:25ID:nnUeZ8Ii0916名称未設定
2005/05/13(金) 19:58:16ID:ySQEjMOS人間の三大快感
0917名称未設定
2005/05/13(金) 20:23:56ID:QWuYsO6G0918名称未設定
2005/05/14(土) 01:13:41ID:fbuNXHYC0919名称未設定
2005/05/16(月) 13:13:33ID:PaKXQYmp上の場所にあったQuickTime用のScriptを10.3.9で動かしていたのですが、
QuickTimeを7にアップデートしたら動作しなくなってしまいました。
(Save Copy in QT Formatをちょっと改良して、ムービーを一括変換していました)
さらにスクリプトエディタで開くと、何もいじくらなくても、
「構文エラー expression があるべきところですが unknown token が見つかりました」
といったメッセージが表示されて、編集すらできなくなってしまいます。
編集するようにするにはどうしたら、よいのでしょうか?
0921919
2005/05/16(月) 18:43:14ID:m7AJQ+IGありがとうございます。おかげでどうにかいじくれるようになりました。
なんか基本的なことだったみたいで、ちょっと恥ずかしいです。
さて、これからいろいろといじくったり、調べたりしながら解決しないと……。
QuickTimeが変わったからの割にはFinderの操作で引っかかっているみたいだし。
0923919
2005/05/20(金) 18:14:57ID:xYHUM3Ouう〜ん、なんか俺のスキルじゃ無理っぽい。
TigerにしてAutomatorに期待するってのは現状だとまだ不安だし、
何よりもQuickTimeが7になってしまうし。
今どきはQuickTimeのファイルなどをAppleScriptでいじくるなんてのは古いのかな。
0924名称未設定
2005/05/20(金) 23:47:08ID:AYEih1QeQuickTimeのsaveまわりのコマンドの仕様が変更になっているらしいですね。
<<・・・>>みたいな表示になっている行がおかしいところ。
新しいQuickTimeの用語を調べて書き直すように。
0925名称未設定
2005/05/20(金) 23:55:07ID:ELUNu9vwapplescriptのページってなくなったのかね。
つーかリダイレクト先のページの中程にもこのリンク張ってあるんだけど。
0926919
2005/05/21(土) 07:59:10ID:cDOdvQtJsave movie 1 given <<class dfil>>:file new_file, <<class savk>>:self contained
たぶん、ここのことなんだろうなあ。とはわかった(ありがとうございます)のですが、
QuickTimeの新しい用語がさっぱりとわからないです。
0927名称未設定
NGNG<< >>をそれぞれ ヌ ネ に置き換えてもだめ?
0928名称未設定
2005/05/21(土) 10:45:20ID:nJiEdyPm0929名称未設定
2005/05/21(土) 15:53:31ID:vQ8zdavVちゃうちゃう
本当に記述方法のコマンドが変更になっている
だから、その行は同じ意味の別のコマンドに置き換える
めんどうだから試してないけど、用語辞書のsaveのところを見ればわかるよ
0930名称未設定
2005/05/24(火) 02:50:59ID:weIInpsjtell application "Finder"
if (exists of file "ss.jpg" of (path to desktop folder)) is true then
set var to 2
repeat
if (exists of file ("ss " & var & ".jpg") of (path to desktop folder)) is false then
set fileName to "ss' '" & var & ".jpg"
exit repeat
else
set var to var + 1
end if
end repeat
else
set fileName to "ss.jpg"
end if
end tell
do shell script "screencapture -t'JPEG' ~/Desktop/" & fileName
0931名称未設定
2005/05/24(火) 07:30:23ID:UVDJnaK70932名称未設定
2005/05/24(火) 12:51:43ID:/EBXo4E1man screencaptureしたけど、JPEGのQualityは指定できないっぽいね。
Image Eventsも、JPEGのQualityは指定できないみたいだし。
0933名称未設定
2005/05/24(火) 15:20:54ID:eYz1kwfGdelay 3
tell application "TextEdit" to save (front document) in (path to desktop)
0935名称未設定
2005/05/25(水) 01:26:41ID:/5X5z4BK0936名称未設定
2005/05/25(水) 01:51:34ID:vmeCZ+5omake new document with theText
じゃ駄目なの?
0937名称未設定
2005/05/25(水) 01:52:26ID:vmeCZ+5oのほうがいいかな。
0939名称未設定
2005/05/25(水) 02:00:53ID:Dnm6N/gO0940名称未設定
2005/05/25(水) 03:09:37ID:DhQuC+idtell application "System Events"
if (processes whose frontmost is true) is {application process "Script Editor" of application "System Events"} then
existsPlist() of me
else
tell application "Finder"
if (exists of file "nisegurabu050524.plist" of folder "Preferences" of (path to library folder from user domain)) is false then
set theFormat to "PNG"
set theExtn to ".png"
set theOption to "t"
set mA to "1"
set captCursor to "C"
captureIt(theFormat, theExtn, theOption, mA, captCursor) of me
else
set theFormat to (do shell script "defaults read nisegurabu050524 NGImageFormat")
set theExtn to (do shell script "defaults read nisegurabu050524 NGNameExtension")
set theOption to (do shell script "defaults read nisegurabu050524 NGOptionCommand")
set mA to (do shell script "defaults read nisegurabu050524 NGManualActivation")
if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then
set captCursor to "C"
else
set captCursor to ""
end if
captureIt(theFormat, theExtn, theOption, mA, captCursor) of me
end if
end tell
end if
end tell
つづく
0941名称未設定
2005/05/25(水) 03:11:12ID:DhQuC+idif mA is "1" then
tell application "System Events"
activate
set runningApps to (name of processes whose visible is true)
choose from list (runningApps as list) with prompt "Running applications" default items (item 1 of (runningApps as list)) cancel button name "Cancel"
if result is false then
return
else
set theApp to (item 1 of result)
end if
end tell
tell application theApp to activate
delay 1
end if
tell application "Finder"
if (exists of file ("nisegurabu" & theExtn) of (path to desktop folder)) is true then
set var to 2
repeat
if (exists of file ("nisegurabu " & var & theExtn) of (path to desktop folder)) is false then
set fileName to "nisegurabu' '" & var & theExtn
exit repeat
else
set var to var + 1
end if
end repeat
else
set fileName to ("nisegurabu" & theExtn)
end if
end tell
do shell script "screencapture -" & captCursor & theOption & "'" & theFormat & "' ~/Desktop/" & fileName
end captureIt
0942名称未設定
2005/05/25(水) 03:12:21ID:DhQuC+idtell application "Finder"
if (exists of file "nisegurabu050524.plist" of folder "preferences" of (path to library folder from user domain)) is false then
do shell script "defaults write nisegurabu050524 '
{
NGCaptureCursor = 1;
NGImageFormat = PNG;
NGManualActivation = 1;
NGNameExtension = .png;
NGOptionCommand = t;
NGScreenCaptureMode = Fullscreen;
}'"
end if
chooseActions() of me
end tell
end existsPlist
0943名称未設定
2005/05/25(水) 03:12:48ID:DhQuC+iddisplay dialog "Please select." buttons {"Cancel", "Options", "Capture!"} default button 3
if button returned of result is "Cancel" then
return
else if button returned of result is "Options" then
chooseOptions() of me
else
set theFormat to (do shell script "defaults read nisegurabu050524 NGImageFormat")
set theExtn to (do shell script "defaults read nisegurabu050524 NGNameExtension")
set theOption to (do shell script "defaults read nisegurabu050524 NGOptionCommand")
set mA to (do shell script "defaults read nisegurabu050524 NGManualActivation")
if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then
set captCursor to "C"
else
set captCursor to ""
end if
captureIt(theFormat, theExtn, theOption, mA, captCursor) of me
end if
end chooseActions
0944名称未設定
2005/05/25(水) 03:15:25ID:DhQuC+idif (do shell script "defaults read nisegurabu050524 NGManualActivation") is "1" then
set curman to "YES"
else
set curman to "NO"
end if
if (do shell script "defaults read nisegurabu050524 NGCaptureCursor") is "1" then
set captCursor to "YES"
else
set captCursor to "NO"
end if
choose from list {"Image format", "Screencapture mode", "Manual activation", "Capture cursor"} with prompt "Image Format: " & (do shell script "defaults read nisegurabu050524 NGImageFormat") & return & "Screencapture Mode: " (改行)
& (do shell script "defaults read nisegurabu050524 NGScreenCaptureMode") & return & "Manual activation: " & curman & return & "Capture cursor: " & captCursor default items "Image format" OK button name "Select" cancel button name "Done"
if result is false then
return
else
if (item 1 of result) is "Image format" then
chooseFormat() of me
else if (item 1 of result) is "Screencapture mode" then
chooseMode() of me
else if (item 1 of result) is "Manual activation" then
manualAct() of me
else
captureCursor() of me
end if
end if
end chooseOptions
0945名称未設定
2005/05/25(水) 03:22:53ID:DhQuC+idset theFormatList to {"PNG", "JPEG", "GIF", "BMP", "TIFF", "PDF", "PICT"}
set theExtnList to {".png", ".jpg", ".gif", ".bmp", ".tif", ".pdf", ".pict"}
choose from list theFormatList with prompt "Image format" default items "PNG" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set theFormat to (item 1 of result)
repeat with i from 1 to (number of items of theFormatList)
if (item i of theFormatList) is theFormat then
set theExtn to (item i of theExtnList)
exit repeat
end if
end repeat
do shell script "defaults write nisegurabu050524 NGImageFormat " & theFormat
do shell script "defaults write nisegurabu050524 NGNameExtension " & theExtn
chooseOptions() of me
end if
end chooseFormat
0946名称未設定
2005/05/25(水) 03:23:26ID:DhQuC+idchoose from list {"Fullscreen", "Interactive"} with prompt "Screencapture Mode" default items "Fullscreen" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set theMode to (item 1 of result)
if theMode is "Fullscreen" then
set theOption to "t"
else
set theOption to "it"
end if
do shell script "defaults write nisegurabu050524 NGScreenCaptureMode " & theMode
do shell script "defaults write nisegurabu050524 NGOptionCommand " & theOption
chooseOptions() of me
end if
end chooseMode
0947名称未設定
2005/05/25(水) 03:24:04ID:DhQuC+idchoose from list {"YES", "NO"} with prompt "Manual activation" default items "YES" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set mA to (item 1 of result)
do shell script "defaults write nisegurabu050524 NGManualActivation -bool " & mA
chooseOptions() of me
end if
end manualAct
on captureCursor()
choose from list {"YES", "NO"} with prompt "Capture cursor" default items "YES" cancel button name "Back"
if result is false then
chooseOptions() of me
else
set captCursor to (item 1 of result)
do shell script "defaults write nisegurabu050524 NGCaptureCursor -bool " & captCursor
chooseOptions() of me
end if
end captureCursor
~/Library/Preferencesに"nisegurabu050524.plist"というファイルを作ります。
スクリプトメニューから実行するとスクリーンショットを撮り、
スクリプトエディタで開いてから実行するとオプションの設定ができます。
Fullscreenモードはcommand+shift+3と同じ。ただしcontrolを押してもクリップボードには入りません。
Interactiveモードはcommand+shift+4と同じです。
Manual activationをNOにするとSystem Eventsが最前面になるため全ウインドウが非アクティブになります。
Capture cursorをNOにするとカーソルを隠して撮影します。
0948名称未設定
2005/05/25(水) 18:27:59ID:DcENUvYS位置(左下右) を変更したい。一撃で。
0949名称未設定
2005/05/25(水) 19:21:10ID:DhQuC+idchoose from list {"bottom", "right", "left", "top"} default items "bottom"
set theResult to result
if theResult is false then return
do shell script "defaults write com.apple.dock orientation " & ((item 1 of theResult) as string)
do shell script "killall Dock"
0950名称未設定
2005/05/25(水) 22:22:08ID:eDp8eaCctell application "Dock" to quit
のほうが良くないか?
0951名称未設定
2005/05/25(水) 23:51:57ID:DhQuC+idtell application "Finder" to set plistPath to (file "com.apple.dock.plist" of folder "Preferences" of (path to library folder from user domain) as string)
choose from list {"bottom", "right", "left", "top"} default items "bottom"
set theResult to result
if theResult is false then return
tell application "System Events" to set value of property list item "orientation" of property list file plistPath to ((item 1 of theResult) as string)
tell application "Dock" to quit
0952名称未設定
2005/05/26(木) 00:17:22ID:GPIPRdaB今頃気づいた!
0953名称未設定
2005/05/26(木) 00:26:38ID:G31XlElf0954名称未設定
2005/05/26(木) 11:35:42ID:10Q+7tSV0955名称未設定
2005/05/26(木) 20:23:33ID:Ha55uHB5if (exists of process "Safari") is false then return
tell application "Safari" to activate
tell process "Safari"
keystroke "," using command down
tell application "Safari"
set x to true
repeat until x = false
set x to (exists document of window 1)
end repeat
end tell
startClick() of me
if (do shell script "defaults read com.apple.Safari WebKitJavaEnabled") is "0" then
click radio button 3 of radio group 1 of group 1 of group 1 of window 1
if (do shell script "defaults read .GlobalPreferences AppleCollationOrder") is "ja" then
set theMessage to "ごくふつうにしました"
else
set theMessage to "This is very usual setting."
end if
tell application "Safari" to display dialog theMessage buttons {"OK"} default button 1 with icon note giving up after 1
else
click radio button 2 of radio group 1 of group 1 of group 1 of window 1
if (do shell script "defaults read .GlobalPreferences AppleCollationOrder") is "ja" then
set theMessage to "あやしい場所を訪れる準備が整いました"
else
set theMessage to "Now we're ready to visit weird place."
end if
tell application "Safari" to display dialog theMessage buttons {"OK"} default button 1 with icon stop giving up after 2
end if
end tell
tell application "Safari" to if (exists of document of window 1) is false then close window 1
end tell
0956名称未設定
2005/05/26(木) 20:23:53ID:Ha55uHB5tell application "System Events"
tell process "Safari"
try
click button 7 of tool bar 1 of window 1
set x to 0
repeat until x = 3
set x to (number of radio buttons of radio groups of group 1 of group 1 of window 1)
end repeat
click checkbox 3 of group 1 of group 1 of window 1
click checkbox 5 of group 1 of group 1 of window 1
on error
startClick() of me
end try
end tell
end tell
end startClick
0957名称未設定
2005/05/26(木) 20:30:44ID:Ha55uHB50959名称未設定
2005/05/26(木) 21:06:00ID:Ha55uHB5言語環境に依存しないで実行できるように書けないかなと思って。
でも実行前の設定がバラバラだとうまく変更できないことに気づいた_| ̄|○
0960名称未設定
2005/05/26(木) 21:07:06ID:Ha55uHB5○ Cookie
重ね重ねアフォかと_| ̄|○
0961名称未設定
2005/05/28(土) 00:38:16ID:i7I+/fq0要るもの:
「iTunes Musicフォルダを整理する」
「ライブラリへの追加時にファイルを"iTunes Music"フォルダにコピーする」
にチェックが入った状態のiTunes。
GraphicConverter (5.5.xぐらい。5.6はNG)
tell application "Finder"
set artFolder to (choose folder) as alias --ここで新規フォルダを作成
if (exists of (folder "ArtworkTempFolder" of artFolder)) is false then make new folder at artFolder with properties {name:"ArtworkTempFolder"}
set tempFolder to (folder "ArtworkTempFolder" of artFolder) as alias
end tell
tell application "GraphicConverter" to activate
tell application "iTunes"
activate
set myLibrary to (name of playlist 1)
choose from list (name of every playlist as list) default items myLibrary
if result is false then
return
else
set thePlaylist to (item 1 of result) as string
end if
repeat with theTrackNum from 1 to (number of tracks of playlist thePlaylist)
try
set theTrack to (track theTrackNum of playlist thePlaylist)
if artworks of theTrack is not {} then
repeat with awsCount from 1 to (number of artworks of theTrack)
set theTrackPath to (location of theTrack) as alias
0962名称未設定
2005/05/28(土) 00:39:41ID:i7I+/fq0set theTrackName to (name of theTrackPath) as string
set theAlbumFolder to (container of theTrackPath) as alias
set theAlbumName to (name of theAlbumFolder) as string
set theArtistFolder to (container of theAlbumFolder) as alias
set theArtistName to (name of theArtistFolder) as string
set theUpsideDown to ""
set theAudioExtn to (name extension of theTrackPath) as string
repeat with i from 1 to (number of characters of theTrackName)
set theUpsideDown to ((item i of theTrackName) & theUpsideDown)
end repeat
set theOffset to (offset of "." in theUpsideDown)
set theNewName to ""
repeat with i from (theOffset + 1) to (number of characters of theUpsideDown)
set theNewName to ((item i of theUpsideDown) & theNewName)
end repeat
set thePictureName to (theNewName & "(" & awsCount & ").jpg") as string
if (exists of file thePictureName of folder theAlbumName of folder theArtistName of artFolder) is false then
if (exists of folder theArtistName of artFolder) is false then make new folder at artFolder with properties {name:theArtistName}
if (exists of folder theAlbumName of folder theArtistName of artFolder) is false then make new folder at folder theArtistName of artFolder with properties {name:theAlbumName}
0963名称未設定
2005/05/28(土) 00:40:11ID:i7I+/fq0activate
set the clipboard to data of artwork awsCount of theTrack as picture
end tell
set theAssumedName to "artwork.jpg" as string
set thePath to (tempFolder & theAssumedName) as string
tell application "GraphicConverter"
new image from clipboard
save window 1 in (thePath as string) as JPEG with wwwready
close window 1
end tell
tell application "System Events"
set creator type of file theAssumedName of tempFolder to ""
set file type of file theAssumedName of tempFolder to ""
set name of file theAssumedName of tempFolder to thePictureName
end tell
move file thePictureName of tempFolder to (folder theAlbumName of folder theArtistName of artFolder)
end if
end tell
end repeat
end if
end try
end repeat
display dialog "完了" buttons {"OK"} default button 1 giving up after 30
end tell
0965919
2005/05/29(日) 11:38:27ID:vdRz31TSQuickTime7に戻してみるとやはりエラーが出てしまいます。
「Can't get name of "Volumes/***/***/***/***.mov"」
といった感じのメッセージが出るので、問題の文章の前辺りもおかしいのかなあ、と思うのですが……。
tell application "Finder"
set the file_name to the name of this_file
set the new_file to ((the target_folder as text) & the file_name) as string
end tell
save movie 1 given 《class dfil》:file new_file, 《class savk》:self contained
何か解決策やヒント、アドバイスなどありましたら御教示ください。
0966名称未設定
2005/05/29(日) 16:16:11ID:Of0WBwVOset the this_file to (this_file as POSIX file)
set the file_name to the name of this_file
set the new_file to ((the target_folder as text) & the file_name) as string
if (exists file new_file) then ¬
delete file new_file
end tell
save movie 1 in file (new_file as string) as self contained
とりあえずmovのコピーを保存することはできたっぽいけど
そもそもこのスクリプトが何をするものなのか理解できないレベルなので
参考までにということでひとつ。
0967名称未設定
2005/05/29(日) 16:38:51ID:iyPt6iML無駄が多いが、ようはそういうことらしい。
>>965の最後の1行を>>966の最後の一行に入れ替えたら?
0968名称未設定
2005/05/31(火) 06:17:13ID:5WvSUPA/QT7からQuickTime Playerのsaveコマンドの「as self contained」の定義が無くなっている。
これから独立形式のムービーを保存するときは、新しく追加されたsave self containedコマンドを使うっぽい。
最後の行を新しいコマンドに合わせて書き換えると直りそうです。
save self contained movie 1 in file (new_file as string)
0969名称未設定
2005/06/01(水) 00:37:04ID:Fi+tVils0970名称未設定
2005/06/01(水) 05:14:23ID:7Y3WQztG0971名称未設定
2005/06/01(水) 15:01:27ID:P2bm/qA70972名称未設定
2005/06/02(木) 00:24:28ID:QH98HzNstell app "System Events"
key down command
end tell
とやってしまった。戻すのに苦労した。
0974名称未設定
2005/06/02(木) 00:52:48ID:fcMI/f1n0975名称未設定
2005/06/02(木) 02:30:40ID:IeGD1wOsspace & " _ノノ" & space & " + *" & space & return & " '´ " & space & " " & space & "ヽ" & space & " " & space & ¬
" " & space & " " & space & return & " " & space & "l(〈从ノ)))〉 " & space & return & " 'ノl" & space & ¬
"(l.゚" & space & "ヮ゚ノ" & space & "l" & space & " ´ " & space & "/ ゜ ☆ " & space & return & " 、_ " & space & " " & ¬
space & " <´ヽWノフつ " & space & return & ". " & space & " ミ≡=_、_(,ノ(,," & space & "_,-、ゝ____" & space & "-、 " & ¬
space & return & "." & space & " " & space & "彡≡=-'´ ̄ ̄`~し'ヽ) ̄" & space & " ̄ ゙̄"′" & space & return & ¬
" ´" & space & " ☆" & space & return & " " & space & " " & space & "☆" & space
0976名称未設定
2005/06/02(木) 02:39:29ID:IeGD1wOs0977名称未設定
2005/06/02(木) 02:57:11ID:LeGy6sJC「スクリプトエディタ」>「AppleScript として実行」してみた。
うまくいった。>976乙。
0978名称未設定
2005/06/02(木) 19:49:57ID:T/f3AuLh0979名称未設定
2005/06/04(土) 00:33:13ID:JSMjUDQftell application "System Events"
tell process "SystemUIServer"
tell first menu bar
set menuExtraList to every menu bar item
repeat with aExtra in menuExtraList
try
tell aExtra
select
tell front menu
tell menu item "ログインウインドウ..." to click
return 0
end tell
end tell
end try
end repeat
end tell
end tell
beep
end tell
0980名称未設定
2005/06/04(土) 00:37:16ID:IH4KuMke0981名称未設定
2005/06/04(土) 00:48:15ID:GFuQ47XUここが実質的に総合スレということでいいのかな
0982名称未設定
2005/06/04(土) 02:17:36ID:TDFHKBbq出てたと思った。
こっちはアップルスクリプトだけの方が良いと思う。
0983名称未設定
2005/06/04(土) 02:35:35ID:H1r99zwF「AppleScript 6」
でいいと思うんだけど。
0984名称未設定
2005/06/04(土) 02:54:44ID:iE0kq51Zおかげで入力モードをUSにしてからマカエレを起動するスクリプトが書けました。
ありがとう<(_ _)>
0985979
2005/06/04(土) 04:04:26ID:JSMjUDQfでも時々失敗するようなのでちょっと修正
tell application "System Events"
tell process "SystemUIServer"
tell first menu bar
set menuExtraList to every menu bar item
repeat with aExtra in menuExtraList
try
tell aExtra
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
0986名称未設定
2005/06/04(土) 12:42:16ID:xxL0HDD+呼び出されるたびに切り替えるスクリプト。
property kDisplayProfilesPOSIXPath : (("Library/ColorSync/Profiles/Displays" as Unicode text) as POSIX file)
property pProfiles : {missing value, missing value}
--"ファイルのプロファイルを取得"
on AliasGetProfileName(inAlias)
set theName to ("<未設定>" as Unicode text)
try
tell application "ColorSyncScripting"
set profileList to (every profile that location is inAlias)
if (count of profileList) is greater than or equal to 1 then
set theName to ((name of (item 1 of profileList)) as Unicode text)
end if
end tell
end try
return theName
end AliasGetProfileName
0987名称未設定
2005/06/04(土) 12:42:53ID:xxL0HDD+on setProfiles()
tell application "Finder" to set chooserDefault to kDisplayProfilesPOSIXPath as alias
--"選択する必要があることを通知"
if missing value is in pProfiles then
set profilesText to ""
repeat with i from 1 to (count of pProfiles)
set profilesText to profilesText & return & (i as string) & ". " & (my AliasGetProfileName(item i of pProfiles))
end repeat
tell application "System Events"
activate
display dialog "切り替える2つのプロファイルを選択します" & return & profilesText buttons {"OK"} default button 1 giving up after 3
end tell
end if
--"選択させる"
tell application "System Events"
activate
repeat with i from 1 to (count of pProfiles)
if item i of pProfiles is missing value then
choose file with prompt "プロファイル" & (i as string) & "を選択してください" of type {"prof"} default location chooserDefault without invisibles and multiple selections allowed
set item i of pProfiles to result
end if
end repeat
end tell
end setProfiles
0988名称未設定
2005/06/04(土) 12:43:30ID:xxL0HDD+on toggleProfiles()
tell application "ColorSyncScripting"
set setNum to 1
if ((name of display profile of display 1) as Unicode text) is equal to (my AliasGetProfileName(item setNum of pProfiles)) then
set setNum to setNum + 1
end if
try
set display profile of display 1 to (item setNum of pProfiles)
set setName to my AliasGetProfileName(item setNum of pProfiles)
on error errmsg
tell application "System Events"
activate
display dialog "エラー" & return & return & (errmsg as Unicode text) buttons {"OK"} default button 1
end tell
return 0
end try
end tell
activate
display dialog "プロファイルを「" & setName & "」に設定しました" buttons {"設定を消去", "OK"} default button 2 giving up after 1
if button returned of result is "設定を消去" then set pProfiles to {missing value, missing value}
end toggleProfiles
on run
my setProfiles()
my toggleProfiles()
end run
0989名称未設定
2005/06/04(土) 23:56:43ID:9D22aKPA通りすがりのものですが、わたしゃ、今選ばれている入力メニューがなんであっても
目的の入力メニューに一発で切り替えることができるスクリプトを模索していたので、
979と985が参考になりました。3種以上の入力メニューを頻繁に切り替えたいときは、
command-spaceで直前の入力メニューに切り替わるという現行の仕様では使いにくく
てしょうがないわけです。しかし、Menu Extraへのアクセスは回りくどいですな。
クリックしてメニューを表示させなければ item が有効にならないみたいなんで、しょう
がないですけど。
で、システム環境設定のキーボードショートカットを併用する方法も考えてみました。
汎用ではなくて、かなり決め打ち的な手法です。(実演はTigerにて)
【準備】
(1) キーボードショートカットで、「メニューバーのステータスメニューを操作する」に
適当なキーを割り当てる。
(ここでは、command, shift, option - z を割り当てている)
(2) 目的の入力メニューに適当なキーを割り当てる。
(ここでは、U.S. に command, shift, option - ] を割り当てている)
(3) 入力メニューをMenu Extraの一番左に配置する。
(4) ログインし直すと割り当てたキーが有効になる。
tell application "System Events"
keystroke "z" using {command down, shift down, option down}
tell process "SystemUIServer"
tell menu bar item 1 of menu bar 1 to select
keystroke "[" using {command down, shift down, option down}
end tell
end tell
「ひらがな」「Pinyin」などにそれぞれ適当にキーを割り当てて、それぞれを
別個のスクリプトファイルとして保存し、それを適当なユーティリティで起動
します。わたしゃ、iKey2を使ってます。おかげで、切り替えが相当楽になり
ました。どうもでした。
0990名称未設定
2005/06/05(日) 12:02:17ID:3iB7sq8I0991名称未設定
2005/06/05(日) 23:00:58ID:KGQNvadShttp://pc7.2ch.net/test/read.cgi/mac/1117979906/l50
0992名称未設定
2005/06/06(月) 02:02:20ID:Up5D2c3A0993名称未設定
2005/06/06(月) 02:05:19ID:T/b57Yua0994名称未設定
2005/06/06(月) 02:08:56ID:UphQ20Ss0995名称未設定
2005/06/06(月) 17:48:57ID:8aCX37sa0996名称未設定
2005/06/06(月) 18:42:35ID:PRli7Pu50997名称未設定
2005/06/06(月) 19:02:02ID:YLNDCqw00998名称未設定
2005/06/06(月) 19:02:33ID:YLNDCqw00999名称未設定
2005/06/06(月) 19:03:04ID:YLNDCqw01000名称未設定
2005/06/06(月) 19:03:34ID:YLNDCqw010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。