AppleScript アップルスクリプト 質問、発表 7 [無断転載禁止]©2ch.net

1名称未設定2017/04/01(土) 12:42:51.78ID:F8/5NUFI0
質問、発表どっちでもスレ。

■注意
安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
わからない点、エラーが解決できない点についてはスクリプト片を添えて質問すること。
OSバージョンも忘れずに。

■参考
AppleScript Language Guide
https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/
TN2065: do shell script
https://developer.apple.com/library/mac/technotes/tn2065/
AppleScript: The Language of Automation
http://www.macosxautomation.com/applescript/
MacWiki - AppleScript
http://macwiki.osdn.jp/wiki/index.php/AppleScript
鳶嶋工房 / AppleScript
http://tonbi.jp/AppleScript/
AS Hole(AppleScriptの穴)
http://piyocast.com/as/
■過去スレ直近5つ
6 http://potato.2ch.net/test/read.cgi/mac/1387630245/
5 http://anago.2ch.net/test/read.cgi/mac/1330350325/
4 http://anago.2ch.net/test/read.cgi/mac/1256127156/
3 http://pc11.2ch.net/test/read.cgi/mac/1223026902/
2 http://pc11.2ch.net/test/read.cgi/mac/1197443062/

113名称未設定2018/01/15(月) 22:01:42.13ID:1GAnzEgZ0
>>112
ありがとう
これでいいのかな?

on idle
set batteryPercent to do shell script "pmset -g batt | awk '/InternalBattery/ { sub(/;/, \"\"); print $2 }'"
if batteryPercent > 80 then
display dialog "Battery is " & batteryPercent & " charged." buttons {"OK"} default button "OK"
quit
end if
return 60
end idle

実行して充電してみたけど80%すぎてもなにも出てこなかった
なにか根本的に間違ってるのかな…

114名称未設定2018/01/15(月) 22:02:45.38ID:1GAnzEgZ0
試しにon idleで検索して3秒後に音が鳴る(たぶん)やってみたけど

on idle
beep
return 3
end idle

反応がなかった
初心者ですまない

115名称未設定2018/01/15(月) 23:08:14.67ID:kX+AUH5H0
on idle
は、アプリケーションを実行したときでしか動かない。しかも、起動中しか動かない。スクリプトを、
ファイルフォーマット: アプリケーション
ハンドラの実行後に終了しない
で保存して、保存された .app を起動すれば、そのシンプルなのでも動く

116名称未設定2018/01/16(火) 11:10:15.19ID:YivhleEe0
>>115
できました!
これはスリープもきかなくなるんだね…
なかなか思ったとおりにはいかないけど、とりあえず動いたのでちょっとすっきりした
どうもありがとう

117名称未設定2018/01/27(土) 14:19:06.01ID:/A7SfRfh0
友達や知人が一人もいないので、電話がかかってきた経験がない。
通話の着信音も聞いたことがない(鳴らない電話)。
手元のiPhoneはスマートフォンと呼ばれているが、
果たして本当に電話機なのか怪しいとさえ考え始めた。

そこで自分に電話(FaceTimeオーディオだけど)をかける。
スクリプトは以下の通り。
set phoneNum to "自分の電話番号"
do shell script "open facetime-audio://" & quoted form of phoneNum
tell application "System Events"
repeat while not (button "発信" of window 1 of application process "FaceTime" exists)
delay 1
end repeat
click button "発信" of window 1 of application process "FaceTime"
end tell

Automatorを使い上記をカレンダーアクションとして保存する。
該当ファイル(.appファイル)に「コンピュータの制御を許可」を
与えておけば、カレンダー.app内で通知時に同アクションを開く
設定にすることで、好きなタイミングで電話がかかってくる(予定調和)。

また電話をかけたりかけなかったりというスクリプトにして
launchdから定期実行しても良い(予期せぬ出会い)。
set rNum to random number from 1 to 10
if rNum < 3 then
さっきのスクリプト
end if

