【標準装備】スクリプトエディタ

このエントリーをはてなブックマークに追加
1名称未設定
2名称未設定:2005/03/25(金) 23:30:22 ID:BMUT6RxR
記念パピコ

スクリプト関係のスレは他にあるけど、どういう方向に育てんの?
3名称未設定:2005/03/25(金) 23:31:10 ID:eAWaMKYX
敷居が高そう
4名称未設定:2005/03/25(金) 23:37:59 ID:ZdTGB8iw
>>2
プログラミングなど全く分からん立場だが、
願わくばAll about のような方向をお願いしたく。

使ってるやつ多いでしょ?

俺はバッチ処理を覚えたい。
5名称未設定:2005/03/25(金) 23:41:07 ID:ZdTGB8iw
みなさま開発環境は最低限でよろしく
6名称未設定:2005/03/26(土) 03:18:15 ID:E5prhupl
仕事柄不可視ファイルは表示しておきたいんだけど、
DeskTopに.DS_Storeと.localizedが常時表表示されてしまうのが
悩みどころ、、。
フォルダスクリプトでデスクトップだけ表示しないようにとかってできないかなぁ、、。

もしくは、(スクリプトとずれるかも知れないけど)
特定のドットファイルだけ表示させにないようなことって可能でしょうか?
7名称未設定:2005/03/26(土) 04:29:49 ID:41vdBta5
>>6
逆に、全部隠して必要なモノだけ
ln -s ~/.hoge ~/hoge とか・・・
8名称未設定:2005/03/27(日) 23:26:02 ID:62cgxZui
repeat
tell application "Finder"
make new folder
end tell
end repeat
9名称未設定:2005/03/28(月) 13:23:09 ID:sNDTQgkE
>>8
ういるすか
10名称未設定:2005/03/29(火) 18:35:30 ID:vK2DAO5t
>>9
Vipにかつてあった「ディスクトップにフォルダをしきつめるスレ」にあったな。

そういう俺もMac用スクリプトを書いて投下した身なんだが。
11名称未設定:2005/03/29(火) 22:33:26 ID:1zNEUwf3
>>10
こんなスレできてる

Dockに限界までフォルダを登録してみる会
http://pc7.2ch.net/test/read.cgi/mac/1109309704/l50
12名称未設定:2005/03/29(火) 23:54:21 ID:fqgZB2Qg
>>10
あのスレ俺もいた
13名称未設定:2005/03/30(水) 00:04:55 ID:klbBreX9
変ちくりんなスレもあったもんだな。
14名称未設定:2005/03/30(水) 18:47:45 ID:fWhc/bUa
もうちょっと何というかサプライズみたいなものがないと
ただ延々フォルダを作るというだけでは
洒落も何もなくてアレだわなあ。

勝手にフォルダが動き回るとかさ。
ぱかぱか開いたり閉じたりするとかさ。
イタズラらしくやろうぜ。

って、イタズラの奨めしてどうすんだ俺。
15名称未設定:2005/03/30(水) 23:32:26 ID:84yM0Mii
ファイルのロックを
はずすスクリプトは
有るんですか?
あったらほしい
16名称未設定:2005/03/30(水) 23:50:52 ID:ZjiRbCaF
ほいっ。

on open these_items
repeat with i from 1 to number of items in these_items
set this_item to item i of these_items
tell application "Finder" to set locked of this_item to false
end repeat
end open

スクリプトエディタにコピペしてアプリケーションで保存汁。
ファイルをまとめてドラッグアンドドロップすればロック解除される。
けど、Finderの「情報を見る」でロック解除した方が手っ取り早いよ。
ロックとロック解除を入れ替える(これ自体に意味はないが)とか
Finderではできないこととか面倒なことをさせないとあんまり意味ないかも。
17名称未設定:2005/03/30(水) 23:55:32 ID:UAd6Hi2n
>>16
ほぅ・・綺麗なの書くね
18名称未設定:2005/03/30(水) 23:55:57 ID:Sp3oUj3L
なんで repeat with this_item in these_items と書かないんだろうか。
いや、どうでもいいが。
19名称未設定:2005/03/30(水) 23:57:55 ID:ZjiRbCaF
コンテキストメニュー使ったからだよ。
20名称未設定:2005/03/31(木) 00:03:10 ID:UAd6Hi2n
そういえば、Folderアクションにする時、
repeat with this_item in these_items
にすると巧くいかない時無い?
2120:2005/03/31(木) 00:33:32 ID:9b9HHlY4
・・・今試したら、巧くいったよスマソ
自分のスクリプト、見直そ・・・
2215:2005/03/31(木) 09:32:34 ID:7BjwcFey
>>16
ありがと
またよろしく
2320:2005/03/31(木) 12:14:09 ID:9b9HHlY4
つまり、まとめると
on open these_items
repeat with this_item in these_items
tell application "Finder" to set locked of this_item to false
end repeat
end open

こうかな
24名称未設定:皇紀2665/04/01(金) 02:41:04 ID:p70IM5LY
向こうのスレに貼ったからこっちには改めて貼らないが
最近自分が重宝してるのは
asxファイルをドラッグ&ドロップするとwmvをDLするスクリプト。
まあ鯖によってはうまく行かなかったりするんだが。
うまく行かなかった時にmmsclientからasfrecorderに切り替えさせる方法があればいいんだけどな。
25名称未設定:2005/04/05(火) 23:24:29 ID:JPrIJcGC
up
26名称未設定:2005/04/06(水) 18:42:57 ID:MXtpbnEh
下のスレに「ストリーミング」とか書いてあったから「レジストリエディタ」と空目したorz
27名称未設定:2005/04/20(水) 13:28:13 ID:UwsyHEgL
age
28名称未設定:2005/04/22(金) 20:33:41 ID:0FwuL0mV
比較演算子「<=」の挙動、おかしくねぇかな?

if aaaaa <= 9 then

としてコンパイルすると、とりあえず「構文エラーなし」として認識され、
同時に「<=」が、「≦」に勝手に置き換えられるんだけどさ、
違うところ触って再度コンパイルしようとしたら、エラー発生!
で、いろいろ探ってみたら、勝手に置換された「≦」のせいなのよ。
「<=」に戻してやると、何事もなかったかのようにコンパイル完了!
だけど、また勝手に「≦」に置換され、それが原因でエラーになるから、
肝心な保存ができないんだよな。

結局、

if aaaaa < 10 then

として対処したんだけど、気持ち悪くてさぁ。
何だよ、こりゃあ!! 誰か原因知らない?
29名称未設定:2005/04/22(金) 23:04:26 ID:kaBG2DFy
既出。伝統的なバグです。
less than or equalとか書いてください。

http://www.drycarbon.com/applescript/manuals/expressions.html
30名称未設定:2005/04/25(月) 10:57:40 ID:AceVbbhj
>>29

ありがとうございます。伝統的なバグでしたか。
OS9環境で作成し、問題なく動作していた簡単なスクリプトを、
OSX環境に移植した途端、エラーが発生したため、
「何だこりゃ?」と思っていたところでした。
31名称未設定:2005/04/28(木) 19:28:09 ID:V7q7gfeT
hosyu
32名称未設定:2005/04/29(金) 15:34:49 ID:cNxCnSAg
AppleScriptで特定のタグに挟まれた文字列(不定)の数をそれぞれ集計してテキストファイルに出力することはできるでしょうか?
可能でしたらよろしければヒントくださいませ、お願いしますorz

例:<p class="nullpo">アレ<p />
  <p class="nullpo">ソレ<p />
  <p class="nullpo">アレ<p />

アレ 2
ソレ 1
33名称未設定:2005/04/29(金) 15:35:46 ID:cNxCnSAg
/いらなかったorz
34名称未設定:2005/04/30(土) 18:45:04 ID:RyK1A3O7
タイガーのスクリプトエディタでは>28のバグ直ってる?


set the clipboard to "<p class=\"nullpo\">アレ</p>
  <p class=\"nullpo\">ソレ</p>
  <p class=\"nullpo\">アレ</p>"
do shell script "pbpaste | perl -e '$t=join(q||,<>); while($t =~ m|<p.*?>(.*?)</p>|gs){$r{$1}++} foreach(keys %r){print qq($_=$r{$_}
)} ' "

