AppleScript アップルスクリプト 質問、発表 7 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
そんなんじゃすぐに煽られるような5chでどうすんねんって思うけどな
それとそんな細かいことうだうだとお前はお母さんかっていうw ID: :Q2Fo4sRd0
これで説得力ないことがよくわかったね
関わるのもウザいのと同じことだからでこれで最後 >>245
ああ、それが自分です
元々JavaScriptは組めるんですがAppleScriptはスリープさせるボタンを作ったくらいで、ほぼわかりません
でもやっぱ期待しちゃいますね、色々出来るので >>207
俺のために修正ありがとう
念の為コピペしといて正解だったようだw Finder上のフォルダに対してdo shell script でxxx.pyを実行するスクリプトを作ってFinderのツールバーに登録して実行してみると、
最前面がFinderからPythonのスクリプトに一旦切り替ってそのあとFinderに戻りました。
機能しているので問題ないのですが、Finderが最前面のままで処理できるような書き方ってあったりしますか?
よろしくお願いします。 アプリ形式にしてるなら、Info.plistに
<key>LSUIElement</key>
<true/>
加えればいけたぽいけど 意外と若かった
https://twitter.com/cdespinosa/status/1047880387349770241
On this day 25 years ago, Apple introduced AppleScript, a system and application automation system and language.
It’s still shipping in Mojave and is one of the oldest code bases in continual use in macOS. Happy birthday, AppleScript!
https://twitter.com/5chan_nel (5ch newer account) ここまで長かったなあ。
日本語AppleScriptから今のCocoaベースのスクリプトは想像もつかなかった。 > 在日の親は、子供を朝鮮幼稚園・朝鮮学校に入れたいっていうのが多いのよ。
> 日本人からすると、なんでだろうって思うけど、日本人の学校では、民族の誇りを持った教育がしてもらえないんだそうだ。
> よく分からないけど、済州島の流刑者の白丁が大阪に密入国して住み着いたじゃ誇りが持てないけど、
> 日本人に強制連行された被害者なら誇りが持てる、とかそういう事かな??
>
> 市原市の能満は昔から市街化調整区域で、新規の建物は造れないことになっている。
> そのため土地が安く、日本の法律を無視した在日が、次々と移り住んできた。
> そこで問題になったのが、朝鮮学校だ。なかなか許可が下りず、一番近くても千葉市にしかない。
> そこで在日居住区の能満内にあった、能満幼稚園・市原小・市原中・緑高の保育士や教師を、朝鮮化する事を考えた。
> 今では在日幼稚園の保育士は全て朝鮮帰化人で、在日の父兄からの絶大な支持を受けている。
> 遠くからでも、わざわざ在日幼稚園に入園させたいという在日の親は、後を絶たない。
> この在日幼稚園卒園者はほぼ朝鮮系の帰化人と在日だ。 テキストをコピって、その文中に出てくる二つの数字(数字A・数字B)を使って
計算させるApplescriptを作りました。
あちこちのサイト見て作った簡単なものでして、
当初は数字の出てくる位置と桁が決まっていたので
クリップボード内00文字目〜00文字目(数字A)と00文字目〜00文字目(数字B)を指定してました。
set 数字A to characters 5 thru 7 of NmLpLcSPpLc as text
set 数字B to characters 8 thru 10 of NmLpLcSPpLc as text
しかしこれではすぐに使い辛くなりました。
そこでこれを何桁でもどの位置に出てきても使えるように
「先に出てくる数字」「後に出てくる数字」みたいに
位置と桁を固定せず指定する方法を教えてください。 NmLpLcSPpLc
なんだこの呪文みたいな変数名は >>258
ざっくりと
on pickupNumbers from sourceString
set numbersString to do shell script "echo " & quoted form of sourceString & " | sed -e 's/[^0-9][^0-9]*/ /g;s/^ *//;s/ *$//'"
set savedDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {" ", return}
set numberItems to text items of numbersString
set AppleScript's text item delimiters to savedDelimiters
return numberItems
end pickupNumbers
set theNumbers to pickupNumbers from the clipboard
item 1 of theNumbers
item 2 of theNumbers
item -1 of theNumbers javascriptでmacアプリ操縦できるんかい!便利すぎワロタwwwww
何で今まで知らんかったんだ俺。
アップルももっと宣伝しろや! いちおう、負数と少数対応
https://ideone.com/U5bvc7
(行が長いと怒られたのでideone) >>258
>>260はたぶん現段階では意味がわからなさすぎるだろうから
asは諦めてJXA(javascript)にしたらいいよ。asのみでそれをやるとかなりややこしい。
JXAはサンプルとか少なくて苦労するだろうけど、単独で使う分にはjavascriptだから。
app = Application.currentApplication()
app.includeStandardAdditions = true
str = app.theClipboard()
nums=str.match(/¥d+/g)
sum=getSum(nums)
function getSum(ary){
s=0
for (var i=0; i<ary.length; i++){
s=s+parseInt(ary[i])
}
return s
} >>263の4行目の¥dの¥はバックスラッシュに置き換えてね。 >>258
asのみで試しにやってみた。思ったよりはスッキリしてるかな。
https://ideone.com/DrP4v8 質問です
デスクトップにあるファイルを全て取得してリストに格納する場合
tell application "Finder"
set theList to every file of desktop
end tell
こうするとファイル名順のリストになると思うのですが、これを作成日時順にすることは可能でしょうか? set theList to every file sort by creation date of desktop
でできたっぽい >>267
ありがとうございます!できました!
sort dy〜で出来るのは何となく見当は付いていたのですが、入れる場所を間違っていてうまく動かなかったみたいです
文法頑張って勉強します かつてAppleScriptの日本語バージョンがあったんですね
使ったことありますか? 使ってみたかったなあ >>267 sort by知らんかった!Finder以外でも使えるといいのに
>>269 少し触ってみて、書きづらくてやめた気がする 日本語表現は実用性があるとは言い難かった。
非純正アプリはほとんどが日本語表現がないため、結局ちゃんぽんになってしまい、快適ではなかった。 あそっか、アプリの方も対応しないといけないのか
直ぐに消えたのも納得です、ありがとうございました
でも、ちょっと使ってみたかった macOS Mojaveにしたところ,Safariで
ダウンロードしたpdfファイルをSafariの
虫眼鏡でアクセス(Finder上に表示)しようとすると
自作したappleScriptが実行されてしまいます。
10年以上前に作成したappleScriptで
今までは,こんな動作はしませんでした。
回避策はございますか? ナゾ&キモいな
フォルダアクションが設定&動いているっぽいが、Mojaveで急にとか??とりあえず見てみる AppleScriptが関係あるのかないのかわからんけど、それにしても状況をもっと絞った方がいいのではないか
他のpdfは?
他の種類の書類は?
ダウンロード先のフォルダとそのスクリプトとの関係、配置は? >>275
>Safariの
>虫眼鏡でアクセス(Finder上に表示)
うちのSafariではそもそもそれがわからんw
ファイルのダウンロード先をデスクトップにしているので
とうぜんpdfファイルもデスクトップに置かれてるだけ
ツールバーをカスタマイズ、のところを見ても虫眼鏡などないw
ふだんSafari使ってないからこれ以上わからん ダウンロードのポップアップウインドウと思ってたけど
設定で項目を自動削除とかにしてると普段はツールバーに出てない みなさま,コメントをありがとうございます。
>>277
>他のpdfは?
Safariでダウンロードした全てのpdfで発生します。
Finder上でそのpdfをダブルクリックすると,普通に
アプリの「プレビュー」が開き,アップルスクリプトは
起動しません。
>他の種類の書類は?
映像ファイルをよくダウンロードしますが,映像ファイルであれば
Safariのダウンロードリストのファイル名の横にある虫眼鏡を
クリックすれば,Finder上に表示できます。これがpdfだと
特定のアップルスクリプトが起動してしまいます。
>ダウンロード先のフォルダとそのスクリプトとの関係、配置は?
ダウンロード先のフォルダはDownloads(昔からのデフォルト)です。
起動してしまうアップルスクリプはApplicationsフォルダーに
入っています。そのアップルスクリプをFinder上でダブルクリックすると
正常な動作(複数のフォルダーを開いて,Finderの指定位置に移動)を
実行します。
10年前に作成したアップルスクリプトは,自宅のMacと職場のMacに入れて
10年間,更新していません。自宅と職場のMacを別々にmacOS Mojaveに
バージョンアップしたところ,両方のmacで上記の同じ問題が発生しました。 AppleScript使いなら、その不具合を逆手にとるべし!
勝手に起動してしまうスクリプトの中身を、
「Downloadフォルダの中で最新のPDFファイルをプレビューで開く」
って内容に書き換えちゃえ スクリプト名は00finder2.app,内容はこんな感じです:
tell application "Finder"
activate
close every window
make new Finder window
set bounds of Finder window 1 to {0, 0, 1080, 400}
set position of Finder window 1 to {0, 0}
make new Finder window
set bounds of Finder window 1 to {0, 0, 1080, 400}
set position of Finder window 1 to {0, 420}
(以下省略)
スクリプト名の最初の00を削除しても,同様の問題が発生します。
スクリプトを別のフォルダーに置いても,同様の問題が発生します。
スクリプトをゴミ箱に移動すると,問題は発生せずに,ダウンロードしたpdfファイルが
Finder上に表示されます(正常な動作)。
使用環境はmacOS Mojave 10.4.1, Safari Version 12.0.1 スクリプト名は00finder2.appの内容をコピーして,新しい
appleScriptファイルを作成し,別の名前を付け,元の00finder2.appを
ゴミ箱に移動したところ,問題は解決できました。
ただ,問題の発生の原因はわかりませんが。 AppleScriptのアプリとかアプレットとか書いた方がいいよねと思うわ
Info.plistが狂ってたかなんかじゃないの CFBundleIdentifier とか CFBundleSignature とか
それかMojaveは使ったことないから変わってるかわからないけどLaunchServicesのDBが狂ってた 最近書き始めた初心者です
文字列処理してる時、tell application finder 〜でくくった中で
offset of〜を書くと、ログではエラー吐いてtell current application に飛ばされてますよね
処理が止まるエラーにはならないんですが、ログが汚く長くなるので回避できるならしたいのですが、何か手法はありますか? とりあえず先頭に
use scripting additions
入れたら出なくなった
これで試した
set msg to "tell application finder"
tell application "Finder"
offset of "finder" in msg
end tell
--> error number -10004 >>288
osのバージョンは?
10.11ではuse scripting additionsは無くても問題無いが。 例を示していただきありがとうございます
OSは10.13です
ただ今出先なので、試せる環境に戻りましたらやってみたいと思います >>291
ありがとうございました。何となく引っかかっていたのでスッキリしました。 エラーの出るところを
tell me
end tell
で囲う >>295
そんな書き方があるなんて知りませんでした
なんか可愛いですね、ありがとうございます javascriptで'QuickTime Player’を制御するコマンドを書き始めました。
var quickTimePlayer = Application('QuickTime Player');
quickTimePlayer.activate()
これで最後に開いていた複数の動画が開けました。次に,これをルーブ再生させます。
delay(2)
var lenX = quickTimePlayer.documents.length
for (i = 0; i < lenX; i++){
var test = quickTimePlayer.documents[i];
test.play();
test.looping = true;
}
最後に,この動画(複数)Finder上の指定の場所に移動させたいのですが
どのように書けばよろしいでしょうか? quickTimePlayer = Application('QuickTime Player')
finder = Application('finder')
homedir = Application('System Events').users[0].homeDirectory()
desktop =Path (homedir+'/Desktop')
f= Path (quickTimePlayer.documents[0].file())
finder.move(f,{to:desktop,replacing:false}) >>299
スクリプトをありとうございます。私の説明が悪かったことを
お詫び申し上げます。
やりたい作業は,quickTimePlayer.documents[0]を
モニタースクリーンの{0, 0}の位置に,quickTimePlayer.documents[1]を
{720,0}に,quickTimePlayer.documents[2]を{0,480}に,
quickTimePlayer.documents[3]を{720,480}に移動させるような
ことです。
お手数をかけて申し訳ありませんでした。 位置とサイズ情報(bounds)はwindowが持ってるからそっち使うんじゃないの
ob = quickTimePlayer.windows[0].bounds()
quickTimePlayer.windows[0].bounds = {x:0, y:0, width:ob.width, height:ob.height}
等々 >>301
>位置とサイズ情報(bounds)はwindow
“bounds”を使うんですね!
本当にありがとうございました。
ずっと”position”という言葉で検索していたため
正解が見つかりませんでした。
ご教示いただいたwidth:ob.widthというような書き方は
全く知りませんでした。Script EditorのDictionaryにも
width:ob.widthに関する解説はないですよね?
自分でも勉強したいのですが,これを解説している
ページや書籍などはございますか? ごめんね
いつも適当にやってるし、JavaScriptで書くことも滅多にないしで、まともな説明も紹介もできないよ
エディタの下側、ログを表示>返された値、を見ると 〜.bounds() 実行結果が {"x":20, "y":38, "width":700, "height":705} 形式で返ってた、だから元の値を維持するのに . (ドット)表記を使ってみた
ここ↓は読んだりするけど
https://developer.apple.com/library/archive/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/OSX10-10.html
それと、positionやsizeはSystem Events経由で得られる
Application('System Events').applicationProcesses['QuickTime Player'].windows[0].position()
自分はAppleScript非対応のアプリで使うことがあるけどPreviewとか >だから元の値を維持するのに . (ドット)表記を使ってみた
別にこれ聞かれたんじゃなかったね、無視してちょ >>302
jxaは用語説明もまともに用意されてなかったり、参考になるものも少ないので、
特にjsの機能を使いたい訳じゃなければapplescriptの方がラクではある。 >>305
>特にjsの機能を使いたい訳じゃなければ
過去5年間に自作したプログラムでの
appleScriptの使用率は1%以下。
そのため,appleScriptの基本的なループや
条件処理なども完全に忘れてしまっている。
現在使用しているプログラムは主にjavascriptと
python。使い慣れたjavascriptだとスクリプトの
90%以上が簡単に書き上げられるが
最後のmacOS特有のコマンドでお手上げでした。 js書き慣れてる割には;入れたり入れなかったりまちまちだな。 結局>>303は丸ごと無視されたのか
それなりに気を使って書き上げたつもりだったけど、まあ内容ないけどさ
しかし辛いの〜
それじゃ俺はこれで
tell me to quit saving no >>304 でその前も全部無視したんじゃね
どう入れたらどういうフォーマットやねんって、言う通りbounds() 実行結果が〜なんぞのgetterで出してみりゃだいたいわかるよね //複数の動画を大画面モニターに表示して,重ならないように
//並べて,音声を消し,ループ再生するjavascript #1
var pathX = "/Users/Tanabe/Movies/";
var yHeight2 = 480;
var xWidth2 = 850;
var quickTimePlayer = Application('QuickTime Player');
quickTimePlayer.activate();
var lenX = quickTimePlayer.documents.length;
//前に開いていた動画を閉じる
if(lenX > 0){
___for (i = 0; i < lenX; i++){
_____quickTimePlayer.documents[0].stop();
____ quickTimePlayer.documents[0].close();
___}
}
//次のtrue以下のコマンドを実行しないと,エラーが出る!?
if(true){
___quickTimePlayer.quit();
___quickTimePlayer = Application('QuickTime Player');
___quickTimePlayer.activate();
}
//次に続く… //311の続き
var listX = ["08.m2v", "09.m2v", "12.mov", "13.mov", "14.mov", "15.mov", "01.mov", "02.m2v", "07.m2v"];
var lenMov = listX.length;
var qtX = 0;
var qtY = 0;
for (i = 0; i < lenMov; i++){
___fullPath = pathX + listX[i];
___qtMov = quickTimePlayer.open(fullPath);
___ob = quickTimePlayer.windows[0].bounds();
___console.log("333: " + qtMov.name());
___qtY = parseInt(i / 3) * yHeight2;
___qtX += xWidth2;
___qtX %= (xWidth2 * 3);
___qtY %= (yHeight2 * 3);
___quickTimePlayer.windows[0].bounds = {x:qtX, y:qtY, width:ob.width, height:ob.height};
___qtMov.play();
___qtMov.looping = true;
___qtMov.audioVolume = 0;
} >>307
>js書き慣れてる割には;
言いたかったのは,>>312 の
var lenMov = listX.length;
for (i = 0; i < lenMov; i++){
qtY = parseInt(i / 3) * yHeight2;
qtX %= (xWidth2 * 3);
のループや,実数を整数変換,剰余などのコマンドが
javascriptであれば直ぐに書けるのですが,純正AppleScriptだと
いちいちネットを検索しないと無理,ということです。
>>299
今回は使用しませんでしたが
Path (quickTimePlayer.documents[0].file())
finder.move(f,{to:desktop,replacing:false})
というような書き方ができることを知って,驚きました。
自分ではこのような複雑なスクリプトを書けませんが
意味ははっきりと理解できます。
時間を使ってスクリプトを作成していただき
本当に感謝しております。 >>303
>いつも適当にやってるし
perlを長年使用していた私は,pythonに乗り換える時に
「適当にやって」も上手くいきました。
ところが大昔から時々,AppleScriptを利用してきており
かつ,JavaScriptを頻繁に使用している私には
>>299, >>300
で紹介していただいたスクリプトを全く独力では(どんなにネットを検索しても!)
書けない状況です。
自分では書けませんが,読んで内容は理解できるし
とにかく >>299 のようなスクリプトはカッコいいです!
30年以上Macを使用していて,JavaScriptを愛していますが
久しぶりにシビれました! >>311
>//次のtrue以下のコマンドを実行しないと,エラーが出る!?
上記の”You don't have permission"エラーには最後まで悩まされましたが,
>>299
のスクリプトを何度か読み返して,Path (…)を実行することで
「true以下のコマンドを実行」しなくても,”permission”エラーを回避することができました。
ネットで検索すると,AppleScriptで書く場合には
set srcFileRef to (open POSIX file srcFileString)
で”permission”エラーが回避できるところまでは調べられましたが
それをjavascriptでどう書きなおすのかが,分かりませんでした。
スクリプト >>299 は,本当に役に立ちました!
貴重なスクリプトを提供していただき,ありがとうございました。 Location Helperを使わない逆geocodingのやり方が分かる方はいますか? Google map APIを簡単に使えるようにするのがそのソフトらしいのだけれど、APIの有料化云々で使えなくなったのです。
macOSにもlocation managerなるAPIがあるらしいのですが、cocoaに慣れていないのでうまく呼び出せません。
やりたいことは、緯度経度から住所への変換です。 残念ながら CLGeocoder reverseGeocodeLocation の結果を返してくれるのはBlocks(クロージャ、無名関数)しかなかった。セレクタ(メソッド)に返してくれるのもあればよかったんだけどね。もしくは、AppleScriptObjC/JXAがBlocksをサポートしてくれれば
Xcodeでそんなコマンド/ヘルパーアプリを書く、swiftコマンド使ってでSwiftをスクリプト的に書く、Google Maps APIを自分で使う
あたりかなあ >>319 みたく、メソッド(デリゲート)で返してくれればいいのに、「逆」も。まあ、Objective-C/SwiftだったらBlocksとメソッド両方あったらどっち使うと言ったらBlocksを使う、Blocksしか使わないけどw
AppleScriptObjC/JXAがBlocksをサポートしてくれれば、いやしてくれw つまり現状では難しいということでしょうか。
Cocoaをよくわかっていないので、紹介先も半分くらいしか理解できませんでした。 ああ、「逆」も じゃなく、「Geocoding」も か。「正」もBlocksしかないので、CLGeocoderのやろうwは
>>322
ちょっと難しいかなあ。Cocoaをちょっと勉強すればいいんじゃないのとは思わなくもないけどw
Google Maps APIならWeb APIというある意味一般的なのを使ってだけど(単にhttp呼び出し/取得)。準備とか面倒かもだけど >APIの有料化云々で使えなくなった
のじゃなくて、(API) Keyless での Google Maps API 利用はできなくなったね
Keyless access to Google Maps Platform is deprecated. Please use an API key 〜
Location Helperのサンプルに
-- These commands use 'Core Location'
ってあるのに、なんでそこがGoogle Maps APIなのかと思ったら、Location Helperの最新最後が出た時には、CLGeocoderなんて存在しなかったあたりっぽい
で、自分でAPI Key取得すれば、
https://stackoverflow.com/questions/52727698/google-reverse-geocode-multiple-coordinates-with-one-api-call
なんぞでできるよ(たぶん)。app_id= や app_code= なんぞがAPI Key(確かたぶん)。自分で取得した値にすれば動くだろう よくみたら
batch.geocoder.api.here.com
って、ナゾのサイトだったw まあ、それで(API Keyはそのサイトのなのかな)。Google Maps APIも同じようなのがたぶんあるだろう Google Maps API のはこれ
https://developers.google.com/maps/documentation/geocoding/intro#reverse-exampleintro#ReverseGeocoding
単にkey= に取得したAPI Keyを入れればいいんじゃね
コマンドでできるか(許可とかなんとかウザいwの対応するためにはヘルパーアプリじゃなきゃかな)と試したらコマンドでできた
https://ideone.com/0We7Hg
$ hogehoge 35.1707 136.8826
2018-12-28 17:33:56.830 YYYY[462:4851] 住所:(
2018-12-28 17:33:56.830 YYYY[462:4851] 〒450-0002
2018-12-28 17:33:56.830 YYYY[462:4851] 愛知県名古屋市中村区
2018-12-28 17:33:56.830 YYYY[462:4851] 名駅1丁目1
2018-12-28 17:33:56.830 YYYY[462:4851] )
な感じ。たったこれだけでいいんだからAppleScriptObjC/JXAでBlocksが使えれば/CLGeocoderのやろうがセレクタにも返してくれれば、AppleScriptObjC/JXAで完結するのにぃ display alertをtimeoutさせない方法って無いですよね?
ググるとwith timeout of 〜 secondsすればいいとかあるけど、Mojaveだとこれやってもgiving up afterやっても2分でtimeoutしちゃう あ、activateしてからdisplay alertすればtimeoutしなかった
背後でdisplay alertしたときだけ2分でtimeoutするのか…変な仕様だな AppleScriptの骨幹のApple Eventの仕様かな。Apple Eventのリクエストしてからそれのレスポンスが返るまでのタイムアウトがちょうど2分らしい、エラーメッセージもそういうメッセージ
バックグラウンドだとレスポンス返すとこまでは動かない(=displayまではしてない)からかな Apple Event timeout error はハンドリングできるので、activateがウザい(他になんかしているときに勝手にアクティベートされるのはウザい)からしたくなければ、timeout なら display alert を再び/繰り返すかなあ >>299
file()メソッドを使わせていただきましたので,その報告です。
複数のQuickTime動画を大型モニター4画面で同時自動再生(>>311,312,315)しています。
開いている複数の動画のパスを次のようなスクリプトで取得して保存しておきます。
このようなリストを複数作成しておけば
そのリストに指定された複数の動画を同時に開いて同時に再生できるので便利です。
var quickTimePlayer = Application('QuickTime Player');
quickTimePlayer.activate()
delay(2)
lenMov = quickTimePlayer.documents.length
console.log("333: " + lenMov)
for (i = 0; i < lenMov; i++){
___console.log(quickTimePlayer.documents[i].file())
} 画像ファイルの画像サイズを得てみる
// Image Events
ImageEvents = Application("Image Events");
function IEImageWidth(path) {
let image, dimensions;
if((image = ImageEvents.open(path)) == null)
return undefined;
dimensions = image.dimensions();
image.close();
return (dimensions.length == 0 ? undefined : dimensions[1]);
} // Spotlightのメタデータ。AppleScript(JXA)ではサポートしてない(?)のでシェルで
app = Application.currentApplication();
app.includeStandardAdditions = true
function SSMDImageWidth(path) {
let result = app.doShellScript("mdls -name kMDItemPixelWidth '" +
path.replace(/'/g, "\\'") +
"' 2>/dev/null | awk 'NF==3&&/^kMDItemPixelWidth/{if($3 != \"(null)\") print $3; exit 0;}'");
return (result.length == 0 ? undefined : Number(result));
} // Spotlightのメタデータ。Cocoa API直接
ObjC.import("CoreServices");
function MDImageWidth(path) {
let result = undefined;
let item, attributes;
if((item = $.MDItemCreate($.kCFAllocatorDefault, path)).isNil())
return result;
if(!(attributes = $.MDItemCopyAttributes(item, ["kMDItemPixelWidth"])).isNil()){
if((result = attributes.js["kMDItemPixelWidth"]) != undefined)
result = result.js;
$.CFRelease(attributes);
}
$.CFRelease(item);
return result;
} function run(input, parameters) {
result = [];
input.forEach(item => {
if((width = IEImageWidth/SSMDImageWidth/MDImageWidth(item.toString())) == undefined)
return;
result.push(width);
});
return result;
}
IEImageWidth:おっそ、まあ、画像ファイルを開いてなんちゃらやってだからこんなもんか
SSMDImageWidth:んー、おっそ。んー?
MDImageWidth:ゲロ速い。SSMDImageWidthから少しは速くなればいいかなと思ったら、ゲロ速い。SSMDImageWidthはいちいちシェル起動するからとかか
C関数まんま使えるのか、すげーな、AppleScriptObjC。BlocksもJavascriptのクロージャがそのまんま使えるのを最近知った。鬼金やな
鬼らしく、ミスったら簡単にScript Editor/Automatorクラッシュする/させることできるけどw [Mojave以降] AppleScript製アプリのアクセス許可のダイアログが毎回出るのを防ぐ
ttps://mac-tegaki.com/trouble-shooting/applescript-app-ask-permission-every-time.html
まだHigh Sierraなんですが
こんなの見かけたけどめんどいですね 許可したら システム環境設定 > プライバシ に登録されて「毎回」は出ないハズだよ
自動登録時にアクセス許可するアプリのチェックが付いてないとかじゃないのかな「毎回」は
だが、SIPもそうだが面倒なことが増えるねえ ■ このスレッドは過去ログ倉庫に格納されています