iPhone側には着信履歴(FaceTimeオーディオだけど)が残る。
「あいつしょっちゅう電話してきてうるせぇな」という気分を
満喫できる(リアル生活の充足)。

118名称未設定2018/01/27(土) 15:44:23.56ID:Z3ZqkQIR0
(´>ω<`) つらいのぅ〜

119名称未設定2018/01/27(土) 22:49:09.78ID:eOSJEmKf0
いい発表だった

120名称未設定2018/01/31(水) 17:15:08.29ID:RWzYK2TV0
メッセージは遅れる?

121名称未設定2018/01/31(水) 17:15:58.14ID:QG7bLxOR0
遅れる

122名称未設定2018/01/31(水) 17:29:10.56ID:+M/lBDyQ0
何分くらい?

123名称未設定2018/02/01(木) 07:31:17.86ID:x8RNVB090
メッセージは送れますか、(ㆀ˘・з・˘)

124名称未設定2018/02/01(木) 12:24:05.77ID:08iVOOBW0
送れる

125名称未設定2018/02/01(木) 13:18:03.93ID:+AZgGj040
>>115
Cocoa API使うと大丈夫そうな
スリープの邪魔要因は詳しくはわからんが、アクティビティモニタで 非スリープ がon idleだと はい にころころ変わるな。Cocoa API直接だと変わらない

use AppleScript version "2.4"
use framework "Foundation"
use scripting additions

current application's NSTimer's scheduledTimerWithTimeInterval:3 target:me selector:"timerFired:" userInfo:(missing value) repeats:yes

on timerFired:theTimer
beep
end timerFired:

(いきなりCocoa APIとかとは思うが、ほぼ一行&ほぼ定型みたいな感じなので)

126名称未設定2018/02/01(木) 13:20:41.93ID:+AZgGj040
>>125
>>116だった

127名称未設定2018/02/01(木) 13:44:39.11ID:DX8LljYV0
元質問者は10.6だよ
自分の実験に作ったんならあれだけど

128名称未設定2018/02/01(木) 15:08:48.12ID:+AZgGj040
どうも。ぬぁにぃいw
なるほど、それじゃだめだな。どうも

129名称未設定2018/02/04(日) 17:23:20.73ID:iafplOJZ0
こんにちわ、ヒントもしくは検索語句を教えてください。
──────────前提
古いMac mini Serverを眠らせておくのはもったいないので、
24節気を表示させようとしています。
AppleScriptのアプリを作って、毎日0:00に再起動させ、
起動項目として呼び出します。
24節気画像はキャドでおのおの作り、プレビュー.appを最大化して
各節気ごとに表示させます。
──────────ver
MacOSX Server 10.6.8
──────────AppleScript
--current dateをMMDD形式にする。
set M to month of (current date) as number
set MM to "0" & M --ひと桁月の桁揃え。
set MM to strings -1 thru -2 of MM --下から二桁をとる
set D to day of (current date)
set DD to "0" & D --ひとけたの桁揃え。
set DD to strings -1 thru -2 of DD --下から二桁をとる
set the24SekkiNum to MM & DD
if the24SekkiNum is "0204" then --このパターンでないとコンパイルできない
display dialog "立春" --ダミー
--ここにスクリーンショット等を最大化表示のコマンドを呼び出す。
else
--他の24節気を表示させる。
end if

130名称未設定2018/02/04(日) 17:23:57.74ID:iafplOJZ0
改行が多い。といわれたので。


という感じで。
太陽 黄経の計算が自分のスキルではできないので,
国立天文台の24節気一覧表から2018年の日付を取り、
春分だったら”0204”としてAppleScriptの結果と同じ場合”春分”の
画像を呼び出して表示させます。
──────────問題/疑問
春分から清明まで日にちがあるのでその間の処理をどうしようかと。
直近のデータを記憶(この場合は”0204”)させて表示させるとか。
エラーが出たら直近のデータを見ろ。というコマンドがあるかどうか知りたいと思います。

131名称未設定2018/02/04(日) 17:29:56.29ID:9fmbODdW0
はい。(´・ω・`)