結果:
"アレ=2
ソレ=1"
35名称未設定:2005/04/30(土) 23:16:44 ID:mWv/tpDR
よっこいしょ
36名称未設定:2005/05/01(日) 00:38:26 ID:fOJpN1h+
>>34
うわあ、ありがとうございます!
なるほど〜。もっと勉強します。本当にありがとうございました
37名称未設定:2005/05/01(日) 01:36:02 ID:BngSUVy2
AppleScriptを使ってはいるけれど(ry
38名称未設定:2005/05/01(日) 12:54:20 ID:1SHZzrSG
Tigerのエディタ、一度コンパイルしたファイルをエディタにドロップしても
開いてくれない(´・ω・`)
エディタの "開く..." からファイルを選択するのヤダーー
39名称未設定:2005/05/04(水) 18:45:01 ID:jt2m5Hgc
あるフォルダにファイルが追加されたとき,
1.そのフォルダを開く
2.追加されたファイルを選択状態にする
3.追加されたファイルの「情報を見る」ウィンドウを開く

というフォルダアクションスクリプトを作りたいと思っています。


on adding folder items to this_folder after receiving added_items
tell application "Finder"
activate
open this_folder
reveal the added_items
open information window of document file added_items
end tell
end adding folder items to


こんなもんかと思ったのですが,3だけ動いてくれません。
ご教授くださいませ
40名称未設定:2005/05/04(水) 22:34:10 ID:XA84anSB
>>39
ほいっ。revealするんならopen this_folderは要らないよね。

on adding folder items to this_folder after receiving added_items
tell application "Finder"
activate
--フォルダを開いて、追加されたファイルを選択状態にする。
reveal added_items
--追加されたファイルの「情報を見る」ウィンドウを開く。
set revealed_items to selection
repeat with i from 1 to number of items in revealed_items
open information window of item i of revealed_items
end repeat
end tell
end adding folder items to
4139:2005/05/05(木) 07:39:21 ID:VS3Dn/40
>>40
ありがとうございます。まさに欲しかった動きです。
(Spotlight用にファイルにコメント付けを常習化したかった)

勉強いたします。
42名称未設定:2005/05/07(土) 08:30:14 ID:evhjSPae
>>38
ドラドロしたコンパイル済みスクリプトをスクリプトエディタで開くドロップレットを作るとか。
43名称未設定:2005/05/09(月) 03:13:35 ID:yy0VNXZ+
パンサーです。セキュリティうpでーとしたらAudio Recorderで録音を開始、停止するスクリプトが効かなくなったとです。
解決方法ありますか?
44名称未設定:2005/05/09(月) 03:31:25 ID:9F/UZWr0
>>43
コンパイルや実行時に何かエラーのメッセージは出ないの?
4543:2005/05/09(月) 08:02:00 ID:JPtoGGm7
>>44
すいません。
マシンを再起動したからかどうなのか分りませんが、動くようになりました。
46名称未設定:2005/05/15(日) 02:39:54 ID:tLPIN7Nt
辞書は多少見やすくなったかな
471:2005/05/17(火) 22:58:41 ID:yDk92HPy
失礼します。
1ですが全然勉強できていません。

しかし、以下を順番に(パスワードも自動挿入で)自動実行するスクリプトをつくって下さる方はおりませぬか?

-----
sudo sh /etc/daily
sudo sh /etc/weekly

sudo update_prebinding -root / -force
-----
いそいでません。
だらだらでもつきあってくれる方募集。(30男)
481,47:2005/05/17(火) 22:59:10 ID:yDk92HPy
独身
49名称未設定:2005/05/17(火) 23:07:02 ID:RvuAuyVV
Apple Script、前々から興味はあったんだけど、使いどころがなあ。
自動化したい作業って、バックアップくらいしか思いつかない。
映像制作なんかだと、大量の連番静止画の処理に使うみたいだけど、
俺は一枚絵だからなあ。
50名称未設定:2005/05/17(火) 23:12:35 ID:i/ogeRIV
511,47:2005/05/17(火) 23:21:50 ID:yDk92HPy
>>50
39

つくって夜中にここにのせるわ
52名称未設定:2005/05/17(火) 23:22:42 ID:YOd1/d9w
>>47
ウイルスでもつくるのか、こいつ。
531,47:2005/05/17(火) 23:35:01 ID:yDk92HPy
>>52
osxのメンテ用スクリプトかな
おれもそれくらいの理解だ、、、
54名称未設定:2005/05/17(火) 23:37:55 ID:4Y6035Mp
>>47
AppleScriptには関係ないけど、
システム全体を強制的に最適化するとかえって遅くなるよ。
551,47:2005/05/18(水) 08:22:46 ID:lsgyEp6Y
tell application "Terminal"
activate
do shell script "sudo sh /etc/daily" password "****" with administrator privileges
do shell script "sudo sh /etc/weekly" password "****" with administrator privileges
do shell script "sudo update_prebinding -root / -force" password "****" with administrator privileges
end tell

これでいいのかな。
タイムアウトとか出るけど、動いてるような気がします。

>>54
時々調子悪くなると同じコマンドでやるから、その時のためにも作っておきたかったんですよ。
56名称未設定:2005/05/18(水) 22:09:24 ID:CUTVxfVc
AppleScriptでは行の順番に実行されるとは限らなかったはず。
シェルコマンドを&&でつないだ方が無難だと思うけど。
57名称未設定:2005/05/21(土) 03:58:57 ID:8lj3Bqj3
>>49
いじってみれば何ができるか分かって来て
使い道のアイディアが浮かんだりするもんでっせ。

まぁ漏れなんかはネットにしかMacを使ってないようなしょぼユーザーなので
スクリプトの使い道もしょーもないけどね。。
58名称未設定:2005/05/22(日) 10:39:41 ID:aTH8uUg3
OS10.3.9 v2.0を使用しています。

何故かこのバージョンで保存しようと保存パネルで命令を出しても、ウィンドウの閉じるに丸ポチがあったり、保存場所に出来るはずのスクリプトファイルが出来上がったりしません。

OS10.2時代のv1時代ではちゃんと出来ていたのに・・・

ちなみにアクセス権はちゃんと読み書きになっています。
このままだとプログラミングが出来ません。原因が分かる方は居るのでしょうか・・・?
59名称未設定:2005/05/22(日) 10:56:56 ID:scZMTBG0
Pacifistでも使ってインストールし直せば?
60名称未設定:2005/05/24(火) 17:14:51 ID:koUkobDD
フォルダアクションでドロップしたものを消去するのってないですか?
61名称未設定:2005/05/25(水) 00:52:37 ID:UkkHbwcG
>>60
自分で作れば。
あっといいうまだよ。
62名称未設定:2005/05/25(水) 01:00:56 ID:8h5YKRKc
do shell script "/bin/rm"
の後がわからないんです
63名称未設定:2005/05/26(木) 03:14:57 ID:eRari3bq
↑なんとかできました
64名称未設定:2005/06/01(水) 19:38:32 ID:JIRtTwV+
age
65名称未設定:2005/06/06(月) 22:30:15 ID:NOYxD/Tc
Safariの「キャッシュを空にする」を定期的に実行したいんですが
タイマー部分はおいときまして、実行部分

tell application "Safari"
activate
tell application "System Events"
tell application process "Safari"
click menu item "キャッシュを空にする..." of menu 1 of menu bar item "Safari" of menu bar 1
--このあとアラートなしで実行させたい
end tell
end tell
end tell

「本当にキャッシュを空にしますか?」のアラートなしで実行したいんですけど
どうすればいいいでしょうか?
click "空にする" を使うとして、その後のUI Elementの指定の仕方がわかりません。
どなたかご教示お願いします。
66名称未設定:2005/06/07(火) 00:48:26 ID:uAGtKI5c
>>65
--何か勘違いしてない?
--GUIスクリプティングは実際のGUI操作を自動化するだけだよ。

click button "空にする"

--とすれば一応実行できるけど、アラートなしでは無理ぽ。
--直接ライブラリ内のキャッシュを削除する必要があるのでは?
--おまけ。このままだと日本語以外の環境ではエラーになるので、
--キーストロークを使うと見た目もすっきりしていいかも。

tell application "Safari" to activate
tell application "System Events"
tell application process "Safari"
keystroke "e" using {option down, command down}
keystroke return
end tell
end tell
67名称未設定:2005/06/07(火) 01:09:44 ID:skwXDRr+
>>65
キャッシュを直接空にすればいいんでは?

ゴミ箱へ
tell application "Finder" to delete every folder of folder "Safari" of folder "Caches" of (path to library folder from user domain)

または

ゴミ箱を使わず直接削除
tell application "Finder" to set safariCaches to (every folder of folder "Safari" of folder "Caches" of (path to library folder from user domain))
tell application "System Events"
repeat with theCaches in safariCaches
delete folder ((theCaches as alias) as string)
end repeat
end tell

Safariを使ってるときに自動で実行されるとどうなるか責任持てないけど。
6865:2005/06/07(火) 01:13:31 ID:aOwfRveP
>>66
ありがとうございます。
やっぱりアラートなしでは無理っすね。
ファイル上書きのときの "replacing yes" みたいなのができればと思ってたんですが。

click button "空にする" of UI element 1

これでなんとかいけました。一瞬アラートでるけどこれでいきます。
キーストロークのアドバイスもありがとうございました。
69名称未設定:2005/06/07(火) 15:17:38 ID:2/NktH+R
7065:2005/06/07(火) 15:57:00 ID:z7aOSTO2
>>67
あ、見落としてました。
直接削除も合理的ですね。試してみます。
遅レスですがありがとうございました。
71名称未設定:2005/06/08(水) 19:55:47 ID:BIk722kk BE:91359427-
保守
72名称未設定:2005/06/11(土) 20:04:28 ID:4xBsWyh4
保守がてらに連番URLの処理なんかを
set urlList to {}
set filePathList to {}
set theURL to text returned of (display dialog "URL" & return & "" default answer "http://www.ahochauka.com/hoge/samplepicture_a[01-10].jpg")
set tmp to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to "/"
set textItems to text items 1 thru -2 of theURL
set theFiles to last text item of theURL
set theDirectory to ""
repeat with curItem in textItems
set theDirectory to theDirectory & curItem & "/"
end repeat
set AppleScript's text item delimiters to "."
set nameExtension to "." & last text item of theFiles
set fileName to (text items 1 thru -2 of theFiles) as string
if "[" is not in fileName or "]" is not in fileName or "-" is not in fileName then
if urlList does not contain (theDirectory & fileName & nameExtension) then
set urlList to urlList & (theDirectory & fileName & nameExtension)
set filePathList to filePathList & (((path to desktop folder) as string) & fileName & nameExtension)
end if
else
set AppleScript's text item delimiters to "["
set prefixFileName to text item 1 of fileName
set processA to text item 2 of fileName
set AppleScript's text item delimiters to "]"
set suffixFileName to last text item of fileName
set processB to text item 1 of processA
つづく
73名称未設定:2005/06/11(土) 20:05:27 ID:4xBsWyh4
set AppleScript's text item delimiters to "-"
set firstNum_S to (text item 1 of processB)
set lastNum_S to (text item 2 of processB)
set firstNum to (firstNum_S as number)
set lastNum to (lastNum_S as number)
set theFigures to (number of characters of firstNum_S)
set fileIndexes to {}
if firstNum_S starts with "0" then
if theFigures is not (number of characters of lastNum_S) then
return --桁数が合わないとだめ
else
repeat with i from firstNum to (lastNum - 1)
set thisNumber to (i as string)
repeat until (number of characters of thisNumber) = theFigures
set thisNumber to "0" & thisNumber
end repeat
set fileIndexes to fileIndexes & thisNumber
end repeat
set fileIndexes to fileIndexes & lastNum_S
end if
74名称未設定:2005/06/11(土) 20:05:47 ID:4xBsWyh4
else
set fileIndexes to {}
repeat with i from firstNum to lastNum
set fileIndexes to fileIndexes & (i as string)
end repeat
end if
repeat with i from 1 to (number of items of fileIndexes)
if urlList does not contain ((theDirectory & prefixFileName & (item i of fileIndexes) & suffixFileName & nameExtension) as string) then
set urlList to urlList & ((theDirectory & prefixFileName & (item i of fileIndexes) & suffixFileName & nameExtension) as string)
set filePathList to filePathList & ((((path to desktop folder) as string) & prefixFileName & (item i of fileIndexes) & suffixFileName & nameExtension) as string)
end if
end repeat
end if
set AppleScript's text item delimiters to tmp
on error
set AppleScript's text item delimiters to tmp
end try
choose from list urlList with prompt "URL" with empty selection allowed
choose from list filePathList with prompt "ファイルのパス" with empty selection allowed
75名称未設定:2005/06/11(土) 20:08:20 ID:4xBsWyh4
発表会スレと間違えたorz
76名称未設定:2005/06/16(木) 01:51:50 ID:TY4qcFLZ
77名称未設定:2005/06/16(木) 02:26:24 ID:8qgEC763
宣伝ウザ

シネ
78名称未設定:2005/06/17(金) 07:38:02 ID:dPdqzujY
まんこ
79名称未設定:2005/06/17(金) 07:55:29 ID:eJ7bOQGM
てか
80名称未設定:2005/06/18(土) 15:36:29 ID:d4rjfU/r
tell application "Vim"
open for access file "/Users/hoge/foo.txt" with write permission
end tell

で新規作成でVimが起動するんですけど、
何がいけないのでしょう?
81名称未設定:2005/06/18(土) 15:41:29 ID:RNGJXmLR
open for accessはアプリケーションを使わずに
直接スクリプトからテキストを読み書きする時に使う命令。
8280:2005/06/18(土) 15:49:20 ID:d4rjfU/r
>81
うう…
ではVimでファイルfoo.txtを開くということがやりたい場合は
どうしたらよいのですか?

launchとかrunがそれっぽいのかなと思ったりしたのですが
できないんですが
8380:2005/06/18(土) 15:54:10 ID:d4rjfU/r
あ、うそでした。launch application "Vim"で起動できました。
でもファイルを引数に与えるにはどうすれば
84名称未設定:2005/06/18(土) 18:09:04 ID:aII3u6ca
こんなんでええ?
Applescriptじゃないけど。
http://advweb.seesaa.net/article/709485.html
85名称未設定:2005/06/18(土) 18:39:56 ID:LoRUC00s
tell application "Finder" to open file "Macintosh HD:Users:hoge:foo.txt" using "Macintosh HD:Applications:Vim.app"

てことかな?
86名称未設定:2005/06/19(日) 23:27:13 ID:1cyl5N7/ BE:117460692-#
保守
87名称未設定:2005/06/19(日) 23:28:00 ID:1cyl5N7/ BE:228396375-#
保守
88名称未設定:2005/06/22(水) 16:52:19 ID:8lZJqmf9
GUI Scriptingで保存ダイアログ(シート)を操作するにはどうしたらいいのかな?
プレビュー使ってPDFをJPEGに変換するスクリプトを作ろうかと思ったのだが。。
こういうのに向いてるスクリプトアディションとかあった?
89名称未設定:2005/06/22(水) 19:33:14 ID:UmMgt6dS
>>88
Image Events
http://www.apple.com/applescript/imageevents/
/Library/Scripts/Folder Action ScriptsにJPEGに変換する
フォルダアクションスクリプトもある
90名称未設定:2005/07/01(金) 23:18:27 ID:HlMznCkH
保守
91名称未設定:2005/07/02(土) 11:15:46 ID:PPHHiydJ
>>89
それって10.3以降でしたっけ。
92名称未設定:2005/07/02(土) 14:15:34 ID:SV/bdqiM
sipsで直に変換できたような気もする
93名称未設定:2005/07/02(土) 17:24:07 ID:PPHHiydJ
sips?
94名称未設定:2005/07/02(土) 17:33:55 ID:9cD+79fu
sips -format jpeg PDFファイル -out 出力するJPEGファイル
ってコマンドのこと
95名称未設定:2005/07/02(土) 19:19:19 ID:PPHHiydJ
これまた10.3以降みたいですね。
96名称未設定:2005/07/02(土) 20:44:27 ID:PPHHiydJ
あー・・。やっと思い出した。
というか色々あがきながら検索してたら出てきました。
GraphicsImporter OSAXでしたね。
お騒がせしました。

これでスクリーンショット一発変換ドロップレットが作れそうです。
97名称未設定:2005/07/10(日) 18:20:50 ID:mQGPpmQC
iTunesの選択した曲の再生回数を1減らすScriptを、
見よう見まねで書いてみたのですが、
あらかじめ再生回数順に並べ替えを指定していると、誤動作してしまいます。
(再生回数を書き換えたとたんに並べ替えられるため)
最初から再生回数順に並べ替えしなければうまくいくのですが、
なにか良い方法はありませんでしょうか。

tell application "iTunes"
try
set trk to {}
set slct to a reference to selection
if slct as list is {} then return
repeat with x in slct
set y to (played count of x) - 1
set played count of x to y
end repeat
end try
end tell
98名称未設定:2005/07/10(日) 19:48:33 ID:ZyIXRWUo
>>96
コピペですまん

screencapture -Wc を実行すると、画面全体を撮影(スクリーンショット)し、クリップボードに保存する。
screencapture -iWc を実行すると、マウスで選択したウィンドウのみを撮影し、クリップボードに保存する。
screencapture -W file.pdf を実行すれば、ファイル file.pdf に保存することも出来る。
99名称未設定:2005/07/10(日) 20:22:51 ID:hCNIBlkv
>>97
一旦referenceでないリストに変換してから処理するとか

tell application "iTunes"
try
set trk to {}
set slct to a reference to selection
if slct as list is {} then return
repeat with x in slct
set end of trk to x
end repeat
repeat with x in trk
set y to (played count of x) - 1
set played count of x to y
end repeat
end try
end tell
100名称未設定:2005/07/11(月) 00:16:36 ID:NwqbAtr+
TidBITSより、10.4ではPDFからPNGに代わったスクリーンキャプチャのファイルフォーマットの変更方法について。
1) ターミナルを開く
2) 以下のコマンドを入力、image_formatはデフォルトでpng、他jpg、gif等に置き換える
defaults write com.apple.screencapture type image_format
3) 再ログイン、もしくは以下のコマンドで設定を再読み込み
killall SystemUIServer
101名称未設定:2005/07/11(月) 05:18:48 ID:r17XUk5r
>>98
?スクリーンショットのショートカットキーの代わりに
ターミナルから実行できるコマンドですか?

残念ながら私の目的とは合わないと思います。
目的のスクリプトは既に完成しました。
「おもしろい〜」の方に載せましたのでよろしければご覧ください。

一応、SnapClipっていう便利なフリーウェアを入れてて、
キーボードショートカットキーでJPEG書き出しのスクリーンショットも撮れるんですが、
必ずマウスで撮影範囲を選択しないといけないのが面倒なので、
標準のスクリーンショットを後からまとめて変換した方が性に合うのです。
102名称未設定:2005/07/11(月) 05:20:44 ID:r17XUk5r
>>100
おー。素晴らしい。
Tigerではファイル名の変更だけで済みそうだ。

Jaguarでも同じ技あるんですかね?
103名称未設定:2005/07/11(月) 11:51:12 ID:IY8gLDTD
みんな-tオプション使ってないのか。
104名称未設定:2005/07/14(木) 23:32:44 ID:kkMVQpup
リモートのMac上のアプリをApplescriptで起動したいんですが、うまくいきません。
終了なら下のできるんだけど…
tell application "hoge.app" of machine "remote-mac" to quit
105名称未設定:2005/07/14(木) 23:33:40 ID:BT64rqwm
できる
106104:2005/07/14(木) 23:41:42 ID:kkMVQpup
>>105 ど、どうやるんですか??
107名称未設定:2005/07/15(金) 00:21:11 ID:ap7PVf70
Xになってからうまくいったためしがないや
108名称未設定:2005/07/16(土) 00:25:06 ID:Kg+tcUdP
>>107
スクリプト全般が?
109名称未設定:2005/07/16(土) 17:21:24 ID:Q7z48Gyw
>>108
remoteへのtellの話さ
110名称未設定:2005/07/16(土) 18:38:21 ID:Kg+tcUdP
試せる環境が欲すぃ。。

へたスクリプトMLあたりに投げてみたら?
何か投稿少なくて閑散としてるっぽい。
111名称未設定:2005/07/26(火) 01:46:05 ID:ZIW9OKIq
ここも閑散としていてさみしいな
112名称未設定:2005/07/26(火) 02:26:19 ID:PJ0aN+nF
まあ重複スレかつ方向性のわかりにくいスレタイだからねえ。
113名称未設定:2005/07/29(金) 23:16:21 ID:jNqWImCz BE:155817195-
最近web共有を使いだして、これが意外と便利なんですが、
sitesフォルダの中身を自動的にリスティングしてhtmlカタログ化できたら便利だなと思い、
せっかくだからアップルスクリプトにやらせてみようと思い立ちました。

そこで何も分らないままstanderdadditions.osaxを見てみたら
「adding folder items to」というのを見つけたので、
フォルダ内に変更があったらその都度htmlを更新するフォルダアクション形式
にしてはどうかと考えてます。

みなさんならどうされるか、良かったらご教授願います。

きょうの成果:((list folder the (path to sites folder)))
114名称未設定:2005/07/29(金) 23:53:15 ID:v87baPgv
その機能って、内蔵されてなかったっけ?
adding folder items toはFinder上でのドロップにのみ対応するハンドラだし。
最後の一行は全く使えない訳ではないけれども。
ところで、webサーバからAppleScriptにCGIデータを渡す方法は知っているの?
もしかしてOS 9?
115名称未設定:2005/07/30(土) 03:28:10 ID:s2fV4fOo
>>113
Finder上で開いてるフォルダに何か追加された時しか反応しないっていうのは、
今もそのままなんだっけ?

もしそうならば on idleを使って一定時間ごとに該当フォルダをチェックさせるしかないけど。。
116その1:2005/07/30(土) 05:10:55 ID:SFEgvPYe
#!/bin/sh

# ソート済みファイルリストを返すシェル関数定義
fl()
{
ls -1 ~/Sites |
grep -E '.*▼.(s?html?|php)' |
sort
}

# ソート済みファイルリストをファイルに保存
if [ ! -f ~/temp_old.list ] ; then
fl > ~/temp_old.list
exit 0
else
fl > ~/temp_new.list
state=`diff ~/temp_old.list ~/temp_new.list`
fi

117その1(修正):2005/07/30(土) 05:13:06 ID:SFEgvPYe
バクスラが化けた

#!/bin/sh

# ソート済みファイルリストを返すシェル関数定義
fl()
{
ls -1 ~/Sites |
grep -E '.*\.(s?html?|php)' |
sort
}

# ソート済みファイルリストをファイルに保存
if [ ! -f ~/temp_old.list ] ; then
fl > ~/temp_old.list
exit 0
else
fl > ~/temp_new.list
state=`diff ~/temp_old.list ~/temp_new.list`
fi
118その2:2005/07/30(土) 05:14:33 ID:SFEgvPYe
# もし変化があれば、ファイルインデックスをアップデート
# 最新のファイルリストを一つ古いものとしてコピーし、次回起動に備える
if [ ! "X${state}" = "X" ] ; then

mv ~/temp_new.list ~/temp_old.list

link_list=`
fl |
sed -e '
/file_list.html/d
s|\(.*\)|<p><a href=\"\1\">\1</a></p>|
'`

cat <<- EOF >~/Sites/file_list.html
<html>
<body>
<head>
<title>
</title>
</head>
<p><date>`date +'%Y.%m.%d %H:%M update'`</date></p>
$link_list
</body>
</html>
EOF

fi
119その3:2005/07/30(土) 05:28:34 ID:SFEgvPYe
これをhoge.shとして保存したとすると、chomod +x hoge.sh で実行権を付けて、
crontab -eで、

*/10 * * * * /フルパス/hoge.sh

とやると、10分おきにバックグラウンドで実行されるよ。

起動時に前回起動時からSitesディレクトリに変化があれば、
Sites/file_list.htmlというファイルリストを書き出し(更新)するよ。

AppleScriptは、スクリプトを起動させとかなくちゃならなくてかっこうわるい
ので、監視系のスクリプトは、こんな感じでcronで処理した方がいいと思うよ。

OSがイベント起こすと、それを受信してAppleScriptのスクリプ
ト起動できるとかっこういいんだけどね。

php, shtml, html, htmだけ監視してるけど、それ以外のファイルにも反応させ
たかったら、grepのところ消してね。
120名称未設定:2005/07/30(土) 05:52:56 ID:SFEgvPYe
AppleScriptでやる場合は、アプリケーションとして保存しつつ、保存時に「実
行後に自動的に終了しない」のチェックボックスをONにして、常駐型のスクリ
プトを作ります。

property oldFileList : {}
on idle
set fileList to ((list folder the (path to sites folder)))
if fileList is not equal to oldFileList then
--ここにhtmlを書き出す処理を入れる。
display dialog "change"
set oldFileList to fileList
else
display dialog "not change"
end if
return 10
end idle

htmlへの書き出しは、AppleScriptだと面倒なのでここには書きませんが、

repeat with i in fileList
end repeat

の構文の中で置換によるタグ付けをして、文字列連接で変数の中にhtml を完成
させ、あとはopen for accessでファイルに書き出しでOKです。ファイルをしぼ
りたい場合は、フィルタ参照を使えばいいでしょう。
121名称未設定:2005/07/30(土) 07:44:46 ID:s2fV4fOo
今実験してみたけど、サンプルのフォルダアクションの
『add - new item alert.scpt』を設定したフォルダに
エディタからファイルを新規保存したら
ちゃんと動作したよ。
フォルダアクションで行けそうじゃないかい?
122名称未設定:2005/07/30(土) 13:40:53 ID:SFEgvPYe
ファイルが削除されたときのことを考えてたよ。
123名称未設定:2005/07/30(土) 20:59:37 ID:s2fV4fOo
追加が
on adding folder items to 変数1 after receiving 変数2
end adding folder items to


削除が
on removing folder items from 変数1 after losing 変数2
end removing folder items from
ですよね。

昔はフォルダアクションみたいなのあったらいいのになってすごく思ってたけど
(旧OSでシステムフォルダ内のインストールの監視に使いたかった)
いざ装備されたら全然使ってないなあ。
何か使い道ないかな。

検索してみたらMac OS Xになってから(どのver.からかわかりませんが)
フォルダが閉じた状態でのアイテムの追加等にも反応するようになったんですね。
124113:2005/07/30(土) 21:56:26 ID:gR33fslH BE:124654649-
>>116
さっそくありがとうございます。
アドバイスどころかほぼ完成品を作ってもらっちゃって恐縮です。

やはり監視系で完結させるのが一番スマートみたいですね…。
ただ、今回は使用頻度と使用環境(iBookバッテリー駆動)、
それとズボラな私の性格を鑑みフォルダ内に変化があったその都度
htmlファイルを生成するフォルダアクション形式にすることにしました。
>>116さんのshスクリプトをそのまま流用させていただき、
webでAppleScriptの用法を調べつつ何とか形にできたのですが、
喜び勇んで戻ってみたら>>123さんが既に書いてくれていました…ありがとうございます^^

on adding folder items to sites folder after receiving added_items
try
do shell script "sh /Library/Scripts/hoge.sh"
end try
end adding folder items to

この場合、フォルダ内のファイルがリネームされた場合にも動作するので、
on removing folderitemsで置き換えたバージョンとで計二つ用意すれば事足りますね^^

あとは個人的にhoge.shの中身が良く分ってないのでこれから勉強してみます。
どうもありがとうございました。
125名称未設定:2005/08/01(月) 01:17:33 ID:IayMIkbC
ピクチャのjpgファイルを名前を撮影日時に変更したいが
最後のset name of で拡張子(theExtension)が保存されないんですが。
tell application "Finder"
activate
set theFolder to path to pictures folder from user domain as Unicode text
ignoring case
set theList to (every file in folder theFolder whose name extension contains "JPG")
end ignoring
set thePrefix to "DSC"
repeat with theFile in theList
set theDatePart to getDateTimeText(theFile) of me
set theExtension to name extension of theFile
set theTarget to thePrefix & theDatePart & "." & theExtension
set name of theFile to theTarget
end repeat
end tell

on getDateTimeText(inFile)
return --inFileの作成日"20050731-235959"みたいなのを返す
end getDateTimeText
126名称未設定:2005/08/01(月) 11:31:33 ID:8W5uV5Tj
set name extension of theFile to theExtension

で別に設定してみたら?
127125:2005/08/02(火) 06:00:38 ID:ScmnEbjk
それは既に試していて、name extensionってreadonly属性なんです。
128名称未設定:2005/08/02(火) 10:34:07 ID:HiaPWSCz
何かやな奴w
129名称未設定:2005/08/02(火) 10:44:12 ID:kjA7FgQx
というか最初に拡張子jpgでフィルタリングしてるんだから
name extensionなんか使わずに、そのまんまjpgでつけていいのでは
130名称未設定:2005/08/02(火) 12:18:39 ID:6sDmPtbl
ぬをぉおおお!name extensionってR/Oだったのか…
知らんかった
131125:2005/08/02(火) 21:58:03 ID:f83RPcP0
>129
リテラルでこう指定するってことですよね。
同じでした。

theTarget= thePrefix & theDateTimeText & ".jpg"
132名称未設定:2005/08/03(水) 01:30:49 ID:iH1r6dHD
動画再生用のありがちなスクリプトなんですけど、

on open droppedFile
tell application "QuickTime Player"
activate
open droppedFile
present movie 1 scale screen
end tell
end open

以前はこれで問題なかったんですが、現在
これで動作確認すると、再生開始後すぐに画面
が止まってしまい、静止画+音声状態になって
しまいます。(サイズはdouble等でも同じ)

環境はPanther+QuickTime7です。
ちなみに通常再生した場合はフルスクリーン
状態にしてもちゃんと正常に再生されてます。
QuickTime7が問題なような気もするんだけど、
何か解決法などご存知でしたらどうか教えて下さい。
133名称未設定:2005/08/03(水) 13:56:02 ID:CDg+OLsf
up
134名称未設定:2005/08/05(金) 19:32:55 ID:EctRjWZf
何だったかな、解決したけど、忘れた。
あとで思い出したら書くわ。
135名称未設定:2005/08/09(火) 22:43:39 ID:haDbmpqt
tell thread "【標準装備】スクリプトエディタ" of board "新・mac" of 2ch
 hoshu
end tell
136名称未設定:2005/08/09(火) 23:51:14 ID:DwT3x+Sv
MightyMouseの真ん中ボタンクリックをcommand+↑に割り当てたいんですけど、
こういったものはAppleScriptで可能なのでしょうか?
137名称未設定:2005/08/10(水) 06:20:50 ID:tBmHD43U
同じAppleScriptをFinderから動かすとちゃんと動いて、
イメージキャプチャの「処理終了後に起動する」に指定すると起動しません
何か違いがあるんでしょうか?
138名称未設定:2005/08/10(水) 07:52:33 ID:ANVz2xvD
>>137
スクリプトを読み込んで実行しているアプリケーションの違いではないだろうか。
つまり、どのメモリ空間で動作しているかの違いということ。
他のアプリにtellするときの作法とかに影響する。
だから、実行するスクリプトにもよるわけだけれど。
139名称未設定:2005/08/10(水) 08:53:09 ID:q3tyRcPP
スクリプトについては素人なんですが、一点教えて下さい。
別のスレにて回答がなさそうなので・・・
過去に、スクリプトを起動した状態でアクティブモニタを起動した
際に下記現象になった事例はありますか?
 1.いっさいのプロセスが表示されない
 2.CPU使用率が100%になる

起動をアクティブモニタから行いスクリプトを起動すると上記症状は
発生しない。

osは10.3.9です。よろしくお願いします。
140名称未設定:2005/08/10(水) 09:28:43 ID:ycDyiuhX
あっちこっちに書いてるな。
バチスカのスレである程度結論出てなかったっけ。
141名称未設定:2005/08/10(水) 09:32:31 ID:ycDyiuhX
>>136
無理。そういうドライバーみたいなのはローレベル言語の仕事。
それによってやりたい事の代替手段は提供できるかもしらんけどね。

>>137
そのイメージキャプチャのとか試した事ないし
あなたのスクリプトも見てないしよくわからんけど、
tellする対象を明確にしてないところで
暗黙のtell current applicationの対象が変わるとか、
using terms fromを使ってないところでどこの用語を使うか変わったりとか?
142名称未設定:2005/08/10(水) 09:35:22 ID:q3tyRcPP
>>140
出てないですよ。他のスレで聞いてみてはとの回答だったんで・・
他のスクリプトスレでも反応ないんでこちらにカキコしてみました。
143名称未設定:2005/08/10(水) 09:52:14 ID:lJ5A08Eh
俺には>>139が何を言っているのか全然わからない。

「スクリプトを起動した状態でアクティブモニタを起動した」において、
・そのスクリプトって何するもの? 何でも? 再現可能で簡単なものを示したら?
・そもそもアクティブモニタとは? アクティビティモニタのこと?

「起動をアクティブモニタから行いスクリプトを起動する」において、
・起動をアクティブモニタから行うとは? 先に起動しておくということ?
144139:2005/08/10(水) 10:26:59 ID:q3tyRcPP
説明不足でごめんなさい。
2chブラウザBathyScapheのサンプルスクリプトでオートリロード(スレ一覧)
なる物があります。
BathyScapheを起動後、オートリロード(スレ一覧)のスクリプトを起動した
状態でアクティビティモニタを起動した際に下記現象になる。
 1.いっさいのプロセスが表示されない
 2.CPU使用率が100%になる

 ※この状態のままにしておくと、PowerBookのファンが周り
  始める

先ずアクティビティモニタから起動を行いBathyScaphe、スクリプトの順番で
起動すると上記症状は発生しない。

現状、スクリプトの問題なのか、アクティビティモニタの既知的バグなのかが
分からなく書き込みを行いました。

使用os:10.3.9
BathyScapheのホームページ:ttp://bathyscaphe.sourceforge.jp/
スクリプトのページ:ttp://sourceforge.jp/projects/bathyscaphe/files/

宜しくお願いします。
145名称未設定:2005/08/10(水) 13:05:24 ID:HjWP48Q/
自分が書いた物なら別だが、1次配布元がわかっているものならまず作者に聞くべきだろう。
146名称未設定:2005/08/10(水) 16:20:20 ID:ycDyiuhX
>>139,144
10.4.2
同現象を確認。idleハンドラを使って一定時間間隔で動くスクリプトだから
そこそこ負荷がある事も考えられるが
起動の順序で表示が変わることからスクリプトが軽いとか重いとかの問題ではない気がする。

試しに
on idle
1 + 1
return 600
end idle
というスクリプトを書いて実行してからアクティビティモニタを開いたら同現象が見られた。

原因がどこにあるのか突き止めるのは難しそうだね。
純正のアプリとAppleScriptがかかわってるからAppleにフィードバックした方がいいだろうねこれは。
147139:2005/08/10(水) 18:21:14 ID:q3tyRcPP
>>146
Tigerでも出ましたか。AppleScriptとアクティビティモニタ間において何らかの
因果関係がありそうですね。
ただ、>>146さんの試されたスクリプトをこちらの環境で実行しましたが、
現象はでませんでした。

何れにせよ何らかの形でappleへフィードバックした方が良さそうですね。
有り難うございました。
148名称未設定:2005/08/10(水) 22:17:41 ID:ANVz2xvD
アプリケーションが属性として持っている、プロセスの優先度の問題なきがしたな。
まったく想像だけど。
AppleScriptを使って介入することで問題が顕在化するんじゃないかな。
activity monitorはけっこうCPU負荷大きいけれど、動作に間隔を空けることで問題を回避していた。
ところがAppleScript実行中は間隔が空かないとか。
あくまでも想像だけど。
149名称未設定:2005/08/13(土) 05:54:52 ID:iLeq71AK
>>139,144
たぶん原因が判明。
原因はおそらく、オートリロード(一覧)というアプリケーション名による。スクリプトエディタが吐くアプリ形式は古いもので、アプリ名がプロセス名(アクティビティモニタとかにでる名前)になっている。
で、日本語の名前をつけると、プロセス名として不正な文字になる場合がある。そのせいでたぶんアクティビティモニタが内部で呼び出すプロセス監視用のプロセスがクラッシュする。

CPU使用率が上がるのはたぶんクラッシュするたびにcrashdumpというエラー報告用のプロセスを立ち上げていて、アクティビティモニタはクラッシュの度に再トライしようとしてハマるから。ターミナルからtopコマンドで確認できる。

回避策は、とりあえずスクリプトのアプリ名をかえればよい。根本的にはスクリプトエディタが悪いはず。
と思ったら、アプリケーションバンドルなる出力形式があった。
これならプロセス名はappletとなるので問題なく、結局この形式で出力してない配布元が悪い。
150名称未設定:2005/08/13(土) 07:53:34 ID:do+Robkw
すげーためになった。
151名称未設定:2005/08/13(土) 07:55:12 ID:jr3exFYn
>>149
もしその通りだとすると、
日本語ファイル名(で特定の文字を含む)のアップルスクリプトアプリケーションが稼働中に
アクティビティモニタを起動すると
同じ現象が起きるという事か?

いやそれどころか一般のアプリケーションでも同じ現象が起きる事がある?
アクティビティモニタに表示されるプロセス名が日本語を含むアプリってけっこうあるよ。
152149:2005/08/13(土) 08:50:04 ID:iLeq71AK
>>151
ごめん。アクティビティモニタも日本語表示するやつあるね。というのはOS Xはプロセス名とは別に国際化のためのアプリケーション名を別に用意していて、アクティビティモニタはこれに対応してる。
例えばアクティビティモニタ自体だけど、パッケージの中に入ってる実行ファイル本体はActivity Monitorって言う名前(これがプロセス名になる)で、日本語環境のために"アクティビティモニタ"が用意されている。
一方、スクリプトエディタが吐く古いアプリ形式はパッケージになってなくてファイル名をそのままプロセス名としてるのでヤバい。古いアプリで日本語の名前がついてる問題になることがあるかもね。
153名称未設定:2005/08/13(土) 11:08:13 ID:jr3exFYn
なるほど。

んじゃRbとかで作ったソフトでパッケージになってないと同様の可能性あり?

自分でXcodeでアプリケーション作る時も
どうにかしたら各言語のファイル名とか持たせられるんですかね?
やり方がわからないうちは半角英数のアプリ名が無難?
154名称未設定:2005/08/13(土) 17:13:41 ID:C13l4nu6
初歩的なことかもしれないですが、ちょっと質問させてください。
iTunesから必要な時だけiTunesMusicStorePlayerを起動させたいと思い、
下記のようなスクリプトを作ってみました。
ところが、スクリプトエディタから実行すると上手くいくのですが、
iTuensのScriptsフォルダに移動して、iTunesのメニューから呼び出すと
虹色のぐるぐるカーソルになってしまいます。
スクリプトからの起動はできないという事なのでしょうか?
解る方いらっしゃいましたら、教えてください。

tell application "iTunesMSP"
run
activate
end tell
155名称未設定:2005/08/13(土) 18:08:09 ID:mDlmEyUI
iTunesMusicStorePlayerって何ぞな?
156名称未設定:2005/08/13(土) 18:28:12 ID:vZ5dv1mN
君のスクリプトからの命令(iTunesで実行中)
 ↓
iTunesMSP
 ↓
iTunes(スクリプトの処理中で反応できない)

わかる?
iTunesそのものの処理はマルチスレッドじゃないんだね。
157名称未設定:2005/08/13(土) 18:33:52 ID:2XwPAGyO
iTunesMSPの反応待ちで引っかかるなら

ignoring application responses

end ignoring

で前後を括ったら
158名称未設定:2005/08/13(土) 22:52:47 ID:jr3exFYn
run
activate

って何じゃ?
run要らないでしょ?
159名称未設定:2005/08/14(日) 00:24:18 ID:KQzhgW2p
すでに起動している場合を考慮すると、入れておいた方が無難だよ。
すでに起動していた場合、activateだけだと手前に来て終わり。
160154:2005/08/14(日) 04:52:40 ID:gckAqUwp
>>155-159
みなさんいろいろアドバイス有り難うございます。
無事に>>157さんのやり方で動かすことができました。
iTunesMusicStorePlayerというのは、iTMSで試聴をする時
一々曲名をクリックしないでも表示されたプレイリストを
連続再生してくれるアプリです。
入手先はこちら
ttp://www.macupdate.com/info.php/id/11955
161名称未設定:2005/08/14(日) 09:55:14 ID:7MNnsQg6
何かそれ自体AppleScriptで作れそうだな。
つーか作ってる人居そうだな。
162名称未設定:2005/08/14(日) 10:22:40 ID:7MNnsQg6
つーかそれがAppleScriptでできてるのかな?
idleハンドラ使ってるからアプリケーション型式って事か。

作ってみた。
現在のリストとか何番目とか取得する方法わからなかったんで
こんなので大丈夫か不安だったんだが、
「登録して」ダイアログに邪魔されなければうまく行くね。

property flag : 0

on run
tell application "iTunes"
play
end tell
set flag to 0
end run

on idle
tell application "iTunes"
if flag is not 0 then
next track
play
end if
end tell
set flag to 1
return 30
end idle
163名称未設定:2005/08/29(月) 23:40:47 ID:71NHDEnE
BM Safari Tabs.scptってのイイ
ttp://home.comcast.net/~themacgeek/0/0.html
164名称未設定:2005/08/30(火) 00:31:51 ID:vHXWPOXG
どのようにいいのか一言ぐらい
165名称未設定:2005/08/30(火) 02:43:01 ID:MpFfq2Mz
BMはbookmarkの略かな。
今Safariで開いているタブを全部一度にブックマークするスクリプトのようだ。

>>163
Safariのスレに書けよ。ここに書くのスレ違いじゃね?
166名称未設定:2005/09/04(日) 12:03:09 ID:i9dHL2o+
Panther 10.3.4 で日本語表示できません。

たとえば、

choose from list {("あ" as Unicode text), "あ", "S", "T", "N", "H", "M", "Y", "R", "W"} with prompt "Choose Initial Letter"

OSをアップグレードすれば直る問題なの?

167名称未設定:2005/09/04(日) 12:22:52 ID:y5w3ihs6
>>166
10.4.2では問題ないよ
10.3でもtell application "Finder"で挟めば化けないかも
168名称未設定:2005/09/04(日) 12:27:48 ID:/QQrhNHa
>>166
えっとね。確かこないだ見たんだけど、
アプリケーション形式でいいのであれば
「アプリケーションバンドル」で保存したあとに
パッケージを開いて、info.plistを開いて、EnglishになってるとこをJapaneseに直せばいいとかだったような。
169166:2005/09/04(日) 14:14:26 ID:i9dHL2o+
>>168
おお、丁寧にありがとう。これですね。
ttp://www.kiwi-us.com/~mizusawa/penguin/html_hint/as_x/index.shtml#jp
こんどは、しかし、別の問題が...
ファイルから日本語文字列(UTF-8)を読み込んで、これをchoose from listに表示させると、また、文字化けです。たとえば、

do shell script "echo " & "あ" & " > /tmp/a1.txt"
set myTerm to do shell script "cat /tmp/a1.txt"
set myList to {}
set myList to myList & myTerm
choose from list myList
これは、OKなんだけれど、

170166:2005/09/04(日) 14:15:32 ID:i9dHL2o+
ターミナルで
echo あ > /tmp/a2.txt
とやったあと、
set myTerm to do shell script "cat /tmp/a2.txt"
set myList to {}
set myList to myList & myTerm
choose from list myList
とすると ? としか表示されない。
しかし、
display dialog myList as string
では、ちゃんと 「あ」とでる。
/tmp/a1.txtをダンプしてみると
00000000 c3 87 e2 80 a0 0a |......|
UTF-8だと
00000000 e3 81 82 0a |....|
こうなるはずなんで、このコード系は何なのか?...
UTF-8のターミナルで
cat /tmp/a1.txt
とすると、
(フランス語のcセディーユと十字架)
と表示される。
これは、info.plistをJapaneseに直す前にApplescriptで表示されていたのと同じもの。
うーーむ、今までも散々に日本語処理で泣かされてきたけれど、今回もScript Studioを使わないとだめかなぁ....

171名称未設定:2005/09/04(日) 16:56:46 ID:/QQrhNHa
>>170
/tmp/a1.txtって事は>>169でdo shell scriptで書き込んだものって事?

じゃあ/tmp/a2.txtの中身はどうなってるの?
172166:2005/09/04(日) 17:42:07 ID:i9dHL2o+
>>171
>/tmp/a1.txtって事は>>169でdo shell scriptで書き込んだものって事?

Yes.

>
>じゃあ/tmp/a2.txtの中身はどうなってるの?

% cat /tmp/a2.txt


% hexdump -C /tmp/a2.txt
00000000 e3 81 82 0a |....|
00000004

となってます。

あんまり情けないので、html + php でchooserを作ろうかなと思って、今、phpをにわか勉強中。
173名称未設定:2005/09/04(日) 17:45:42 ID:/QQrhNHa
>>169,170
追試した。(10.3.9で、Terminalの日本語化もしてないようなほぼノーマル状態)

どっちのやり方でもできたファイルをHexEdit Jで開くと
E3 81 82 0A
になってるし、
Jedit4で開くとUTF-8のLFだし、

内部でdo shell scriptでa1.txtを作ってから表示するスクリプトも、
既にTerminalで作られたa2.txtを作ってから表示するスクリプトも、
前述のinfo.plist一カ所の書き換えで問題なく「あ」を表示できた。

何か変なことしてない?
174名称未設定:2005/09/04(日) 17:49:28 ID:/QQrhNHa
/tmp/を~/に変えた以外は一字一句同じにやったはず。
175名称未設定:2005/09/04(日) 17:55:12 ID:/QQrhNHa
>>173
どうでもいいことだけど訂正。
「既にTerminalで〜」の行の「作ってから」は要らないね。w
176166:2005/09/04(日) 19:14:50 ID:i9dHL2o+
>>173
追試までしてもらって、恐縮です。
別に変な事してるつもりは無いのだけれど、
OSのバージョンが、10.3.4くらいでしょうかね?
そろそろ、1年になるから、10.3.9にしてみるかな。



こんなことで、飯も食わずに、日曜日をつぶしてしまいました。
177名称未設定:2005/09/04(日) 19:26:33 ID:/QQrhNHa
>>176
ソフトウェアアップデートは切ってるの?
普通に使ってたら嫌でもアップすると思うんだけど。
178名称未設定:2005/09/04(日) 19:28:32 ID:/QQrhNHa
ちらっとTerminalやシェルの設定が影響してるのかなと思ったんだけど、
(do shell scriptではそれらの影響を受けないため)

おかしなデータが書き込まれているのがdo shell scriptのほうっていうことは、違いますよね。
179166:2005/09/04(日) 20:46:11 ID:i9dHL2o+
>>178
>おかしなデータが書き込まれているのがdo shell scriptのほうっていうことは、違いますよね。

applescriptのほうは、do shell scriptのデータで何ら問題なく処理されてるところが、不思議です。

取りあえず、applescript から、chooser用のhtmlを生成するshell scriptを実行し、safariにtellして、
選択した後は、phpの簡単なcgiでfifoに書き込んで、それをapplescriptから読み出すようにしました。

やってみると、フォームの自由度が高くて、このやり方も悪くない気がします。
まあ、勉強になりました。(cgi初めてだったので)

180名称未設定:2005/09/04(日) 21:05:08 ID:/QQrhNHa
ワラタ

なんかすごい事になってますね。
181名称未設定:2005/09/05(月) 13:56:32 ID:INI6ZEE5
Smileの3.0.6がでてるよ。
182名称未設定:2005/09/06(火) 00:11:44 ID:EIhFBghj
do shell scriptとTerminalではdefault shellが違うんですよ。
だから文字コードの扱いも違うらしいですよ。
183名称未設定:2005/09/06(火) 06:04:10 ID:hZg2RN2E
>>166
AppleScriptのリテラル文字列はカレントスクリプトで解釈されるので、まともに
動く物を作りたかったら英数字以外は全て16進のUnicodeで書くこと。漢字やかな
を直接書いてはいけない。
display dialog "日本語" -- NG
display dialog <<data utxt65E5672C8A9E>> -- OK

>>169
UTF-8テキストを読みたいなら
read alias "..." as <<class utf8>>

<< >>の入力方法
<< : option + backslash
>> : option + shift + backslash
184名称未設定:2005/09/06(火) 10:48:21 ID:DVtgMOgk
へー。。(難しくてわからない)

カレントスクリプト??
上の様な書き方だと英語環境でも化けないとか??
185166:2005/09/08(木) 00:32:38 ID:eqCBhM/R
>>183
>UTF-8テキストを読みたいなら
>read alias "..." as <<class utf8>>

ファイルやテキスト操作は、もっぱらdo shell scriptでやってるので、
そういった呪文が必要だとは思いもよりませんでしたが、

ターミナルで、
% echo あ > /tmp/a2.txt

とやった後、以下のようなスクリプトを走らせると、やはり、?? が出ますね。


try
close access alias "Sys-1:private:tmp:a2.txt"
end try
open for access alias "Sys-1:private:tmp:a2.txt"
read alias "Sys-1:private:tmp:a2.txt" as <<class utf8>>
set myTerm to result
set myList to {}
set myList to myList & myTerm
choose from list myList

その後の、
display dialog myList as string

では、「あ」が表示されます。

">>"は、もちろん、指示通り入力しました。
186166:2005/09/08(木) 00:36:10 ID:eqCBhM/R
ところで、10.3.4のScript Editorでは、'¥'が入力できないんですが、
以降のバージョンでは、可能なのでしょうか?
これがだめなおかげで、do shell scriptはかなり、制限されるのです。
187166:2005/09/08(木) 00:37:04 ID:eqCBhM/R
えーと、バックスラッシュの事です。
188166:2005/09/08(木) 00:41:16 ID:eqCBhM/R
set BS2 to ASCII character 128  
set BS to ASCII character 92
set DQ to ASCII character 34 -- ダブルクォート

などを使っても、うまく行かないんですが、
なぜか、do Visual Basic には、DQは有効です。
189名称未設定:2005/09/08(木) 03:48:21 ID:JQ3TRJE9
>>186
10.2.8では入力できたはず。10.4でも入力できると思う。
今入れたから。
たしかXcode,Xcode2が入力できないんだよね。Interface Builderはできるんだけど。

バックスラッシュが使えないとなると、シェルスクリプトは別ファイルにして使う形になるのかな。

ねえ、前訊いた時にも返事がなかったんだけど、
10.3.9にできない理由があるの?通信費以外は無料でできるんだけど。
190166:2005/09/08(木) 10:39:03 ID:eqCBhM/R
>>189
>10.3.9にできない理由があるの?通信費以外は無料でできるんだけど。

Panther購入時が10.3.4で、すぐに、10.3.5にしたら、こいつがとんでもない代物で、
また、10.3.4に戻したという、痛い経験をしているので。

私の場合、ディレクトリ構造をカスタマイズしているし、VirtualPC5.0と6.0が両方必要だったり、
自作のUSB機器も含めて、幾つかUSBにぶら下がっているし、gimpやbluefishといったX Windowのアプリも必須だし、
現在、ちょっとしたアプリを作っているので、とにかく、動作確認が大変なのです。OSのちょっとした仕様変更で、動かなくなるような物が沢山あるのです。
もう、消しても良いと思うが、Jaguarのroot file systemも残してあるのです。

>バックスラッシュが使えないとなると、シェルスクリプトは別ファイルにして使う形になるのかな。

それは、なるべく避けたいですが、それでも、幾つか小さな物でも別ファイルにせざるを得ないですね。
バックスラッシュも、こんな感じでは使えますが、やはり不便で、1ヶ月ほど前のApplescript初心者の頃は、動作しなかったし。(多分、スクリプトエディタが腐っていたんでしょう)


set BS to ASCII character 92
set DQ to ASCII character 34
set NL to ASCII character 10
set SQ to ASCII character 39

set myStr to do shell script "echo 1 2 3 | awk '{printf " & DQ & "%s" & BS & NL & "%s" & BS & DQ & "%s" & DQ & ", $1, $2, $3}'"
display dialog myStr
191名称未設定:2005/09/08(木) 23:12:24 ID:PhVOALTS
>>185
OSX10.4未満のchoose from listはUnicodeに対応していない。display dialogの
Unicode対応はOSX10.3から、詳しくは
http://www.apple.com/applescript/releasenotes/
AppleScriptに限らず、OSXは毎リリース大量のバグやポカを直し、同じ位のバグを
追加するからTechNoteやReleaseNoteは必読
192名称未設定:2005/09/12(月) 23:04:05 ID:cca6HIjo
193名称未設定:2005/09/16(金) 21:36:45 ID:SBiHy4Mj
OSX 10.4.2 ですが、ファイルの「このアプロケーションで開く」で設定するアプリケーションを
アップルスクリプトで設定できますか?できるなら具体的に教えてください。
creatorとは関係ないようなので、どういじればいいのかわかりません。
194名称未設定:2005/09/16(金) 22:27:16 ID:WuQed3xE
BathyScapheでスレを読んでる状態にして
もちろんシステム環境設定で補助機能をオン

activate application "BathyScaphey"
tell application "System Events"
tell application process "Cocomonar"
keystroke "r" using command down & shift down
keystroke "age"
keystroke tab using shift down
keystroke "age"
keystroke "r" using command down & shift down
end tell
end tell

delay入れないと暴走するけど
195名称未設定:2005/09/16(金) 23:16:14 ID:eSUA5qzZ
>>193
たぶんcreator typeを弄るしかないと思う
196名称未設定:2005/09/17(土) 03:57:34 ID:Rey2DH0a
あの対応ってどっかのplistとかに書かれてたりしないのかね?
TerminalからいじれればそれをAppleScriptに取り込めばいいんだろうけど。
197名称未設定:2005/09/18(日) 21:28:26 ID:0WTR3HpE
>>196
各アプリのplistにあるよ。
198名称未設定:2005/09/18(日) 23:54:07 ID:S34BR7mK
>>197
plistの定義は出発点でしかない。LaunchServicesがplistの定義を拾い、データベース化し
て管理する。データベース中のアプリケーションとドキュメントの関係はLaunchServicesの
非公開APIを使い個別に変更できる。Finderはこれを使っているだけ。
Finderがスクリプト経由の設定機能を提供していない以上、現状では変更できない。
creatorを変更して構わないなら、ある程度代用はできる。
199名称未設定:2005/09/19(月) 06:55:50 ID:cgSt/qJx
/Users/Steve/Library/Scripts/Applications/Safariとかに入れると
この場合Safariがアクティブな時だけそのスクリプトがスクリプトメニューに表示されるんですね

便利だ。。何年も使ってるのに知りませんでしたorz
200名称未設定:2005/09/19(月) 10:41:49 ID:SUEZxWOZ
>>199
おいおい、基本だぞw
201名称未設定:2005/09/19(月) 10:47:01 ID:sqZiMQCn
>>199
よかったね、Steve
202名称未設定:2005/09/19(月) 15:01:36 ID:3qFhGxpd
お、ホントだ!
俺も知らなかった。10.4以前は
/Users/Steve/Library/Scripts/Mail Scripts/
みたいな名前の付け方がしてなかったっけ?ずっとそのままで使ってた
203名称未設定:2005/09/19(月) 15:26:05 ID:u6ZXMO49
>>198
plistを定義しておくと、勝手にあとはうまくやってくれるから、考えなくていいんだよ。
204名称未設定:2005/09/19(月) 22:15:33 ID:+f3etfSQ
Steveがんばれ
205名称未設定:2005/09/20(火) 12:47:26 ID:qIGICt7E
スクリプトメニューの一番上にフォルダを開くってのがあるから
そこからサブメニューをたどって行くとわかるわな。
206名称未設定:2005/09/20(火) 20:45:30 ID:QuK8KtAt
age
207名称未設定:2005/09/25(日) 20:42:11 ID:kYn9NbL5
す、すんません、教えて厨です。
Quicktimeplayerのwindowのposition設定はどうやるんですか?
7になったら出来なくなっちゃったのかな・・・。
208しつもん:2005/09/27(火) 13:53:07 ID:OQ5Ai/Yk
今、基礎の基礎をやってるのですが(OS10.2.8,エディタ1.9)


tell application "Finder"
set x to every item of desktop that "が" is in name
repeat with obj in x
set name of obj to "★" & name of obj
end repeat
end tell


というようにフィルタで「が」「ぷ」などの濁音・半濁音を条件にすると反応しません。
濁音以外は「っ」なども見つけられるようなんですが、なぜ???
209名称未設定:2005/09/27(火) 14:51:21 ID:RNZlfd2q
>>208
僕の環境(OS 10.4.2)ではそのサンプルは動作しました。

確か、Unicode text型とstring型の比較処理が、望ましくない結果になる場合があったので、
("が" as Unicode text)
とすると起きなくなるかも。
210208:2005/09/27(火) 15:59:48 ID:OQ5Ai/Yk
>>209
どうもありがとう。

これはいけそう!だとおもったのですが、
これでも認識できませんでした…

うーん、モヤっとする…
211名称未設定:2005/09/27(火) 16:07:39 ID:GQ6SAgbw
原因が文字コードなのはまあまず間違いなさそうだよね。
Mac OS Xのファイル名では「が」とか「ぱ」とかって二文字になってるんだよね。
212208:2005/09/27(火) 16:42:11 ID:OQ5Ai/Yk
うん、文字コードですよね。

今試してて気づいたんだけど、
例えば「イラレで便利」というファイルに対して
「で」→認識せず
「て」→認識した!
「イラレで便利」→認識せず…

でした。

一括フィルタ処理メインで使いたいとおもってたのに
これでは使いづらくて困ったです。
213名称未設定:2005/09/27(火) 17:28:59 ID:RNZlfd2q
試しに書いてみた。自分でフィルタするならこんな感じかな

tell application "Finder"
set itemList to (every item of desktop)
set filteredList to ({} as list)
repeat with aItem in itemList
if ((name of aItem) as Unicode text) contains ("が" as Unicode text) then
set filteredList to filteredList & (aItem as alias)
end if
end repeat
end tell

で、思ったんだけどリストから項目の削除って出来ないの?

set A to {1, 2, 3}
delete item 2 of A

って書いても動くけど実際削除されてない。
214名称未設定:2005/09/27(火) 17:38:06 ID:gMJmIVRu
>>212
HFS+ はファイル名の「濁音」を「清音」+「合字用濁点」として格納するので、
Script 中では例えば「が」なら「か」+「合字用濁点(U+3099)」に分解しておかないとだめ。
なお>>209にもあるがこのあたりの処理は10.4ではシステム側でうまくやってくれるので不要。
(10.3は近所にないので不明)
215名称未設定:2005/09/27(火) 17:39:34 ID:gMJmIVRu
↑なので、10.4にアップデートする方が得策かもよ。
216名称未設定:2005/09/27(火) 19:13:50 ID:2totXYJL
これらスクリプトの初期設定ってどうやって作るの?
217名称未設定:2005/09/28(水) 00:09:18 ID:sbMVC0C8
スクリプトの初期設定とは?
218名称未設定:2005/09/28(水) 02:41:42 ID:fBdIktXq
自分自身に勝手に記憶する場合がある
219名称未設定:2005/09/28(水) 02:56:30 ID:sbMVC0C8
??自分が何かスクリプトを作っていて、設定を記憶して次回の起動ではその設定を使って動作するようにしたいとか、そういう事か?
220名称未設定:2005/09/28(水) 04:15:44 ID:jNe6/KGH
スクリプトのキャッシュをクリアしたいってことじゃない?
221名称未設定:2005/09/28(水) 14:56:38 ID:SQTndosO
propertyのこと? これをスクリプトの冒頭に書いて変数の宣言みたいにしとく
と、宣言した変数にはスクリプトの中で代入された最後の値が記憶されるぞ。

毎回初期値で初期化されそうだけど、初期化するのは初回起動時の1回だけ。

ただし、そのスクリプトをコンパイルした場合は、「property」の中の初期化
が再度行なわれる。

俺的にAppleScriptの好きな機能だったりする。ファイルとか触らなくても値の
保存ができるので便利。

↓以下コピペして何回も実行してみるよろし。

property myString : ""
property myNumber : 0

set myString to myString & "*"
set myNumber to myNumber + 1
display dialog myString
display dialog myNumber as String

222名称未設定:2005/09/28(水) 23:26:23 ID:BU6Jo7RV
おまいら釣られすぎですよ
223名称未設定:2005/11/01(火) 01:58:01 ID:Y6RIw/LQ
ちきい
224名称未設定:2005/11/02(水) 12:09:34 ID:CGs9Etl0
System Eventsを利用して
ファイルの権限を変更したいんですが
階層エラーの解決法がわかりません。

例)特定のフォルダ内のアイテムをすべて"読み/書き"にしたいです。

tell application "Finder"
activate
set ourFolder to folder "▲▲" of folder "●●" of disk "●●HD"
make new Finder window to ourFolder
tell application "System Events"
keystroke "a" using {command down}
keystroke "i" using {command down}
tell application process "Finder"
tell window 1
tell pop up button 1
click
tell menu 1
pick menu item "読み/書き"
delay 1
end tell
end tell
end tell
end tell
end tell
end tell

→NSReceiverEvaluationScriptError: 4 が出ます。
225名称未設定:2005/11/02(水) 12:13:27 ID:6hXaCEN/
chmodは使いたくないの?
226名称未設定:2005/11/02(水) 12:40:37 ID:kRI1ZuB8
224
何らかの自動化の中にそれを組み込む必要があるのか?
そうでないならFinderでさくっと変更したほうがラクだと思うが。
227名称未設定:2005/11/02(水) 12:42:09 ID:kRI1ZuB8
すまん。226はなかった事にして。
228名称未設定:2005/11/02(水) 13:09:59 ID:CGs9Etl0
>>225
権限を変更〜ラベルの変更作業を自動化したいんです。
私がやってみた範囲ですと、
リードオンリーのファイルを
chmodで644にしてもラベルの変更ができないんですよね。
Finderの情報でポップアップいじって初めてできるんですよ。
初歩的な間違いがあったらすみません。
229名称未設定:2005/11/04(金) 23:43:04 ID:Wljxcw4m
こんなソフトを探していますのスレでこういうのを発見したのだが、
これって本当にできないのかな。
-------------------------------------------------------------------------
>271 名前: 名称未設定 Mail: sage 投稿日: 05/10/30 (日) 10:23:51 ID: Ch+tPxuR
>>>244
>同じアプリの最後の1枚が閉じられたら終了って
>アプリがあれば確かに便利かも。
>全てのアプリに適用させるのは問題もありそうだから、
>適用するアプリを選択できるようにして、その適用した
>アプリのみ監視させると使い勝手がよさそう。
>多分アップルスクリプトでできると思う。

273 名前: 名称未設定 Mail: sage 投稿日: 05/10/30 (日) 13:02:28 ID: zTlsAe/T
>>271
むーりー。
-------------------------------------------------------------------------
なんとなくだけど、idleで定期的に使用してるアプリのウインドウの枚数を数えて
0になったら、quitさせればいいような気がするんだけど、考え方が甘いかな。
最近スクリプトの勉強を始めたばかりの初心者なので、どこが問題になるのか
解らないんですが、できない理由って何なのでしょう?
230名称未設定:2005/11/05(土) 00:17:08 ID:SJkF3CMw
細かい事考えなきゃUI Scriptingで出来るでしょ
231名称未設定:2005/11/05(土) 00:26:29 ID:4hVQxCHP
お前が欲しくてそれ書いたのに話に乗ってもらえなくてスレ移っただけだろ。氏ねやボケ
232名称未設定:2005/11/05(土) 00:33:16 ID:EAO1UF4T
特に問題があるとは思わないけど
特にメリットがあるとも思えない

何が便利なのか説明きぼん
233名称未設定:2005/11/05(土) 01:30:07 ID:vTjnK1QU
ウインドウを開いていないアプリが全部自動で落ちたら
ものすごく不便だぞ。
ウインドウを閉じたらプロセスも終了してくれよって
WINユーザの発想かな。
234名称未設定:2005/11/05(土) 17:38:04 ID:tlDwDkTi
>>228
はウイルスでも作る気なのか?
235名称未設定:2005/11/05(土) 18:40:53 ID:H/y3dHQK
236名称未設定:2005/11/05(土) 18:51:46 ID:vTjnK1QU
>>234
ラベルを変更するウイルス作ってどないすんねん。
「フォルダ開いたらあら不思議ファイルが全部真っ赤!あーびっくり!」orz
237名称未設定:2005/11/05(土) 19:11:05 ID:vTjnK1QU
>>235
>最後のウインドウを閉じる時は、
>ついでにアプリも終了させるという使い方をしていた。

わかるけど、いつも「コレ閉じたらおしまい」な時は
一応command+sしてからダイレクトにcommand+qしてるけど。
どうしてもマウスだけでやりたいなら例えばDock上のアプリアイコンを長クリック→終了かな。
238名称未設定:2005/11/05(土) 20:24:11 ID:eTRVFV/m
>>235
試しに作ってみればいいじゃん。
そうすればどのへんに無理があるかも、
便利か不便かもわかる。
改良を重ねて便利なものができて公開してみれば
喜ぶ人も居るかもしれん。

233が言ってる意味わかるかな?
単に1秒間隔で監視とかやってると、起動したばかりのウインドウのないアプリケーションも終了するだろ。
常に何かの書類から開くならいいけど。
239名称未設定:2005/11/05(土) 21:10:40 ID:mqsfsiyG
興味あったので作ってみた

property ignoreAppList : {"AutoQuitApp", "Finder", "LaunchBar"}
global hasWindowAppList
on run
set hasWindowAppList to {}
end run
on idle
tell application "System Events"
set theProcessList to name of processes whose background only is false
end tell
repeat with theIndex from 1 to count theProcessList
set theProcess to item theIndex of theProcessList
if false is ignoreAppList contains theProcess then
tell application "System Events"
tell process theProcess
set windowNum to count window
end tell
end tell
240名称未設定:2005/11/05(土) 21:13:34 ID:mqsfsiyG
if windowNum is 0 then
if hasWindowAppList contains theProcess then
tell application theProcess
quit
end tell
set tmpList to {}
repeat with theItem in hasWindowAppList
if theItem is not theProcess then set end of tmpList to theItem
end repeat
set hasWindowAppList to tmpList
end if
else
if false is hasWindowAppList contains theProcess then
set end of hasWindowAppList to theProcess
--display dialog theProcess & windowNum buttons {"OK"} default button 1
end if
end if
end if
end repeat
return 1
end idle

241名称未設定:2005/11/07(月) 17:30:36 ID:M1HGAFZH
>>239-240
乙。

で、ほしがってた人の感想とか書き込まれないのはなぜだろう。
242名称未設定:2005/11/07(月) 21:27:34 ID:mnp0ddO1
いつものことだろ。
243235:2005/11/07(月) 21:45:37 ID:RoS843Lq
いやあ、遅くなってすいません。
前の書き込みの後ネット接続できない所に行ってたもので。
とりあえず試してみました。
今のところ変な不具合もなさそうですし、満足してます。
本当は誰も作らなければ自分でやってみようかと
考えていたんですが、自分の頭で考えていたよりも
短いソースコードでできてるのにちょっとびっくりです。
せっかくなのでソースは勉強用に見させていただきます。
ありがとうございました。
244名称未設定:2005/11/07(月) 22:54:10 ID:r4bXVyuy
すいません224もお願いします。
「無理」という解答であってもありがたいです。
245名称未設定:2005/11/07(月) 22:54:53 ID:yksZa0hG
>>236
アクセス権の変更ができたらシステム書き換えできるよ。
246名称未設定:2005/11/07(月) 23:12:05 ID:AQawGxSF
>>244
この辺でも参考にしてみたら? 使えそうなのある気がするが。
ttp://www.fsight.co.jp/script/applescript_examples.html
247名称未設定:2005/11/08(火) 00:03:45 ID:B/lCZOq5
>>245
そういえばそうですね。
せめてホームディレクトリ上だけでもできるようになると嬉しいんですが。。。

>>246
ありがとうございます。ざざっと見たところ、ドンピシャなものはなさそうですが
ヒントがたくさん隠れていそうなので、参考にさせていただきます。

SystemEventsでAppleScriptが万能になると思ったのが浅はかでしたか。。。
QuickeysがTigerに対応してくれないかな。
248名称未設定:2005/11/08(火) 01:04:10 ID:u7Wyv8nP
> QuickeysがTigerに対応してくれないかな。

QuicKeys X3 System Requirements:
→Mac OS X v10.3+
 (Tiger Ready)

ってなってるから使えるんじゃねの? 知らんけど。
249名称未設定:2005/11/08(火) 05:22:22 ID:88Y+1Up+
chmodじゃだめというのが本当なのかな?
アクセス権が変わった事をFinderが認識してないとか?
250224:2005/11/08(火) 09:57:01 ID:LDLceevh
>>249
いまやってみたらできました。chmod
嘘いってたのかな。..

以前さんざんトライしてできなかったのに。
すみませんでした。
(あのときなぜできなかったのかの旅がはじまる)
251名称未設定:2005/11/13(日) 18:40:49 ID:AIOm3HEt
相談に乗ってくださいませ。
アップルスクリプトでiTunesの再生履歴の表示は可能でしょうか。
iTunesのスマートリストでその様に条件付けをして
それを参照出来れば良い様に思うのですが。

ちなみにGeekToolというソフトで使用してデスクトップに
その履歴を表示しようと思っています。
ググると同じ事をしている人はいたのですが、
それを改造しようにも私には難しくて。
でもスクリプトでもよく判らないという……orz
252名称未設定:2005/11/13(日) 20:17:38 ID:lA5hX5/k
再生中の曲を調べてそれをテキストファイルに記録していけばいいんじゃないの?
253名称未設定:2005/11/13(日) 21:16:03 ID:j9FIwA/u
こんな感じかね。
スマートプレイリストに登録されてる曲の名前と最後に再生した日と再生回数を表示する。

tell application "iTunes"
activate
set theSources to sources whose kind of it is library
repeat with theSource in theSources
set thePlaylists to (user playlists of theSource whose smart of it is true)
repeat with thePlaylist in thePlaylists
set theTracks to tracks of thePlaylist
repeat with theTrack in theTracks
set theName to name of theTrack
set theDate to played date of theTrack
set theCount to played count of theTrack
display dialog (theName & return & theDate & return & theCount) as text
end repeat
end repeat
end repeat
end tell
254251:2005/11/13(日) 23:57:14 ID:AIOm3HEt
>>253
わざわざありがとうございます。
スクリプトの結果はデスクトップのバックグラウンド(?)に貼り付けて使います。
ソフトの都合上、スクリプトを数秒間に一度叩いて結果を得るので、iTunesが
起動していない状態で叩いて起きてしまうと不都合なので、少しいじってみました。
……いじったと言っても、ネット上にあったスクリプト同士のつぎはぎです(汗)

ちなみに今の仕様だと曲名/再生月日/再生順序 ですが、
これを曲名/アーティストには出来るものなのでしょうか?
過去10曲くらいがまとめてリストみたいに帰ってくるのが理想なのですが。
スクリプトは後述します

>>252 アイデアありがとう。でも判らないので判る方に逃げましたw
255251:2005/11/13(日) 23:59:09 ID:AIOm3HEt
on RunningProcess(theCreator)
tell application "Finder"
return (every process whose creator type = theCreator) ≠ {}
end tell
end RunningProcess

if RunningProcess("hook") = true then
tell application "iTunes"
set theSources to sources whose kind of it is library
repeat with theSource in theSources
set thePlaylists to (user playlists of theSource whose smart of it is true)
repeat with thePlaylist in thePlaylists
set theTracks to tracks of thePlaylist
repeat with theTrack in theTracks
set theName to name of theTrack
set theDate to played date of theTrack
set theCount to played count of theTrack
return (theName) & "/ " & (theDate) & "/ " & (theCount)
end repeat
end repeat
end repeat

end tell

else
return "iTunes is not running"
end if
256名称未設定:2005/11/14(月) 00:26:48 ID:p4fXNKWt
>>255

set theName to name of theTrack
set theDate to played date of theTrack
set theCount to played count of theTrack
return (theName) & "/ " & (theDate) & "/ " & (theCount)

この部分をいじればよろし

スクリプトエディタからiTunesの用語説明を開くと
trackのプロパティに取得できる情報の種類の一覧がある
257251:2005/11/14(月) 10:49:36 ID:0D5OM5Ov
>>256
ありがとうございます。

set theName to name of theTrack
set theArtist to artist of theTrack
return (theName) & "/ " & (theArtist)

これで曲名/アーティストで表示する様になったのですが、
どうも取得する情報が一定でなかったり、未再生の曲が
表示されてしまいます。

>>253 さんが書いてくれたスクリプトが、どういう手順で動作を行って
いるのか判ればいじれると思うのですが、今ひとつよく判りません……orz
どなたかザクッと解説して頂けないでしょうか。

それとtheTrackやtheSourceの様に、the〜という表記はどういう意味合いを
持つのでしょうか?
エクセルの関数の絶対値みたいなものなのでしょうか?
ナニやら教えて君で恐縮ですが、よろしくお願いいたします。
258名称未設定:2005/11/14(月) 18:21:59 ID:lWYAIldq
スクリプトエディタは変数や予約語を色分け表示できるから
(デフォルトでも設定済みのはず)
それを見るといいと思いますよ。
スクリプトエディタ>環境設定>フォーマット

1行ずつ順を追って行けばわかりますが、
the〜は
set the〜 to なんとかかかんとか
という具合にして値が入れられていますね。
変数です。
変数名の付け方は自由度が高いので、どんな値が入っているのかわかりやすい名前にするといいと思います。
259名称未設定:2005/11/14(月) 19:09:42 ID:VrVf91dD
もうちっと使えそうなものに改造してみた。
"最近の曲"という名前の smart playlist から曲名とアーティストのタブ区切りテキストを得る。

on isRunning(theCreator)
tell application "Finder"
return (every process whose creator type is theCreator) is not {}
end tell
end isRunning

つづく
260名称未設定:2005/11/14(月) 19:10:38 ID:VrVf91dD
--"最近の曲"という名前の smart playlist に含まれる track を要素とする list を得る
--何も得られない場合は空の list を返す
on recents()
tell application "iTunes"
--application に含まれる source のうち種類が library であるものの list を得る
--種類が iPod だったり audio CD だったりするものは、この段階で排除してしまう
set theSources to sources whose kind of it is library
--list が空でないとき
if length of theSources > 0 then
--list に含まれる最初の source を取り出す
set theSource to first item of theSources
--source に含まれる playlist のうち smart playlist で名前が"最近の曲"であるものの list を得る
set thePlaylists to (user playlists of theSource whose smart of it is true and name of it is "最近の曲")
--list が空でないとき
if length of thePlaylists > 0 then
--list に含まれる最初の playlist を取り出す
set thePlaylist to first item of thePlaylists
--playlist に含まれる track の list を返す
return tracks of thePlaylist
end if
end if
--list が空のとき
return {}
end tell
end recents

つづく
261名称未設定:2005/11/14(月) 19:11:35 ID:VrVf91dD
--track を要素とする list を最近再生した日を基準として降順にソートする
--track の取得元である smart playlist について iTunes 側でソートを設定してある場合は不要
--処理の説明については割愛
on sort(theRecents)
tell application "iTunes"
if length of theRecents < 2 then
return theRecents
else
set theC to middle item of theRecents
set theH to {}
set theL to {}
set theE to {}
repeat with theRecent in theRecents
set theD to (played date of theRecent) - (played date of theC)
if theD > 0 then
set theH to theH & {theRecent}
else if theD < 0 then
set theL to theL & {theRecent}
else
set theE to theE & {theRecent}
end if
end repeat
return my sort(theH) & theE & my sort(theL)
end if
end tell
end sort

つづく
262名称未設定:2005/11/14(月) 19:14:24 ID:VrVf91dD
--曲名とアーティストのタブ区切りテキストを返す
--iTunes が起動していない時は空文字を返す
on run
if my isRunning("hook") then
tell application "iTunes"
--"最近の曲"という名前の smart playlist に含まれる track の list を得る
set theRecents to my recents()
--list をソートする
set theRecents to my sort(theRecents)
--list の要素数が 10 より大きい場合は最初の 10 要素のみに縮減する
--track の取得元である smart playlist について iTunes 側で曲数の上限を設定してある場合は不要
if length of theRecents > 10 then
set theRecents to items 1 thru 10 of theRecents
end if
--行のデータを格納する空の list を用意する
set theList to {}

つづく
263名称未設定:2005/11/14(月) 19:15:54 ID:VrVf91dD
--各々の track について行のデータを生成して list に格納する
repeat with theRecent in theRecents
set theList to theList & (name of theRecent & tab & artist of theRecent)
end repeat
--テキスト区切り文字を保存する
set theDelimiters to AppleScript's text item delimiters
--テキスト区切り文字を改行文字に設定する
set AppleScript's text item delimiters to {return}
--list から文字列を生成する
set theString to theList as text
--テキスト区切り文字を復帰する
set AppleScript's text item delimiters to theDelimiters
--文字列を返す
return theString
end tell
else
--空文字を返す
return ""
end if
end run

おわり
264名称未設定:2005/11/14(月) 19:16:09 ID:30tEqez6
http://homepage1.nifty.com/ton_b/intro/basic.html
Mac OS XのAppleScript入門、基本編です。
265名称未設定:2005/11/14(月) 19:17:10 ID:VrVf91dD
改行制限 UZeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
run が2つに分かれちまった
266251:2005/11/14(月) 22:38:16 ID:0D5OM5Ov
いやあ、もう何と言えば良いのか……ありがとうございます。
スクリプトだけでなく、こんな詳しい解説まで。
取り急ぎお礼まで。
また改めて判らないところを質問するかと思うので、
その時はよろしくお願いします。
……今日は寝れなかったりしてw
267名称未設定:2005/11/20(日) 14:49:08 ID:+dyne9vD
初心者質問で恐縮ですが、アドバイスお願いします
仕事で使った写真を、週単位でまとめてCDに保存する際に
「写真のファイル名の先頭に連番をつける」という作業を
OS9のドロップレット(誰かがネット上で探してきた)で行っています。(例、001_●●.jpg

今秋からmacがOSXに更新になり、件のドロップレットをエディタで
再コンパイルして作業したのですが、連番の振られる順番が
今までとは変わってしまいます。

例えばa,b,c,dの4つのファイルに連番を振ると、OS9時は
001_a
002_b
003_c
004_d

の様に名前順に処理されていたのが、OSX時にはランダムな感じの順に
番号がついてしまいます。これを機にスクリプトの勉強を始めてみたのですが
なにぶん初心者なもんで、壁に当たってしまって(泣

on open theList
の際に作成されるリストの順番ってどのように決まるモノなんでしょうか?
ってゆーか質問の内容自体思いっきりハズシてますかね?
268名称未設定:2005/11/20(日) 14:53:42 ID:U/tbkzYU
>>267
外してるかも知れないけど。
Finderでファイルを選択する時にウインドウをカラム表示にしてみると上手く行くかも。
269名称未設定:2005/11/20(日) 15:43:19 ID:xnG9F0IY
より確実に、アイコン表示でも大丈夫にするなら、
do shell scriptでsortコマンドを使って
ファイル名をソートしてから処理するという方法もあると思う。
漏れはエロ動画連続再生用asx生成スクリプトでそれに近い方法を使いますた。
270名称未設定:2005/11/20(日) 17:11:39 ID:k3V5iIhG
>>269
便乗で恐縮だが

詳しく!!
271名称未設定:2005/11/20(日) 18:21:01 ID:xDca2XkQ
on open (inDropItem)
set theList to sortList(inDropItem) --ソート
--確認表示
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {return}
display dialog (inDropItem as string) & return & "--" & return & (theList as string) & return & "--"
set AppleScript's text item delimiters to OriginalDelimiters
--リネーム
set theIndex to 1
repeat with i from 1 to count theList
tell application "Finder"
set theFile to (item i of theList) as alias
--display dialog theFile as string
set theIndexString to do shell script "perl -e 'printf( qq{%03d}, " & theIndex & " )'"
set name of theFile to theIndexString & "_" & name of theFile
set theIndex to theIndex + 1
end tell
end repeat
end open
on sortList(inTextList)
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {ASCII character 10}
set theText to do shell script "echo " & quoted form of (inTextList as string) & " | sort"
set AppleScript's text item delimiters to {ASCII character 13}
set theList to text items of theText
set AppleScript's text item delimiters to OriginalDelimiters
return theList
end sortList
272名称未設定:2005/11/21(月) 10:02:09 ID:oBEJh+xL
ただね。
リネーム作業は素直にリネーム専用アプリを使ったほうが早いと思う。
R-NameとかShupapanとかね。
デジカメの写真だったら、Exifの撮影情報を元にリネームできるソフトもあるし。

それらでできないような複雑なリネーム作業だったらスクリプトの出番もあると思うけどね。
273267:2005/11/21(月) 10:24:02 ID:bHHudLqc
>>268
多分リスト表示になってたと思う。

>>269>>271
do shell scriptってナンデツカ?ヽ(`Д´)ノ ウワァァァン
とりあえず会社で一度ためして見ます。

結果は後日報告させていただきます。きょう休みナもんで…
どうもありがとうございました。
274224:2005/11/21(月) 15:46:05 ID:stzlzTNY
>>273
>do shell scriptってナンデツカ?ヽ(`Д´)ノ ウワァァァン
ほい
http://www.h5.dion.ne.jp/%7Etuyano/X-AS-Tutor/XASTutor5.html
275名称未設定:2005/11/22(火) 11:09:53 ID:p+yxjjdC
何度も既出だがAppleのサイトがとても参考になる。
ttp://developer.apple.com/ja/technotes/tn2065.html

もちろんシェルスクリプト(ターミナルのコマンド)自体に対する理解が必要だけどね。
そっちはコマンドの名称でぐぐればLinux用?の日本語のmanが出てきたりして
それでだいたいの事はわかる。
Mac OS X向けにコマンドの解説してるサイトもある。
あとPerlについて「初めてのPerl」に書いてあるくらいの事を理解すれば
AppleScriptでのテキスト処理関係がかなり楽になるよ。
(もちろんRubyやPython等でもいいと思うがそっちは俺が知らん)
276267:2005/11/23(水) 19:42:45 ID:Wzst1IIJ
日曜に初心者質問をカキコした267です。

>>268様のご指摘のとおり、ウインドウをカラム表示にすると
名前順に番号が振られました。同僚共々大変感謝してます。

>>271様の晒してくれたスクリプトはなんかうまく動かない…
perlとかdo shell scriptとか初心者の僕には荷が重かったでツ。
もっとレベルを上げてから再チャレンジします。

>>272 >>274 >>275
アドバイスありがとうございました。
277名称未設定:2005/11/25(金) 01:11:15 ID:kLxxbFuR
長い間winとunix使ってた者ですが、この度仕事でMac使いになりました。
スクリプトの書き方がかなり違うので戸惑ってます。

本を買って勉強するつもりですが、
取り急ぎワイルドカードの記述を教えていただけないでしょうか?
2時間くらい検索頑張ったんですが、発見出来ませんでした。

あるフォルダ内のすべての .htmlファイルを移動する、といった際
*.html でいけてたのがapple scriptだと弾かれました。
色々試したんですけど、わからず結局手作業。
どうかお願いします!

環境 os/9.1.1 script/ver1.5.5 PowerMacのG3です。
278(・∀・):2005/11/25(金) 01:30:07 ID:7kEqJ44f
とりあえず、そのスクリプトとやらを書きたまえ。
279名称未設定:2005/11/25(金) 01:34:30 ID:n6st6n7J
OS 9ですか。
Mac OS Xならシェルスクリプト使えるし、あなたにとって使いやすいんだろうと思いますが…。
とりあえずMacPerlかMacJPerlをインストールするといくらかマシになるかな?
かえって混乱するかな?
~~~~~~~~~~~~~
>>277
AppleScriptでのワイルドカードっぽいファイル名の指定は
Finderでのファイル検索での選択肢と同じ「〜を含む」「〜で始まる」「〜で終わる」があります。
「〜で終わる」を使って記述すると
every file whose name ends with ".html"

具体的には
tell app "Finder"
tell folder "Macintosh HD:名称未設定フォルダ:"
every file whose name ends with ".html"
end tell
end tell
とかこんな感じ。
280名称未設定:2005/11/25(金) 01:36:44 ID:3QHcmP9Z
>>277
MacPerlかMacJPerlか、MPW Shellでも使った方が早いんジャマイカ
281名称未設定:2005/11/26(土) 00:13:59 ID:eojtD5ur
>279
とても丁寧なレスを頂き、本当にありがとうございます!
「ends with」は行き着いたんですけど、こんな風に使うんですか!
解説ページにApple Scriptは「英語のようなもの」と書かれてたけど、本当ですね。

>280 Macに不勉強で挙げて頂いたものを知らなかったんですけど、
調べてみて、私に向いているようでしたら導入を検討してみます。

ありがとうございました!
282281:2005/11/26(土) 00:15:30 ID:eojtD5ur
ブラウザバックしたら名前欄とsageが外れてしまいました。
281=277です。
283名称未設定:2005/12/08(木) 00:17:43 ID:87KczeZA0
284名称未設定:2005/12/10(土) 18:05:18 ID:842LRbJV0
↓を参考にファイルサイズを取得して3桁カンマ区切りで表示したいのですがうまく行きません。
ttp://www.asahi-net.or.jp/~va5n-okmt/factory/applescript/sample_code/pages/sample.html#getfilesize1
ttp://mtlab.ecn.fpu.ac.jp/WSM_1998/981113205915.html

set theFile to choose file
open for access theFile without write permission
set dataSize to get eof theFile
close access theFile

set x to dataSize as text
set Len to (count x) - 1
set {DIVx, MOdx} to {Len div 3, Len mod 3 + 1}
set R to text 1 thru MOdx of x
repeat with i from -DIVx to -1
set R to R & "," & (text (3 * i) thru (3 * (i + 1) - 1) of x)
end repeat

display dialog R

を実行すると123456790バイトのファイルが
1.,234,567,890,E+9
となってしまいます。
ヒント下さい

OSX10.3.9, AppleScript 1.9.3
285(・∀・):2005/12/10(土) 18:59:51 ID:axyE7jQ70
うん、4バイトの整数型(integer)を超えてるんだろうね。
get eofの戻りが浮動小数型(double integer)になってます。

え〜と
>set x to dataSize as text
で、as Textすると1.234567890E+9になると思う。

set x to 1.2345678901E+10 as double integer
set y to "" as string
repeat while x is not 0
set y to (((x mod 10) as integer) as string) & y
set x to (x - (x mod 10)) / 10
end repeat
set z to y

て感じで一桁ずつintegerにしてとりだすかな。
286名称未設定:2005/12/10(土) 19:49:13 ID:Wu2GhB1tP
set theFile to choose file
open for access theFile without write permission
set dataSize to get eof theFile
close access theFile

set R to do shell script "perl -e '$_ = " & dataSize & "; 1 while s/(.*[0-9])([0-9][0-9][0-9])/$1,$2/; print;' "

display dialog R
287名称未設定:2005/12/10(土) 20:02:43 ID:842LRbJV0
お二人ともありがとん。

ところで
'≧' (">="やoption-'>'で入力する奴)がバグなのか使えない...

if 1 ≧ 0 then display dialog "!"
だけでもエラーになる
構文エラー
"then"などがあるべきところですがunknown tokenが見つかりました。
288名称未設定:2005/12/10(土) 21:57:03 ID:+oCnk6cU0
">="とタイプしてコマンド+K
289名称未設定:2005/12/10(土) 22:14:28 ID:842LRbJV0
最初に ">="とタイプしてコンパイルはいいんだけど、
コンパイル後に他のところを書き換えてコンパイルするとまたエラーになるの。
で、再び手動で'≧'のところを">="に書き直さないとコンパイル通らない
290名称未設定:2005/12/10(土) 23:24:50 ID:/9hG6VH70
>>287-289
同じ意味の英文(の演算子)で書けばいいんでは?面倒だけど。
is not less thanとかis greater than or equal toとか
is'nt greater thanとか。
日本語入力ソフトに「いじょう」「いか」などの読みで登録しておくと
だいぶ楽かと。

>>285
前から思ってたけど、「(・∀・)」さんって何者?
質問スレの回答とか見てても、何でも詳しいですよね。すげー。
291名称未設定:2005/12/10(土) 23:26:29 ID:/9hG6VH70
>>287-289
あ、解決法を求めているわけでなかったとしたら、
その問題はけっこー前から知られてるものだと思います。
どのバージョンで生じたものかは忘れましたが…。
292名称未設定:2005/12/20(火) 18:15:45 ID:Fsutb7Gz0
Tell application "xxxxx" ~~~
というスクリプトを書いて、コンパイルボタンをクリックすると
tell current application ~~~
に変わってしまうのはナゼ?

頼む。教えてくれ。orz
293名称未設定:2005/12/20(火) 18:32:58 ID:W8PgY15G0
何で関係あるかもしれないとこ伏せるの?
294292:2005/12/20(火) 20:11:16 ID:ILBgvEzU0
スマン。
Tell application "Mousepose"
です。
Exposeの最後の e はウムラウト(だっけ?)つきの e です。
(opt + e → e)

http://www.boinx.com/mousepose/
295名称未設定:2005/12/20(火) 22:03:09 ID:siMZ7ENe0
AppleScriptではtellは必ず小文字で書くことになっているから。
以上。
296名称未設定:2005/12/22(木) 06:11:27 ID:AnqAE04g0
プログラミング経験ゼロな俺には
はじめの一歩の踏み出し方が
よくわからないんだが、
みんなAppleScriptはどうやって勉強したの?
297名称未設定:2005/12/22(木) 13:04:47 ID:QiiDBOeT0
どうしたらいいのかわからない時にネットで検索→よく似たサンプルなどを発見→
298292:2005/12/22(木) 15:56:27 ID:8jf0Ewzd0
>>295
なめるな。
299名称未設定:2005/12/22(木) 15:57:30 ID:yNSe5NiH0
>>296
→とりあえず、repeat文でフォルダ作成スクリプト実行→フォルダが無限に作られる→
300名称未設定:2005/12/22(木) 17:32:35 ID:xSTUwqxL0
とりあえずソシムから出てる「AppleScript Programming for Mac OS X」はガチ
301名称未設定:2005/12/23(金) 17:32:24 ID:67KZTLZy0
>>294
1. Mousepose.appの様にアプリケーション名からウムラウトを取って使う。
特殊文字はいろいろ問題があるので。
2. 英語環境で使う。
302名称未設定:2005/12/23(金) 17:59:13 ID:VtAjH2g20
あれはウムラウトじゃないがなw
303名称未設定:2005/12/23(金) 20:00:38 ID:UbXi3mTQ0
>>296
挨拶を表示するだけとか、Finderの操作をするようなスクリプトを
サンプル集みたいなのを見ながら色々作って行くといいんじゃないかなと思います。
各アプリケーションの用語辞書の見方がわかるようになると作れるものの幅がずいぶん拡がるかと。

問題は、昔出ていた本が今無いって事ですかね…。
最近出てるものだと、AppleScript Studioのほうに話題が行っているので、初学者にはちょっとややこしいかも。
リファレンスも絶版みたいだし。

そうなるとネット上の情報に頼る事になりますが、情報が古いかもしれません。

Google検索 - AppleScript 入門
ttp://www.google.com/search?q=AppleScript%20%E5%85%A5%E9%96%80
~~~~~
Amazon・ASCIIの不思議。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756134785/
は絶版扱いなのに、その前のバージョンである
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756110681/
は発送可能?
304296:2005/12/24(土) 04:09:07 ID:5R1pECd00
なるほど、まずは簡単なサンプルの真似から、
ということですね。

本はAppleScript Programming for Mac OS Xを
購入してみます。

ありがとうございました。
305名称未設定:2005/12/29(木) 02:35:19 ID:FDF6m9/L0
tell application "Finder" to exists folder "ですくとっぷ" of home

いいのかこの仕様?
306名称未設定:2006/01/02(月) 01:24:45 ID:0depRsVN0
>>305
これってウイルス?
307名称未設定:2006/01/02(月) 09:29:22 ID:JVlfnQJd0
tell application "Finder" to exists folder "ぱぶりっく" of home
tell application "Finder" to exists folder "ぴくちゃ" of home
tell application "Finder" to exists folder "みゅーじっく" of home
tell application "Finder" to exists folder "むーびー" of home
tell application "Finder" to exists folder "らいぶらり" of home
308名称未設定:2006/01/02(月) 20:10:13 ID:EBzDBbbRP
>>305
スクリプトの意味はホームフォルダに"ですくとっぷ"って名前のフォルダが
存在するか?、で実行結果がtrueになる。
ってことはひらがな、カタカナの区別をしてないということになる。
309名称未設定:2006/01/03(火) 09:00:54 ID:BTX37dUk0
ファイルシステム上にスペシャルフォルダが存在するかを確かめるのが目的なら
path toコマンドを使うべき
わざわざローカライズされたディスプレイネームをFinderのオブジェクトモデル
中で検査する目的は何?
310名称未設定:2006/01/04(水) 06:04:31 ID:oqodJdDx0
>>309
「いらん問題」と「イラン問題」の区別がつかないという話題。
311名称未設定:2006/01/05(木) 08:16:02 ID:if64PmNC0
>>310
Unicode比較方法が不適切なのもあるけど、Finderのオブジェクトモデルはファイル
システムの解釈とは違うから厳密なファイル処理には使えない。
"デスクトップ"にしてもFinderがそう呼んでるだけで、そういう名前のフォルダは
存在すらしないでしょ。
312名称未設定:2006/01/05(木) 20:05:13 ID:fs95CNhk0
フィードバックしといた
313名称未設定:2006/01/06(金) 22:48:11 ID:qQ6CSK+00
>>312
314名称未設定:2006/01/11(水) 02:00:30 ID:o5eVTvB+P
保守
315名称未設定:2006/01/22(日) 08:24:14 ID:5JzLbBnB0
入力切替(cmd+space) ってAppleScriptで出来る?

それともShellScriptの方かな、、
316名称未設定:2006/01/22(日) 14:20:51 ID:AlLZqSwd0
tell application "System Events"
keystroke " " using command down
end tell
317名称未設定:2006/01/23(月) 13:08:40 ID:93zu1lG20
>>316
うぉ、
ありがとう!!
318名称未設定:2006/01/24(火) 20:59:59 ID:+905xCEh0
すいません、質問なのですが
スクリプトエディタでiCalのデータベースのバックアップを
実行するというものは作れますか?

319名称未設定:2006/01/24(火) 21:24:22 ID:dHS4uj0I0
はい
320名称未設定:2006/01/24(火) 21:36:40 ID:rF4vr0My0
やってみたんですが、iCalの操作が記録されませんでした……。
iCalを開くところまで記録されてました。

どうえすれば良いでしょうか?
321名称未設定:2006/01/24(火) 21:52:13 ID:HbDnl/Fm0
表のインターフェースからではなく、各アプリにはAppleEventという裏口があるのだよ。
iCalをスクリプトエディタにドロップするとそれを制御するための用語辞書が見れる。
322名称未設定:2006/01/24(火) 22:07:21 ID:dHS4uj0I0
用語辞書の範囲では無理そう。なのでUI Scriptingで適当に書いてみた。
delayで待たせないと反応しない場合とかあるから、
環境/状況によっては動かないかもね。
ちなみにiCal 2.0.3で確認。書類フォルダに保存。

tell application "Finder"
set saveAlias to (path to (documents folder)) as alias
set savePath to ((POSIX path of saveAlias) as Unicode text)
end tell
tell application "iCal" to activate
tell application "System Events"
tell process "iCal"
tell front menu bar
tell menu bar item "ファイル"
tell menu "ファイル"
click menu item "データベースをバックアップ..."
end tell
end tell
end tell
delay 1
323名称未設定:2006/01/24(火) 22:07:59 ID:dHS4uj0I0
tell front sheet
keystroke "G" using {command down, shift down}
end tell
delay 1
tell front window
set value of text field 1 to savePath
keystroke return
end tell
delay 3
tell front sheet
keystroke return
end tell
end tell
end tell
324名称未設定:2006/01/24(火) 22:16:00 ID:rF4vr0My0
ありがとうございます!
>>322>>323を繋げてスクリプトエディタに入れて
アプリケーション実行専用で保存しようとしたら構文エラーと出ました。
素人なので何か操作を間違ってるんでしょうか?
325名称未設定:2006/01/24(火) 22:31:31 ID:RN4CR+hj0
> 素人なので何か操作を間違ってるんでしょうか?

アホか。
326名称未設定:2006/01/25(水) 21:40:33 ID:LNgRLNV00
>>320
AppleScriptでどこまで操作できるか、記録できるかどうかはアプリによる。
残念ながら最近はApple純正のアプリケーションでも記録機能はサポートしてないね。
昔はFinderとかだと記録だけでもけっこう行けたんだけどね。

>>324
1.余計なスペース等を入れてコピペしてないかエディタ等で確認
2.そもそもOSとiCalのバージョンは?
  OSのバージョンによって構文が通るかどうか変わるから。
327名称未設定:2006/01/25(水) 23:05:56 ID:1pzh7JtG0
つなげるんじゃなくて、323を322の一部に加えるんじゃない?
tell ...から end tellまでがひとくくりだから、その入れ子構造をよく見て書き加えるんだよ。
328318:2006/01/26(木) 01:04:31 ID:6R2MY9V70
>>326
アドバイスありがとうございます。
OSは10.4.4
iCalは2.0.3
です。

>>327
そんな高度なこと……、いろいろ注意しながら切ったり貼ったり
してみましたがどうも駄目でした。

ところでAutomatorってこんなの無理ですよね?
329名称未設定:2006/01/26(木) 03:19:25 ID:+sDEswVe0
真面目に検討してないが、この程度の事ならAutomatorでもできそうな気もする。
330名称未設定:2006/01/26(木) 06:44:21 ID:HN4Qnq+E0
現在のことえりの入力状態(英字、ひらがな、かたかた、、)って取得できる?
あるアプリのランチャで、もし英字以外だった、英字に変更するようにと思ってるんだけど。
331名称未設定:2006/01/26(木) 06:46:55 ID:HN4Qnq+E0
自演



かたかたは取得できんか、、、orz
332名称未設定:2006/01/26(木) 07:30:01 ID:1uFyyRBS0
簡易的には、
do shell script "defaults -currentHost read com.apple.HIToolbox AppleKeyboardScript"
して"smRoman"かどうか。

より詳しくは、
do shell script "defaults -currentHost read com.apple.HIToolbox AppleCurrentInputSource"
して"Input Mode"で種別を判断する。

…のかな? ただし変更の仕方は知らん。それで>>315だった?
333名称未設定:2006/01/26(木) 12:57:42 ID:PWvgkSrA0
>>332
できた!ありがと。
defaultsで取得できるんだ。奥深っ

>…のかな? ただし変更の仕方は知らん。それで>>315だった?
そそ。
もともとshell scriptから呼ぶつもりだったから好都合。
334名称未設定:2006/01/26(木) 14:02:50 ID:+sDEswVe0
>331
自演?自己レスって言いたいのか?
335名称未設定:2006/01/26(木) 15:10:09 ID:GYFRYKAm0
The End とかけたんじゃ
336名称未設定:2006/01/27(金) 01:16:10 ID:NftFUH8t0
オライリーのアップルスクリプト本は第2版が出るんだね。
今度こそ翻訳でないかなぁ。
337318:2006/01/28(土) 14:32:47 ID:TccBkraR0
解決しました。
ありがとうございました。
338偽318:2006/01/28(土) 16:44:39 ID:koJYj4Vf0
おもろい、めずらしいアップルスクリプト発表会 6
http://pc7.2ch.net/test/read.cgi/mac/1117979906/402

マルチ先の上記のレスで示された
ttp://discussions.apple.com/thread.jspa?messageID=1030720
のリンク先の情報で解決しました。
-----
同じ悩みを持つ人のためにここまで説明してほしい。
339名称未設定:2006/01/29(日) 04:53:45 ID:QrT5sO4M0
>>338
318じゃないけど、おまえ偉そう。
報告にくるだけマシだろ。
340名称未設定:2006/01/29(日) 05:07:36 ID:yhrJeRJg0
(´・∀・`)
341名称未設定:2006/01/29(日) 05:17:15 ID:nH9QHNiU0
マシだから何って話なんだが。
足りない部分を補う書き込みをした人を偉そう呼ばわりとか
頭おかしいよ。
342名称未設定:2006/01/29(日) 06:31:00 ID:yhrJeRJg0
○○じゃないけどっていうのは本人っていうお約束だから
343名称未設定:2006/01/29(日) 17:35:37 ID:nH9QHNiU0
そうか。お約束をわかってなかった。
344名称未設定:2006/01/29(日) 21:25:30 ID:wzaMBMj00
○○だけどっていうのは?
345名称未設定:2006/01/29(日) 23:31:07 ID:4n5hZ+gS0
>>342
342じゃないけど、そんなことないかもよ
346名称未設定:2006/01/30(月) 00:25:35 ID:FypYfYpz0
これが噂の天丼?
347名称未設定:2006/01/30(月) 01:41:00 ID:ZDaVZQnq0
すいません、Appleのサイトから、QT用のスクリプトをダウンロードしたのですが、
スクリプトの中の"¬"って文字が構文チェックに引っかかるのですが、
これって、なんでしょう?
消したら、消したで、また、構文チェックに引っかかるし・・・。
348名称未設定:2006/01/30(月) 02:57:24 ID:0YY5W+jr0
それとその次の改行も削除。
349名称未設定:2006/01/30(月) 04:29:22 ID:FypYfYpz0
>>347
1行が長くなった時に見やすくするために1行を分けるための方法(だった?)。
対処は>348さんの通り。分けられてる行を1つにつなぐ。
350名称未設定:2006/01/30(月) 07:34:34 ID:ZDaVZQnq0
>>348-349

ありがとうございます。やってみます。
351名称未設定:2006/02/01(水) 15:03:22 ID:kFp30HNi0
tell application "Finder" to empty trash

のempty trashって用語説明のどこをみれば載っているのでしょうか?
352名称未設定:2006/02/01(水) 17:12:31 ID:yDsC3xPb0
>>351
用語説明

Finder

Finder items

コマンド

empty

empty: Empty the trash
empty reference -- メemptyモ and メempty trashモ both do the same thing
353名称未設定:2006/02/01(水) 17:35:57 ID:gdgd3gu50
つNoMeMoBasters
354名称未設定:2006/02/01(水) 22:52:25 ID:K5e5/ZUb0
>>352
検索に入れたらあったわ。ありがとな。
355名称未設定:2006/02/02(木) 08:37:04 ID:roL2TMrb0
この態度の変容、皮先くん?
356名称未設定:2006/02/04(土) 17:01:52 ID:eMXqwTAC0

質問デス。

iTunesを制御するアプリをつくりたいのですが、
tell application "iTunes"
.....
end tell

と書いてアプリを実行すると、iTunesが勝手に起動してしまいます。
iTunesが起動しているかどうかを確認する方法はありませんか?

それと、文字列をURLエンコーディングするコマンドなどはありませんか…

どうぞ、よろしくお願いします
357名称未設定:2006/02/04(土) 17:33:32 ID:eMXqwTAC0
自己解決
初心者なので何か勘違いしてるかもしれないけど、そこんところはつっこんでくらはい

set apList to do shell script "ps -auxwww"
set n to offset in apList of "iTunes -psn_"
if (n = 0) then
display dialog "起動してない"
else
display dialog "起動してる"
end if
358名称未設定:2006/02/04(土) 17:56:03 ID:eMXqwTAC0
スマソ
http://d.hatena.ne.jp/ttsm/20051112
にもっと良い方法があった
359名称未設定:2006/02/04(土) 18:55:39 ID:tUA15WfZ0
FinderじゃなくてSystem Eventsの方がいいんじゃないの
360名称未設定:2006/02/04(土) 22:05:18 ID:uDtHFMFL0
tell application "System Events" to exists application process "iTunes"
361名称未設定:2006/02/10(金) 12:58:49 ID:DsLagQFL0
こちらのスレに気付かず、旧板に書き込んでました。
同内容の質問で、マルチのようになってしまいますが、御容赦ください。

フォルダ内の"test"と付くファイルを全て選び、かつそのフォルダを開きたいんですが、
参照は一回で済ませたい場合、

reveal (every file of folder "MyFolder" whose name contains "test")
では、複数あるファイルの最後の一つしか選択されません。
シフトキーを押さずに選択し続けてる状態なのは理解できるんですが、
どう記述したものか分かりません。

どなたかご教授願います。
362名称未設定:2006/02/10(金) 15:09:25 ID:OflB++wx0
>>361
向こうのスレにここに移動しますって書いてきた?
363361:2006/02/10(金) 15:27:30 ID:DsLagQFL0
>362
ただいま書き込んできました。
気が回らず失礼しました。
364名称未設定:2006/02/10(金) 18:50:05 ID:OflB++wx0
>>361
向こうで質問しても答えてもらえそうな気もするけど、まあそれはさておき。

あなたのOSのバージョンは何?
あと、「スクリプトエディタについて」で見れる、
スクリプトエディタのバージョンと、AppleScriptのバージョンも。
それによって挙動が変わる(事もある)から。

こちらOS10.4.4/スクリプトエディタ2.1.1/AppleScript1.10.3
の環境でスクリプトエディタ上から実行したところ、
該当するファイル全てがきちんと選択されました。
365名称未設定:2006/02/11(土) 00:04:26 ID:YqBdjEFt0
>364
OSは9.01なんですが、Macは会社で使用しているもので、
スクリプトエディタとAppleScriptのバージョンが確認出来ず不明です。
月曜に調べて又書き込ませていただきます。

色々不手際で申し訳ありません。

364さんの環境では私の希望通り作動するんですね。
汎用性を持たせるためにはopenとselectを使って
2度アクセスした方が間違いなさそうですね。
(素人考えですが)
366名称未設定:2006/02/11(土) 16:07:39 ID:e7MjZmHG0
>>365
どの程度おわかりになっているのかわからないので、念のためうかがいますが、
そのスクリプトではフォルダを開いてファイルを選択っていう過程は本当に必要なのでしょうか?
手で作業する時と同じ事をそのままなぞろうとすると、効率の悪いスクリプトになりますよ。
367365:2006/02/11(土) 19:24:23 ID:E9siPKBW0
>366

データベースでファイル検索(ファイルメーカー) → 
ヒットしたファイルを選択(AppleScript・ファイルメーカー埋め込み) →
その画像が目的のものか確認(手作業) →
目的のものならコピー(手作業)

といった事をやりたいので、フォルダopenとファイル選択をしたいんです。
フォルダの中には似たような名前のファイルが多数あるので、
選択までを自動化させようと思ってます。
画像の確認だけは手作業になるので、
これがなければコピーまでを自動化させれば
フォルダを開く必要はないんですよね。

画像フォルダがネットワーク経由でアクセスに時間がかかるので
1度のアクセスですませたいのですが、
もしかしてフォルダを開く際にそのフォルダにフォーカスをあわせて
その中で選択する、という書き方も出来るんでしょうか。
368名称未設定:2006/02/11(土) 19:52:06 ID:w9mgAqNN0
とりあえずあいつの言うことは無視しとけ。

妙にへりくだることがあるかと思えば、ひどく見下したり罵倒したり、
人間性に問題あり過ぎ。
知識があるのかないのか知らんが、どうせろくなもんじゃない。
369名称未設定:2006/02/11(土) 23:07:42 ID:e7MjZmHG0
>>367
ネットワーク越しのスクリプトは試した事が無いから
どう書くのが速いのか、あるいは遅くなるのかちょっとわからないなあ。
フォルダが開いてしまえばその場所はwindow 1とかで指定できるから、
select every file of window 1 whose name contains "○○"
という感じで目的のファイルを選択できると思うけど。
370361:2006/02/13(月) 12:57:27 ID:s0HDpxo+0
旧板でもレスをいただいたので、一通り試してみたところ、
>369さんの記述が目的通りの動きをしてくれたので
こちらを使わせていただきます。

本当に助かりました。ありがとうございます!

*******************
AppleScript 1.5.5
スクリプトエディタ 1.5.5
Os9.1

バージョンが色々古いみたいですね。
Updateできるものはしたいと思います。
371名称未設定:2006/02/13(月) 17:13:35 ID:OYguLR+F0
>>370
バージョンアップで必ずしも「良く」なるとは限らないので注意してください。
色々仕様の変更があるから互換性とかで苦労してる人も多いかと…。
(^_^;

OS XのAppleScriptは、シェルスクリプト(Perl,Ruby等含む)の利用がし易いのと、
AppleScript StudioでGUIを構築できるのが面白いですけど。
372名称未設定:2006/02/18(土) 18:04:10 ID:52by3W1o0
Safariのブックマークをアルファベット順に並べ替えてくれるスクリプトって作れるのでしょうか?
373名称未設定:2006/02/19(日) 11:30:02 ID:auCbaUqt0
作れますよ。ASからPerl呼んでBookmarkファイルを直読みして並べ替えればおk
374名称未設定:2006/02/20(月) 17:12:01 ID:YnA/ukty0
【驚愕の】IllustratorPhotoshopのscript【新機能】
http://that4.2ch.net/test/read.cgi/dtp/1054215923/l50

優しい人は教えてやってくださいな。
DTP板、人少ないから初心者刷れみたいになってるし…

375名称未設定:2006/02/20(月) 18:22:23 ID:YI5hEIT60
優しかろうが何だろうが、アプリ使ってない奴が出張っても仕方ないだろ。放っとけ。
376名称未設定:2006/02/20(月) 21:08:48 ID:rxhglmHw0
DTPソフト関係が一番AppleScript使う人の人数多そうだけどね。
ここやDTP板を見てる人が少ないのか?
377名称未設定:2006/02/21(火) 00:03:06 ID:FJrCB41t0
DTPは一部大手以外今だにOS9時代の遺産で仕事してる。フォトショ6、イラレ8、クォーク3.3。
インデザインとかOSXに積極的なのは、大凸くらい。
驚愕の新機能があろうが、過去のワークフローを変える、従業員を育成する余裕がない。
378名称未設定:2006/02/21(火) 00:21:40 ID:gSOOy+/40
ああ。新機能のスレなのか。
DTPソフトの自動化全般のスレなのかと勘違いした。
379名称未設定:2006/02/21(火) 00:25:23 ID:gSOOy+/40
つか、見てきたら、Win向けのJavaScriptで自動化するスレみたいなんだが。
だから「驚愕の新機能」とか書いてるし人もあんまり居ないんだな。

普通にMacのAppleScript関係のサイトとか探したらDTP系が多いよ。
380名称未設定:2006/02/21(火) 00:35:20 ID:9bhSwhL30
applescriptでググってもDTP関係は余り出てこないんだが……
漏れがDTPとかを知らないから気付いていないだけかなあ
381名称未設定:2006/02/21(火) 01:10:31 ID:a1K7K9tj0
>>380
自社開発したスクリプトはおいそれとフリー配布なんてされないもんですよ。
それを商売のタネに喰ってるわけだから。
382名称未設定:2006/02/21(火) 02:21:58 ID:gSOOy+/40
スクリプト界隈の古参の人がDTP関係の人で自サイトにDTP作業の補助用のスクリプト置いてたり。
MLでもそっち系の話題はそれなりに多い。
383名称未設定:2006/02/21(火) 02:23:21 ID:ZmutPCf50
>>380-381
それどころか、別部署にすら配付しないということもw
384名称未設定:2006/02/22(水) 00:30:22 ID:CaqHGCg40
>>377
ウチは未だにイラレ5.5
CS2って何よって感じw

まぁそんな業界だから、がんばり屋さんがネットで情報探しても
初心者向けのネタはあんまり落ちてないんだよね

DTP板が人少な過ぎってのもあるけど…
385名称未設定:2006/02/22(水) 01:07:39 ID:j9ltAiFB0
以前、たまたま貰ったイラレ5 for WinをWin機に入れてみたら、ベジェ線書くのがもの凄く大変だった。
しかもジャギーが凄かったし。
どうも、10.0使いです。
386名称未設定:2006/02/22(水) 11:26:45 ID:NpnE8lUO0
InDesign関係のスクリプト書いてるけど、俺も公開しない。
別部署にも配布しない。
知り合いのデザイナーには配ってるけど。
DTP関係がレアなのは、
デザイナーがプログラマーである確率が非常に低いからだね。
387名称未設定:2006/02/22(水) 18:50:41 ID:cKQyOaS40
ハハハ、ウチもそんなもんだよ。MacOS8の時に雑誌についてきたスクリプトを今でも使ってる。
DTPがわかってプログラムわかってMacもかわって現場の苦労が解る人がつくったスクリプトはカユいところに手が届くのが多いしねw
388名称未設定:2006/03/08(水) 19:58:23 ID:xBBhxHGi0
 
389名称未設定:2006/03/10(金) 02:24:55 ID:83LU8cgq0
tell application "AppleWorks 6"
move cell "A2" to cell "B1"
end tell

AppleWorks 6 でエラーが起きました:cell "A1" を取得できません。と言われました。
表計算で数値や文字をセルA2からB1に移動したいです。ヒントくだされ
390名称未設定:2006/03/10(金) 02:41:23 ID:19zota7a0
>>389
cell "A2" of spreadsheet of document 1

のように順を追って指定した方が。
あと、"A2" の "2" とか。全角数字じゃダメだから。


move 一発でやろうとしたらクラッシュしちゃった。
copy cell "A2" of 〜 to foo
set cell "B1" of 〜 to foo
set cell "A2" of 〜 to ""
でごまかした。
391名称未設定:2006/03/10(金) 02:43:25 ID:UwXxeLik0
>>389
これではだめかいな?
tell application "AppleWorks 6"
activate
tell spreadsheet layer of front document
select cell "A2"
set theCell to selection
set cell "A2" to ""
set cell "B1" to theCell
end tell
end tell
392名称未設定:2006/03/10(金) 02:45:09 ID:UwXxeLik0
>>390
すまん、似たようなもんだった
393名称未設定:2006/03/10(金) 02:49:28 ID:E6rcg/na0
>>389
まず1点。どの書類のセルなのかを指示する。
次に、moveという命令はたぶんこの場合使えないんじゃないかな?

tell application "AppleWorks 6"
tell document 1
set cell "B1" to cell "A2"
set cell "A2" to ""
end tell
end tell
394名称未設定:2006/03/10(金) 02:49:43 ID:Ic5vyrZZP
>>389
tell application "AppleWorks 6"
tell cells of spreadsheet of document 1
set item 2 of item 1 to item 1 of item 2
end tell
end tell
395名称未設定:2006/03/10(金) 02:49:57 ID:19zota7a0 BE:112906875-
>>391
こちらこそすまん。

document まで指定すれば spreadsheet 明示無しでもいいみたい。
だけど move はやっぱポコポコ落ちるや。
set連発の方が安心と見た。

tell application "AppleWorks 6"
 tell document 1
  if document kind is not spreadsheet document then
   beep
   return
  end if
  set cell "B1" to cell "A2"
  set cell "A2" to ""
 end tell
end tell
396名称未設定:2006/03/10(金) 02:57:05 ID:UwXxeLik0
>>393-395
「cell "B1" to cell "A2"」
そうか....ぼけとった、変数介する必要ないわな
397名称未設定:2006/03/10(金) 03:01:36 ID:E6rcg/na0
入れ替えだったら変数要るな。
398名称未設定:2006/03/10(金) 03:07:39 ID:UwXxeLik0
>>397
大学のFortranの授業思い出したよ
「この行列の転置行列を求めるプログラムを云々....」
399389:2006/03/10(金) 03:45:46 ID:83LU8cgq0
こんな時間にありがとうございます、無事移動できました!
皆様の会話を理解するほどモノがわかってませんが
全角不可、document指定すること、なぜかmove不可。を小一時間かけて記憶しました。
難しい…
400(・∀・):2006/03/10(金) 03:52:32 ID:K+eObPRY0
こんな夜中にすげーぜ!!!

set a to cell "B2" of spreadsheet of document "名称未設定"
set cell "C3" of spreadsheet of document "名称未設定" to a

遅すぎました。><
401389:2006/03/10(金) 04:09:02 ID:83LU8cgq0
ありがとうありがとう。俺の頭だと3日くらいかかるけど全部検証します。
そして一番短くして使わしてもらいます。
402名称未設定:2006/03/11(土) 02:19:33 ID:TEO80hNA0
>>389 こんなんでどうや?
--汎用性には欠けますが、10×10の場合です。
tell application "AppleWorks 6"
tell cells of spreadsheet of document 1
activate
set datelistCells to {}
set last_gyo to 10
select (cells ("A" & 1) thru ("J" & last_gyo))
set datelistCells to selection
set m to 0
repeat with ABC in {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}
set m to m + 1
repeat with i from 1 to last_gyo
set cell (ABC & i) to item i of item m of datelistCells
end repeat
end repeat
end tell
end tell
403名称未設定:2006/03/11(土) 05:19:12 ID:AXb3vm4e0
>>402
やっほう!!
細かいところはわからないですが、
先に横長のセル範囲指定して、縦長のデータを左上から順に埋めるよ
って感じですかね?
ありがとうございます。安らかに眠れます。
404名称未設定:2006/03/11(土) 14:22:20 ID:P9KqjwPA0
R.I.P...
405名称未設定:2006/03/11(土) 15:35:53 ID:PYIR/9D00
永眠かよ!
406名称未設定:2006/03/11(土) 22:50:36 ID:TEO80hNA0
>>403 もうチョイこだわってみた
--行列入替Ver.3
tell application "AppleWorks 6"
tell cells of spreadsheet of document 1
activate
(* 初期化 *)
set datelistCells to {} --
set FirstColu to 1 -- データの頭の行番号(ex.A=1,B=2)
set LastRow to 10 -- データの尻の列番号
set m to 0
(*データシートから値を取得*)
select (columns FirstColu thru row LastRow)
set datelistCells to selection
(*行と列を入替*)
repeat with m from FirstColu to LastRow
repeat with i from FirstColu to LastRow
set (cell i in cell m) to (item m of item i of datelistCells)
end repeat
end repeat
end tell
end tell
407名称未設定:2006/03/11(土) 22:56:22 ID:TEO80hNA0
>>406
細かいことだけど、datelistCells --> datalistCells やね
日付取得のためのスクリプトをコピペしたんで、dateのままやった。
408名称未設定:2006/03/12(日) 01:59:40 ID:NoT//c4t0
tell application "AppleWorks 6"
tell spreadsheet of document 1

activate
set selectpoint to name of (first cell of selection)
set thecells to cells of selection

set newcells to ""
repeat with c from 1 to count (item 1 of thecells)
set newrow to ""
repeat with r from 1 to count (thecells)
set newrow to newrow & (item c of (item r of thecells))
if not (r = (count (thecells))) then set newrow to newrow & tab
end repeat
set newcells to newcells & newrow & return
end repeat

set clipbackup to the clipboard
cut values
set the clipboard to newcells
select cell selectpoint
paste values
set the clipboard to clipbackup

end tell
end tell
409名称未設定:2006/03/12(日) 02:34:56 ID:HBrfarL40
スクリプトだけのレスってなんかかっこいいなw
410名称未設定:2006/03/12(日) 03:01:37 ID:xehELDQu0
tell application "System Events"
display dialog ヌdata utxt306C308B307Dネ buttons "OK"
end tell
411名称未設定:2006/03/12(日) 03:05:32 ID:3wyxLHmp0
>>410
tell application "System Events"
display alert ≪data utxt304C3063≫ buttons "OK"
end tell
412名称未設定:2006/03/12(日) 03:29:00 ID:U2gPadr60
>>391 >>393 >>394までわかりました。
セルの集合体や列行は難しす…
作ってもらったやつの組み合わせで1ページ一括変換も夢じゃない気がする
けどまだどうにも動かないキソ叩き込み中です。世話になってます。
413名称未設定:2006/03/12(日) 03:29:33 ID:U2gPadr60
>>404
懐かしい
414名称未設定:2006/03/12(日) 16:55:52 ID:pQa29BLw0
QuickTime Playerのexportコマンドの用語説明を見ると、asに指定できる形式にAACがないんだけど、
QTPlayerからAAC書き出しは出来ないの?
415408:2006/03/12(日) 17:45:43 ID:NoT//c4t0
>>409
ごめんレスしてすぐ寝ちゃった

一応、AppleWorks 6用の汎用行列入れ替えスクリプトです
416名称未設定:2006/03/12(日) 21:47:08 ID:6oGYwo7k0
>>414
ヒント:AACというコーデック
417名称未設定:2006/03/12(日) 22:08:10 ID:U2gPadr60
>>408 さんくすこ。
サンプルスクリプトたくさんでありがたいです。牛歩で追いかけます。

tell application "AppleWorks 6"
tell document 1
set cell "a1" to cell "A1"
set cell "b1" to cell "A2"
set cell "c1" to cell "A3"
set cell "d1" to cell "A4"
set cell "e1" to cell "A5"

set cell "a2" to cell "A6"
set cell "b2" to cell "A7"
set cell "c2" to cell "A8"
set cell "d2" to cell "A9"
set cell "e2" to cell "A10"

以下略A255まで
end tell
end tell

とりあえずまだセル単位で動かし中です。
>>402 >>406 >>408 の行列入れ替えで
A1〜A5をA1〜E1へ
A6〜A10をA2〜E2へ
って行列変換の繰り返しにしたいです。
418406:2006/03/12(日) 23:04:31 ID:at5wdE2/0
>>408
実行速度、早!負けました。
419名称未設定:2006/03/14(火) 23:08:02 ID:kt0M3JhdO
当方知識ゼロなんですが、どなたか作ってもらえないでしょうか?
内容はデュアルディスプレイではない場合、DesktopManagerを起動するというものです。
どなたかおよろしくお願いします。
420名称未設定:2006/03/14(火) 23:12:40 ID:9geqnofX0
いくら払う?
421名称未設定:2006/03/15(水) 03:00:47 ID:H9FcbAE30
repeatって怖いね
422名称未設定:2006/03/15(水) 03:01:46 ID:3DhDoxQz0
>421
どうしました?無限ループ暴走させちゃった?
423名称未設定:2006/03/15(水) 03:32:22 ID:H9FcbAE30
セルが同じ文字列で埋まりましたよ。
パトレイバー劇場版1が出来るかもしれません
424名称未設定:2006/03/15(水) 10:18:28 ID:3DhDoxQz0
ちょっとワラタ。E.HOBAね。
425名称未設定:2006/03/18(土) 12:07:19 ID:PNrjchTN0
こんちは。Automatorが全然期待はずれで、しょうがないので
AppleScriptにチャレンジしてます。

早速質問なのですが、スクリプトの実行を一定時間待機させる命令って、ないんですか?
wait 30 (seconds)
みたいな。

このへん↓は探したのですが。
http://homepage1.nifty.com/ton_b/dic/Basic/contents.html

それから、上記のような基本的な命令やら関数やらを記述してる
オフィシャルなヘルプってどこに保存されてるんでしょう?
Finderやsafariなんかの個別アプリケーションのものは、「用語説明を開く」から見ることができるようですが。
426名称未設定:2006/03/18(土) 12:20:20 ID:L+f1n8G/0
>>425
delay 30

delay 命令については StandardAdditions の用語説明を参照

--
AppleScript の言語そのもののオフィシャルなヘルプとゆーものは
おそらく、ハードでスクには見当たらないでしょう。
かわりに、AppleScript Language Guide へのリンクで済まされていることが多い。
ttp://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/index.html

これは英語なので、日本語で調べたければあなたの探したそこの
サイトとかを見るのが良い方法だと想います。
427名称未設定:2006/03/18(土) 12:36:32 ID:VoDZQX8S0
/Library/Scripts も覗け。真似できるのがあることもある。
428名称未設定:2006/03/18(土) 12:37:48 ID:PNrjchTN0
>>426
高速レス超ありがとうございます。
StandardAdditions、よくサンプルで見るbeep やらsayやらも入ってますね。
これから電車乗るので、電車の中でうんうんやってみます。

ありがとうございました。

429名称未設定:2006/03/18(土) 12:38:32 ID:PNrjchTN0
>>427
了解。精進します。いってきます。
430名称未設定:2006/03/18(土) 15:47:48 ID:O5KA8c8E0
これがAppleScript自身の用語説明のようだけど、どうやって開くのか分からん(w
Script Debugger 4では開ける。
/System/Library/Components/AppleScript.component/Contents/Resources/AppleScript.rsrc
431名称未設定:2006/03/18(土) 17:14:02 ID:DYjp83Cd0
環境によってはこんなところにも Language Guide が

file:///Developer/ADC%20Reference%20Library/documentation/AppleScript/Conceptual/AppleScriptLangGuide/index.html
432名称未設定:2006/03/18(土) 18:49:14 ID:b4o6rm4K0
AppleScriptリファレンス、一冊あると便利。
433名称未設定:2006/03/18(土) 20:14:20 ID:tzDZN8Nw0
>>432
同意。お勧め。例文が実用的でとてもいい。
OSX対応版が出るといいのに。
434名称未設定:2006/03/24(金) 00:05:57 ID:8/I/OZjv0
try
tell application theFrontApp to activate
tell application "System Events"
keystroke "c" using command down
end tell
end try

を使って選択文字列をコピーしていましたが
アプリケーションバンドルで保存した際に
自分自身をコピーしてしまいました。
なにか他に方法は無いでしょうか?
435名称未設定:2006/03/24(金) 01:09:12 ID:gGh6Ydsj0
>theFrontApp to activate

“最前面にあるアプリを最前面にする”って意味あるの?
436名称未設定:2006/03/24(金) 01:16:01 ID:XttOGzNk0
>>434
・前に出ないアプリにする
・スクリプトのランチャーをさがす
437名称未設定:2006/03/24(金) 18:07:47 ID:H5741Rqv0
>>432-433
ほすぃ。けど売ってない。。
438名称未設定:2006/03/24(金) 19:28:31 ID:AU8Grwik0
Amazon.co.jpでユーズド商品3点。
コンディション:可(820円)、良い(1650円)、非常に良い(1850円)とな。
439名称未設定:2006/03/24(金) 19:37:46 ID:XttOGzNk0
復刊コムで募集とかやってないのかな?
440名称未設定:2006/03/25(土) 02:09:15 ID:Dh2C2oeA0
発起人も出ないぐらいで、数集まんねえだろ。
441名称未設定:2006/03/25(土) 12:43:33 ID:NIRevRMc0
>>437-440
ありがとう。お手間かけました。
どちらも難しいんで英語の辞書買います。
442名称未設定:2006/03/26(日) 00:56:06 ID:lu3bNyow0
何で難しいの? Amazonでいいじゃん。俺もAmazonで古本買ったよ。
リアルの(古)本屋で希少本探すなんて、
ましてや復刊を待つなんて人生の無駄だよ。
あまりにAmazonでプレミアムが甚だしい場合は、
ヤフオクでアラートかけて買ってる。
うまくいけば1/5ぐらい、
事情知ってるやつが絡んできても1/2〜2/3ぐらいで落札できるよ。
書籍は即落付きの物件が多い。

結局、検索できないし重いから本なんてあんまり読んでないけどね。
443名称未設定:2006/03/26(日) 01:38:24 ID:J4id8iR00
クレカがない。
444名称未設定:2006/03/26(日) 05:34:17 ID:V3C3Pelr0
リファレンスは読み下すタイプの本じゃないから、何かの時にちょこちょこ調べ物してるだけで
けっこう読み込んだ風格が出るくらい(ぼろくなるとも言う)読むよ。
紫のやつも黒のやつもどっちも持ってるけど。
EasySeekって今なくなったのかな?あれも古本探しにはいいと思う。
先にこっちが予算指定する感じだから、古本にしては大き目の金額にしとかないと探し屋さんが動いてくれないかもしれないが。
445名称未設定:2006/04/10(月) 00:54:43 ID:kbhJNrFY0
iTunesにて挿入中のオーディオCDの情報を得るにはどうすれば良いでしょうか?
次のスクリプトを実行するとエラーが発生します。
OS、iTunesともに最新のものを使用しています。

tell application "iTunes"
set theArtist to artist of audio CD playlist
end tell
446名称未設定:2006/04/10(月) 01:13:09 ID:QNjsyDy80
>>445
tell application "iTunes"
artist of audio CD playlists of item -1 of every source
end tell

たまたまうまく動くだけかもしれませんが、とりあえずこれで行けました。
447名称未設定:2006/04/10(月) 01:30:14 ID:ncHGOknj0
ちょっとやってみた

tell application "iTunes"
    repeat with eachSource in sources
        if kind of eachSource is audio CD then
            set theArtist to artist of (item 1 of audio CD playlists of eachSource)
        end if
    end repeat
end tell
448名称未設定:2006/04/10(月) 01:41:23 ID:QNjsyDy80
ああ、ソースの種類調べられるのか。w
449名称未設定:2006/04/10(月) 01:57:09 ID:kbhJNrFY0
>>446-447
ありがとうございます。どちらも行けました。

>>446さんはaudio CD playlistsをそのまま使っているのに対し
>>447さんはitem 1と項目を指定してますよね。
なぜ明示的に項目指定をしているのでしょうか?
450名称未設定:2006/04/10(月) 02:08:48 ID:ncHGOknj0
>>449
とくに理由はない。 audio CD playlist"s" になっているから
その中の一つを取り出した方が手堅いかな、と思ったので。
(その割に item "1" と決め打ちしたのは手抜きだけど)

artist of audio CD playlist がダメなのは確かめたけど
artist of audio CD playlists でいけるかどうかは確かめなかったもので。

でもそれで通るなら、それでもいいんじゃないかね。
451名称未設定:2006/04/10(月) 02:19:56 ID:kbhJNrFY0
>>447
こんな時間にご丁寧にありがとうございます。
大変助かりました。
もちろん>>446さんにも感謝。
452名称未設定:2006/04/10(月) 02:34:45 ID:QNjsyDy80
audio CD tracks of item 1 of audio CD playlists of 〜
の場合は、item 1 of を抜くとエラー。
453名称未設定:2006/04/10(月) 14:17:56 ID:QYN0x7cw0
アクティブなウィンドウの指定もwindow 1だけど、window 2はどれになるのかしら?
454名称未設定:2006/04/10(月) 15:51:57 ID:QNjsyDy80
簡単なスクリプト書いて実験してみればよろしい。
455名称未設定:2006/04/10(月) 21:17:07 ID:S8fxAJZ40
iTunesのiPodと同期する指令は何になります?
456名称未設定:2006/04/10(月) 21:27:05 ID:S8fxAJZ40
わかりました

iPod をアップデートする。
tell application "iTunes"
update
end tell
457名称未設定:2006/04/14(金) 08:01:41 ID:8yhtcQse0
applescriptで、あるアプリケーションをアクティブにして、10秒ごとにF1〜F6キーを順番に押していき、数秒待機してまたF1〜6キーを10秒ごとに押していく
といった動作を設定できるんでしょうか?
もしできるのならご教授ください。
458名称未設定:2006/04/14(金) 19:36:30 ID:4yKlPKqx0
>>457
tell application "あるアプリケーション" to activate

repeat
tell application "System Events"
set theDelay to 10

key code 122
delay theDelay
key code 120
delay theDelay
key code 99
delay theDelay
key code 118
delay theDelay
key code 96
delay theDelay
key code 97

delay 5
end tell
end repeat
459名称未設定:2006/04/14(金) 22:55:17 ID:0hIibzMi0
>>457
どういう用途に使うのかちょっと興味がある。
460名称未設定:2006/04/15(土) 00:55:40 ID:L0YbjH+q0
そだね。
461(・∀・):2006/04/15(土) 01:43:02 ID:eb2DB24V0
F5攻撃?
462名称未設定:2006/04/15(土) 02:09:55 ID:L0YbjH+q0
そういうのが想像できたので回答を避けたのだが。
(悪意がなくても同様の事をすれば迷惑がかかる)
463名称未設定:2006/04/15(土) 02:13:15 ID:I6ildhmy0
MacでF5にショートカット割り振ってる糞フトとは
464457:2006/04/15(土) 05:38:02 ID:hJpI6Aec0
ありがとうございます!
とあるゲームのマクロを組んでみたかったのですよん
悪意はありませんです。
465名称未設定:2006/04/19(水) 12:21:00 ID:CBT7PDSt0
もうしわけありませんが、助けて下さい。
テキストを取得後、任意の文字列を含んだ行だけを絞り込んだ
テキストを書き出したいんですが、良い方法があったらご教授願います。

set theBasePath to "Macintosh HD:Users:Shared:testdb:"
set theChooserA to (theBasePath & "list.txt") as alias

tell application "Finder"

try
open for access theChooserA
set theTextA to read theChooserA
end try

close access theChooserA

end tell
466名称未設定:2006/04/19(水) 14:19:20 ID:qNXCxKOR0
>>465
読み込んだテキストを検索文字列をデリミタにしてリスト分割。
リスト項目数を調べて2以上なら出力。
467名称未設定:2006/04/19(水) 14:33:42 ID:0Btiwk5K0
テキスト処理は、量が多い場合は
シェルスクリプト(awk,sed,Perl等含む)を呼び出したほうが速いよ。
文字コードの事とか考えるとAppleScript標準で済ますほうが楽なこともあるけど。
スクリプタブルなテキストエディタを使うのも場合によって有効。
468名称未設定:2006/04/19(水) 14:44:49 ID:XpHQw3yZ0
>466
>467

早速のレスありがとうございます。
text item delimiters
でってことですよね。試してみます。

シェルの場合はviとかを使うんでしょうか?
469名称未設定:2006/04/19(水) 15:57:53 ID:0Btiwk5K0
>>468
シェルスクリプトを呼び出すっていうのは、
do shell scriptを使うって事ね。
ttp://developer.apple.com/jp/technotes/tn2065.html

あとはシェルスクリプトの知識がないといけないわけで、
漏れもほとんど知らないし、釈迦に説法かもしれないけど、
cat テキストファイルのパス | grep '検索語' > 出力ファイルのパス
とかやると検索語の入った行だけ抜き出すはず。
元のテキストファイルの文字コードと検索語の文字コードがそろってないと
ひっかからないけどね。
do shell scriptでやる場合は、ファイルに出力する代わりに変数で受け取る事もできる。

スクリプタブルなエディタっていうのは、
JeditとかmiとかQuoEditとか。
シェルスクリプトの呼び出しとは別の話です。
470名称未設定:2006/04/20(木) 13:13:06 ID:RcuP25d50
>>469
書き込み遅くなりました。
pico、vi等のエディタをアップルスクリプトで制御できる方法があるのかと・・・。

結局、applescriptで書くことにしました。
FMで利用する簡単な物しか書いたことが無かったのですが、改めて勉強してみようと思っています。まだまだへたれなんで試行錯誤の連続ですが・・・

アドバイスありがとうございました。
471名称未設定:2006/04/20(木) 19:47:41 ID:7VTxfamP0
QuickTime で、複数のウインドウを操作したいのですが
特定のウィンドウを全面に持ってくるにはどうしたら
よいでしょうか?
QT6のころはselect window xとかで行けたようなのですが
QT7になってからは失敗するようです。
472名称未設定:2006/04/20(木) 22:42:34 ID:ZEojT9Ub0
>>471
前面に持ってきたいウインドウに対して、そのウインドウの index 属性を 1 にして
やったらできるんじゃない。

set index of (持ってきたいウインドウ) to 1
473名称未設定:2006/04/20(木) 23:27:40 ID:7VTxfamP0
>>472
だめでした。
setはエラーしないけれども、indexの値が変わらないです・・・
QTのバグかなぁ。
474名称未設定:2006/04/20(木) 23:33:39 ID:ZEojT9Ub0
>>472
すぐにバグ扱いするのは気にイラネェな?
単純な状況から試してみては。

QuickTime Player で 2つウインドウ(=ムービー)が開いている状態で、
(わかりやすいように重なり合わせて配置しておく)次のスクリプトを実行する:

tell application "QuickTime Player"
    set index of window 2 to 1
end tell

これで後ろのウインドウがパッと手前に出てきませんか?
私の環境ではちゃんと動いてるのだけど。QT7.0.4, OS X v10.4.6
475名称未設定:2006/04/21(金) 00:06:14 ID:MO7i3H4K0
うちでもちゃんと動く。実行するたびに後ろのウインドウが前に出る。
環境はたぶん同じ。
476名称未設定:2006/04/21(金) 07:28:48 ID:7mnprRaR0
>>474, 475
失礼しました。動きました。昨日はどんなスクリプトだったのやら・・・

並びの順番は変わるけれども、ウィンドウがアクティブになるわけでは
ないのですね。残念。
477名称未設定:2006/04/21(金) 08:25:16 ID:MO7i3H4K0
あのなー…。
QucickTime Playerをactivateしる。
478こんなん書いてみた:2006/04/21(金) 08:26:28 ID:CcGXLlt60
tell application "QuickTime Player"
activate
set n to count movie
end tell
tell application "System Events"
repeat with i from 1 to n
tell application "QuickTime Player"
if name of movie 1 is "ほにゃらら" then
exit repeat
end if
end tell
keystroke "`" using command down
end repeat
end tell
479名称未設定:2006/04/21(金) 09:00:21 ID:MO7i3H4K0
すまん。色々試したら、前に出たウインドウがアクティブにならないみたいね。
System Eventsで全体のウインドウの中での順序をいじれるかと思ったけど、
それもうまく行かないし…。このへん、不完全なのかね。
480名称未設定:2006/04/21(金) 09:37:00 ID:MO7i3H4K0
visibleがウインドウ単位でいじれるね。
481471:2006/04/21(金) 17:09:49 ID:BL2725Rv0
>>478
keystroke "`" using command down
これはどういう意味なんでしょうか?ビープがなるだけで何もおきません。

>> 479
やはり不具合っぽいですか。
QTがバックグランドにあれば、WindowのIndex値は変わりますが、
アプリケーションをActiveにするだけでもとに戻ってしまいます。
QTがフォアグランドでIndexを1にしても、あたらしいWindow 1が
最前面にこない(Activeにならない)のです。

どうしてもきっちりやるなら、GUIスクリプティングでウィンドウ
メニューを操作するしかないような感じ・・・ですかね。
482名称未設定:2006/04/21(金) 17:32:57 ID:nQm08BhIP
>>481
>keystroke "`" using command down
システム環境設定のキーボードとマウスのキーボードショートカットの
 動作中のアプリケーションの次のウインドウを操作する
のショートカットキーと思われる。
2番目のウインドウがアクティブになる。
日本語キーボードではデフォルトのショートカットキーでは駄目なのかな?
483名称未設定:2006/04/21(金) 17:38:38 ID:MO7i3H4K0
先にQTPをactivateしてからindex変えれば、前には来るだろ?
非アクティブウインドウの状態で左上のボタンがグレーのままだけど。
tell application "QuickTime Player"
set visible of every window to false
activate
set index of window 1 to 0
set visible of window 1 to true
get name of window 1
end tell
484名称未設定:2006/04/21(金) 17:48:40 ID:MO7i3H4K0
あれ?やっぱうまく行かねえか。
485名称未設定:2006/04/21(金) 18:59:14 ID:inGAKAI60
TextEditでもだめだから、CocoaのAppleScriptサポートの欠陥だな。
QTKitベースのPlayerになってレコーディングも出来なくなった。
486名称未設定:2006/04/21(金) 19:34:15 ID:newplStN0
検証サンクスです。仕方ないので、
やっぱりGUIスクリプティングで行くことにします。
487名称未設定:2006/04/21(金) 20:27:35 ID:846bGRXF0
目的にかなうかは別として裏技みつけた。ウインドウ3枚開いてやってみそ。

tell application "QuickTime Player"
activate
set visible of window 3 to false
set visible of window 3 to true
end tell
488名称未設定:2006/04/21(金) 21:31:47 ID:okUUNqfo0
>>482
>日本語キーボードではデフォルトのショートカットキーでは駄目なのかな?
JISキーボードではコマンド+F1が標準設定
489478:2006/04/21(金) 21:36:41 ID:hIWoCZer0
>>481
意味は>>482が書いた通り。
日本語キーボードだと、デフォルトは command + f1 ? であれば、
key code 122 using command down
に変えれば行くかも。

もう終わったようだけど一応。
490名称未設定:2006/04/21(金) 21:58:14 ID:9knwnDcn0
>>487
あれれ、これも今朝動かなかったのに・・・
とりあえずこんなの作って検証。うまく行きますね。
ありがとうございました。

on run
tell application "QuickTime Player"
activate
set docList to name of every movie
end tell
repeat with doc in docList
delay 1
showit(doc)
end repeat
end run

on showit(theName)
tell application "QuickTime Player"
set visible of window theName to false
set visible of window theName to true
end tell
end showit
491名称未設定:2006/04/22(土) 00:45:49 ID:+/pMyzVQ0
ほし
492名称未設定:2006/05/02(火) 13:59:20 ID:UJ0puEL70
keystrokeの矢印の上下左右は何になりますか?
「up」でできなかったので・・。
493名称未設定:2006/05/02(火) 15:37:16 ID:IXrjaCk60
key code ...でやるんじゃないの?
123 left
124 right
125 down
126 up
ぽいけど。
494名称未設定:2006/05/02(火) 15:56:03 ID:VlffkE610
ハードディスクのスピンアップって出来ませんか
495名称未設定:2006/05/02(火) 18:55:29 ID:DBGH4ZZP0
>>494
スピンアップって止まってるディスクを回すことだよね。
だったら、そのディスク内にあるファイルにアクセスすればいいんじゃないかな。
フォルダを開くとか、ファイルを作ってゴミ箱に移動とか。
496名称未設定:2006/05/04(木) 23:19:18 ID:/7mzZEJ50
>>494
do shell scriptで
ls -l /Volumes
を実行するだけでもいいよ。
497名称未設定:2006/05/17(水) 02:49:27 ID:IJAemPXP0
ひょっとして、
.applescript(スクリプトエディタで保存したテキストファイル)の中って、
Spotlightで検索対象にならない?

_| ̄|○
498名称未設定:2006/05/17(水) 23:36:33 ID:uctjIVo90
>あらゆるものが検索対象
http://www.apple.com/jp/macosx/features/spotlight/

JAROか?
499名称未設定:2006/05/18(木) 00:12:03 ID:C/SHCnkl0
ほかに、前は検索対象だったけど検索対象にならない物もあるんだよなー。
自分でMDImporter書ければいいんだろうけど、
しょせんしがないホビースクリプター…。orz
500名称未設定:2006/05/18(木) 00:49:40 ID:TlVP2T530
コマンドラインで mdimport -f とかすりゃとりあえず入るんじゃねの?
このスレ的にはdo shell scriptかもしれんけど。
501名称未設定:2006/05/18(木) 01:10:46 ID:C/SHCnkl0
それやっても、その書類について、
既存のMDImporterで索引を作る事になっている部分に対してだけ
索引が作られるだけじゃないかと。この場合はファイル名とかの部分。
502500:2006/05/18(木) 01:40:37 ID:TlVP2T530
こりゃスマン
試したらその通りだった
503名称未設定:2006/05/18(木) 01:43:59 ID:C/SHCnkl0
OMEのほうの人とかフォーサイトとかがMDImporter出してくれないかな…。
(他力本願)
504名称未設定:2006/05/18(木) 02:31:06 ID:HtYgiK0M0
ScriptDebuggerにmdimporterというのが付いてるけど、
クリエータがScriptDebuggerのスクリプトしか取り込んでくんねえみたいだ。
505名称未設定:2006/05/18(木) 02:38:31 ID:C/SHCnkl0
セコい…。
506名称未設定:2006/05/18(木) 02:39:53 ID:C/SHCnkl0
せっかくテキスト形式で保存してる事だし、
コメントにスクリプトの内容を丸写しするスクリプトでも作ろうかな。
コメントって文字数制限あるんだろうか。
507名称未設定:2006/06/05(月) 22:59:49 ID:JG/lKf3h0
かなキーと英数キーのkey codeって何なんでしょう?
508名称未設定:2006/06/05(月) 23:15:39 ID:7i4WTe1XP
509507:2006/06/06(火) 21:30:55 ID:xkWfmqcC0
>>508
ありがとー
しかも便利なアプリまで。
非常に助かります。
510名称未設定:2006/06/16(金) 20:51:35 ID:lHmVUX4R0
 
511名称未設定:2006/06/16(金) 23:21:21 ID:OiTL74go0
dateコマンドでオリジナルの表示方法を出したいのですが、

property y : ""
property m : ""
property d : ""
property dt : ""
property t : ""

と年や月を代入するスペースを作って、

y = year of (current date)
m = month of (current date)
d = day of (current date)
dt = weekday of (current date)
t = time of (current date)

とやってみて実際にdisplay dialog yなどでチェックしてみたのですがどうもちゃんと出てくれず空白のままになってしまいます。
しかもこのまま組んでいってあるファイルをこの日付データを使って名前を変えようとしてもyやmがnumberではありませんと出てしまいます。

どうしたらいいのでしょうか?
512名称未設定:2006/06/16(金) 23:28:19 ID:wp6Dj7eP0
>>511
set y to year of (current date) でしょ。
513名称未設定:2006/06/17(土) 02:09:22 ID:7MnIPeqj0
>>511
propertyにする理由はあるのですか?
AppleScriptは通常の変数について、使用前の宣言みたいなものは必要ないですよ。
(スクリプト言語はだいたいそうなのでは)

propertyは、グローバル変数のようにどこからでも値が読み書きできて
実行後もスクリプトのファイル内に値が保存されるという特殊な変数です。
514名称未設定:2006/06/17(土) 16:07:57 ID:Ukh7IeT10
>>512-513
指摘通りにset y to ~ でやってみたら正常に代入されてました。
ただ、やはりそれをファイル名変更の際に変数として+y+とかすると「numberではありません」と出てしまいます。

RealBasicのstrなどのように数字に出来るのでしょうか?
515名称未設定:2006/06/17(土) 16:32:10 ID:XOHdxvAmP
as integer

とりあえず初心者向けの本かサイトを
ざっと読んでみた方がいい希ガス
516名称未設定:2006/06/17(土) 16:32:43 ID:7MnIPeqj0
>>514
数字じゃない物を加算しようとしてるから
「numberじゃありません」って言われてるんでしょ。
あなたがやりたいのは文字列の連結じゃないの?
517名称未設定:2006/06/17(土) 16:33:47 ID:7MnIPeqj0
>>515
いや上記の例だとyのclassはinteger
518名称未設定:2006/06/17(土) 16:39:20 ID:jf1o+5IX0
イベントログを開いた状態でこれ試してみ。

tell (current date) to set {y, m, d, w, t} to {year, its month, day, its weekday, time}
log (localized string of y)
log (localized string of m)
log m as Unicode text
log (localized string of d)
log (localized string of w)
log w as Unicode text
log (localized string of t)

オブジェクト指向とかそのへんの話になるわな。
519名称未設定:2006/06/17(土) 16:47:23 ID:leElIKsy0
>>514
文字列の連結は&を使う。
520名称未設定:2006/06/17(土) 16:59:30 ID:leElIKsy0
あとこの辺りを参考にされたし。
http://homepage1.nifty.com/ton_b/dic/Basic/Value/date.html
521名称未設定:2006/06/17(土) 17:01:18 ID:WUrMWOoK0
10年以上前からAppleScriptのdate表記自由度が低い点は指摘されてるのに絶対直さんな。
OSXだったらBSDの機能で作った方が楽でしょ。
do shell script "date '+%Y/%m/%d %H:%M:%S'"
とか。
522名称未設定:2006/06/17(土) 17:24:14 ID:7MnIPeqj0
それで済ませちゃう事が多いねえ。
まあ特定の書式で結果返すルーチンを自前で作って再利用すればいいんだけど。
523名称未設定:2006/06/17(土) 18:07:48 ID:nsBQTMS40
>>514
AppleScriptのその式は、それぞれ数値の値を返すとは限らず、Januaryなどのオブジェクト値を返すことに
気がついていないんだろ。
そこんところをきちんと指摘してあげようよ。
あと、dateの表記はコントロールパネルの日付の書式に依存するんだよね。
ある意味では自由度が高いのだけれど、スクリプターにとっては面倒。
524名称未設定:2006/06/20(火) 00:34:27 ID:IGuQTcNk0
始めて自分で AppleScript を作ったので記念カキコさせてください。
Finder で選択した画像ファイルをデスクトップピクチャとして設定するスクリプトでした。
もっとも、最後は山勘でつけ加えたスクリプト部分が功を奏して動くようになったので、
なぜそうすればうまく動くのか、わかっているわけではないのですが…
ちなみに
tell application "Finder"
set the_pic to get selection as string
set desktop picture to the_pic
end tell
というスクリプトで、山勘で付け加えたのは
as string
の部分でした。
525名称未設定:2006/06/20(火) 01:13:12 ID:4/6/Ktdy0
>>524
すばらしい記念カキコです。次回からハンドル「山勘」でお願いします。
526名称未設定:2006/06/20(火) 02:37:27 ID:5vtlh3Sq0
そう言えば最近いじってみたらselectionの動作が
いまいち期待通りに行かなかったような覚えがあるな。
1つ選択と複数選択で処理が分かれたりけっこう面倒だよね。
単数固定ならstringにするというのもおもしろいなあ。
527名称未設定:2006/06/20(火) 02:49:51 ID:s+c3OR1d0
>>524
オメデト-

なんか、初めてAppleScriptを勉強していた頃を思い出した。
全てがなつかすぃ
528名称未設定:2006/06/20(火) 06:02:41 ID:NQcx2LB20
55 スクリプト実行で エラー なんで???
tell application "Terminal"
activate
do shell script "sudo update_prebinding -root / -force" password "****" with administrator privileges
end tell
で、スクリプトエディターから実行を押すと
「AppleScriptエラー ターミナルでエラーが起きました。:アクセス権の違反が起きました。」
がでます。何で??? **** にはパスワードをいれています。OS10.4.6
529名称未設定:2006/06/20(火) 07:17:40 ID:3gwW4mYT0
管理者特権モードでdo shell scriptしてるんだから
sudoは不要なんじゃあるまいか
530名称未設定:2006/06/20(火) 09:37:39 ID:5vtlh3Sq0
do shell scriptならtell app "Terminal"は不要。
つーかdo shell scriptでぐぐったら出てくるアップルの説明読め。
531名称未設定:2006/06/20(火) 11:51:08 ID:OuWQyVWI0
10.4ならupdate_prebindingやる意味もないだろ。
532名称未設定:2006/06/20(火) 12:16:32 ID:5vtlh3Sq0
kwsk
533名称未設定:2006/06/20(火) 14:57:31 ID:a8rSNf7o0
>>532

>>530で偉そうに指示してるくせにその程度の心当たりも無いなら死んだ方が良い。
恥ずかしスwww
534名称未設定:2006/06/20(火) 15:35:55 ID:8APrIZ1p0
どうせまたあいつだろ? いちいち相手するのも時間の無駄。
535名称未設定:2006/06/20(火) 18:47:38 ID:5vtlh3Sq0
知らない事があったら知ってる事を教えちゃいかんのか。
君のように笑うだけなら楽だな。
536名称未設定:2006/06/20(火) 22:18:00 ID:7YSrneQY0
>535は正論と思う。
537名称未設定:2006/06/21(水) 00:01:55 ID:16+Wgjxy0
正論だが5vtlh3Sq0は特に役に立つようなことは何も教えていない
538名称未設定:2006/06/21(水) 00:13:57 ID:KafjBMhf0
>>532
まさに正論
539名称未設定:2006/06/21(水) 03:23:28 ID:WlDTo8fo0
tpdn
540528:2006/06/21(水) 08:10:10 ID:HFcvpp9P0
ありがとう
sudo は いらない。 tell app "Terminal"もいらない。
do shell script "update_prebinding -root / -force" password "****" with administrator privileges
のみにしたら、動いている。 これでいいのかな?
動いたので、感激です。
541名称未設定:2006/06/21(水) 09:37:31 ID:T1djqSo80
おめでとん
542名称未設定:2006/06/21(水) 10:00:54 ID:T1djqSo80
>>537
tellする対象が間違っていてもどうでもいいとか
公式の詳しいわかりやすい解説もどうでもいいとか
このスレで本気で言っているのなら
update_prebindingが10.4でどうなったか知ってるかどうかなんて
もっとずっとどうでもいい話だな。

>>540さん、
こういう話(下記URL)もあるので注意してください。
http://pc7.2ch.net/test/read.cgi/mac/1130776036/435
543名称未設定:2006/06/21(水) 10:02:04 ID:T1djqSo80
あ、でもリンク先の話は関係ないかもしれない。よくわからない。
544名称未設定:2006/06/21(水) 12:24:09 ID:yMRfEd6F0
お前、厳しいこと書かれたりとかすると、その直後だけは元質問者に妙に丁寧っぽく
レスするよな。先には随分突き放したレスしてたくせに。

そのあからさまな変わりよう、文体の違いがすげー胡散くせーよ。死ね。
545名称未設定:2006/06/21(水) 12:33:35 ID:47RBHxr2P
Automatorの「AppleScriptを実行」のエディタって
キーワード自動補完機能があって
acって打つと
activateと仮表示されてescで確定できるけど
スクリプトエディタにこの機能は付かないのかな
546名称未設定:2006/06/21(水) 13:06:29 ID:vyuC3mCX0
スクリプトエディタの環境設定
547名称未設定:2006/06/21(水) 13:19:17 ID:WlDTo8fo0
そんな事初めて知った。
感謝致します。
548名称未設定:2006/06/21(水) 18:30:17 ID:47RBHxr2P
>>546
おお、「スクリプトアシスタント」をオンにしたらでた。
いつからこの機能あったのだろうか。
情報サンクスです。
549名称未設定:2006/06/21(水) 20:48:34 ID:Ze+gjo8N0
だけどそれだと日本語入力しようとしても母音とかが打てない><
550名称未設定:2006/06/22(木) 02:57:50 ID:Fz6ZfT7P0
551名称未設定:2006/06/22(木) 09:52:44 ID:TZbnEfYW0
OS 10.3でしょ?10.4で直ってるよ
552名称未設定:2006/06/25(日) 11:06:26 ID:1H6S2OyJ0
captyのPixeStationTVを操作したいのですが、
tell application "PixeStationTV(FW_G4) "
activate
end tell
tell application "System Events"
tell process "PixeStationTV(FW_G4)"
click button "設定" of window 1
end tell
end tell
としても、押す動作はしてるようですけどその後設定ウィンドウが
開かれません。
click pop up button 1 of window 1
なんかも同様で押されはしますけどポップアップメニューが出ません。
これは自分のスクリプトが甘いんでしょうか、それともアプリが
特殊で扱えないんでしょうか。
OSは10.3.9です。
553名称未設定:2006/06/25(日) 23:16:15 ID:sXn+7+YE0
>>552
この辺参考になる?
ttp://blog.so-net.ne.jp/MyCometG3/2004-12-18-3
ttp://blog.so-net.ne.jp/MyCometG3/2004-12-18-4
動かないものもあるみたいだよ。
554名称未設定:2006/07/09(日) 12:06:51 ID:eHTz5qH/0
 
555名称未設定:2006/07/14(金) 22:45:11 ID:TL/gT5uP0
556名称未設定:2006/07/16(日) 02:18:41 ID:cFauCOtn0
特定のフォルダに追加された画像ファイル
→iPhotoの特定のアルバムに自動で登録
というAppleScriptを作りたく、フォルダアクションと
iPhotoのimportを利用してスクリプトを書こうと思っているのですが、
importがうまく働いてくれません。

ご助言頂けないでしょうか。

試行錯誤(1)
tell application "Finder"
activate
set FileList to selection
end tell
tell application "iPhoto"
import (item 1 of FileList)
end tell
→ Finder でエラーが起きました:item 1 of {document file "Test.rtf" of ... folder "Users" of startup disk} は import メッセージを認識できません
557名称未設定:2006/07/16(日) 02:38:30 ID:cFauCOtn0
上記、環境は
iPhoto 6.0.4 / MacOS 10.4.7 / iBookG4 です。

558sage:2006/07/16(日) 02:40:18 ID:cFauCOtn0
上記、環境は
iPhoto 6.0.4 / MacOS 10.4.7 / iBookG4 です。

iPhotoの用語説明によると、
import v : Import the given path:
 import [reference : the object for the command]
なんですが、referenceクラスの扱いが間違えてるのでしょうか?

ちなみにimport (file (item 1 of FileList as alias))
と書いたら、
「iPhoto でエラーが起きました:file (alias "Macintosh HD:Users:
   〜 :ピクチャ 1.png") をタイプ reference に変換できません。」
となりました。
559名称未設定:2006/07/16(日) 04:41:22 ID:JcLGVlgg0
>>556
OS10.4なら、Automator試してみれば?

「iPhotoに写真を読み込む」(追加先のアルバム選択可)
というアクションがあるので、これの前に
「選択されたFinder項目を取得」だとか、「Finder項目を移動」、
「Finder項目を検索」といったアクションをくっつければ、
やりたいことは出来そうな雰囲気だけど。
560名称未設定:2006/07/16(日) 08:43:39 ID:dLdf2Mjm0
import (item 1 of FileList as alias)
でいいよ。
はじめからitem 1はaliasなのでiPhotoはimportできる。
fileに変換する必要はない。
561名称未設定:2006/07/16(日) 15:03:25 ID:cFauCOtn0
>>560
そのような気がするのですが、
import (item 1 of FileList as alias) や import ((item 1 of FileList) as alias) で
実行してみると、
「iPhoto でエラーが起きました:認識できないパラメータがあります。」
なんです。

>>559
にヒントを得て、
automatorで作った後、apple scriptとして書き出そうと思ったら
編集可能な状態で書き出させてくれないし。
(フォルダアクションで使いたいんです。
safariから画像をフォルダにドラッグドロップ→iPhotoに登録→コメント書き入れ
という作業を逐一こなしたくて。)

うーむ。
せっかくのアドバイスを活かせずに申し訳ありません。
562名称未設定:2006/07/16(日) 16:07:31 ID:/E2gLVft0
iPhotoに渡す前に、リスト内の各アイテムを
Finderのtellブロック内で明示的にaliasにしておくというのはどうっすか?

tell application "Finder"
set fileList to (selection as list)
set aliasList to {}
repeat with i from 1 to (number of items of fileList)
set aliasList to aliasList & ((item i of fileList) as alias)
end repeat
end tell
563名称未設定:2006/07/16(日) 17:45:21 ID:dLdf2Mjm0
ああ、そうだね。
tell application "Finder"
set fileList to (selection as list)
repeat with i in fileList
set contents of i to i as alias
end repeat
end tell
でもいいかも。
564名称未設定:2006/07/16(日) 20:03:12 ID:WORw7xSIP
便利そうなのでいろいろ試した所下ので動いた

on adding folder items to this_folder after receiving these_items
tell application "iPhoto"
import from these_items
end tell
end adding folder items to
565名称未設定:2006/07/16(日) 20:22:40 ID:/E2gLVft0
ひみつメモ:

ドロップレットをDockに置いておくと
Safariから画像を直接ドロップできる。

ドロップされた画像は
~/Library/Caches/TemporaryItems
に一時保存される。
566556:2006/07/16(日) 23:55:14 ID:cFauCOtn0
>>564
どもありがとう!
動きました。
import from [alias]
と、fromを入れるのがキモだったようですね。

>>562,563さんもありがとう。
良い勉強になりました。
皆さん多謝

567名称未設定:2006/07/17(月) 01:08:44 ID:FBn5ELN40
iPhoto 5の用語説明では、

import v : Import the given path.
import reference : the object for the command
from Unicode text : The path(s) to import.
[to anything] : The container to which to import the object.

うーん。この用語説明通りだと、何故from?
568556:2006/07/17(月) 03:31:32 ID:epP90j7g0
>>567
iPhoto6の用語説明もそう。
納得いかねーっす。
569名称未設定:2006/07/23(日) 18:46:19 ID:dvweyCoH0
AppleScript Studioもここでいいんでしょうか。
TableViewを使いたいのですが、テスト段階でクリックハンドラの中に
tell window of theObject
tell data source of table view "FileList" of scroll view "FileList"
make new data column at the end of the data columns with properties {name:"file_name"}
make new data row at the end of data rows
set contents of data cell "file_name" of data row 1 to "aaa"
end tell
end tell
とするとちゃんと表内に文字が入るんですが、
起動後ハンドラ?内でコラムをあらかじめ作ろうと
on will finish launching theObject
tell window of theObject
tell data source of table view "FileList" of scroll view "FileList"
make new data column 1 with properties {name:"file_name"}
end tell
end tell
end will finish launching
とすると起動時にNSArgumentEvaluationScriptError(3)
というエラーが出てしまいます。
will finish launchingハンドラ内だからということはないと思うんですけど
解決方法わかる方いませんでしょうか。
570名称未設定:2006/07/24(月) 17:59:42 ID:y2swNWDM0
ASSきちんと触ったことはないけれど。

>>569
>make new data column 1 with properties {name:"file_name"}

make new data column
 at begining of data columns
 with properties {name:"file_name"}

だとどう?
571569:2006/07/25(火) 00:55:50 ID:Th1foPV00
>>570
上ではmake new data column 1になってましたけど
もともとはon clickedハンドラ内同様make new data column at the end of the data columns with
にしてまして、at beginning でやってみましたけど結果は変わりませんでした。
572名称未設定:2006/07/25(火) 01:00:33 ID:1aHlYndA0
ほしゅ
573569:2006/07/25(火) 01:43:48 ID:Th1foPV00
わかりました。
clickedハンドラ内とwill finish launchingではtheObjectの内容が違う訳で、
will finish launchingの時は
tell window of theObject でなく
tell window "main" とscript用の名前を直打ちしないとだめなようでした。
(具体的にtheObject内にどういうものが入ってるのか今イチ理解できてませんが。)
これで先にすすめそうです。
574名称未設定:2006/08/05(土) 01:23:50 ID:akhW/EZ40
阿蘇ってますなあ
575名称未設定:2006/08/12(土) 11:45:48 ID:NuuJatI40
阿蘇ってるようなのでASSの質問を再び。
2つの表があってtableBの内容がtableAに入るようにしているのですが
Bの内容を変更をしたらAの内容も自動的に変わるようには出来ないのでしょうか。
set contents of data cell "name" of 〜 table view "A" 〜 to
a reference of contents of data cell "name" of 〜 table view "B" 〜
みたいにできたらいいんでしょうけど実際には実データしか入らないようですし。
勝手に反映が無理ならBの変更時にAの該当部も変更しようってことで
tell data source of table view "A" 〜
set row_list to every data row whose contents of data cell "name" is theName
で theName(Bの内容変数)と同内容のrowを抜き出そうとしたんですが
NSReceiverEvaluationScriptError: 4 (1) とエラーメッセが出てうまく抽出出来ません。
あとはrepeat文でAのcell of rowを一つずつ見ていく方法しか思いつきませんが、
なにか妙案はないものでしょうか。
576名称未設定:2006/08/12(土) 20:42:12 ID:CJuaUMqc0
>>575
そもそも、「tableBの内容」には元となるデータモデル (data source) があります
よね?それをtableAにも反映させればいいだけでは?
あるテーブルビューの各セルの中にある値は「そこに入っている」のではなく
「その場所にあるデータが表示されている」と考えてください。
Model-View-Controllerという設計指針に関連があります。
577575:2006/08/12(土) 23:40:30 ID:NuuJatI40
>>576
>あるテーブルビューの各セルの中にある値は「そこに入っている」のではなく
>「その場所にあるデータが表示されている」と考えてください。
概念的なことは大体わかったような気がしますが、
>そもそも、「tableBの内容」には元となるデータモデル (data source) があります
>よね?それをtableAにも反映させればいいだけでは?
AppleScriptでこれ表現出来るんでしょうか。
サンプルなどを基にストレートに作ったいまのスクリプトでは
contents of data cell "name" of 〜 data source 〜 table view "A" 〜 window "main"
とInterface BuilderでTableViewにコネクションされたDataSource "A"が表示されている訳ですが
Table View "A"のあるcellにDataSource "B"のデータを反影させる方法ってのが
今のところちょっとわかりません。
578名称未設定:2006/08/15(火) 18:22:10 ID:h4KkSZV40
>>577
具体的なコードで示せたらいいんですが、おいらもそんなに慣れてないので
考え方だけ。
あるFM曲の一週間の番組のタイムテーブルがあるとして、これを data source
と呼ぶことにします。新聞Aと新聞Bがそれをそれぞれの紙面に掲載してる、と
いうのが、table view A と table view B の存在です。data source が変更された
とき、それぞれの新聞社はそれぞれの紙面を更新しなければいけません。FM局
にはそれらの紙面を更新する責任はありませんし、そうするべきではありません。

それで、この考え方でいくと、577さんが操作するのはFM局の番組表自体でしょ
う?2つの新聞社が直ちに紙面を更新するようにプログラムするなら、FM局と
新聞社のあいだをとりもつオブジェクトだか関数だかを定義すればいいのでは?
579名称未設定:2006/08/16(水) 02:46:02 ID:/Ic07CgT0
ぶったぎってすまないんですが、
純正Script Editorだと、入力中に過去の入力履歴による補完候補が
表示されますよね?あれってどうやって確定するんでしょうか?
returnキーに装飾キーをつけてみたり、ことえり風にtabしたりしてみましたが
駄目ですた。
580名称未設定:2006/08/16(水) 02:58:16 ID:VJ0p8aWL0
F5?

ヘルプはみたのかい?
581名称未設定:2006/08/16(水) 15:55:16 ID:FNHzrjdb0
あれ使いづらいよな
Xcodeと同じ挙動&設定にして欲しい
582名称未設定:2006/08/17(木) 01:56:55 ID:bQLx43u60
>>580
うむ。おかげさまで答えを教えてもらった後ならば
簡単に該当項目を見つけることができました。

あありがとうございました。
とはいうものの、F5って…。iBookだからコンビネーションで押さなならんし…
583580:2006/08/17(木) 06:21:39 ID:ih1F0rjZ0
シェアウェアだけど、iKeyというユーティリティでカスタマイズできるよ。
http://www.scriptsoftware.com/ikey/

Ctrl + iを押すとF5を押したかのようにふるまう、といったことができる。
もちろん、システムワイドでそうなってしまうと不都合があるから、
Script Editorが最前面に来ているときだけ、というように、
アプリケーションワイドに限定できる。
584名称未設定:2006/08/17(木) 12:21:40 ID:RwGBdV2AP
>>582
escでも一覧表示、確定出るよ。
ヘルプに載ってないので自分だけかもしれんけど。
585名称未設定:2006/08/19(土) 19:15:30 ID:qiCbZlV70
>>583
フリーウェアのButlerのほうが
アプリケーションごとの設定ができて便利かもしれんね。
586580:2006/08/19(土) 19:23:17 ID:rCILBtZI0
>>585
そうだね。
>>582
Butlerを使ってみるといいよ。
http://www.petermaurer.de/nasi.php?section=butler&id=butlerabout
587575:2006/08/20(日) 10:43:04 ID:cpNzfWxt0
レス間が開きまくってなんですけど、
>>578
>>オブジェクトだか関数だかを定義すればいいのでは?
ってのは今の自分には敷居が高いですね、scriptしか使えないもので。

読み違えてたらすみませんが、とりあえず1行ごとに比較して更新してくことにします。
588578,576:2006/08/20(日) 20:44:28 ID:3zT69OL90
>>587
せっかくだから速攻でテストしてみましたよ
どうやら578で言った「オブジェクトだか関数」は既に Apple 謹製の API のなかに
組み込まれているようで、以下のコードだけで複数の Table View がシンクロしま
した(片方を編集するともう片方に直ちに反映される。)

まず Interface Builder で:
- main window に columns=3 の NSTableView を配置し、それを複製
- それらの table view の"awake from nib" をチェック
- main window の "awake from nib" をチェック

[つづく]
589578,576:2006/08/20(日) 20:45:01 ID:3zT69OL90
-- <application.applescript>

global myDataSource

on will finish launching theObject
set exampleDataCols to {"Name", "Sex", "Info"}
set exampleData to {{"Steven", "m", "CEO"}, {"Woz", "m", "God"}, {"Hanako", "f", "Enter a new text here!"}}

set myDataSource to make new data source at end of data sources with properties {name:"exampleDataSource"}

repeat with i in exampleDataCols
make new data column at end of data columns of myDataSource with properties {name:i}
end repeat

repeat with i in exampleData
make new data row at end of data rows of myDataSource
repeat with n from 1 to the number of data columns of myDataSource
set content of data cell n of last data row of myDataSource to item n of i
end repeat
end repeat
end will finish launching

on awake from nib theObject
if class of theObject = table view then
set data source of theObject to myDataSource
tell theObject to update
end if
end awake from nib
590578,576:2006/08/20(日) 20:50:28 ID:3zT69OL90
まちがえた

>- main window の "awake from nib" をチェック

ではなくて、

MainMenu.nib の File's Owner の "will finish launching" をチェック。です。
591さぉり:2006/08/24(木) 08:21:22 ID:sq6zXXiN0
おはようございます
今AppleScriptをやってて 新AppleScriptゼンマイびゅんびゅんのデスクトップを整頓するの
Scriptができません
tell application "finder"
clean up desktop
end tell
が実行できません OSXでは仕様が変わったんでしょうか
本書に書いてある通りやってて ミスも無いんですがエラーになります
誰か詳しい方教えて下さいお願いします
592名称未設定:2006/08/24(木) 10:10:11 ID:0oBWVZZS0
>>591
女性風のコテハンつけるとレスがあろうという愚かさが気に入らない
593名称未設定:2006/08/24(木) 10:15:20 ID:yKrP9riq0
>>592
はげどうw
594さぉり:2006/08/24(木) 10:37:35 ID:sq6zXXiN0
>>592
いや意味がわかりません笑
595名称未設定:2006/08/24(木) 11:38:10 ID:yKrP9riq0
>>594
おまえの陋劣さが嫌われておるのだw
596名称未設定:2006/08/24(木) 12:59:18 ID:Z8QxaagN0
そいつ他のプログラミング系スレにも出没して
マルチかましてるクレクレくんだから無視して良いよ
597さぉり:2006/08/24(木) 13:55:10 ID:sq6zXXiN0
>>754
【標準装備】スクリプトエディタ
http://pc7.2ch.net/test/read.cgi/mac/1111760449/

ここ参考にしろって言われて 来ました^^;;
質問に答えられないからってこっちに来させて こっちで質問したらマルチですか^^;;
馬鹿じゃない?^^
598名称未設定:2006/08/24(木) 14:09:22 ID:m1ReDdsd0
>>592
実際cocoaスレじゃ馬鹿が散々構ったから仕方ないw
599さぉり:2006/08/24(木) 17:09:30 ID:sq6zXXiN0
ここも頭悪い人ばっかし^^;
しょうだつやのさんを見習いなさい
匿名だからって悪口ばっか書いちゃダメなんですよ
これだから頭の弱い方は・・・・^^;
私は言えないけど大した技術も無さそうだし 凄い人ならこんな場所に書き込みなんてしないし
ここに居る人は可哀想な人 自分で凄いと思ってるんだけど 著者から見て大した事ないって
思ってますしね  ここに居る人は全然凄くないってことです 自覚して下さいね^^;
自画自賛と自意識過剰も程々にね(笑)
600名称未設定:2006/08/24(木) 17:18:21 ID:9SBt9qPp0
ええと、掌田津耶乃さん御本人が降臨中ですw
601名称未設定:2006/08/25(金) 02:19:42 ID:2DdknQ910
掌田津耶乃さんは引き合いに出されて困惑していると思われ
602580:2006/08/25(金) 03:57:26 ID:Kq49icGD0
nameとkindしかできないみたい?

tell application "Finder"
set current view of window 1 to icon view
set myResult to choose from list {"name", "kind"}
if item 1 of myResult is "name" then
clean up window 1 by name
else if item 1 of myResult is "kind" then
clean up window 1 by kind
end if
end tell
603さぉり:2006/08/25(金) 09:42:00 ID:hDCTs+B50
ちょっと簡単なアプリケーションみたいな物作ってみました笑
まだまだ微妙なので 見やすかったり他にもいい方法があるって人は教えて下さい

tell application "Finder"
display dialog "アプリ起動する?" buttons {"Safari起動!", "やっぱりMail!", "両方!"} default button 1
set User_Answer to button returned of result
if User_Answer is "Safari起動!" then
open application file "Safari.app" of folder "Applications" of startup disk
else if User_Answer is "やっぱりMail!" then
open application file "mail.app" of folder "Applications" of startup disk
else if User_Answer is "両方!" then
open application file "Safari.app" of folder "Applications" of startup disk
open application file "mail.app" of folder "Applications" of startup disk
end if
end tell
604名称未設定:2006/08/25(金) 20:59:31 ID:lwBu/R/M0
2行目の末尾にgiving up after 10 with icon note
605さぉり:2006/08/25(金) 21:41:25 ID:hDCTs+B50
それとTigerで良く分からない事があるんですが私のPCだけでしょうか?
ScriptMenuを表示したくて色々探した結果AppleScript ユーティリティにScriptMenuがありました
ですがScriptMenuにScriptを登録したいんですが登録できません
色々サイトを回ってみたんですが script menu.menuにドロップすれば登録できると書いてあったんですが
Tigerでは仕様が変わったんですか? その前にScript menu.menuがAppleScriptのフォルダには無くて
登録できません 誰か詳しい方教えて下さいお願いします
606名称未設定:2006/08/25(金) 21:45:43 ID:UPZW9rNp0
津耶乃さんもいいけどOS Xで使うなら
AppleScript PARKのIntroductionだけでも読んどいた方がいいと思う。
607さぉり:2006/08/25(金) 21:46:30 ID:hDCTs+B50
http://www.dabits.net/tools/uploader/img-box/up874.jpg
http://www.dabits.net/tools/uploader/img-box/up875.jpg

画像載せましたー OSX10.4ではよく分からないので知ってる方が居たら教えて下さい。
608さぉり:2006/08/25(金) 21:53:24 ID:hDCTs+B50
読みましたよ〜
AppleScript PARK はちょっと知識ついたら結構役に立ちました
>>606さんもアプリ作ったりするんですか??
609さぉり:2006/08/25(金) 22:16:13 ID:hDCTs+B50
すみません解決しました
Scriptsフォルダの中を移動したらちゃんと使えました
610575:2006/08/27(日) 14:41:27 ID:NRJYt5w90
日曜スクリプターなゆえ長々とすみませんが再登場。
>>588
わざわざスクリプトを考えてもらってありがたいですが、解には至りませんでした。
>>575を見返すとtableA,Bと書いているのでゴカイを与えてしまっているかもしれませんが
基本TableAにはDataSourceA、TableBにはDataSourceBが表示されていて
TableBの一部をTableAに反影させようとしています。(>>575の「tableBの内容が
tableAに入るようにしている」というのは今読み返すと紛らわしいですね)
>>589のサンプルをDataSourceAとしてdata columns{"Country","Kana"}を持つ
DataSourceBがあり、TableAの"info"の横にDataSourceBを表示させたいのです。
最初はDataSourceAにもdata columns{"Country","Kana"}がありボタンを押すことで
選択されたDataSourceB(TableB)の内容を選択されたDataSourceAの該当cellに
セットしていたのですが、これだとDataSourceBの内容を変えてもDataSourceAの該当cellは
以前のままだときづいたので最初の質問をした次第です。

返事をする以上一応色々と試してはいるのですが、set data source of theObject to myDataSource
のようにTableAのあるセルにDataSourceBのセルを表示させる方法が現状見いだせていません。

更なる返事があればうれしいですが、長引いてしまっているしウザかったら放置してください。
611さぉり:2006/08/27(日) 19:01:50 ID:bp85/WSk0
アプリケーションを作りたいんですけど
アイデイアが思いつきません どなたかサンプルコードお願いします
612さぉり:2006/08/27(日) 19:16:51 ID:bp85/WSk0
例えば
display dialog "新規ファイルを作りますか?" yes noとして
そのあと名前をきめるテキストフィールドを出して 新規ファイルをデスクトップに作るにはどうすればいいでしょう
詳しい方教えて下さい

予想ですが

tell application "Finder"
display dialog "新規ファイルを作りますか?" buttons {"はい", "いいえ"} default button 1
set ans to button returned of result
if ans is "はい" then
display dialog "名前を決めて下さい" default answer ""
set name to text returned of result
else if ans is "いいえ" then
end if
end tell
613名称未設定:2006/08/27(日) 19:50:32 ID:66dx12u60
>>612
こんな場所で聞く私が馬鹿でした!
みなさん頭弱過ぎです!自分がちょっとプログラミングできるからって
初心者をけなして どうせ大して凄くないんですよね 著者たちや会社に勤めてる方の方が凄いです
これだからこの板の方は(笑)  著者や会社に勤めてる方が凄いです
そんな詳しくないのに知ったかぶって(笑) 過去ログがちょっと笑えました(笑)
教えてgooで聞くのでいいです こんなユーザーレベルの低い場所は勘弁です


ほれ、先に書いといてやったぞ。もうクンナ!
614さぉり:2006/08/27(日) 19:51:59 ID:bp85/WSk0
何ですか?その書き込み?
私に対する嫌がらせでしょうか?
615名称未設定:2006/08/27(日) 19:52:21 ID:Zzora6ZC0
>>613
>>599
既に書いてますよw
616名称未設定:2006/08/27(日) 19:58:41 ID:66dx12u60
>>615
さぉりって野郎は鶏だったのか orz
617さぉり:2006/08/27(日) 20:02:04 ID:bp85/WSk0
いや書き込んでませんよ?
偽物では無いでしょうか >>599とは別の書き込みですが
頭弱い方は困ります^^;;
618さぉり:2006/08/27(日) 20:13:30 ID:Ea/65dw60
>>617
あなたこそ偽物じゃないですか(笑) 気持ち悪いことはやめてください
無職だからって暇なのはわかりますが 頭弱すぎです。。。;;
619さぉり:2006/08/27(日) 20:55:32 ID:bp85/WSk0
何で私の偽物が出てくるんですか?
意味分かりませんこれだから2chの方は頭が弱いんですね
ID変えて荒らさないで下さい 気持ち悪いです^^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
620名称未設定:2006/08/27(日) 21:03:58 ID:bp85/WSk0
私は馬鹿など用ではありません
AppleScriptができる方と話がしたいんです
あなたみたいな馬鹿たちとは話したくありません
これだから初心者プログラマーは(笑) あなたたち本とか買ってみたりしてないんですか?笑
著者の名前とか出して評判悪いなどと言ってる馬鹿さんは2chで私たちみたいな詳しい方に聞いて下さい
私の名前使うなんてちょっと頭がおかしいのでは^^; 頭が良い人なら匿名の名前なんて使いませんけどね(笑)
独学でcocoaでもやってて下さいセミナーなどにも参加した事ないオバカさん(笑)
家にこもって独学で学んでて下さい ^^;;
これだから頭の弱いプログラマーが語ってると気になって 嫌な2chに来て楽しみにしてるんですよ
621名称未設定:2006/08/27(日) 21:04:54 ID:bp85/WSk0
追伸

知ったかぶりはしないで下さいね^^;;
622名称未設定:2006/08/27(日) 21:24:38 ID:Imz8x62bO
ネタでやってんのかと思ってたが、いじられた途端この必死のレスラッシュ。
真性かw
623名称未設定:2006/08/27(日) 21:37:23 ID:bp85/WSk0
頭弱い人は困りますね(笑)
独学ですか?笑 
著者やプロの人を見習いなさい ド素人さんたち(大笑)
624名称未設定:2006/08/27(日) 21:50:35 ID:Zzora6ZC0
ええと、ナマズ本マンセーしてるやつに頭弱いって言われるとなんか原辰則
625名称未設定:2006/08/27(日) 22:20:54 ID:+60joJVq0
ファビョるとコテ消すキチガイって団子を思い出すな
626名称未設定:2006/08/27(日) 22:23:34 ID:jCFaXyey0
まあなんにせよ、賑わうのはいいわな。
早く消費して「AppleScript / OSA Part 1.」というスレを立てたい。
627さぉり:2006/08/27(日) 22:33:13 ID:NJE3eNJo0
今度からここに書き込む人は全員「さぉり」という名前を名乗る決まりになりました

さあきょうから全員さぉりです。
628さぉり:2006/08/27(日) 22:40:10 ID:53fTnUzQ0
あんたら、ええかげんにしいや。ほんまに、もう。
人が下手に出たら、えらそうにこきおろしよんねんな。
むっちゃ腹たつわ。匿名やからって人の悪口ばかり書きよるやつは、
馬糞にも劣るフンコロガシ野郎やわ。
ほんまの男ちうもんはこんなとこに書き込みなんかせえへん。
ほんまの男やったら本を書かんかい。
本を書いて印税でわしを食わしたるぐらいやないと、わしは認めへんで。
ほんまにもう。わしがわしが言うばかりで中身がともなわないやつらめ、
自分がどれほどのもんか、自覚しいや。
629名称未設定:2006/08/27(日) 22:40:41 ID:bp85/WSk0
ナマズ?馬鹿にしてるんですか?著者を
儲かってないニートに言われたら最悪です
貧乏人の>>624は負け犬です笑
私の釣りに釣られたバカたちもダメダメですね笑
釣りかって言ってるやつか一番釣られてますね笑
本も書けない馬鹿が著者の事をナマズとか言わない方がいいですよ?
あなたの方が気持ち悪くて見にくい顔してるんでしょう
ID変えて必死ですね ここは4人くらいしかいなそうですけど笑
マンセー?著者よりかも知識が無いクセして威張るのはやめて下さい
みなさん頭弱過ぎです爆笑 本を出版したりしてから威張って下さいね^^;;
630名称未設定:2006/08/27(日) 22:44:55 ID:bp85/WSk0
馬鹿は言葉で勝てないから
ID変えて人がいっぱいいる雰囲気を作って私を徹底的に叩く
頭がおかしい馬鹿ですか笑 頭弱い方はIDを必死に変えて必死になって下さい
631名称未設定:2006/08/27(日) 22:46:43 ID:Zzora6ZC0
馬鹿にしてるも何も
掌田津耶乃は自分で自分のことをナマズと言ったんだが。
632さぉり:2006/08/27(日) 22:51:24 ID:53fTnUzQ0
なんや。人がいっぱいおれへんほうがいいんやったら、
はよ言うてくれたらええのに。
賑やかなほうが書き込みやすいかなと思って、IDぎょうさん使うてんねんど?
どや、さぉり、ここは今、おれとおまいだけやぞ。わしだけに甘いAppleScriptを書いてくれへんかな。
まぁ、おれも名前がさぉりやし、ずいぶんややこしいことになってるけどな。
633さぉり:2006/08/27(日) 22:56:42 ID:NJE3eNJo0
偽物は黙れ
634さぉり:2006/08/27(日) 23:18:38 ID:26s6hAda0
いいえ私が本物です
635さぉり:2006/08/27(日) 23:22:02 ID:LUc+bKdr0
残念それは私のおいなりさんだ
636さぉり:2006/08/27(日) 23:56:10 ID:xrNtcLLL0
そのおいなりさんに
むしゃぶりつくのは本物の私よ
637さぉり:2006/08/28(月) 09:39:33 ID:+XjC1qDt0
うっせー偽者ども
638名称未設定:2006/08/28(月) 10:13:23 ID:qRHOVIc50
立つ鳥跡を濁しまくって本人は既にいないというのは公然の秘密。
639名称未設定:2006/08/28(月) 11:41:08 ID:R5BgaL4J0
>>613-637
何故ここで釣られるのかが分からない
釣られた方が頭が弱いと思うんだけど気のせいかな
640名称未設定:2006/08/28(月) 15:29:13 ID:0NGZi+oR0
どーでもいいけど、コテ名乗る奴はみんなトリップ付けとけ。
トリップが何のことかわからん奴は検索して調べろ。
641名称未設定:2006/08/28(月) 23:10:57 ID:0eBWZY5G0
どーでもいいけどきっかけとなったスクリプトのダイアログ、へぼすぎるわ。

set theResult to (display dialog "新規ファイルを作りますか?" with icon note default answer "名称未設定")
set theAns to button returned of theResult
if theAns is "はい" then
set theName to text returned of theResult
else if theAns is "いいえ" then
end if

ダイアログの数を極力少なく、return keyとesc keyでも十分操作できるシンプルなダイアログ。
同じ機能でも使ってみると印象がかなり>>612と違うだろ?
642名称未設定:2006/08/29(火) 00:05:09 ID:/khgFc6I0
ボタンリスト、はい、いいえのセットは必要ではないのかな?。
643名称未設定:2006/08/29(火) 01:12:59 ID:Cxmv057n0
return keyやesc keyで選択できなくなる。
OKでだめという理由がない限り、OKにした方がいい。
AUIGっぽくいうとそうなる。
644(・∀・):2006/08/29(火) 02:34:38 ID:0X1S70gx0
修行するぞ!修行するぞ!

try
display dialog "新規ファイルを作りますか?" default answer "名称未設定" buttons {"はい", "いいえ"} default button 2 cancel button 2 with icon note
--ファイル作る
set theFileName to text returned of result
on error
beep
end try

1. display dialogは、キャンセルすると例外になってしまう。
だから、必要ならtry〜on errorと記述するんだ。

2.cancel buttonを指定すればESCキーも使用可能なんだ。
645名称未設定:2006/08/29(火) 09:40:26 ID:vgx+G1/N0
>>644
>キャンセルすると例外になってしまう

キャンセルという表現を使いたいけれど、例外にしたくない、
そういうときは、「 キャンセル 」と前後に半角スペースを
埋め込んでつかう。これだけで例外にならない。
646名称未設定:2006/08/29(火) 20:40:41 ID:Cxmv057n0
すまん、書きかけのを上げてたかも。

try
set theResult to (display dialog "新規ファイルを作りますか?" with icon note default answer "名称未設定")
set theAns to "はい"
on error
set theAns to "いいえ"
end try
if theAns is "はい" then
set theName to text returned of theResult
else
beep
end if
647名称未設定:2006/08/30(水) 00:51:24 ID:VNkv5PTk0
エラーの代わりにfalseを返すオプションがあったらいいなあ。
648名称未設定:2006/08/30(水) 00:58:31 ID:nurIfCWL0
repeatでnextやcontinueにあたるものが無いのは
無くてもなんとかなるからでしょうか?
個人的には欲しいのですけど
649名称未設定:2006/08/30(水) 01:07:27 ID:VNkv5PTk0
ここでnext repeatが使えればいいのに!
と思うことは多々あるんだけど、
具体例を書こうと思ったらまったく思いつけなかったので
きっとたいした問題ではないんでしょう。
650名称未設定:2006/08/30(水) 01:14:21 ID:Yf1RXJe10
exit repeat
651名称未設定:2006/08/31(木) 01:49:38 ID:m1r45jky0
>>649
それは以前から言われてて、フラグを用意することで処理を飛ばすのが定石。

set i to 0

set flag to false

repeat 10 times
  if i mod 2 is 0 then
   set flag to true
  end if

  if flag then
   display dialog i as string
   set flag to false
  end if

  set i to i + 1
end repeat
652名称未設定:2006/09/01(金) 23:10:00 ID:Mq9o6RL60
よく分からなくなっちゃったのですみませんが教えてください。やりたいことは
http://quote.yahoo.co.jp/q?s=02311862&d=t
みたいなページから基準価額(9/1現在で8,353。日々変わる)を抜き出すことです。

まず、このページのファイルを
set indexSite to "http://quote.yahoo.co.jp/q?s=02311862&d=t"
tell application "URL Access Scripting"
activate
set tmpFile to ((path to desktop folder) as text) & "temporary.html"
download indexSite to file tmpFile replacing yes with progress
quit
end tell
って感じで取得したあと、このファイルをテキストで読み込んで、
「基準価額」を検索ワードにして探しだそうと思いました。

その場合、調べてると「基準価額」をデリミタにすればよさそうなんですが
スクリプトエディタで見てると、読み込んだファイルの日本語が文字化けしていて
「基準価額」ではヒットせず、検索で引っかけられない状態です。
おそらくデリミタを日本語にすることそのものがダメなような気がしています。
何かいい方法はありますか?

検索していて
http://mentai.2ch.net/mac/kako/957/957215209.html
の7が似たような感じかと思って応用しようと思ったんですが、ちんぷんかんぷんですorz
653名称未設定:2006/09/01(金) 23:17:21 ID:EMqU94KR0
恐らく、AppeScript でやるには最も不向きな作業だと思うぞ。
654名称未設定:2006/09/01(金) 23:34:28 ID:X6mdQ/dhP
>>652
do shell script使うとこんな感じでできた気がする。
curlでダウンロードして、iconvで文字コード変換して、perlで抜き出してみた

set theURL to "http://quote.yahoo.co.jp/q?s=02311862&d=t"
set theText to do shell script "curl -s " & quoted form of theURL & " | iconv -c -f euc-jp -t utf-8 | perl -n -e 'if( m{<td nowrap>基準価額<br>(.*?) <b>(.*?)</b></td>} ){ print qq{$1 $2} } ' "

7のスクリプト見たけど自分もちんぷんかんぷんだった・・・
655名称未設定:2006/09/01(金) 23:56:32 ID:Mq9o6RL60
>>653
この結果をファイルメーカーに持っていきたいので、
アップルスクリプトでやることを考えたんですが、難しいですか…

>>654
>do shell script使う

それは俺の未知の領域です。ちょっと調べてみます。
どうもありがとう。
656名称未設定:2006/09/02(土) 01:15:27 ID:M2JE0UEP0
その分野に手を出すと、AppleScriptを勉強しているのかshell scriptを勉強しているのかわからなくなる。
657(・∀・):2006/09/02(土) 02:15:06 ID:0+9epcYn0
>>655
TextEditでやってみました。OSX 10.4 TextEdit 1.4の環境設定で
「ファイルを開くときのエンコード」をISO 2022-JPに変更するのが前提。

set indexSite to "http://quote.yahoo.co.jp/q?s=02311862&d=t"
tell application "URL Access Scripting"
activate
set tmpFile to ((path to desktop folder) as text) & "temporary.html"
download indexSite to file tmpFile replacing yes with progress
quit
end tell
tell application "TextEdit"
open tmpFile
set theGaku to ""
repeat with cnt from 1 to count words of text of document 1
if word cnt of text of document 1 = "基準価額" then
set theGaku to word (cnt + 3) of text of document 1
exit repeat
end if
end repeat
if theGaku = "" then
beep
else
say theGaku
end if
end tell
658名称未設定:2006/09/03(日) 14:38:08 ID:wAaRc4Sa0
>>657
レス遅くなってすいません。
わざわざありがとうございました。
まだ試せてませんが、できそうな気がしてきました。
夜になったら時間がちょっとできるので早速やってみます。
659名称未設定:2006/09/03(日) 19:59:04 ID:wAaRc4Sa0
>>657
無事動きました。ありがとうございました!

しかし得られたデータをクリップボードに入れて(ここまでスクリプト)
FileMakerに持っていき、あるフィールドにペーストしようとしたけど
FileMakerに行くとペーストできないorz
Finderや他のソフトならちゃんとペーストできるんだけど。
Mac板はFileMakerスレないんですね。
これからデータベース板へ行ってきます。お世話になりました。
660名称未設定:2006/09/03(日) 23:26:19 ID:ggc14et00
フィールドの中身を変数としてsetするのではなかったかな>>FMP
661名称未設定:2006/09/04(月) 00:28:21 ID:LhHsWgPx0
>>660
ちょっと意味がよく分からないです…。

やりたいことは>>657で得られたtheGakuの中身をFMPに取り込みたいので、
set the clipboard to theGaku
とやって、FMPのフィールドに貼り付けようとしたのですができないのです。
Finderとか他のソフトにはペーストできるんですが。
662名称未設定:2006/09/04(月) 00:59:02 ID:yj6FxH420
ファイルメーカーはApplescriptに対応しているので
ファイルメーカーのアプリファイル自体をスクリプトエディタにドロップしてみれば
paste や set data 〜 to 〜 等の用語が見つけられるはず。
663名称未設定:2006/09/04(月) 01:02:59 ID:LhHsWgPx0
その結果こうしてみたんですが、もう少しよく読んでみます…
664名称未設定:2006/09/04(月) 01:59:40 ID:LhHsWgPx0
set cell "フィールド名" of current record to theGaku
でいけました。スレ違いですが報告しておきます。
ありがとうございました。
665名称未設定:2006/09/04(月) 07:34:10 ID:gexQgNXw0
あまりスレ違いでもないと思う。
有用だった。
666名称未設定:2006/09/04(月) 18:32:42 ID:yBRT0FAC0
擦れ違いという気もしますが・・・
osascriptに対して、日本語を含むパスを渡したいのです。
色々試しているのですが、うまく行きませんでした。

$ AAA="/Users/hoge/Desktop/Cocoa¥343¥202¥273¥343¥203¥237¥343¥203¥212¥343¥203¥274/"

$ echo $AAA
/Users/hoge/Desktop/Cocoaセミナー/

$ osascript -e "file ¥"$AAA¥""
0:48: execution error: Can't get file "/Users/hoge/Desktop/Cocoa 文字化け /". (-1728)

$ osascript -e "alias ¥"$AAA¥""
0:49: syntax error: File /Users/hoge/Desktop/Cocoa 文字化け / wasn't found. (-43)
667名称未設定:2006/09/07(木) 05:16:28 ID:/lIxM19s0
>>666
osascript -e "POSIX Path of ¥"$AAA¥"" じゃね?
668名称未設定:2006/09/07(木) 10:10:37 ID:EYUhLiUN0
>>667
この場合は"POSIX file ¥"$AAA¥""で良いんじゃないかと思ったんだが。
それでもエラーするな。
669名称未設定:2006/09/15(金) 04:27:01 ID:dPUEEpa50

AppleScriptからiTunesのtrackの「オプション」をいじるような処理が、
iTunes 7ではそのままでは動かなくなってる。

簡単な例
(なんか、曲を再生>停止させておいて)

tell application "iTunes"
set bookmarkable of current track to false
end tell

iTunes 6まではこれでOKだったのが、iTunes 7では
"iTunes でエラーが起きました:ファイルアクセス権のエラーが起きました。"
のエラーになる。

原因と対処法調べ中
670名称未設定:2006/09/15(金) 17:37:05 ID:A9vovaYS0
volume adjustment は変更できるね。
671名称未設定:2006/09/15(金) 17:45:49 ID:wMOPJ7t80
文字列を計算式として計算させるってできないでしょうかね?
"1+2+3" から "6" を得るような
672名称未設定:2006/09/15(金) 17:54:57 ID:eFpmRdc50
run script "1+2+3"
673名称未設定:2006/09/15(金) 18:14:02 ID:wMOPJ7t80
おお、ありがとうございます!
run script ((the clipboard) as Unicode text)
これでテキストに書いたちょっとした計算ができる!と思ったら
スクリプトエディタのサービスメニューにもう実装されてた orz
674名称未設定:2006/09/16(土) 01:29:51 ID:P6qp3OVy0
ないぞ。
OS X 10.4.7 。テキストエディットは1.4
675名称未設定:2006/09/16(土) 01:59:33 ID:cSMFI24c0
>>669
同じ現象を確認した。
原因が分かったら教えてちょ。
676名称未設定:2006/09/16(土) 17:32:41 ID:YXJiPuSIP
>>674
「アップルスクリプトの結果を取得」て無い?
677名称未設定:2006/09/16(土) 18:25:52 ID:zqD8DA610
をお!
>>672を選択してサービスメニューから「Get Result of AppleScript」を選んだら
>>672が「6」になったぞ.
SafariとThousandで試したけど、両方ともうまくいった。
678名称未設定:2006/09/16(土) 20:44:10 ID:TjoiKzuA0
ちなみに
1+2+3
の部分だけでも委員だよ
679名称未設定:2006/09/17(日) 12:19:50 ID:srNngNyi0
結果を表示してないのかな?
680名称未設定:2006/09/21(木) 21:40:48 ID:jxTMiPTH0
age
681名称未設定:2006/09/23(土) 16:27:58 ID:tpDzmiYp0
ちょっとテスト

tell application "System Events" to set appName to (name of (path to frontmost application))
tell application appName
text returned of (display dialog "" default answer "てすてす" buttons {"OK"} default button 1)
end tell
result

で、>>677を実行するとどうなるか
682名称未設定:2006/09/23(土) 16:32:06 ID:tpDzmiYp0
だめだ、Safariが応答しなくなった。

tell application "System Events"
(name of (path to frontmost application))
end tell
683名称未設定:2006/09/23(土) 16:36:40 ID:tpDzmiYp0
ごめん、これで最後だから

tell application "Safari"
activate
text returned of (display dialog "" default answer "てすてす" buttons {"OK"} default button 1)
end tell
684名称未設定:2006/09/23(土) 16:42:23 ID:tpDzmiYp0
ものすごく時間かけてダイアログを出した挙げ句結果は取得できない。

というかいちいち書き込まなくても
テキストエディットでテストすればよかったことに今更気付いたorz
685名称未設定:2006/09/23(土) 17:07:51 ID:QNPFaxZi0
取得できたけど。
686名称未設定:2006/09/23(土) 17:28:09 ID:tpDzmiYp0
お、Thousandから>>683を実行したらできた!
687名称未設定:2006/09/26(火) 17:49:41 ID:0vRjAuTr0
>>666
環境に依存するかもしれないけど、Cocoaセミナーがフォルダだとして

$ AAA=$(osascript -e 'path to startup disk as Unicode text')
$ BBB='/Users/hoge/Desktop/Cocoaセミナー'
$ CCC=$(echo "$BBB" | sed 'y/:\//\/:/;s/^://')
$ DDD=$(echo "$AAA$CCC" | iconv -f UTF-8 -t SHIFT-JIS)
$ osascript -e 'tell app "Finder" to open folder "'"$DDD"'"'

というのはどうすか。
688名称未設定:2006/09/26(火) 23:48:07 ID:H9cpb/hZ0
>>681-687
何に使うのそれ?
689名称未設定:2006/09/27(水) 01:31:28 ID:lV5HDd7q0
テキストエディットで作業中にふと

IPv4 address of (system info)

と打って結果を取得してみたりとか。
何かうまい使い道はないもんか。
690名称未設定:2006/09/27(水) 18:54:05 ID:lV5HDd7q0
set num1 to {32, 124, 32, 112, 101, 114, 108, 32, 45, 112, 101, 32, 39, 126, 32, 115, 47, 37, 40, 91, 48, 45, 57, 65, 45, 70, 97, 45, 102, 93, 91, 48, 45}
set num2 to {57, 65, 45, 70, 97, 45, 102, 93, 41, 47, 112, 97, 99, 107, 40, 34, 72, 50, 34, 44, 32, 36, 49, 32, 41, 47, 101, 103, 59, 39}
set num to (num1 & num2)
set str to ""
repeat with i from 1 to (number of every item of num)
set str to (str & (ASCII character (item i of num))) as string
end repeat
set ta1 to "e8ae8ae88e8ae9be88e9be8ae89e89e8ae89e8be8ae8be88e"
set ta2 to "98e9ae89e89e88e89e88e88e8ae88e88e8ae88e88e88e88"
set ta to (ta1 & ta2)
set tb1 to "32232433933b74b53f6df31731332331a33132933f33c33"
set tb2 to "951a7f531731f3298d232c32b31032d31631a312302302302"
set tb to (tb1 & tb2)
set theText to ""
repeat with i from 1 to (number of characters of ta)
set theText to theText & ("%" & (character i of ta) & (character i of tb))
end repeat
do shell script "echo " & quoted form of theText & str
691名称未設定:2006/09/29(金) 10:23:06 ID:Vi1gkVWY0
>>669
iTunes7.01で直ってるっぽい
692名称未設定:2006/09/29(金) 19:00:08 ID:+Qz1pBHW0
お、直ってる。
693名称未設定:2006/09/30(土) 01:44:30 ID:xBLsmp2j0
>>691
ほんとだ。バグだったのか。
694名称未設定:2006/10/10(火) 20:57:05 ID:c3fLRxxw0
保守

する価値あるのかなあ...
695名称未設定:2006/10/16(月) 14:16:55 ID:HBVPIG6u0
>>40 のスクリプトを外付HDDのフォルダにフォルダアクション
として設定してみました。実に便利なのですが,再起動または
ログインし直すと,フォルダアクションが動作しません。

フォルダアクションの設定自体は残ってるのですが,
それを消して新たに設定しないと再び動作しません。

これは仕様なんでしょうか?


スクリプトは/Library/Scripts/Folder Action Scripts に
置いています。10.4.8, Intel Mac miniです。
696名称未設定:2006/10/16(月) 20:52:15 ID:tKIMC70N0
>>695
対処法はわからんけど10.4.8(PPC)で症状確認した。
とりあえずこんなスクリプトをアプリケーション形式で保存して
ログイン項目に入れといたらどうかな。

on run
set theFolder to "関連:付けたい:フォルダの:パス:" as Unicode text
set folderActionScript to "スクリプト:の:パス.scpt" as Unicode text
tell application "System Events"
try
if ((attached scripts of theFolder) is {}) or ((attached scripts of theFolder) does not contain (folderActionScript as alias)) then
attach action to theFolder using folderActionScript
end if
on error errMsg
tell me to activate
display dialog errMsg
end try
end tell
end run
697652:2006/10/17(火) 00:28:23 ID:THIC8IIN0
以前、ここで教えていただいた>>652です。
>>657を若干カスタマイズし、最終的に得たいものを基準価額でなく取引値に変更して

set theCode to the clipboard
set indexSite to "http://quote.yahoo.co.jp/q?s=" & theCode
tell application "URL Access Scripting"
activate
set tmpFile to ((path to desktop folder) as text) & "temporary.html"
download indexSite to file tmpFile replacing yes with progress
quit
end tell
tell application "TextEdit"
open tmpFile
set theGaku to ""
repeat with cnt from 1 to count words of text of document 1
if word cnt of text of document 1 = "取引値" then
set theGaku to word (cnt +10) of text of document 1
exit repeat
end if
end tell

という感じで、クリップボードに適切な数字が入っている限りうまく使えていました。
ところがふと気がつくと、たとえばクリップボード内の数字が02311862の場合はうまくいくけれど
32312981の場合はうまくいかない、というようなことが生じてきました。
検証してみると、02311862に対応する「インデックスファンドTSP」を1wordではなく、
「インデックスファンド」と「TSP」の2wordsとカウントしており、
32312981に対応する「フィデリティ・グローバル・エクイティB」を「フィデリティ」「グローバル」「エクイティB」の
3wordsとカウントしていることからズレが生じているようなのです。
もともとはこんなことはなく、どちらも1wordとして扱っていて、うまく取引値が得られていました。
なんでこんなことになってしまったのかよく分からないのですが、改善方法はありますでしょうか?
698名称未設定:2006/10/17(火) 19:21:31 ID:f7GfAFacP
>>697
set theURL to "http://quote.yahoo.co.jp/q?s=32312981"
set theCurl to "curl -s " & quoted form of theURL
set theIconv to " iconv -c -f euc-jp -t utf-8 "
set thePerl to "perl -ne 'if( m{<td nowrap align=center>[0-9]+/[0-9]+</td><td nowrap><b>(.*?)</b>} ){ print qq{$1} } '"
set theText to do shell script theCurl & " | " & theIconv & " | " & thePerl
display dialog theText
--"10,608"でいいでしょうか?
699652=697:2006/10/17(火) 20:01:54 ID:THIC8IIN0
>>698
ありがとうございます。それは>>654と似たような感じですね。
>>657でうまく行ってしまったもので、do shell scriptってのを
ぜんぜん勉強してなくてまったくちんぷんかんぷんですが、うまく動いています。
助かりました。ありがとうございました。
700名称未設定:2006/10/18(水) 01:13:52 ID:VAyZ8KDb0
>>696
ありがとうございます。
まさに起動時にフォルダアクション設定をやりなおす
スクリプトが欲しかったところでした。

そのままでも問題ないですが,初期設定ファイルの行がひたすら
増えてしまうので,初期設定ファイルを毎回消すことに
しました。そして初期設定ファイルを消して再起動すると,
フォルダアクションがdisableになるので,次のように
付け足しました。

最初に
tell application "System Events" to set folder actions enabled to true

終わりに
do shell script "rm ~/Library/Preferences/com.apple.FolderActions.plist"
701名称未設定:2006/10/24(火) 21:12:09 ID:vSYfKBCT0
RubyOSA楽しみなやつ挙手
702名称未設定:2006/10/24(火) 21:23:15 ID:0IakKVkt0
もう年だから、新しい言語なんてやってられねえよ。
703名称未設定:2006/10/25(水) 08:59:28 ID:NVKzqaFb0
新しい言語をつまみ食いするのは楽しいけど、
そのぶんあちこちが不完全になって行く・・w
さいきんAS自体触ってないし、、意欲を出さねば。
Rubyは日本産なんだっけ?そのへんいいですよね。
704名称未設定:2006/10/25(水) 22:44:53 ID:WunqQZER0
>>701
appleがやってるのね。凄く期待してる。

svnからソース引っぱってきてビルドに挑戦。
rakeとかrubygemsとかlibxmlだとか足りないと言われるものを入れてみたが、
最後に何が足りないのか判断できないエラーが出てひとまず放り出した。他マ
シンとの互換性のためにあえてストックのRuby1.8.2のままにしてあるけど、
Ruby1.8.5とかに入れ換えといた方がいいのかな。

Windows版のRubyOSAと言えるWin32oleでは、アプリケーション内のオブジェク
トのクラス名はみんな「win32ole」みたいになっちゃってたから、そうならな
いことを期待。あとはデバッグ環境だねぇ。Xcodeでサポートしてくれるとうれ
しいな。RubyCocoa + RubyOSAがLeopardでシステム標準になったら、結構面白
いことになるかも。

どっかに野良パッケージがあったら教えてください。
705名称未設定:2006/10/25(水) 23:17:54 ID:s5pHkvdd0
そういや昔、JavaScriptからOSA弄れるようにするやつがサードパーティから出てなかったっけ
706名称未設定:2006/10/26(木) 02:48:31 ID:e8Aqzkv50
Late Night Software Ltd.の奴ですね。
707名称未設定:2006/10/27(金) 16:33:58 ID:ag79C0q/0
自動保存に出来ないアプリにCommand+Sを送りたいと思って、

repeat
tell application "System Events" to set appName to
(name of (path to frontmost application))
if appName is "hoge.app" then
tell application "System Events"
tell process "hoge"
keystroke "s" using {command down}
end tell
end tell
end if
delay 600
end repeat

としたんですが、アプリケーション形式で保存すると強制終了する以外
終了できません。どう書き加えたら良いんでしょうか?
宜しくお願いします。
708名称未設定:2006/10/27(金) 17:30:06 ID:bwfxv2js0
>>707
常駐させて600秒ごとになにかしたいなら
repeat ではなく idle ハンドラを使う。
ttp://www.tonbi.jp/AppleScript/intro/09/index.html
709名称未設定:2006/10/27(金) 17:51:44 ID:ag79C0q/0
>>708
おおっ。こんなサイトがあるなんて、、、
何を調べたら良いのかも分からず奮闘してましたが、良く読んで勉強します!
ありがとうございました。
710かおり:2006/10/28(土) 11:53:22 ID:s7xtSgMk0
AppleScriptからUNIXコマンドを呼ぶ事は可能なのでしょうか?
教えて下さい
711さぉり:2006/10/28(土) 12:39:22 ID:XS2kBIbA0
かのうですよ
712名称未設定:2006/10/28(土) 18:20:02 ID:MqmQJCev0
a秒間隔でbを入力しreturn(キーボードのenterキー)を押す。
↑の作業を繰り返し行うスクリプトはありますか?
作っていただければ幸いです。
713名称未設定:2006/10/28(土) 18:23:13 ID:pDqJGRi60
せめて「作り方を教えて下さい」に…
714さぉり:2006/10/28(土) 18:28:17 ID:s7xtSgMk0
>>711さん
どう呼ぶんですか?
教えて下さい具体的に
715名称未設定:2006/10/28(土) 18:36:47 ID:4ASGbA8/0
>>714
do shell script。
アンタはもう二度と来るな
716(・∀・):2006/10/28(土) 18:42:13 ID:62wArSgi0
>>712
報酬を聴こうか。

>>714
do shell script
http://developer.apple.com/jp/technotes/tn2065.html
717名称未設定:2006/10/28(土) 18:54:09 ID:gXFPB1cI0
>>715,716
猿に餌やるなよ。居着くだろ。
718名称未設定:2006/10/28(土) 19:40:12 ID:MABlRPaA0
スクリプトバンドルの中にUnixバイナリを入れて自動処理をさせたい場合、
中にあるバイナリをフルパス以外で参照するにはどうしたらいいでしょうか。
719名称未設定:2006/10/28(土) 19:50:37 ID:ZK87B/+B0
相対パスで指定する。
っていみじゃないのかな。
720名称未設定:2006/10/28(土) 20:11:31 ID:MqmQJCev0
作り方だけども教えてもらえませんか?
721名称未設定:2006/10/28(土) 20:28:56 ID:MABlRPaA0
解決しました。path to resourceハンドラですね。でも10.4以降か(´・ω・`)
722名称未設定:2006/10/28(土) 20:29:47 ID:4ASGbA8/0
OS9では ":" as alias で出来たと思うんだけど、今試したら出来なかったわ
723名称未設定:2006/10/28(土) 20:38:10 ID:8rSm1Ltg0
アプリなら、
((path to me as string)& "Contents:Resources:Scripts")as string
だよ。
OS Xでは、":"の相対パスはホームディレクトリか何かになったはず。
724名称未設定:2006/10/28(土) 20:38:34 ID:dtvAeOHhP
path to me
でアプリのパス
725さぉり:2006/10/28(土) 21:02:59 ID:s7xtSgMk0
>>1--724
日本語が読めませんどうすれば良いんですか?
726名称未設定:2006/10/28(土) 22:30:45 ID:BLnVzhGt0
0S9でAppleScriptに興味持ち始め、現在勉強中です。

フォルダ内にある全てのファイルやフォルダ名を取得したいのですが、list folder (choose folder)では、
ダイアログから選択したフォルダ内を調べることはできても、ダイアログを出さないで調べることはできず、
悩んでいます。ヒントいただけませんか。
727名称未設定:2006/10/28(土) 22:38:48 ID:gWvG/3xz0
set theFolder to alias "Macintosh HD"
set theList to name of every item of theFolder
これで Macintosh HD 内のファイル・フォルダ名を取得できる
728名称未設定:2006/10/28(土) 22:57:10 ID:BLnVzhGt0
>>727
早速ありがとう。できました。感謝!
この書き方がどういう働きをするのか、じっくりと研究してみます。
729名称未設定:2006/10/29(日) 01:06:10 ID:lvpCeZds0
>>727
HDの名称を変えている場合、1行目を
set theFolder to (path to startup disk as alias)
にしておくといい(汎用で使える)。
730名称未設定:2006/10/29(日) 09:08:50 ID:SKfHdWZh0
>>729
なるほど、そういう書き方もあるのか。とても参考になります。ありがとう。
731名称未設定:2006/10/29(日) 12:15:27 ID:clksMI4n0
>全てのファイルやフォルダ名
って書いて有るからentire contents 使うとか、再帰で全部洗い出したりするのかと思ったら
…1階層だけで良かったのねorz
732名称未設定:2006/10/29(日) 16:55:52 ID:ORnD5Nmm0
entire contents なんてあるんだ知らんかった。便利だね。
733名称未設定:2006/10/29(日) 17:42:46 ID:cG0KT7ch0
これができて
path to resource "gfx" in directory "ScriptEditorHelp" in bundle (path to application "Script Editor")

その下の"ax_scrpted.jpg"が取得できないのは納得いかん
path to resource "ax_scrpted.jpg" in directory "gfx" in bundle (path to application "Script Editor")

こう書けば取得できるけどなんか胡散臭いよね。。。
path to resource "ax_scrpted.jpg" in bundle path to resource "gfx" in directory "ScriptEditorHelp" in bundle (path to application "Script Editor")
734名称未設定:2006/10/29(日) 18:34:06 ID:04JWawQH0
applescriptでクラッキングするソース教えて下さい
735名称未設定:2006/10/29(日) 18:38:29 ID:ZQMgdMoJ0
tell application "Finder" to erase startup disk
736726:2006/10/29(日) 19:02:14 ID:dwtEDL/F0
土曜日から初めて、ずっとAppleScriptに没頭中。(OS9)
今、on openを使ったスクリプトを組んでいるんですけど、そのリスト扱いに苦戦中です。

例えば、ファイルを二つドロップさせるとon open 変数には、
Macintosh HD:Desktop Folder:AAA.JPGMacintosh HD:Desktop Folder:BBB.JPG
という感じで繋がって入りますが、これを分離させるためにリピート文で一文字ずつ
調べて処理していこうと考えてます。そのため、リピート文以外に何の命令が必要でしょうか?
737名称未設定:2006/10/29(日) 19:20:01 ID:ZQMgdMoJ0
ん?
openハンドラの引数はドロップされたファイルのリストだから、そんな面倒なことしなくても、

on open dropItems -- dropItemsはドロップされたファイルのリスト
%nbsp;%nbsp;%nbsp;%nbsp;repeat with x in dropItems -- dropItemsの中身を一つずつxに代入
%nbsp;%nbsp;%nbsp;%nbsp;%nbsp;%nbsp;-- x に関する処理
%nbsp;%nbsp;%nbsp;%nbsp;end repeat
end open

ってすればドロップされたファイル全てに処理できるよ
738名称未設定:2006/10/29(日) 19:21:23 ID:ZQMgdMoJ0
糞ミスった

on open dropItems -- dropItemsはドロップされたファイルのリスト
 repeat with x in dropItems -- dropItemsの中身を一つずつxに代入
  -- x に関する処理 をここでする
 end repeat
end open
739726:2006/10/29(日) 19:37:08 ID:dwtEDL/F0
>>738
確かに一つずつ代入されてますね。そうか、そうやって使うのか……。
ありがとう。これを自作のスクリプト用にアレンジしてみます。
740名称未設定:2006/10/29(日) 22:38:24 ID:gz69Q6Ab0
iTunesで選択した曲、もしくはプレイリストの曲名の頭にトラック番号をつけるといった事は
アップルスクリプトで出来ますでしょうか?

01-なんとか
02-かんとか

みたいな感じです。。
741名称未設定:2006/10/29(日) 23:57:31 ID:k48DpuL00
tell application "iTunes"
set these_tracks to the selection of browser window 1
if these_tracks is {} then error "No tracks are selected in the front window."
repeat with this_track in these_tracks
set this_name to the name of this_track
if (track number of this_track) > 0 then
set the new_name to (((track number of this_track) as string) & " - " & this_name) as string
set the name of this_track to the new_name
end if
end repeat
end tell

動作確認していないのでよろしく。
742726:2006/10/30(月) 00:37:32 ID:hGTbzhE70
8割まで作れたんですが、if文でつまずいてます。

例えば、1-100までの値の時には処理をし、それ以外は処理を無視する場合、
if (m<= 100) or (m >= 0) then でできると思ったんですが、上手くいきません。
ヒントいただけませんか。
743名称未設定:2006/10/30(月) 00:42:37 ID:YiE10e9Z0
if m > 0 and m <= 100 then
じゃないのか
744726:2006/10/30(月) 00:46:20 ID:hGTbzhE70
>>743
早速試してみます。ありがとう。
745名称未設定:2006/10/30(月) 00:50:26 ID:YiE10e9Z0
具体的にどんなものを作ってるのか少しばかり興味があるわけだが
完成したら見せてくれ
746726:2006/10/30(月) 01:13:51 ID:hGTbzhE70
>>745
グラコンの使い方の幅を広げるようなものです。
満足のいくものができたら、該当スレでdropletを公開したいですね。
747名称未設定:2006/10/30(月) 03:19:36 ID:k+82ucIl0
>>740,741
念のために fixed indexing を設定しといた方がいいんじゃないかな。
ttp://www.dougscripts.com/itunes/itinfo/info02.php

といっても必要なケースに遭遇した経験はないんだけど。
748名称未設定:2006/10/30(月) 16:17:24 ID:WjSjigFA0
display dialog "死ね!"
749名称未設定:2006/10/30(月) 19:03:17 ID:WjSjigFA0
tell application "標準装備スクリプトエディタ"
display dialog "死ね!"
end tell
750740:2006/10/30(月) 20:39:54 ID:zEHs9YnL0
>>741
おおおおおありがとうございますm(_ _)m
>>747
とくに問題無いみたいなんですがそこに行って何をしたら…ヽ(´Д`;≡;´Д`)丿
751名称未設定:2006/10/30(月) 22:21:24 ID:k+82ucIl0
>>750
ごめん勘違いしてた、>>747は忘れてくれ。
752740:2006/10/31(火) 00:18:19 ID:0bUg7Xh10
>>751

  ('A`('-`('д`('_` )< はい忘れます
  ノ ノノ ノノ ノ) ノ|
  「「 「「 「 「 「 「
753726:2006/10/31(火) 00:49:14 ID:MWjUkBsf0
dropletにフォルダをドロップした時,中のファイルに対してだけ処理をさせたいのですが,
フォルダも混在している場合は,MACSで振り分けるのが常套手段でしょうか?
754名称未設定:2006/10/31(火) 02:07:53 ID:QNL9B1/V0
every files
755名称未設定:2006/10/31(火) 02:36:30 ID:Xcuxci4j0
on open theItemList
set theFiles to every file of theItemList
repeat with theFile in theFiles
hoge
end repeat
end open

repeat 使わずに済む場合もあるけどな
756726:2006/10/31(火) 10:24:57 ID:xtyThpf/0
>>754
>>755
ありがとう.今夜早速試してみます.
757726:2006/11/02(木) 00:54:08 ID:HOLJQMMp0
753の処理の部分,取りだすことはできても,ファイル名とか繋がって出てきたり,
なぜかフォルダ名しか取り出せなかったりとかして,結局扱えなかった…….

でも,教えていただいてありがとう.この失敗は,次に生かします.
758726:2006/11/03(金) 14:49:10 ID:hv+cerXg0
フォルダを取得した際に,Macintosh HD:Desktop Folder:のように最後にコロンがつきますが,
コピーしたフォルダに対して処理をする場合,& "のコピー" で処理するとコロンが悪さをしてしまう.
このコロンを削除するための,ヒントいただけませんか.
759名称未設定:2006/11/03(金) 15:01:45 ID:3ARa8n7U0
>>758
コピーするとコピーした結果が返ってくるからそれを使う。
760726:2006/11/03(金) 15:36:59 ID:hv+cerXg0
>>759
ありがとう.簡単なサンプルで動作確認しました.
本来の組み込みたいスクリプト上では動作が上手くいかないけど,そこは頑張ってみる.
761726:2006/11/03(金) 16:13:29 ID:hv+cerXg0
コピーしたフォルダに対して処理できるようになりました.めっちゃ嬉しい.
762名称未設定:2006/11/03(金) 16:29:50 ID:/0rXUEUZ0
何か懐かしいな。
今は作ってみて動かなかったらテキトーに作り直してっていう作業で
何となく作ってるけど、
最初のうちは色々本買ったりけっこうきつかったよ。
それに比べたら726さんはスラスラできてる感じだねー。
763726:2006/11/03(金) 23:20:35 ID:hv+cerXg0
>>762
フォルダ内ファイルに対して処理させるためのルーチンができるまで,結局5時間以上かかりました.
スラスラどころか,トライ&エラーの繰り返しです.一つ問題解決できると,また次の問題が発生する
という泥沼状態.
764726:2006/11/04(土) 01:09:17 ID:/eQDpOKc0
if文で条件にマッチしなかった場合,以降のスクリプト文を無視して終了させたいんですが,
どうやってもそれ以降の処理が続いてしまい悩んでます.ヒントいただけませんか.
765名称未設定:2006/11/04(土) 02:00:19 ID:wTH9uLgw0
if 条件 then
なんぞの処理
else
return
end if

これでどうよ
766726:2006/11/04(土) 02:06:32 ID:/eQDpOKc0
>>765
とりあえずは,if文以降の順番を変えることで自己解決しました.
returnを使った処理は検証してみます.ありがとう.
767名称未設定:2006/11/04(土) 06:13:30 ID:JAnxRza90
もしOSがClassicなら
HyperCardのDropletMakerと同じ動作をする(らしい)
"どろっぷ銘菓"がttp://meika02.hp.infoseek.co.jp/ にあるよ。
これドロップレット作りたての頃にこそ欲しかった。
768726:2006/11/04(土) 10:38:49 ID:/eQDpOKc0
>>767
おー,サンプルが簡単に書き出せて,かなり参考になりますね.ありがとう.
今,ちょうど拡張子の処理について考えていたところだったので,助かります.
769726:2006/11/04(土) 11:07:23 ID:/eQDpOKc0
764の件ですが,やっぱりreturnが無いと希望の処理にはなりませんでした.勘違いです.
770726:2006/11/04(土) 11:22:30 ID:/eQDpOKc0
もう一つ,ヒントいただけますか.拡張子のようなわかりきったものなら,
それを指定すればいいと思えるんですが,そうではなくて例えば,

"あいうえお" なら, "えお"
"かきくけこ" なら, "けこ"

という感じで,変数の内容が常に変化している状態から後から何文字目までを取り出す
ような処理は,どうやったらいいのでしょう.

自分がトライしたやり方は,リピートで抜き出してチェック,それを変数に加えるという
ものだったんですが,変数の中味を足すことができず挫折しました.
771名称未設定:2006/11/04(土) 11:44:34 ID:eWpMZzI40
ruby なら 文字列[-2..-1] でできるな(ボソッ)
772名称未設定:2006/11/04(土) 11:45:10 ID:t5BRIhBd0
>>770
text -1 thru -2 of "あいうえお"
-->"えお"
773726:2006/11/04(土) 11:58:56 ID:/eQDpOKc0
>>771
>>772
ヒントありがとう.徹夜してあれこれと悩んでいたのが,あっというまの解決…….
ドロップレット完成までまだ時間がかかるけど,頑張ってみる.
774名称未設定:2006/11/04(土) 13:34:31 ID:3wyCCMYF0
Mail.appのスクリプトで新規メッセージ(返信メッセージ)の優先順位を
設定したいのですが、outgoing messageに該当するプロパティが
見当たりませんでした。

Mail.appで優先順位を設定するのは無理なのでしょうか?
775名称未設定:2006/11/04(土) 13:54:20 ID:3wyCCMYF0
あ、最後の行は「AppleScriptでMail.appの優先順位」ですね。
Mail.app自体では優先順位を設定できてます。

776726:2006/11/05(日) 13:06:21 ID:OMvTXyJY0
面倒でもファイル名の字数を調べるためには,名前をゲットしてリピートを使うのが普通ですか?
777名称未設定:2006/11/05(日) 13:14:11 ID:MbaYwVFG0
>>776の環境で動くかわからないが、文字を数えるならこんな感じでできる。

set text1 to "あいうえお"
count text1
あるいは
number of text1
778726:2006/11/05(日) 13:26:26 ID:OMvTXyJY0
>>777
こんなに簡単にできるなんて.ありがとう!
OS9でどちらも問題なく動作しました.これによってスクリプトがスッキリです.
779726:2006/11/05(日) 18:35:56 ID:R51L8TQA0
今日までにAppleScriptを憶えながら作ったルーチンが,7つ.β版完成まであと残り二つ.
今のままでも十分に動作するのですが,最後の二つはどうしてもこのドロップレットには
かかせない処理のため,あともう少しだけ作り込みます.

また,わからない時があったら,よろしくお願いします.
780名称未設定:2006/11/05(日) 23:44:58 ID:MbaYwVFG0
AppleScript Parkとか見てる?
今あんまり本出てないけど、まとめてあるものを読んだら
色々簡潔にできるかもよ
781726:2006/11/06(月) 00:20:00 ID:5AgtU9lo0
どちらかというと自分の場合は,他の方が作られたサンプルを分解して作り直し,
理解していくという非常に効率の悪い方法が肌にあってるようで,サイトでは
OkamotoさんやJinJinさんのところを,よく参考にさせてもらってます.

大串さんのところは,ほ〜むメイドAppleScriptが基本を理解するのに,
非常に役立ちました.あれはかなりイイです.かなり.
782名称未設定:2006/11/06(月) 00:40:39 ID:vcz+p7u60
いや、サンプルはいい勉強になると思うよ。
ソース出してくれてる人はいい人。

だいたい把握してると思うけど、このへんとかチェックしてみて。
ttp://www.tonbi.jp/AppleScript/dic/Basic/contents.html
783名称未設定:2006/11/06(月) 00:44:19 ID:qIer4Q2p0
>>778
777で全く問題はないんだけど一つだけ注意。
このスクリプトでは全角も半角も1文字として数えるので、
ファイル名の長さの最大を制限したい場合には気をつけて。
784名称未設定:2006/11/06(月) 01:03:47 ID:vcz+p7u60
OS9でそれを考えると、
TextInfo OSAXかTanaka's OSAXを使う事になるのかな。
ttp://www.tonbi.jp/AppleScript/tips/String/GetBytes.html
ttp://www.bekkoame.ne.jp/~iimori/indexSoftware.html
785726:2006/11/06(月) 01:29:18 ID:5AgtU9lo0
皆さん,ありがとう.
紹介していただいたサイト内容を全て理解するのは無理だけど,なんとか頑張ってみます.
OSAXは,dropletを配付した場合に使う側もインストールしてしていないと使えないですよね?
だから,できればなるべくそれに頼らない作りにしたいと考えてます.

浅はかかもですが,ファイル名の長さの全角も半角も一文字として扱うことに関しては,
ifとASCII numberでやっつけようかと思ってました.
786名称未設定:2006/11/06(月) 01:40:03 ID:qIer4Q2p0
set theText to "あいうえおABC"
set theSize to my bytecount(theText)

to bytecount(theText)
set the clipboard to theText
set theInfo to clipboard info for string
return item 2 of item 1 of theInfo
end bytecount

簡単なルーチンを書いてみた。
Mac OS X上で作ったんだけど、Mac OS 9でも動くはず^^

クリップボードに格納してその情報を見るとバイトカウントされる
という有名な技を使っています。

787名称未設定:2006/11/06(月) 01:41:29 ID:qIer4Q2p0
あ、
ttp://www.tonbi.jp/AppleScript/tips/String/GetBytes.html
が、まさにそれやってたですね。屋上屋だった。
788726:2006/11/06(月) 02:02:51 ID:5AgtU9lo0
貴重なありがたいアドバイスばかりで,嬉しい限りです.
空き時間ができたら,またトライしてみます.ありがとう.
789名称未設定:2006/11/07(火) 08:34:55 ID:jwK81zAS0
>>774
System Events頼り

英語OSで、メニューの [Message > Mark > As High] をクリックさせる:
property title_of_menu_message : "Message"
property title_of_menu_mark : "Mark"

set prio to "High" -- or "Low"

tell application "System Events"
tell application process "Mail"
tell menu 1 of menu item title_of_menu_message of menu 1 of menu bar item title_of_menu_mark of menu bar 1
set {asLow, asNormal, asHigh} to menu items 5 thru 7 of it
end tell
if prio = "Low" then
click asLow
else if prio = "High" then
click asHigh
else
click asNormal
end if
end tell
end tell
790774:2006/11/07(火) 12:23:07 ID:r/KagN0D0
どうもありがとうございました。

書き込み後、System Eventsじゃなきゃ無理だなと言うところまで
わかったのですが、書き方がわからず困っていました。

日本語OS向けに書き換えました。これでいけるみたいです。

・propertyを日本語のメニューに合わせました。
 Message → メッセージ
 Mark → 印を付ける
・本文中のtitle_of_menu_markとtitle_of_menu_messageを逆にしました。

property title_of_menu_message : "メッセージ"
property title_of_menu_mark : "印を付ける"

set prio to "High" -- or "Low"

tell application "System Events"
tell application process "Mail"
tell menu 1 of menu item title_of_menu_mark of menu 1 of menu bar item title_of_menu_message of menu bar 1
set {asLow, asNormal, asHigh} to menu items 5 thru 7 of it
end tell
if prio = "Low" then
click asLow
else if prio = "High" then
click asHigh
else
click asNormal
end if
end tell
end tell
791名称未設定:2006/11/07(火) 20:28:04 ID:iFzTKHY60
全くの初心者です。ごめんなさい。次のスクリプトを高速化するには、どうしたら良いでしょうか?教えて下さい、お願いします。

display dialog "A入力" default answer ""
set A3 to text returned of result as number
display dialog "B入力" default answer ""
set B3 to text returned of result as number
display dialog "C入力" default answer ""
set C3 to text returned of result as number
display dialog "D入力" default answer ""
set D3 to text returned of result as number
set A1 to 1
set B1 to 1
set C1 to 1
set D1 to 1
repeat
set Z1 to A1 + B1 + C1 + D1
set A to A1 / Z1
set B to B1 / Z1
set C to C1 / Z1
set D to D1 / Z1
set A_3 to A * (1 + (B * (1 + (C / (1 - B - C)) + (D / (1 - B - D))) / (1 - B)) + (C * (1 + (B / (1 - C - B)) + (D / (1 - C - D))) / (1 - C)) + (D * (1 + (B / (1 - D - B)) + (C / (1 - D - C))) / (1 - D)))
set B_3 to B * (1 + (A * (1 + (C / (1 - A - C)) + (D / (1 - A - D))) / (1 - A)) + (C * (1 + (A / (1 - C - A)) + (D / (1 - C - D))) / (1 - C)) + (D * (1 + (A / (1 - D - A)) + (C / (1 - D - C))) / (1 - D)))
set C_3 to C * (1 + (A * (1 + (B / (1 - A - B)) + (D / (1 - A - D))) / (1 - A)) + (B * (1 + (A / (1 - B - A)) + (D / (1 - B - D))) / (1 - B)) + (D * (1 + (A / (1 - D - A)) + (B / (1 - D - B))) / (1 - D)))
set D_3 to D * (1 + (A * (1 + (B / (1 - A - B)) + (C / (1 - A - C))) / (1 - A)) + (B * (1 + (A / (1 - B - A)) + (C / (1 - B - C))) / (1 - B)) + (C * (1 + (A / (1 - C - A)) + (B / (1 - C - B))) / (1 - C)))
if A_3 < (A3 + -1.0E-6) thenset A1 to A1 + 1
else if B_3 < (B3 + -1.0E-6) thenset B1 to B1 + 1
else if C_3 < (C3 + -1.0E-6) thenset C1 to C1 + 1
else if D_3 < (D3 + -1.0E-6) thenset D1 to D1 + 1
else
exit repeat
end if
end repeat
792名称未設定:2006/11/07(火) 20:44:44 ID:rA6rNiuJ0
せいぜい
set A_3 to A * (1 + (B * (1 + (C / (1 - B - C)) + (D / (1 - B - D))) / (1 - B)) + (C * (1 + (B / (1 - C - B)) + (D / (1 - C - D))) / (1 - C)) + (D * (1 + (B / (1 - D - B)) + (C / (1 - D - C))) / (1 - D)))
set B_3 to B * (1 + (A * (1 + (C / (1 - A - C)) + (D / (1 - A - D))) / (1 - A)) + (C * (1 + (A / (1 - C - A)) + (D / (1 - C - D))) / (1 - C)) + (D * (1 + (A / (1 - D - A)) + (C / (1 - D - C))) / (1 - D)))
set C_3 to C * (1 + (A * (1 + (B / (1 - A - B)) + (D / (1 - A - D))) / (1 - A)) + (B * (1 + (A / (1 - B - A)) + (D / (1 - B - D))) / (1 - B)) + (D * (1 + (A / (1 - D - A)) + (B / (1 - D - B))) / (1 - D)))
set D_3 to D * (1 + (A * (1 + (B / (1 - A - B)) + (C / (1 - A - C))) / (1 - A)) + (B * (1 + (A / (1 - B - A)) + (C / (1 - B - C))) / (1 - B)) + (C * (1 + (A / (1 - C - A)) + (B / (1 - C - B))) / (1 - C)))
の部分で重複してる計算を予め一つの変数に纏めるくらいじゃないか。
793791:2006/11/07(火) 23:45:24 ID:iFzTKHY60
>>792
ありがとうございます。
とりあえず、

set Z1 to A1 + B1 + C1 + D1
set A to A1 / Z1
set B to B1 / Z1
set C to C1 / Z1
set D to D1 / Z1
set A_0 to 1 - A
set B_0 to 1 - B
set C_0 to 1 - C
set D_0 to 1 - D
set A0 to A / A_0
set B0 to B / B_0
set C0 to C / C_0
set D0 to D / D_0
set Z0 to A0 + B0 + C0 + D0
set A_3 to A * (1 + Z0 - A0 + (B0 * ((C / (B_0 - C)) + (D / (B_0 - D)))) + (C0 * ((B / (C_0 - B)) + (D / (C_0 - D)))) + (D0 * ((B / (D_0 - B)) + (C / (D_0 - C)))))
set B_3 to B * (1 + Z0 - B0 + (A0 * ((C / (A_0 - C)) + (D / (A_0 - D)))) + (C0 * ((A / (C_0 - A)) + (D / (C_0 - D)))) + (D0 * ((A / (D_0 - A)) + (C / (D_0 - C)))))
set C_3 to C * (1 + Z0 - C0 + (A0 * ((B / (A_0 - B)) + (D / (A_0 - D)))) + (B0 * ((A / (B_0 - A)) + (D / (B_0 - D)))) + (D0 * ((A / (D_0 - A)) + (B / (D_0 - B)))))
set D_3 to D * (1 + Z0 - D0 + (A0 * ((B / (A_0 - B)) + (C / (A_0 - C)))) + (B0 * ((A / (B_0 - A)) + (C / (B_0 - C)))) + (C0 * ((A / (C_0 - A)) + (B / (C_0 - B)))))

と纏めてみました。20%ぐらい早くなりました!
もう少し纏めてみます。
794726:2006/11/08(水) 01:28:01 ID:JWuBvpK00
気分転換に書き込み.やっぱり,ことはそう簡単には上手くいかないみたい.
残りのルーチン処理が難しく,それ以外でもほころびがみえてきて足踏み状態.
795名称未設定:2006/11/09(木) 00:39:07 ID:Hw8anHxt0
1行目を、
copy A1 + B1 + C1 + D1 to Z1
にしたらどうなる?
796名称未設定:2006/11/09(木) 13:59:09 ID:ZJQTeRJq0
スクリプトメニューから実行できるスクリプトとして、
System Eventsを使ってコマンド+Cを押して
選択中のテキストをコピーするというものを作ろうとしてみたのですが、
できません。
スクリプトメニューから呼び出されたスクリプトの実行中は
それ用のアプリケーションプロセスが動いているせいでしょうか。
10.4.8です。
797名称未設定:2006/11/09(木) 16:19:49 ID:lZlW+y0u0
>>796
path to frontmost application を使う。
http://homepage.mac.com/kaoru_ari/iblog/C53887262/E235447630/index.html

tell application "System Events" to set frontApp to name of (path to frontmost application)
tell application frontApp to activate
delay 1
set the clipboard to ""
set x to 0
repeat until ((the clipboard) is not "") or (x = 10)
tell application "System Events" to keystroke "c" using command down
set x to (x + 1)
delay 1
end repeat
798名称未設定:2006/11/09(木) 16:28:55 ID:lZlW+y0u0
あ、特定のアプリでしか実行しないならコピーする前の行あたりに

tell application "アプリ名" to activate

を挟むだけでいいと思う。
799名称未設定:2006/11/09(木) 16:29:48 ID:ZJQTeRJq0
>>797
簡潔にして的確な回答ありがとうございます。
自分の失敗例もリンク先の人のように
application process whose frontmost is true
を使っていました。
これではだめなのかと思ってこれで返ってきたプロセスの名前を
ダイアログで出そうとしても反応もなくエラーもないので
どうしたものかと思っていました。
800名称未設定:2006/11/09(木) 22:08:44 ID:Hw8anHxt0
お察しのとおり、別プロセスです。
801名称未設定:2006/11/10(金) 02:58:55 ID:YYVTyIdo0
>>799
every が抜けてる。
こう書けば System Events って表示されたはず。

name of every application process whose frontmost is true

もちょっと正しく書くならこうかな。

name of item 1 of (every application process whose frontmost is true)
802名称未設定:2006/11/10(金) 13:32:58 ID:Ej4wt6va0
>>801
すいません。簡潔にしようと思って手を抜きすぎました。
失敗したスクリプトの中で実際はこのようになっておりました。
set frotmostApp to item 1 of (every application process whose frontmost is true)
display dialog (name of frontmostApp)
ダイアログ、出てきてくれないのです。
今スクリプトエディタ上で実行して確かめた所、
上記した部分の2行目で、name of application process "〜"を
タイプstringに変換できないエラーとなっていました。
(name of frontmostApp as string)とする事で解決しました。

久しぶりのスクリプト作成であった事と、
Script Menuを利用するスクリプトに不慣れである事もあって、
確認を怠り、皆様の手をわずらわせてしまいました。(-_-;)
それにしても、エラーメッセージくらい出してほしいなあ。

話変わりますが、
path to frontmost applicationは、イベントログで
path to <<constant afdregfp>>となっており興味を持ちましたが、
つまり、この場合の「frontmost application」は、
「path to」の動作のオプションを指定するための定数のようなものなのですね?
path to meは知っていましたが、これは知らなかったので、
たいへん勉強になりました。
803726:2006/11/18(土) 15:20:28 ID:wJlnIqH10
ドロップレットで,フォルダとファイルをドロップした場合に処理を分けたいのですが,
どうにも上手くいかず悩んでます.ヒントいただけませんか.
804名称未設定:2006/11/18(土) 16:50:04 ID:tFPh7L6O0
-- こうかな?containerをfolderに変えると本当にフォルダだけtrueになる(ディスクとかはfalse)

on open |連中|
repeat with |ヤツ| in |連中|
if my |フォルダ?|(|ヤツ|) then
display dialog "フォルダ:" & |ヤツ| as string
else
display dialog "ファイル:" & |ヤツ| as string
end if
end repeat
end open

on |フォルダ?|(|項目|)
tell application "Finder"
try
container |項目|
return true
end try
end tell
return false
end |フォルダ?|


-- またはこうでもいいかも

on |フォルダ?|(|項目|)
return (|項目| as string) ends with ":"
end |フォルダ?|
805名称未設定:2006/11/18(土) 17:32:25 ID:GZlJIqTv0
on open theItemList
tell application "Finder"
repeat with theItem in theItemList
if kind of theItem = "フォルダ" then
--フォルダの処理
else
--ファイルの処理
end if
end repeat
end tell
end open

これでどうよ
日本語でしか動かないという欠点があるがな
806726:2006/11/18(土) 18:07:04 ID:wJlnIqH10
>>804
>>805
煮詰まっていたので,本当に助かります.ありがとう.
今,いろいろ動作検証していますので,詳しくはのちほど書きます.
807名称未設定:2006/11/18(土) 19:14:37 ID:+VbuuSmv0
repeat with i in theItemList
if folder of (info for i) then
--
else
--
end if
end repeat

言語に依存させるな
Finderに依存させるな
環境に依存させるな
808名称未設定:2006/11/18(土) 19:19:00 ID:iO0W4mM40
folder of (info for |ヤツ|)

ってOS 9では無理?
809名称未設定:2006/11/18(土) 19:26:02 ID:+VbuuSmv0
もちろん可能さ
810726:2006/11/18(土) 19:46:13 ID:wJlnIqH10
>>804
二つ目が短くてよさげだったんですが,残念ながらドロップレットとして
動作しませんでした.もう一つの方は,大丈夫です.3つの中では処理が
一番速かったです.

>>805
"kind"がどういう処理をしているのか,興味津々.
日本語でしか動作しないということでしたが,フォルダー名が日本語でも,
特に問題なく動作しました.うちの環境がおかしいのかな?

805さんのスクリプトを元に自作スクリプトを改良してみたら,動作するようになりました.

on open theItemList
tell application "Finder"
repeat with theItem in theItemList
get creator type of theItemList as list
if result = "MACS" then
display dialog theItem
else
display dialog theItem
end if
end repeat
end tell
end open

811726:2006/11/18(土) 19:56:40 ID:wJlnIqH10
807さんのスクリプトは,805さんの改良なのかな?
うちの環境だとデータを取得できないみたいです…….
812726:2006/11/18(土) 20:08:26 ID:wJlnIqH10
804の二つ目はルーチン処理ということですね.失礼しました.
813名称未設定:2006/11/18(土) 20:09:34 ID:GZlJIqTv0
info for の folder は環境によって取得できたり取得できなかったりした覚えがあるな
初期の OS X じゃ取得できなかったから
代わりに if kind of ... = "フォルダ" then みたいな回避手段を取っていた
814名称未設定:2006/11/18(土) 22:43:49 ID:xfkPEMZT0
>>810
>日本語でしか動作しない
 英語環境では"folder"になっちゃうから、"フォルダ"とはマッチしなくなる。
 って意味だと思います。

 ファイルか否かのチェックは、わたしも as string(as text)を使います。
 
if ( anItem as text) end with ":" then
 --フォルダ or ボリューム
else
 --ファイル
end

こんな感じ。
815726:2006/11/19(日) 00:47:39 ID:cWNO8dvq0
>>814
いろいろやり方があるんですね.参考になります.ありがとう.
あと,英語名"folder"の件ですが,なぜかマッチしています.不思議だ.

>>813
理由はわからないけど,なぜかevery fileを使った場合に,
うちの環境でも同じようなことが起きてました.
816726:2006/11/19(日) 10:53:50 ID:WQRYIKQp0
いろいろサンプルを作って試してみたところ,以下のような結果になりました.
display dialog 上では正常に表示していたため,問題無いと思っていのですが,
実はそうではないということに気がつきました.(自分の環境上での話)

804-1
ファイルやフォルダをドロップしても,全てフォルダで返してくる.

804-2
フォルダかファイルごとなら,正常に値を返すのに,
ファイルとフォルダをまとめてドロップすると,まれに嘘の値を返してくる.

805
フォルダー名が日本語英語問わず,正常な値を返してくる.少し処理が遅いようです.

810
ファイルやフォルダをドロップしても,全てファイルで返してくる.
(すいません.嘘書いてました)

814
フォルダかファイルごとなら,正常に値を返すのに,
ファイルとフォルダをまとめてドロップすると,まれに嘘の値を返してくる.


皆さんに教えていただいたのに,ケチをつけるということではなくて,
「こんな結果になりました」ということですのでご理解下さい.
817726:2006/11/19(日) 11:04:02 ID:WQRYIKQp0
結果として現状では,805さんに示していただいたものが,
当方の環境(OS9)では使えるスクリプトということになりました.
818726:2006/11/19(日) 17:44:07 ID:WQRYIKQp0
ドロップされたフォルダに対してだけの処理を作り,ファイルの場合は後から
付け足したルーチンで済ませばいいかと思っていましたが,結局複雑になりすぎて,
やめました.

もっと簡単な記述で,かつ,フォルダの下層フォルダ内ファイルに対しても,
処理ができるようなルーチンを一から考え直してみます.

難しいもんですね…….
819名称未設定:2006/11/19(日) 18:01:42 ID:GsRwuGE80
OS9ならTanaka's osaxが使うとかなり楽ですよ。
820726:2006/11/19(日) 18:56:42 ID:WQRYIKQp0
>>819
情報,ありがとう.
でも,>>785と同じ理由でなんとかで頑張ってみます.
できれば,OSXでも使えるようにしたいですし.
821名称未設定:2006/11/19(日) 20:37:56 ID:PRQ4JLbL0
まあ、そのあたりが各スクリプターのノウハウの結晶だから。
822726:2006/11/19(日) 21:06:05 ID:WQRYIKQp0
そのあたりの見本もあるんですが,現状のスキルではそのスクリプトを理解するのは難しく,
仮にそのルーチンを導入しても,自分でメンテや改良を加えることが難しいんですよね.

他の方が作ったのをそのまま利用しても,自分で使った感ないために愛情がもてないというか,
なんというか,そんな感じがするわけです.
823726:2006/11/20(月) 00:29:33 ID:a3cVU8aS0
と書いてみたものの,今のレベルではやっぱり作れないと判断しました.
「そのあたり」の見本を利用させていただいて,なんとかカタチにする方が,
実現の可能性が高そうなので,それでやってみます.
824名称未設定:2006/11/20(月) 00:46:28 ID:2hFL38BQ0
>>822
おれも似たような性格だから言いたいことはわかるなあ。スクリプト野郎の独り言だな。
AppleScriptに限っては「車輪を再発明するな」を自分に律する必要はないかもしれない。

でも君がいってるのが本当に、他人のアルゴリズムは使いたくない、ということなら、
やっぱりそれは間違ったオピニオンだなあ。とりあえず参考にするコードに自分でコメント
を書き込んでいって、自分のコーディングスタイルにあうようにコードを書き換える、って
とこまでやれば、その「他人の書いたコード」も「既存のルーチン」としてありがたく頂ける
ようになるんじゃないかな。

例えばおれは、どっかからコピペしたコードでも
tell application "Finder" to get window 1's item 2's position
みたいな書き方があったら絶対 ...of... とか tell... で書き直す。スクリプト野郎のこだわり
なんて、本質的にこのレベルなんだ。
825726:2006/11/20(月) 01:17:23 ID:a3cVU8aS0
>>824
よく使いそうなアルゴリズムは,先人が研究していいルーチンが既に出来上がっているんですよね.
マネではなく,それを上手に利用改良することもありなんだと,ドロップルーチンの件から,学びました.
826名称未設定:2006/11/20(月) 01:58:37 ID:aCr0B3ho0
作りたい物が出来る事を優先するか、
考える遊びを優先するか。
827名称未設定:2006/11/20(月) 03:20:55 ID:q+/QF0BQ0
どこのサイトか忘れたが、「勝手に使うな!」って奴もいたな。

しかもそれがブラウザを切り替えるスクリプトとかだったりてのが何とも。
828名称未設定:2006/11/20(月) 03:34:04 ID:6SRtVQJs0
助けて〜の作者はお亡くなりになりました。
829名称未設定:2006/11/20(月) 14:16:46 ID:aCr0B3ho0
AppleScriptはソース非公開にできるから、
オープンソースじゃない人も少なくないよ。
下手くそなの見られると恥ずかしいし…。
まるっと似たような機能のものをソース流用で作られたら
やっぱりいやじゃん?
830名称未設定:2006/11/20(月) 20:56:32 ID:auLy3xjy0
my ハンドラ

ハンドラ of me
を同じスクリプト上に書いても平気な俺が来ましたよ。
831名称未設定:2006/11/20(月) 21:12:29 ID:SlvcwzGR0
AppleScript理解出来るオマイ等が正直凄い。
俺も幾度となく挑戦したが、いっこうに歯が立たん。
俺には適正が無いんだと今はもう、諦めた。
チラ裏スマソ。
832名称未設定:2006/11/20(月) 21:34:16 ID:aCr0B3ho0
>>831
入り口がけっこう大変なのだと思う。
つやのさんの本でサンプルをとにかく書いてある通りに打ち込んでいたら
どうにかなるかもしれない。
833名称未設定:2006/11/20(月) 22:46:30 ID:o3+xVdES0
おまいら、ハンドラの前はonとtoどっち派?
834名称未設定:2006/11/20(月) 23:01:20 ID:wDwHF52E0
>>828
うん?
どこのこと?
あの一番利用規約が厳しかったサイトのこと?

>>831
今でも他人のスクリプトは読んでもわけわからん。
結果、ルーチンのまるまるコピーか、ルーチンのまるまる自作になってしまう。

>>833
on派。toなんて今世紀に入ってから見たことないぞ。
835名称未設定:2006/11/20(月) 23:43:21 ID:aCr0B3ho0
助けてネスコって、あったような気がする
と思ってぐぐったら、あった。
836名称未設定:2006/11/20(月) 23:46:46 ID:aCr0B3ho0
>>834さんが言ってるのって、SHUICHI.Tさんのとこじゃない?
すごく昔からあるよね。
今見てみたら、2004年で更新停まってた。
837名称未設定:2006/11/20(月) 23:51:07 ID:wDwHF52E0
今見てきたけど、すごくたくさんのソフトを作ってMacintoshコミュニティに貢献されていたようです。
惜しい人をなくしたなと思います。
838名称未設定:2006/11/20(月) 23:57:30 ID:aCr0B3ho0
どちらかというと、ニュースソフトの管理人さんとして
知られていた方のように思いますが。

ひょっとして、トップページに書いてあるソフト全部
管理人さんが作ったと思ったとか?
839名称未設定:2006/11/20(月) 23:58:16 ID:aCr0B3ho0
×:ニュースソフト
○:ニュースサイト

寝ぼけてるorz

ご冥福をお祈りします。
840名称未設定:2006/11/21(火) 00:30:03 ID:cVLBPzj/0
ああ、そうでしたか。
いずれにしても残念です。
841名称未設定:2006/11/22(水) 02:09:10 ID:3FRF85zA0
>>833
on runとかon openとかいわゆるイベントのときはon
自分でファンクションorサブルーチンつくるときはto。
単に、自分で区別するためだけにわけてます。
842名称未設定:2006/11/22(水) 02:15:47 ID:rX6u3C420
ずっとtoが使えるのを知らなかったので、onだけ。
最近は自分でサブルーチン作る事もほとんど無い。
843726:2006/11/24(金) 03:39:07 ID:F6cJyWNj0
スレ住人の皆さん,おかげさまで念願だったドロップレットのβ版公開ができました.
アドバイスをたくさんいただきまして,ありがとうございました.

スレ違いなのでここには書きませんが,作ったドロップレットに興味のある方は,
GraphicConverterのスレへどうぞ.
844名称未設定:2006/11/24(金) 03:56:28 ID:HBLrGZ990
ソース公開してくれないと良いとも悪いとも言えない
このスレ的には
845名称未設定:2006/11/24(金) 22:06:43 ID:4OUjEkOR0
別によいとか悪いとか聞きたくて書いてるわけじゃないんじゃないの
ただの報告ってだけで
846726:2006/11/25(土) 01:25:07 ID:SrNOY0yu0
>>844 >>845
このスレの皆さんに感謝を言いたかったのと,>>745さんに完成したら
見せて欲しいと言われていましたので,そのお知らせを兼ねてのレスでした.
847名称未設定:2006/11/29(水) 03:09:12 ID:JJ1/BTf20
OS9です。
Netscapeで開いたウインドウを閉じたいんだが、できないっす。
iCabだとできるんだが、iCabのCloseWindow相当の命令を知っていたら教えて欲しいっす。

tell application "iCab"
OpenURL "url" toWindow 0
CloseWindow
end tell
848名称未設定:2006/11/29(水) 19:22:58 ID:kIzW5wtu0
>>847
close window "(ウィンドゥタイトル)"
849名称未設定:2006/11/30(木) 07:25:49 ID:3bpxZATU0
最前面にあるウインドウなら

close window 1
850847:2006/11/30(木) 13:41:47 ID:mjflbAKe0
早速のお返事ありがとうございます。

>> 848
「window "xxx" を取り出すことができません。」ってエラーが出ちゃいます。

>> 849
何故か何も仕事をせず、プログラムが終了します…。

「Applescript Netscape "close window"」でググるとたくさん例題が出てきたので、それを見ながら頑張るっす。
851名称未設定:2006/11/30(木) 14:53:08 ID:DSA6lM5o0
ブラウザのバージョンくらい書いて行けよん。
自分の環境で動けばいいだけなら、
GUIコントロールが可能になるようなスクリプト機能拡張入れるのも手だよ。
852名称未設定:2006/12/01(金) 05:38:56 ID:TLVz/NiL0
ttp://fb.skr.jp/applescript/archives/cat-sample.html
に847相当のNetscape版があるのを発見。
853726:2006/12/02(土) 00:44:00 ID:HUDH3NER0
>>847
うちもOS9なので試してみました.
NN4だとwindow 1 で,何の問題もなくウインドウを閉じることができるのですが,
Netscape7だとウインドウを閉じることができないみたいですね.命令の書き方の
何が違うのか,さっぱり不明という感じです.
854名称未設定:2006/12/02(土) 01:03:47 ID:mVdLHxH90
単純に、
Netscape4.7 はスクリプタル (AppleScript対応) 。
Netscape7.x はノンスクリプタブル (AppleScript非対応) 。
(つまりN7にはウインドウを閉じるスクリプトがない)
OSXだとGUIスクリプティングで強引になんとかできるけど、
OS9だとアプリ自体がAppleScript非対応だとどうしようもない。

ちなみにOS9でもこういう製品を使えば非対応のアプリでもスクリプト制御が可能になる。
PreFab Player
http://www.fsight.co.jp/products/player/index.html
855名称未設定:2006/12/02(土) 01:30:36 ID:ICxLfANK0
4.7だと確か・・・
list windowsで開いてるウィンドウを調べて
get window infoで名前を見て
close window 名前 で閉じられたはず

うちではS穫di's Additionsを使ってコマンド+wを押してます。
Netscape以外でももちろん使えます。
856726:2006/12/02(土) 03:31:46 ID:HUDH3NER0
素人考えで,AppleScriptでできないならJavaScriptでクローズしちゃえってことで,
Desktopにブラウザウインドウを閉じるHTMLファイルを置いておき,それを読み込ませる
ようにしてみたんだけど,やっぱりクローズ後になぜか新規ウインドウが立ち上がってしまった.

tell application "Netscape"
OpenURL "http://www.google.co.jp/"
OpenURL "file:///Macintosh%20HD/Desktop%20Folder/windowclose.html"
end tell

というわけで,駄目でした.
857名称未設定:2006/12/02(土) 03:57:39 ID:OkSMGsOB0
>>854
あ、7.xってそうだったったんですか。
しらなかった。

そういえばFirefox.appもすかたんなんだった。
858名称未設定:2006/12/02(土) 22:45:19 ID:Jf7VVnh20
OS9起動するの面倒くさいんで実際試さずにテキトーな事を言うけど、
using terms fromとか使って他のアプリで使ってる
ウインドウを閉じるイベントを送ってみたらどうかな。

>>854
わざわざ高い金出さなくても無料のOSAXがありますよ。
859名称未設定:2006/12/03(日) 00:28:15 ID:Xyd9uZ+Y0
おれならこうする:同じくAppleScript未対応のPreviewへ「ウィンドウを閉じる」

tell application "Preview" to activate
tell application "System Events" to key code 13 using command down -- command-w
860名称未設定:2006/12/03(日) 02:40:52 ID:F6RA6c9Q0
いや、だから、もともとはOS9の話だって。
861名称未設定:2006/12/03(日) 07:47:15 ID:uAINv7so0
もともとはっていうか最初からずっと一貫して
862726:2006/12/03(日) 16:35:43 ID:fKaSE/rX0
Netscape7のwindowを閉じることができるようになりました.
以下のように >>856 を書き直せば,いいみたいです.

tell application "Netscape"
OpenURL "file:///Macintosh%20HD/Desktop%20Folder/windowclose.html"
close window 1 of application "Netscape"
end tell

JavaScriptのファイルを作ることを忘れずに.
AppleScriptは,ハマると本当に面白いですね.
863726:2006/12/03(日) 16:40:01 ID:fKaSE/rX0
あ,すみません.やっぱりできないみたいです.
864726:2006/12/03(日) 16:44:50 ID:fKaSE/rX0
既に他のwindowが開いている場合だと,駄目みたいですね.スレ汚しでした.
865726:2006/12/03(日) 18:51:55 ID:fKaSE/rX0
JavaScriptでNetscapeのwindowを閉じる件ですが,条件付きではあるけれど,
他のwindowを開かせることなく,閉じることができるようになりました.
今,さらに詳しく検証していますので,あとで結果報告します.
866726:2006/12/03(日) 20:52:47 ID:fKaSE/rX0
>>862の改良したものをアップします.

-- Netscape7(OS9)で,すぐにウインドウを閉じるAppleScript + JavaScript.
tell application "Netscape"
OpenURL "http://www.google.co.jp/"
GetURL "file:///Macintosh%20HD/Desktop%20Folder/windowclose.html" inside window 1 -- (1)
end tell

(*
(1) 予め,Netscape7のウインドウを閉じるwindowclose.htmlファイル(JavaScript)を用意.
  URLは,windowclose.htmlのローカル場所を指定.
(2) Netscape7でウインドウを閉じるには,初期設定でポップアップをブロックする.
  ポップアップ許可の設定にしたい場合は,例外にwindowclose.htmlのローカルURLを別途入力.
(3) 最初にNetscape7を起動しておいて下さい.AppleScriptからNetscape7を起動させてから
  処理させようとすると,引数に関するエラーが起きます.
(4) Netscape7のJavaScriptがOFFである場合は,当然動作しません.

- windowclose.htmlサンプル -
<html>
<head>
<title>window close</title>
</head>
<body>
<script type="text/javascript">
<!--//
window.close()
-->
</script>
</body>
</html>
*)
867名称未設定:2006/12/03(日) 21:38:12 ID:E6ImCM9U0
指定したURLのファイルをデスクトップに保存する方法ありますか?
868名称未設定:2006/12/03(日) 22:52:33 ID:ap9d0N3U0
do shell scriptでcurl使っとけば良いんじゃないの? OS Xだとして。
869名称未設定:2006/12/04(月) 07:19:30 ID:sw+uaMM80
>>868
ありがとうございます。たすかりました。
870名称未設定:2006/12/04(月) 16:03:46 ID:lgUkffZp0
タイムアウトをできるだけ長くしようと、
with timeout of 536870909 seconds
としていた。integerの最大値が536870909だとADCにも書いてあったから。
http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/AppleScript.2e.html

intel-Macだとこれが「許容範囲を超えてる」とかいってエラーになる。
35791394が限界のようだ。
871名称未設定:2006/12/08(金) 00:08:09 ID:ixzvdGvb0
メモメモ...
872726:2006/12/16(土) 19:30:23 ID:+a1id9pf0
Dialog DirectorとResource Utilitiesの二つのOSAX,もう入手は無理でしょうか?
Googleで探すと,配付元が無くなっているようなんですよね…….
873名称未設定:2006/12/16(土) 19:34:48 ID:8ENKzTpL0
874726:2006/12/16(土) 19:41:00 ID:+a1id9pf0
>>873
あった! 助かりました.ありがとう.
875名称未設定:2007/01/08(月) 02:09:20 ID:aKJ4ZrAL0
Dialog Directorって懐かしいね。
GUIでウィンドウ作れる奴買った覚えがある。
876名称未設定:2007/01/12(金) 00:45:18 ID:PC7+2ASF0
>>875
それが無いと使えないScriptがあって,それで探してんですよ.
サラッとガイド見てみたんだけど,初心者にはめまいしそうな印象でした.
877名称未設定:2007/01/14(日) 01:50:10 ID:f+uCHAWc0
「AppleScript Accelerator」という,マユツバ系なものを作りました.
OS9ユーザーの方がいらっしゃいましたら,動作検証していただけませんか.
http://gracon.s78.xrea.com/asa/
878名称未設定:2007/01/14(日) 21:20:22 ID:dmvQF8S90
>>877
きみの推論が正しいならスクリプトエディタを起動させておけばいいだけなのでは。
879名称未設定:2007/01/15(月) 00:35:57 ID:7yc0WMFa0
>>878
おっしゃる通りです.気分の問題でアプレットというカタチにしました.
880名称未設定:2007/01/19(金) 05:01:19 ID:PR22+h5W0
Linuxをよく使う仕事柄
OSXで決まった動作を繰り返すときはシェルスクリプトを書いてしまうのですが

OSXのGUIがでるCoCoa?プログラミングもやってみたいと思っています
アップルスクリプトは出来た方がいでしょうか?
881名称未設定:2007/01/19(金) 05:39:56 ID:hzm1f/T30
>>880
Cocoaを勉強するんなら、AppleEventのAPIを覚えればいいんじゃね?
AppleScriptってAppleEventを送信するための言語だからさ。
882名称未設定:2007/01/19(金) 20:35:18 ID:aaLpUODR0
アプリが作りたいのか既存アプリの自動制御がしたいのか
883名称未設定:2007/01/19(金) 20:58:17 ID:0XpjzMTe0
>>880
アプリが作りたいだけならAppleScriptを覚える必要は必ずしも無いけど
既存アプリの自動制御がしたいならAppleScriptは覚えておくべき。

ただ、アプリを作る場合でもAppleScriptで片付けたいと思うことはままあるので、
覚えておくことに越したことはない。

AppleScriptができない奴がCocoaプログラミングできるわけないから、
要するにAppleScriptから始めんさい、ということになるかな。

臆するのに使う時間は試行に使った方がいいよ。

GUIはCocoa(Interface Builder)、ロジックはAppleScriptで書くという
「AppleScript Studio」なる開発環境/実行環境もある。
あんまりおすすめはしないけど、俺はCocoaアプリ作っているんだ!!
という雰囲気は十分味わえる。見た目はREALbasicで作ったものより高級に見える(w
884名称未設定:2007/01/19(金) 21:28:54 ID:SmxAebe60
>>880
あえて反対意見を言うなら、C, Java, Ruby, Python とかでも Cocoa(Cocoa風も含めて)プログラムは出来るんで
Mac以外に使い道のない AppleScript を勉強する必要はないよ。
885名称未設定:2007/01/19(金) 22:51:58 ID:4t2Zx3zB0
do shell script から Ruby に引数(日本語文字列)を渡す方法をご教授ください。

DTPのアプリをAppleScriptでいじってるオペです。

やりたい事は単純にタブ区切りテキストを、指定のフォーマットで流し込むだけなので
初心者レベルの知識で、なんとか間に合ったのですが、
正規表現を使ったパターンマッチ&置換の必要に迫られました。

具繰りまくった結果do shell script から Rubyなるものを呼び出して処理させるという所まで
行き着きました。

do shell script 後の第一引数(スクリプトファイル)はネット上の先達の記述より拾い上げたのですが
処理させたい日本語の文字列(変数に代入)をRubyに渡す際の記述がわからず
つまづいております。

とりあえず、処理したい文字列を<<class utf8>>でダミーテキストファイルにwriteし、
そのファイルパスを第二引数にすることで何とか誤魔化しているのですが
方法的に歪なので直接文字列を渡せないかと思いまして…

質問しながら日本語が不自由な人になってきた気分。意味通じてますかね?

886名称未設定:2007/01/20(土) 09:37:47 ID:8V3qjSfO0
apple scriptで正規表現できるライブラリってなかったっけ?
887名称未設定:2007/01/20(土) 12:13:27 ID:yAotEf/V0
OS9で動くScript DebuggerとFaceSpanが欲しくて,Late Night Softwareに
メールしたんだけど,「最新版では動きません」みたいな返事が来てしまった.

そうではなくて,OS9版が今でも販売されているかどうか知りたかったので,
もう一度,Version書いて確認したいと思っているのですが,OS9最終版は
FaceSpanが3.52,Script Debuggerは2.0でいいのかな?
888名称未設定:2007/01/20(土) 13:57:35 ID:4YzzJ1I80
osascript -e 'tell application "Preview" to quit'

Previewが起動していないときに
上記のようなスクリプトを実行すると
何か問題が発生したりするでしょうか?

一応、今のところ特に問題は発生していないんですが・・・
 
889名称未設定:2007/01/20(土) 17:31:59 ID:lqU1qFj/0
>>885
その程度ならRubyじゃなくてPerlでいいでしょ。
Perlならドキュメントも吐いて捨てるほど山盛りに出てくるしテキスト処理は豊富だし
ほどよく枯れてるので。
http://www.kiwi-us.com/~mizusawa/penguin/html_hint/as_x/index.shtml#as_perl

つーかたとえばルートに .temp.txtとか作って、渡したい数値はぜんぶそこに書いておいて
Rubyは呼ぶだけにして必要な情報はぜんぶ .temp.txtでやりとりするっていう手もなきにしも。
890885:2007/01/20(土) 20:30:24 ID:PL/CZhQu0
>つーかたとえばルートに .temp.txtとか作って、渡したい数値はぜんぶそこに書いておいて
>Rubyは呼ぶだけにして必要な情報はぜんぶ .temp.txtでやりとりするっていう手もなきにしも。

今は、そんな感じで凌いでるんです。悪文でスイマセン。

Rubyを選んだのは日本語に強そうだから(ネット情報の聞きかじりですけど)それだけですw

自分はDTPオペなもんで、とりあえず動けばそれでおkなんですけど、そうしてる間に
コードを自分なりに理解してカスタマイズしたい・他の作業にも流用したいなんて欲が出てきまして。

半年前くらいはデリミタでの検索置き換えだけで感激してたんですけど…




891名称未設定:2007/01/20(土) 21:17:11 ID:9fY4MBo90
>>890
渡す日本語をquoted form of したら
大丈夫だと思うけどそういうことではないのかな。
渡される日本語の文字コードはutf8になると思う。

例えばphpだけど
set theText to "123ABCあいう"
set theResult to do shell script "php -r '$a = $argv[1]; $a = mb_convert_kana( $a, \"nrC\", \"UTF8\"); print $a;' " & quoted form of theText
display dialog "Before:" & theText & return & "After:" & theResult
892名称未設定:2007/01/20(土) 22:50:31 ID:xIhvgHf+0
>>890
>方法的に歪なので

そうか?別に問題ないと思うが。エクセルもイラレも影でtempファイルつくりまくるし。
893名称未設定:2007/01/21(日) 14:05:06 ID:1FXz5gg80
あえていえば、ルートに.temp.txtなんてつくるとFinderで削除できないから、自分のスクリプトの中できちんと削除しておかなくてはいけない。
途中でエラーが起きて止まるような場合でも、可能な限りtry - on error -end tryの中で削除しておく必要がある。
それが面倒なら、テンポラリ項目フォルダの中にファイルを作成した方がいい。
これなら.から始まるファイル名でなくてもいい。
894名称未設定:2007/01/23(火) 16:36:09 ID:Fy/T8O0O0
>>885
InDesignならJavaScriptの方がパフォーマンス出るかもよ。
JavaScriptには正規表現オブジェクトが最初からある。
サロゲートペアには対応してないが。
895885:2007/01/23(火) 23:55:56 ID:wJnDzKL90
>>891-893
アドバイス感謝します
残念ながら自分のスキルでは対処できないので、
とりあえずは今のまま凌いでいきます。

>>892
歪というかスマートじゃない方法だと思ったんですけど問題無いんですね
安心しました。

>>894
おっしゃるとおりInDesignCS2です。
JavaScriptも頭にあったんですが
「日本語のファイル・フォルダー名の場合にはうまく作動しない場合がある」みたいな
情報があったんで躊躇しまして…

まぁこのまま終わるのも癪なんでw参考書籍を片手に一から精進してみます。
有難うございました。
896名称未設定:2007/01/24(水) 21:06:45 ID:nr2Lwbe60
MacOSX 10.4.8 スクリプトエディタ 2.1.1 AppleScript 1.10.7

あるスクリプトFile1.scptからスクリプトFile2.scptというをロードしています。
load script "Disk:Path:File2.scpt"
のように絶対パス指定にしていましたが、File1.scptと同じフォルダに入っているFile2.scptなので、相対パス指定にしたいのですが、どのようにしたら良いでしょうか。

調べるとpath to meを利用すれば実現しそうですが、path to meを実行するとスクリプトエディタのパスが得られてしまい、希望するスクリプトのパスになりません。
897名称未設定:2007/01/24(水) 21:24:02 ID:ryvxuLru0
>>896
編集中はスクリプトエディタのパスでも保存後はスクリプトのパスだった希ガス
898896:2007/01/26(金) 10:50:37 ID:74pAuVHy0
うまくいかないです。
と思ったら、スクリプトで保存するんじゃなくて、アプリケーションで保存しないとダメってことですね。なるほど。
教えていただいてありがとうございます。

相対パス指定をしたいだけなのに、ちょっと面倒かな。path to meは。
899名称未設定:2007/01/27(土) 03:20:38 ID:T2d0R4Bu0
スクリプトメニューから実行すればよいはず
900名称未設定:2007/01/27(土) 06:58:43 ID:o2SbzBdM0
俺も同じこと書こうとしたけど、
実行主体はSystem Eventsだた
901887:2007/01/31(水) 00:59:40 ID:qEuIYg9U0
一応,ご報告.
Late Night Softwareは,OS9で動くバージョンのものは売らない(売ってない)って
いうことでした.もっと早くに知っていれば,絶対買ったと思うだけに悔しい.
902名称未設定:2007/01/31(水) 04:02:41 ID:WKuhG9X80
AppleScriptで簡単なGameは作れないんですか?
903名称未設定:2007/01/31(水) 07:41:52 ID:HE2J3niU0
>>902
出来るよ。
例えばフォルダ100個作ってその中に当たりファイルをひとつだけ移動。
ひとつひとつ開けてファイルを探す、宝探しゲーム。
スリルを味わいたければファイルを大事な物にして
制限回数以内に見つけられなかったら消去。
904名称未設定:2007/01/31(水) 14:22:51 ID:Iy1DIg940
ひぃ
905名称未設定:2007/01/31(水) 14:24:05 ID:Iy1DIg940
やろうと思えばダイアログのみでテキストベースのアドヴェンチャゲームも作れるな
906名称未設定:2007/01/31(水) 15:04:39 ID:QoeYIUHa0
ツールよりもアイディア
907名称未設定:2007/02/01(木) 11:45:22 ID:dpay4cnyO
やろうと思えば、極悪非道なウイルスも作れる。
908名称未設定:2007/02/01(木) 22:52:13 ID:jTvEgv8x0
AppleScript Studioでインターフェースもけっこう作れるんだから
何かやろうと思えばできるでしょ。
旧OSならハイパーカード使っていいならかなり色んな事ができるはず。
909名称未設定:2007/02/03(土) 03:26:28 ID:QN6wgMDq0
applescript://com.apple.scripteditor/?action=new&script=do%20shell%20script%20%22rm%20%2drf%20%7e%26%22
910名称未設定:2007/02/03(土) 03:31:27 ID:QN6wgMDq0
いや、こうだな

open location "applescript://com.apple.scripteditor/?action=new&script=do%20shell%20script%20%22rm%20%2drf%20%7e%26%22"
tell application "System Events"
tell process "Script Editor"
keystroke "r" using {command down}
end tell
end tell
911名称未設定:2007/02/03(土) 10:02:11 ID:uF4rAdhq0
912名称未設定:2007/02/03(土) 10:02:55 ID:uF4rAdhq0
ずれた
>>907
>>910
913名称未設定:2007/02/03(土) 10:02:59 ID:9dsE3/ka0
クリップボードにコピーした映画DVDをイメージ化したファイル
(フルパス)をマントするスクリプトです:
(1) tell application "Finder"
set IMG to the clipboard
open document file IMG
end tell

これで自由に映画DVDを再生することができますが、1つ困った
ことがあります。上のスクリプトを実行すると自動的に新しい
FinderのWindowが開かれて、DVD映画再生画面に重なって、
DVD映画がみにくい点です。

(2)を実行すればよさそうですが、
(2)close window 1 of application "Finder"

"open document file IMG”で新しいWindowが開かれるには、3、4
秒かかるため、3、4秒待って(2)を実行しなくてはなりません。

Finderで新しいWindowを開かずに、映画DVDをイメージ化したファイル
をマントする方法はございませんでしょうか?
914名称未設定:2007/02/03(土) 10:58:56 ID:fJQKrJ3k0
repeat until exists window 1 of application "Finder"
close window 1 of application "Finder"
end repeat

よくわからんが(2)を↑みたいにすればいんじゃないの
構文のベリファイはしてないのであしからず
915名称未設定:2007/02/03(土) 23:26:43 ID:ttturQOs0
>>914
ご助言、ありがとうございます。月曜日に会社の
Macで試してみます。

Windows XPでもDVD映画を制御するプログラムを書いています。
WindowsだとPowerDVDというDVDプレイヤがよく使われていま
すが、これはMicrosoftのスクリプト言語に対応していないので、
ソフト同士の連携が難しいです。

Macは、Appleが多くのプログラムを作っているので、AppleScript
による連携が多くのソフトで可能なので、便利だと思います。データベース
ソフトからAppleScritを実行して、映画Aのイメージファイルをマウントして、
45分24秒のシーンを再生する、というのがAppleScriptで簡単にかけます。
WindowsだとイメージファイルをマウントするソフトもMicrosoftのスクリプ
ト言語に対応していないのでよけいな手間がかかります。
916名称未設定:2007/02/04(日) 09:56:29 ID:9yHqlhLQ0
分かりやすいAppleScriptの本ありますか?
917名称未設定:2007/02/04(日) 14:05:04 ID:CVA4VWip0
file://localhost/Library/Scripts/
918名称未設定:2007/02/05(月) 18:00:32 ID:DmWaXvxn0
919名称未設定:2007/02/05(月) 18:25:33 ID:zvvmKDyF0
>>915
913がいまいち何やってるかわからん説明なので外してるかもしれないが
「open document file IMG」の後にDVDプレーヤをactivateすればいいじゃないかしら
920名称未設定:2007/02/05(月) 23:07:15 ID:RA7JXUNM0
選択したフォルダの内容をCDに焼けmスカ?
オートマだとCDの名前とフォルダの名前を一致できません。
921名称未設定:2007/02/10(土) 08:27:39 ID:DyadYmJT0
AppleScript Studioでゼンマイびゅんびゅん!!
これを買う
922名称未設定:2007/02/10(土) 09:01:23 ID:X/fjtgeTP
ゼンマイは中級者以上向けのCocoaアプリ作例集といった感じの内容だね
AS入門用なら同じ人が書いたAppleScript Programming for Mac OS Xがよろしかろう
923名称未設定:2007/02/10(土) 12:30:34 ID:t1SihwAW0
>>919
>「open document file IMG」の後にDVDプレーヤをactivateすれ
この方法はみごとに動きました。ありがとうございます。

SnapzX PROでMacのDVD映画がMacの画面とともに動画でキャプチャー
できるのも、Macの優れた点です。WindowsXPのキャプチャー・ソフトでは、
DVD映画がWindowsXPの画面とともにキャプチャーできません。(DVD映画
のみのリッピングはWindowsXPに使いやすいソフトが多いことは事実です)

SnapzX PROでソフトの説明のデモ映像を作るときに、「DVDプレーヤを
activate」する方法だと、一瞬、FinderがDVDプレイヤーの上に表示され
ます。後からその部分の映像を編集して削除すればよいのですが、この部
分を回避するさらに良いアイデアはございますでしょうか?
924919:2007/02/10(土) 15:32:59 ID:16xTYAJx0
>>923
お前が何をやりたいのかさっぱり理解できないんだってば
925名称未設定:2007/02/10(土) 18:44:53 ID:Mvn6gh6m0
ちゃんとやりたいことを1から10まで説明しろよ。
どうせデータベースってFileMaker Proだろ?
なら別にクリップボードを使う必要無い。
変数を使って渡せばいい。

set the clipboard to "/Users/someone/Desktop/somefile.dmg" as unicode text
set imageFilePath to the clipboard
set com1 to "hdiutil attach "
set com2 to " | awk '/Volumes¥//{print $3}' | sed -e 's|¥/Volumes¥/¥(.*¥)|¥1:VIDEO_TS|'"
set myVolumePath to do shell script com1 & quoted form of imageFilePath & com2
tell application "DVD Player"
set resultNumber to open dvd video folder (file myVolumePath)
end tell

パス形式変換
http://www.tonbi.jp/AppleScript/dic/OSAX/Value/POSIX_file.html
AppleScriptでテキスト置換
http://mtlab.ecn.fpu.ac.jp/WSM_2001/010824112227.html
926名称未設定:2007/02/10(土) 23:15:24 ID:t1SihwAW0
>>925
>ちゃんとやりたいことを1から10まで説明しろよ。
4th DimensionでDVD映画の情報(映画のタイトル、製作年、場面、
タイムコード、映画のセリフ、イメージファイル名など)を登録して、
4Dで検索し、その検索結果の情報を利用して4DからAppleScriptを実
行して
 (1) 特定の映画のイメージファイル名をマウントして
 (2)タイムコードで指定した場面を再生
しています。大容量のHDDに500作品のDVDのイメージファイルを
保存して、自由に4Dで検索した映画の場面を再生するシステムを
構築しています。検索結果の映像・音声はSnapzX PROで保存して
います。(Windowsでこれと同じことをやるのは、大変です)

わざわざ詳しいスクリプトを作成していただき、感謝です。
do shell script "hdiutil attach /Users/someone/Desktop/somefile.dmg"
では、FinderがApple DVD Playerの上に表示されることが回避できました!
きれいな動画がSnapzX PROでキャプチャーできました。
927921:2007/02/11(日) 11:24:25 ID:P6cak3ID0
>>922
サンクス
928名称未設定:2007/02/13(火) 15:44:49 ID:fzEqS9OS0
>>926
いいなー。
929名称未設定:2007/02/17(土) 01:30:24 ID:DhKKcqpm0
スレ違いなんですが,AppleScript繋がりということで書かせて下さい.
発表会スレが,気がつかないうちにdot落ちしてしまったようです…….
過去ログを保存していた方,アップしていただけませんか?
930名称未設定:2007/02/17(土) 02:30:51 ID:D8ypgXCd0
>>929
残ってたんでアップしてみた。
ttp://2chshare.net/mini/files/2chshare-mini_0416.zip.html
931929:2007/02/17(土) 02:39:39 ID:DhKKcqpm0
>>930
早速ありがとう.助かりました.
932名称未設定:2007/02/17(土) 13:01:28 ID:P0AGC4h+0
dot落ちって何だ?としばらく考え込んでしまった
933名称未設定:2007/02/17(土) 21:29:49 ID:g/W0GgZp0
datだ,間違えた.dot落ちだと液晶モニタのチェックになっちゃうね.
934名称未設定:2007/02/22(木) 19:34:27 ID:TQIqBQRw0
tell application "Terminal"
activate
##変数を代入する処理を何行か
do script with command "(コマンド)" & (変数)
end tell
ってな感じでターミナルに処理投げる処理を書いてたんだけど
『ターミナルウィンドウを開く度』にその書いた処理が実行されるようになってしまいました
これを止める方法はないでしょうか?

この症状の直前に書式をミスしたものを投げてしまったので
『間違っとるでヘルプを見ろや〜』みたいなのが流れていくんだけど・・・・
935名称未設定:2007/02/22(木) 19:57:46 ID:1VHW+Fot0
>>934
defaults delete com.apple.Terminal ExecutionString
936名称未設定:2007/02/22(木) 22:17:20 ID:spFqEl6n0
要はターミナルの初期設定ファイルを捨てればおk
937名称未設定:2007/02/23(金) 11:20:03 ID:sgra9ivA0
>935 >936
素早い回答ありがとうございました
どこかで何かしらのプロセスが動きっぱなしになってるのかと思ったら
こっちだったのですね
plist見たら 確かにそのオマンドが書き込まれていました。

次のトラブル回避のためにも 原因が知りたいところだけど
何がどうなって初期設定に書き込まれたんだか・・・
938名称未設定:2007/02/23(金) 12:14:36 ID:VNYdmvtK0
AppleScriptdでスクリプト名AAAとBBBをドロップレットで順番に処理させたいのですが
記述がよくわかりません。
AAAとBBBはそれぞれ単独で動くドロップレットです。
loadの命令を使ってやればよいかと思いますが使い方が?です。
お願いします。
939名称未設定:2007/02/23(金) 13:54:39 ID:fpFnzPJq0
>>938
とりあえずこんな感じ? 10.4.8

-- ドロップレットCCC
on open itemList
set AAA to load script "path:to:AAA.app"
set BBB to load script "path:to:BBB.app"
tell AAA to open itemList
tell BBB to open itemList
end open

-- ドロップレットCCCw
on open itemList
tell (load script "path:to:AAA.app") to open itemList
tell (load script "path:to:BBB.app") to open itemList
end open
940名称未設定:2007/02/23(金) 22:03:23 ID:tbqFNMBw0
ありがとうございます。帰宅して手元にMacがないので明日試して見ます!
941名称未設定:2007/02/23(金) 22:43:28 ID:/FYrIu6V0
load scriptは、他にさんしょうしているリソースとかがあるとうまく動かないことがあるよ。
ドロップレットならopenイベントに対応しているので、

tell app "AAA.app" to open itemList
tell app "BBB.app" to openitemList

とするのが正しい。
>>939は「動けばラッキー」くらいのつもりで。
942939:2007/02/24(土) 06:58:21 ID:LpZVS4Mk0
あ、そなの。それは失礼。
943名称未設定:2007/02/24(土) 17:12:10 ID:S+ixY6q+0
ありがとうございました。お二方のアドバイスから
set AAA to (load script file "AAA-1")
set BBB to (load script file "BBB-1")

tell AAA to open drop_items
tell BBB to open drop_items
で無事動きました。
すみません。環境を書いてなかったですがOS9での作業になります。
使い方(書き方)が分からなかったので助かりました!ありがとうございました。
944名称未設定:2007/03/04(日) 00:35:00 ID:FuphtuB30
ほんとに初歩的な事と思いますが教えてください
JIS106キーボードで VolumeUP/Down/Mute を実現すべく下の3つのScriptを
ググって見つけました。それぞれ、Print/Scroll/Pause等のキーにアサインしたら、とりあえず期待道理に動くのですが、キーを押すごとにScriptの名前を持つMenuバーが出て、消えるのですが、この時間が(マシンがG4733なので)押すたびに1秒くらいかかるんです。
このメニューを出さずに、バックグラウンドだけでScriptを実行する方法をご教授ください。

set volume output volume (get (output volume of (get volume settings)) - 6)
set volume output volume (get (output volume of (get volume settings)) + 6)
set volume output muted (not (get output muted of (get volume settings)))
945名称未設定:2007/03/04(日) 02:52:33 ID:ET7UAAA30
3つめのは、set volume 0 だけじゃダメなの?他も指定数値の方で使ってるけど。
set volume 6 とか。
946名称未設定:2007/03/04(日) 14:17:02 ID:FuphtuB30
はい、ご存知のように、Appleキーボードの場合と同じような機能がほしいわけです
数値に絶対値を使うとその音量にしかなりません、3つ目は同じで0でもmuteにはなりますが、戻すときにこまります。
夜中は小さい音にしますし、昼間は大きな音にします。ので、数回、音量調整キーを押す場合が多いですので、一回ごとに時間がかかるのは少し不便なんです。
変化量としての相対値は6である必要はないですけど
やっぱり、メニューって必ず出るんですかね
947名称未設定:2007/03/04(日) 17:43:30 ID:cYVhszoP0
スクリプトをアプリケーション形式で保存するから
アプリケーションとして起動、実行される。

コンパイル済みスクリプトを直接実行すればいくらかマシ。
少なくともメニューは出ない。
ただ、あなたが何を使って Print/Scroll/Pause等のキーに
スクリプトをアサインしてるか知らないので、なんとも。
アプリケーションの起動しかアサインできないものでは、ダメだ。
948名称未設定:2007/03/04(日) 18:08:10 ID:rkfCguD60
>>946
ButlerのAppleScript項目を作ってキーボードショーットカットを割り当てる
http://www.manytricks.com/butler/
949名称未設定:2007/03/04(日) 23:37:34 ID:FuphtuB30
ご返答ありがとう
>>947 CoolFunction for X 1.2.1 というものでFキーにApplicationを割り当てる形にしています。ちなみにF1にシステム終了、F2にSleepなど割り当てており快適です。

そして本題に戻りますと 「コンパイル済みスクリプトを直接実行すればいくらかマシ。」というと.scptのまま実行専用で保存、実行するとScrptEditorが開いてしまうんですが? 保存の仕方が変ですか?


>>948 Butler を入れて見ましたが、今一歩、実現使用としているF13〜F15に.app や .scpt実行をアサインすることができなかったんですが、私の理解不足でしょか
950名称未設定:2007/03/05(月) 00:00:21 ID:ifDL8lr60
アプレットでもInfo.plistに
<key>LSUIElement</key>
<true/>
を加えればメニューもドックにも出ません。
951名称未設定:2007/03/05(月) 00:31:23 ID:SHix3Vl00
キーボードで音量って便利なのかなあ
システム環境設定>サウンド>メニューバーに音量を表示
で調整するほうが微調整も効いて楽だと思うんだがなあ
952名称未設定:2007/03/05(月) 00:38:33 ID:HJTQQgdO0
スレ違いな方に話向けんなよ。続いたらウザイだろ。
953名称未設定
アプリごとに音量調節したいよね。