132名称未設定2018/02/04(日) 18:51:09.73ID:LFznGo0p0
>エラーが出たら直近のデータを見ろ。というコマンドがあるかどうか知りたいと思います。

そういう風に組んどけばいい

133名称未設定2018/02/04(日) 22:46:28.75ID:iuBSBdB20
冒頭で
prop aDay: “”
としておいて、本文では
try
set aDay to getDay()
end try
かな?
エラーがなければ値が更新される。
的外れな回答ならごめん。

1341032018/02/05(月) 00:12:51.77ID:JlLAapt60
try文も難しいなぁ。と考えていたところ、
ひょっとしてと、
if the24SekkiNum ≥ "0204" then
display dialog "立春"
とやってみたところ、”0205”で”立春”と表示されました。
一年ごとに書き変えますので、これでいいかと。
大小の判定をstringsでできたのに驚きました。

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

1351302018/02/05(月) 00:13:29.94ID:JlLAapt60
いけね、130でした。

136名称未設定2018/02/09(金) 01:06:53.81ID:DJQSVNnB0
☆ 私たち日本人の、日本国憲法を改正しましょう。現在、
衆議員と参議院の両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

137名称未設定2018/02/09(金) 11:51:11.78ID:SUprxS5R0
保守

138名称未設定2018/04/01(日) 10:20:19.58ID:gXYcv3aN0
今日SierraからHigh Sierraにしんだけど、スクリプトメニューから実行した時、
アプリケーション形式じゃないとdisplay notification動作しなくなってる

139名称未設定2018/04/01(日) 10:35:44.10ID:gXYcv3aN0
んー、2台あるうちの1台ではscptでも動作してる
ただどっちもsound nameは効いてない

140名称未設定2018/04/01(日) 11:39:55.41ID:gXYcv3aN0
10.13.4 Combo Update入れて再起動したらscptでも通知自体は出るようになった

141名称未設定2018/04/10(火) 21:18:44.21ID:CDZivbba0
applescript 初心者です
safari > 環境設定 > 一般 > ホームページ
のURLを設定したいのですがどうすればよいのかわかりません
every UI Elements で調べても環境設定...までしか見れなくて困ってます

142名称未設定2018/04/10(火) 21:53:37.79ID:EQJZ4INE0
一般を開いた状態での構造はこういう感じのようだけどSafari 11.1
tell application "System Events"
tell application process "Safari"
tell window "一般"
tell group 1
tell group 1
tell text field "ホームページ:"
value
end tell
end tell
end tell
end tell
end tell
end tell

143名称未設定2018/04/10(火) 21:56:44.50ID:EQJZ4INE0
Xcode入れてそこからAccessibility Inspector使った方が楽かもよ
そのためだけに5GBとかダウンロードするのもアレだけど

1441412018/04/10(火) 22:17:15.31ID:CDZivbba0
皆さんありがとうございます
色々試して調べてみます

145名称未設定2018/04/18(水) 08:15:41.27ID:8eLIIhnA0
HighSierra+Xcode9.3にしたところ、昔作った自作のAppleScriptObjcアプリがエラーするようになりデバッグしようとしています。
NSDictionaryの引数がどうのというエラーです。HighSierraでのバグらしく、スクリプト側の書き換えが必要だとか。

これのxcode プロジェクトを開いてAppleScriptのファイルを編集したのですが、
CleanしてBuild+runしても、症状が変わらずソースの編集が反映されない様に見えます。

久々でASOCの編集で諸々忘れているので、
どこをチェックすべきかコメント頂けますでしょうか。

146名称未設定2018/04/18(水) 10:52:46.18ID:AAas5iZN0

147名称未設定2018/04/18(水) 20:35:57.17ID:K9ubVgDS0
145です。直りました。
AppleScriptのコメント化の文法勘違いでした
単にコンパイル通ってなかっただけの様です( ´△`)

ブランクがあると厳しいな。

148名称未設定2018/04/19(木) 00:29:35.09ID:/8p2JHg70
Project Builder&Interface Builder AppleScript―Mac OS Xアプリケーション開発技法 Mac OS Xアプリケーション開発技法

そういやこの間古本屋じゃない書店で売ってて笑った
何年前のだよ

149名称未設定2018/04/26(木) 04:31:37.60ID:FIwH5oI80
最近用語説明見てなかったけどいつの間にかASCII characterとASCII numberがcharacter idとidに置き換わってる

150名称未設定2018/04/26(木) 05:39:00.79ID:UIlM09fA0
>>148
Amazonからコピペ?後ろの重複具合から
2002かなんかすごい昔

151名称未設定2018/05/06(日) 20:37:36.24ID:ozaP+Ecf0
アプリで保存したスクリプトを
スクリプトエディタの開くダイアログで開いて修正しても
動作が修正されていないので
パッケージを開くから中のスクリプトを開くと
修正前のスクリプトのままでした
開くダイアログやドラッグドロップした時に
エディタは何を修正しているんですか?

152名称未設定2018/05/06(日) 20:58:50.83ID:mfbWGI0z0
コンパイルエラーにでもなってたんじゃないの

153名称未設定2018/05/06(日) 21:27:19.64ID:ozaP+Ecf0
ありがとうございます
自分のmacが不調なんですね
よく見たらmain.scptの他にmain.rtfという
ファイルが出来てました

154名称未設定2018/05/06(日) 21:33:58.10ID:oQzqsfAw0
それはリッチテキストやで

155名称未設定2018/05/06(日) 22:15:04.68ID:eFrAD1aL0
試すのめんどいんで applescript main.scpt main.rtf でググったw
ちょっと古いけど https://jp.tidbits.com/TidBITS-jp-1137.html#lnk4

156名称未設定2018/05/06(日) 22:49:51.14ID:ozaP+Ecf0
>>155
ありがとうございます
main.rtfは削除しておきました
参考になりました
何処かの段階でシンタックスエラーとか
何かやってしまったんですね

157名称未設定2018/05/07(月) 06:50:35.80ID:SSE/IZDj0
実行後に終了しない.appだと、
アプリ動作中にmain.scptを修正しても、
アプリ終了→アプリ再起動、ってやると
修正前のスクリプトに戻っちゃったような…

158名称未設定2018/05/08(火) 03:57:17.42ID:eQvzgAXd0
戻っちゃわないような...

159名称未設定2018/05/08(火) 09:12:08.14ID:4fXEfzZn0
どっちやねん!!!

160名称未設定2018/05/08(火) 11:02:36.52ID:yoJVCH6G0
すいません。昔、AppleScriptのソースの中身をSpotlightで検索するためのプラグインがあったように思うのですが、まだどこかに落ちていないでしょうか?

161名称未設定2018/05/08(火) 12:24:23.20ID:+P6mKPZa0
ググったら 「ちまちまとMacをいじるブログ | SpotlightでAppleScriptファイルの内容を ...」 があって、そこの google-toolbox-for-mac のリンク先 https://github.com/google/google-toolbox-for-mac
バージョン 1.6.0 に含まれてるようだった
バージョン 2.0.0 で構成変わったようでぱっと見にないんでわからない

最初の「ちまちまと〜」のページはググってくれ
fc2のblogだからか、リンク貼ったらNGワードで書けない

162名称未設定2018/05/08(火) 21:45:22.72ID:By+Xekyi0
Wed Sep 09 2015 00:53:47 GMT+0900
に、
Kill off the Spotlight and Xcode plugins as they haven't been maintained.
で、消されたよう。そこの一つ前まで遡ればか、現在はビルドは提供されていないので、1.6の入っているのを使うだね

163名称未設定2018/05/08(火) 21:52:54.51ID:By+Xekyi0
2008/08/21 に追加されてそれから何も変更されずっていう、マジほっぽらかし(まあ、変える必要がない完成度/機能性の少なさなんだろけど)なので、
1.6のでも全く同じではあるな(ビルドしたXcodeが古いってだけで。それもあんま関係ないだろう)

新着レスの表示
レスを投稿する