AppleScript アップル ..
2:sage
23/03/30 09:27:37.12 kX8I7vAN0.net
「発表8」で、JavaScriptでのQuickTime動画の操作でお世話になった者です。
macOS Ventura 13.2.1を使用してます。追加の質問です。
再生中のQuickTime動画のタイムコードを表示(取得)する目的で
次のスクリプト(1)を作成し実行しすると、スクリプトエディターの
「返された値」のタブには(2)のようなエラーが出ます。
currentTimeの値を表示(取得)する方法をご教示いただけると幸いです。
(1) スクリプト
quickTimePlayer = Application("QuickTime Player");
quickTimePlayer.activate();
console.log(quickTimePlayer.documents[0].currentTime);
(2) 「返された値」のタブ
app = Application("QuickTime Player")
app.activate()
app.currentTime.Symbol.toPrimitive()
--> Error -1700: タイプを変換できません。
/* */
結果:
Error -1700: タイプを変換できません。
3:名称未設定
23/03/30 09:53:37.18 TRfvmJOr0.net
.currentTime() じゃないの
これ読みなさい URLリンク(developer.apple.com)
4:sage
23/03/30 16:38:03.10 kX8I7vAN0.net
>>3
ご助言ありがとうございます。.currentTime() で見事に値が得られました。
「これ読みなさい」も読んでみます。
本来のJavaScriptとPythonを頻繁に使用しますが、()の有無によるget, setの
使い分けは、まったく使ったことがないため、ご指摘いただけなかったら
自己解決は絶対に無理でした。
5:名称未設定
23/03/31 11:55:38.36 vKM7biIA0.net
>本来のJavaScriptとPythonを頻繁に使用しますが〜
JavaScriptとPythonを頻繁に使用するがそれで使うライブラリ/フレームワークを調べようともしてないってことか
言い訳にならない言い訳をなぜしようとするのか
6:名称未設定
23/03/31 15:06:59.83 TkCwcdDa0.net
質問者には悪いけどまだそこまで学習できてないからだろう
おまえがすごいのは分かるけど全員がおまえのようにすごくはないってことだろう
むしろなぜそんなに追い込みたい?
7:名称未設定
23/03/31 15:16:23.14 QtRnibsT0.net
無意味なプライドは早めにへし折った方が後のためではある
8:名称未設定
23/03/31 16:10:40.47 uiczv8AF0.net
ブラック企業で新人研修とかやってそう
9:sage
23/03/31 17:43:25.36 qskCkcAt0.net
>>5
>ライブラリ/フレームワークを調べよう
JavaScriptとPythonはユーザー数が多いので、単純にエラーメッセージなどを
Google検索すれば、回答が出てきます。一方、ASのJavaScriptは、同じような
Google検索を実行しても、答えが出てこないため、これまでも皆様のご助言に
救われてきました。心より感謝しております。
(JavaScriptは20年以上、Pythonは10年以上、ASは25年以上使用し続けていて
このレベル(笑)です。)
10:名称未設定
23/03/31 17:54:04.01 N9rawXqw0.net
JXAは確かに情報少ないけど、
サンプルみてたら()つけるぐらいは試してみて良さそうなもの
ましてそれだけのプログラミング歴があるなら
11:sage
23/03/31 20:16:20.53 qskCkcAt0.net
>>10
>ましてそれだけのプログラミング歴があるなら
Python, JavaScriptは毎日平均2、3時間書き続けてますが
25年以上のASの方は1ヶ月に数時間というレベルで、どんどん
忘れていくばかりです。このスレッドで、これまで同じような質問をして
(「()をつける」など)ご迷惑をおかけして心よりお詫び申し上げます。
12:名称未設定
23/03/31 20:34:48.70 cbz9QJLh0.net
プログラミング歴を自ら出せるレベルじゃないと自覚してるなら、そうしなよ
言い訳が自分の為であって、なんら他人のためではない
タイプを変換できません ってことはそこのどこかの型がおかしいって推察できそうなもんだが、その自称歴からは
そこのどこかの型がおかしいってのも、JavaScriptの基本で調べられることであろうに
とか細かく言いたくはなるなw
13:名称未設定
23/03/31 20:39:14.32 FYqSHyf00.net
お粗末
14:sage
23/04/01 06:14:44.94 FJUfEib90.net
>>12
>どこかの型がおかしいってのも、JavaScriptの基本で
JavaScriptの型変換から類推して、いろいろとあがきました:
String(quickTimePlayer.documents[0].currentTime)
parseInt(quickTimePlayer.documents[0].currentTime)
' '.join(quickTimePlayer.documents[0].currentTime)
正解の()は、自分では全く思いつきませんでした。
15:名称未設定
23/04/01 11:08:00.02 uzMYvOEx0.net
typeof quickTimePlayer.documents[0].currentTime
() に決まってるだろ
typeof知らないでよくJavaScriptを頻繁にとか20年以上とかよく言うわ
16:名称未設定
23/04/02 12:26:43.22 ry1cBscG0.net
20年以上やってまだ初学者の勉強中を脱してないって
17:名称未設定
23/04/02 12:44:34.81 Sm5klonn0.net
只々スクリプトを読まずに横流ししてただけじゃねーか勉強もクソもあるかいなって
18:名称未設定
23/04/02 12:56:08.53 ry1cBscG0.net
勉強という姿勢はそもそも全くないのは今までのレスでわかってるよ
そういう意味じゃない
19:名称未設定
23/04/02 13:31:19.50 Sm5klonn0.net
意味なんてどっちでも良いけどvbaもluaもpythonもcもライブラリは型()やし、
あの質問はtbn初めてイチから書いた文章だと思う。
批判はしねぇけど長年やってきたと言う割には超基礎抜けしてるから
良く今まで指摘されなかったな/(^o^)\って感じ
20:sage
23/04/02 16:37:36.83 GzNiqVqQ0.net
>>19
>批判はしねぇけど長年やってきたと言う割には超基礎抜けしてるから
Mac歴は35年以上。元々はHyperCardというスクリプトから
始めましたが、それが消滅して、4th DimensionやAppleScriptを
使うようになりました。4Dは10年前にやめて、pythonやSQLiteに
乗り換えましたが、AppleScriptは今でも時々、使っています。
いつまで経っても素人レベルで申し訳ないです。老化のため、10年前に
できたことも「超基礎抜け」し始めています。
21:sage
23/04/02 17:01:19.93 GzNiqVqQ0.net
ChatGPTがpythonやJavaScriptのスクリプトを自動生成してくれる
ようですが、「私のパソコン内に保存された動画ファイルaaa.mp4を
QuickTimeで開き、1分10秒から再生するスクリプトを
書いてくれ」というチャットには、ChatGPTver.99でも対応
できないのでは?!
22:名称未設定
23/04/02 17:32:02.93 AXL0/p0g0.net
>>21
すぐ書いてくれましたよ
URLリンク(i.imgur.com)
23:名称未設定
23/04/02 19:05:09.17 5I5/ISZg0.net
>>20
マイコン世界のまま来たんだ…
>>22
開く訳ないんだよなぁ…
24:名称未設定
23/04/02 20:30:26.73 FscbEeZn0.net
DOSだとバッチ書くレベルってことか
25:名称未設定
23/04/02 21:03:49.94 AXL0/p0g0.net
>>23
え?当たり前だけどちゃんと動くけど?
スクリプト見たら分かるよね?
まさかパスそのままじゃないよね?
26:名称未設定
23/04/02 21:30:37.94 5I5/ISZg0.net
>>25
何年前のmac使ってるねんパス書いてみーや
27:名称未設定
23/04/02 22:37:13.87 0yf5gwxl0.net
>>26
いやいや、何いうとるねんw
28:名称未設定
23/04/02 22:47:21.97 Cquplh/30.net
>>23
マイコンの世界ママからというより、色々手を出すがどれもこれも何も身についてないって感じ
経歴を色々出す意味が全くわからんな。どれもこれも知見が全くない素人レベルでしかないだろうに
単にど素人ですって言われた方が...いやそれでも自分で何か色々したいなら勉強する姿勢を見せろってなるか
29:名称未設定
23/04/02 23:20:58.98 AXL0/p0g0.net
なんだろう酔っ払ってんのかな?
30:名称未設定
23/04/02 23:36:40.87 Czp/YtDG0.net
まあ、動かないことは動かなかったり
原因がパス形式がではなく、fileもしくはaliasが足りなくなくない?
AppleScriptではHFS形式が隠れデフォなのは前スレで話題にあったな
そうでなくても使うことがないのに、普通に目にするわな
Script Editorの結果表示とかで
31:名称未設定
23/04/03 03:50:16.77 XXLTJpsc0.net
>>30
ヒント与えちゃダメでしょ〜
コロンの付いたhfsパスではapfsコンテナを通過できなくてPOSIXに変える必要があるんだけど、
chatGPTチャンの"アレ"で完璧に動作するのはsierra以前になるのよね。
誰かさんの誇らしげな書き込みがどんな転末を迎えるか楽しみだったのにw
32:名称未設定
23/04/03 05:47:41.81 j1U2e0A30.net
ん?Veatura13.2.1でコロンのついたパスでも動作するけど?
POSIX形式のパスじゃなくても。
Macintosh HD:Users:ほにゃらら:Movies:aaa.mp4で
33:名称未設定
23/04/03 05:59:40.50 XXLTJpsc0.net
Veatura…?
34:sage
23/04/03 11:32:15.05 bEtEcRxy0.net
>>22
>すぐ書いてくれましたよ
驚きです! 対話を続けて「今のAppleScriptをJavaScriptに
書き換えてください」とChatGPTへ返答すると、ChatGPT は
JavaScriptで書き直してくれるのでしょうか?
JXAのJavaScriptは、学習するデータが他の言語より少ない
はずなので、ChatGPTが正しい回答をするのは難しいと予想してますが
ChatGPTの進化は「マイコンの世界ママ」の老人の予想を遥かに
超えてるんですかね?
35:名称未設定
23/04/03 12:32:56.52 VRS4RdW80.net
マイコンの世界ママでもない単なる勉強嫌いのくせに
ホンマこの老害は老害らしい
36:名称未設定
23/04/03 12:34:32.64 VRS4RdW80.net
× 学習するデータ
○ 問題の答えを教えてくれる
37:名称未設定
23/04/03 12:42:06.18 VRS4RdW80.net
>>31
>コロンの付いたhfsパスではapfsコンテナを通過できなくてPOSIXに変える必要があるんだけど、
違うんじゃね
MacOSXになった頃から、MacOSXのAPIはPOSIXパスのばかり、HFSパスを受け取れるのはMacOSの頃のAPI(Carbon)だけだったような
aliasはMacOSの頃のAPIなので、名残でHFSパスの方になるという。ファイルシステムは無関係で、APIの問題。AppleScriptはまた別の問題でもある
間違いは素直に認めような。気持ち悪いw
38:名称未設定
23/04/03 12:50:58.77 VRS4RdW80.net
>>36
>学習するデータ
ああ、AIのか
トンチキなレスだったな。まあ似たようなもんだがw
39:名称未設定
23/04/03 13:04:03.90 XXLTJpsc0.net
>>37
お前それだけツラツラ書いときながら馬鹿だろ…
>MacOSXになった頃から、MacOSXのAPIはPOSIXパスのばかり、HFSパスを受け取れるのはMacOSの頃のAPI(Carbon)だけだったような
path to meは一体何だよ(笑)venturaでも稼働するぞ
>aliasはMacOSの頃のAPIなので、名残でHFSパスの方になるという。ファイルシステムは無関係で、APIの問題。AppleScriptはまた別の問題でもある
エイリアスだけじゃねーぞ、お前一体何食ったらそんな脳みそ小さくなるんだ
40:sage
23/04/03 13:05:20.14 bEtEcRxy0.net
以前の私は、掌田 津耶乃氏の書籍でAppleScriptの
勉強をしていた時期もありますが、2002年以降日本語での
書籍が消滅して、私のような素人がAppleScriptを学ぶのは
難しくなってきたと感じておりました。しかしChatGPTが >>22 の
ような見事なスクリプトを作成する時代が来たので
「単なる勉強嫌い」でもAppleScriptに触れる機会が
増えそうです。
41:名称未設定
23/04/03 13:09:12.03 VRS4RdW80.net
>>39
「もちろん」AppleScriptもMacOSの頃からなので、方々でHFSの名残はある
aliasは端的にMacOSの頃のAPIを「使うしかない」という代表
「AppleScriptはまた別の問題でもある」はそういう意味だよ
レスの趣旨は端的にはファイルシステムなんて関係ないよ、何言い出してるのってってことなんだがw
42:名称未設定
23/04/03 13:18:41.24 VRS4RdW80.net
>>41
>HFSの名残
HFSパス形式の名残
それもある意味単なる文字列でしかなかったり。そうでなかったり
>何年前のmac使ってるねんパス書いてみーや
と言っていたくせにw単なる 動かしてみーや ではなく
明らかに間違いかあえてミスリードする根性悪だな
前者だったら後のレスが根性悪すぎでどっちにしろ根性悪だなw
43:名称未設定
23/04/03 13:50:15.40 XXLTJpsc0.net
前書き。
そんだけ連投しといて書いてる事が何1つの意味が無いのはあんたの特技か。
落ち着ついてよく読んでよく"考えて"書け。
初めて見たぞ、全部が全部間違えてるなんて
重複もあるけど一つ一つ書くからね
>>37
>carbonだけだったような
>>39で書いた通りhfsパスで取得するライブラリが残ってます。
と言うかposix指定しないと基本的にhfsパスです。
>>41
>「もちろん」AppleScriptもMacOSの頃からなので、方々でHFSの名残はある
名残ではなく下位互換。
>レスの趣旨は端的にはファイルシステムなんて関係ないよ、何言い出してるのってってことなんだがw
ExFatはPOSIX pathプロパティのみ受け付けます。
>>42
>HFSパス形式の名残
下位互換です。関数によってhfsパスを要求する事があります。(特にNS系)
>前者だったら後のレスが根性悪すぎでどっちにしろ根性悪だなw
結果彼はventura(veanturaだから私の知らないosかもしれません)のapfsに見事hfsパスを書きました。
初志貫徹ぷりが良いところです。あなたの様な気持ち悪さが無いのがものすごく好きになれそうです
44:名称未設定
23/04/03 14:14:58.87 VRS4RdW80.net
>>43
>>carbonだけだったような
>>39で書いた通りhfsパスで取得するライブラリが残ってます。
と言うかposix指定しないと基本的にhfsパスです。
path to me って拘るが、それも単にAppleScriptの話だろうが。ライブラリ??
API=OS APIの話をしてるんだが。ファイルシステムの話を言い出してるのにわからないのか。Carbonって言われてもわからないようなのか...??
AppleScript -> OS API -> ファイルシステム
HFS形式/POSIX形式をどう扱うかはAppleScriptの中での話でしかない、AppleScriptの実装がどのOS APIを使うかだが、MacOSXの主流はPOISX形式でしかないってこと。AppleScriptの実装で場合によってはHFS形式/POSIX形式相互変換もしてるだろう
もちろんHFS形式とPOSIX形式の変換をするAPIはあるかもね(使ったことはないけど)
APFSが出る前、HFSが出る前からの話でファイルシステムなんて関係ない、MacOSXの主流はPOISX形式って話での話だからな
>hfsパスを要求する事があります。(特にNS系)
>特にNS系
特にNS系????あったっけ。単なる互換性の極一部ではなく??なに?
(NS = NeXT Step だよ。イミフw)
名残でもあるな。ScriptEditorの結果表示は別にPOSIX形式で表されて何も困らないだろう
いや、今時、HFS形式ではほぼあんま書かんだろうから(お前もそう言ってるようだけど)
>結果彼はventura(veanturaだから私の知らないosかもしれません)のapfsに見事hfsパスを書きました。
なに言い出してるの??
「彼」は書いてないだろうし、そもそもそこの文が何を言い出してるのか全くわからんわ
気持ち悪すぎwww
45:名称未設定
23/04/03 14:20:37.65 VRS4RdW80.net
>>44
>APFSが出る前、HFSが出る前からの話でファイルシステムなんて関係ない、
APFSが出る前、HFSしか(?)の頃からの話で、ファイルシステムなんて関係ない、
46:名称未設定
23/04/03 14:26:22.07 XXLTJpsc0.net
>>44
しっかり読んだら只の口ごもりな愚痴やん。
お前マジで何しに来たん?
47:名称未設定
23/04/03 14:38:27.43 VRS4RdW80.net
>>46
口ごもりwww
ながーくなるからある程度「知ってるだろう」と言う前提になるだけだよ
トンチンカンなこと言ってるから違うよってのと、なんか無茶苦茶絡むから違うよって言ってる。根性と絡み方がキモいってお話をしてるんですけどw
でさー、ちょっとマニアックな調査しようとして、同じようなスクリプトを再度書いてたんだわ
そしたらさー、fileもaliasも無くても動いてしまったんだわぁ
wwww
>>32もそういうことだったのね
いや、本当に、>>30はfileとaliasを付けた外したで明らかに動く動かなかったんだけど
なんかあるなあwなんなんかわからんけど。まあ、確実にはfileとaliasは付けましょうってことで
(なんか色々残念だったなwwwww)
48:名称未設定
23/04/03 14:40:31.00 XXLTJpsc0.net
お前大丈夫?
49:名称未設定
23/04/03 14:41:24.62 VRS4RdW80.net
何が?
お前が大丈夫じゃないようけど?w
50:名称未設定
23/04/03 14:43:48.90 VRS4RdW80.net
>誰かさんの誇らしげな書き込みがどんな転末を迎えるか楽しみだったのにw
www
51:名称未設定
23/04/04 01:41:47.93 eFMJagTS0.net
世の中にはとんでもねーばかがいるもんだ
52:名称未設定
23/04/04 07:56:37.11 OtoLQTv90.net
過去にも居たし適当に遇らえばいいわな
53:名称未設定
23/04/04 08:06:17.48 XnwutBKq0.net
ついていけなくなって爆発して消えるのもいつものこと
54:名称未設定
23/04/04 10:51:47.66 XL8NSFAq0.net
どうせステレオタイプとか妄想人は救われないから
気づいたら距離置くわ
55:名称未設定
23/04/08 02:06:13.60 CZSkcLV50.net
素人なら素人らしくしておけばいいのに
56:名称未設定
23/04/08 03:39:32.48 t6uCb7rN0.net
だよな
57:名称未設定
23/04/08 08:41:38.77 QJaO4tpE0.net
頭悪い人が頭良い様に振る舞えるわけ無いんだ
58:名称未設定
23/04/09 14:24:24.17 Ul464Pms0.net
chatgptに勝った気になったの?😄
59:名称未設定
23/04/10 00:07:25.82 EjEWjgVm0.net
自覚のない無知が知ったかで妄想ばら撒いただけ
馬鹿の典型
60:名称未設定
23/04/10 00:29:03.05 RoicIzvd0.net
今回は馬鹿が沢山いたね
61:名称未設定
23/04/10 00:40:23.91 VlLpsHnQ0.net
時間を無駄にした老人とAI信奉者と連投妄想奇人とよりどりみどり
62:名称未設定
23/04/13 19:06:28.27 TGWJwIAp0.net
人をバカにしちゃいけないよその行為がmacを使うヤツは愚か者だと紹介していることになる
63:名称未設定
23/04/13 19:11:05.11 7PLQR+JG0.net
まるでmacではない何か、なんでもいいが、ではそんなことは無いような言いよう
この頭の悪さはいったい
64:名称未設定
23/04/13 19:17:29.74 VBxbyMck0.net
一定の悟性持ってなきゃ扱いは最低なのは普通でしょ
学習しなと促した結果が未成熟AIと連投に縋ったんだから
65:名称未設定
23/04/16 22:10:18.01 EbBqcrxS0.net
前スレでVenturaのシステム設定でpaneが使えなくなってるって書いたけど最新13.3.1だと使えるようになってる
ただ書き方はちょっと変えないといけない
tell application id "com.apple.systempreferences"
--set current pane to pane "com.apple.settings.PrivacySecurity.extension" --これだとエラーになる
set current pane to (first pane that id is "com.apple.settings.PrivacySecurity.extension")
end tell
66:sage
23/04/17 06:20:07.94 95ExQ/iX0.net
配列listXには、複数のフォルダーのフルパスが登録されてます。これらのフォルダーを
すべてcolumnViewOptionsで開きたいのですが、次のスクリプトだと失敗します。
ご指導いただけると幸いです。(macOS: 13.3(22E252))
var finder = Application('Finder');
finder.Prerences.foldersOpenInNewWindows = true
finder.Prerences.columnViewOptions = true
listX.forEach(function(element){
fullPath2 = Path(element);
finder.open(fullPath2);
});
67:名称未設定
23/04/17 07:49:27.46 LPPIkgZT0.net
>>66
気づいていると思うけど
finder.Prerences.❌
finder.Preferences.⭕
それにjavaはここじゃ無いよ
68:名称未設定
23/04/17 07:52:34.36 LPPIkgZT0.net
※javaでも動きませんが
69:名称未設定
23/04/17 08:08:16.42 2fvrFwbb0.net
r/o
70:名称未設定
23/04/17 09:26:01.15 hgN5L63o0.net
>>66
finder.finderPreferencesな。ちゃんと用語説明に書いてあるから。
だが結局は>>69の通りr/o
71:66
23/04/17 10:47:39.46 sIZO2aSy0.net
>>67-70
ご指導、ありがとうございました。
>それにjavaはここじゃ無いよ
jxaは、ここのスレッドでよろしいでしょうか?
72:名称未設定
23/04/17 11:10:36.73 LPPIkgZT0.net
好きにしていいけど2015年以降音沙汰ない上に固有ライブラリは
めちゃ少ないから聞くまでも無いと思う(基本はjavaだからjava行ってこい)
URLリンク(developer.apple.com)
73:名称未設定
23/04/17 11:15:38.22 hgN5L63o0.net
java java 言ってるけど、javaとjsは別物だからな
それにjs関係のスレで聞く方が内容的にスレ違いなんで聞くとしたらココでしょ
74:名称未設定
23/04/17 18:50:24.27 370gsz9h0.net
本当はAppleScriptでやりたいのに、AppleScriptでサポートせずJXAに丸投げのもあるし、AppleScriptでJXA書ける呼べるからなあw
言語が違うだけでやりたい本質は同じだよね
75:名称未設定
23/04/30 16:28:13.17 VVEg+A200.net
ASで tailコマンドみたいなの出来ませんか
76:名称未設定
23/04/30 17:59:25.76 f+sT1PAL0.net
do shell script "tail ..."
77:75
23/04/30 18:31:57.54 VVEg+A200.net
do shell script 使わずに AS のみで tailを取りたい
before 使えば1行目取れるから最終行なんとかならん
78:名称未設定
23/04/30 20:52:58.22 5JkMKu+/0.net
AppleScriptで位置を指定するときに負数の場合は後ろからというのは何のときだったかなあ
そゆことでしょ。何のときだったけ
79:名称未設定
23/04/30 20:57:10.58 5JkMKu+/0.net
ああ、thru の時か、これでいいんじゃないの??
何に使いたいのかさぱりだから、これではダメかも知れんが
80:名称未設定
23/04/30 21:11:25.36 5JkMKu+/0.net
あ、thru だけじゃなく、普通の位置指定でもだな
位置指定でマイナスは後ろか。thruはそれに則ってるだけとも言えるか
81:75
23/04/30 22:15:01.85 VVEg+A200.net
追加さてれ行くファイルの差分を取りたいんです
無限ループで飲み込むのにdo shell script使ってます
ASで直接お尻から読めたら速くなりませんか
82:名称未設定
23/04/30 22:52:31.72 5JkMKu+/0.net
イマイチ何したいのかわからんw
速くなるかもしれないしならないかもしれない
読むファイルのサイズ、およびファイル数、差分判定のステップ数によるだろうしな
83:名称未設定
23/04/30 22:56:11.69 5JkMKu+/0.net
ああ、追加されていく行 なのか
だったら、元のファイルの バイト数 以降のを read で読めばいいだけのような、後ろからとはちょっと違うような。元のはバイト数ではなく行で管理保存してるとかか
シェルスクリプトでもそう変わらないような
84:名称未設定
23/05/01 12:37:48.49 ujp/auQj0.net
URLリンク(developer.apple.com)
read ... [from ...] [using delimiters ...]で十分いけんじゃないの
あとget eof ...くらい
85:75
23/05/01 21:39:22.89 etCKBamX0.net
read f from eof to -10 using delimiter "
"
バイト単位しか取れません、行で取りたい
86:名称未設定
23/05/01 22:20:45.68 4W7KdNjR0.net
行で取りたい時点で、ファイルの最初から読まなければならない
readで全て読んでその後でもそれほど変わりはないだろう。
バイト単位ならまだ読み飛ばしはできる、効果は顕著にもなる期待はできるがな
87:名称未設定
23/05/01 22:41:25.01 4W7KdNjR0.net
>行で取りたい時点で
(先頭からの)行番号行数を指定したい時点で
が、より正確か
後ろから何行文ファイルから読むというのは逆に面倒なのでサポートしてなくても何ら不思議ではないな
88:名称未設定
23/05/02 00:18:27.47 HmUjTxkj0.net
> from eof to -10
なんでこんな少量ぽっち読んでんの、ていうか値の根拠はなに
毎度小出しな感じがしてなんかイマイチ
89:名称未設定
23/05/02 01:40:22.72 ZrCjAFUj0.net
それはさすがに単なるテストだろってわかりそうなもんじゃないの
10行分取れなかった、10バイトだったってだけでしょ
それで行単位で指定できるのかの確認はできるんだから、何をつっこんでるんだかイマイチ
90:名称未設定
23/05/02 01:51:47.88 ZrCjAFUj0.net
Script Editor の Library から見る説明では、明確に byte と書いてるのは for でしかない(関連性ある for from to で)が、
>>84のではちゃんと逐一 byte って書いてるね。書いてるんだからそうでしかないのはまあ当たり前かな
91:名称未設定
23/05/02 03:00:43.03 tlim7HQJ0.net
>>89
俺にはわからん、ろくに説明なしじゃ
わからんから tail -f ぽいの。欲しいのと全然違うだろうけど
a.scptとして保存したらターミナルで osascript a.scpt /var/log/system.log 等
property LINEMAX : 2048 -- sysctl user.line_max
global lastpos
on run argv
set lastpos to 0
set f to POSIX file (item 1 of argv)
repeat
set ll to getnewlines(f)
if ll is not {} then
repeat with l in ll
log l
end repeat
else
delay 1
end if
end repeat
end run
-- 続く
92:名称未設定
23/05/02 03:01:22.07 tlim7HQJ0.net
-- 続き
on getnewlines(f)
if lastpos = 0 then
set eofpos to get eof f
if eofpos > LINEMAX * 11 then
set pos to eofpos - LINEMAX * 11
else
set pos to 1
end if
set ll to read f from pos using delimiter "
"
set lastpos to eofpos
if (count of ll) > 10 then
set ll to items -10 thru -1 of ll
end if
else
set eofpos to get eof f
if eofpos > lastpos then
set ll to read f from lastpos + 1 using delimiter "
"
set lastpos to eofpos
else
set ll to {}
end if
end if
return ll
end getnewlines
93:名称未設定
23/05/02 06:54:19.12 w1r2s5yA0.net
延々となスクリプトを何書いて何したいんだかだな
94:75
23/05/02 19:42:26.78 W1Rq2hwb0.net
>>91
ありがとうございます、良いヒントになりました
ループ内のシェル呼び出し減らせそうです
正規表現やワンライナーだけシェルに任せます
95:名称未設定
23/05/12 03:06:06.63 YVxalhzE0.net
property kBackwardsReadBlockSize : 1
on openBackwardsBlockReading(theFile)
script instance
property _fileRef : open for access theFile
property _readPos : (get eof of _fileRef) + 1
property _pendingPrevious1stItem : ""
on closeFile()
try
close access _fileRef
end try
set {_fileRef, _pendingPrevious1stItem} to {missing value, missing value}
end closeFile
96:名称未設定
23/05/12 03:06:13.77 YVxalhzE0.net
on readNext()
if _readPos is 1 then return missing value
local readLen, readItems
set readLen to kBackwardsReadBlockSize
if _readPos is not greater than readLen then set readLen to _readPos - 1
set _readPos to _readPos - readLen
set readItems to paragraphs of (read _fileRef from _readPos for readLen)
set last item of readItems to last item of readItems & _pendingPrevious1stItem
set _pendingPrevious1stItem to ""
if _readPos is 1 then return readItems
set _pendingPrevious1stItem to first item of readItems
if (count of readItems) is 1 then return {}
return items 2 thru -1 of readItems
end readNext
end script
return instance
end openBackwardsBlockReading
97:75
23/05/14 22:57:40.73 739XKzPu0.net
>>95
素晴らしいです、シェル呼び出しの30倍以上速いです、早速使わせて頂きます
シェル呼び出しは負荷が高いのでASで全て表現出来れば良いのですが難しいですね
コマンドプロセス確認の取得方法がわからないので ps aux
不特定行に現れる特定の文言があればエラーにする部分は sed
前後する数値の特定は sed と uniq と perl ワンライナー <= こいつの負荷が高い
ループ内のシェル呼び出し消せたので随分軽くなりました、感謝です
98:名称未設定
23/05/15 01:00:01.29 9nxQW5R50.net
いつものジジイ臭
99:名称未設定
23/05/15 11:52:21.70 Ogx1FMJG0.net
だって5chだもの
100:名称未設定
23/05/15 12:51:37.06 beIsdW340.net
小学5年生よりバカだな
101:名称未設定
23/05/15 17:50:33.79 rZq5I0a40.net
誤った歳の取り方、馬鹿な誤魔化しの人生が透けて見える感じ
102:名称未設定
23/05/19 20:22:12.13 6RV5/2XX0.net
ヒント出してるのに、コードイメージ出来ないとは、薄っぺらい人生が透けて見える感じ
103:名称未設定
23/05/20 00:28:30.48 McRngYgT0.net
それを本人が気づいてないんだからそのまま
余計な口を開くほど薄っぺらさが出るだけなのにな
104:名称未設定
23/05/20 12:13:26.64 mYrM2yKk0.net
ぷっ笑 反応速いなー、寂しいんだね
しばらく付き合ってあげようか?
105:名称未設定
23/05/20 14:55:05.65 V3xuHO1C0.net
キモさ満点
106:名称未設定
23/05/20 21:10:19.46 qK358pVE0.net
そらこんなマイナーな言語のスレに貼り付いて……いないな
107:名称未設定
23/07/27 17:09:09.76 eQcQ7Kl+0.net
Venturaで
システム設定.app>一般>ストレージ>すべてのボリューム
を開くスクリプトって可能でしょうか
108:名称未設定
23/07/27 17:14:56.53 iim/O9ns0.net
頑張れ
109:名称未設定
23/07/27 17:34:07.43 ApvlEs4i0.net
うんこぶりぶり
110:名称未設定
23/07/27 17:54:15.26 um6pLo6D0.net
>>107
tell application "System Events" to get every disk
111:名称未設定
23/07/27 18:42:45.19 eQcQ7Kl+0.net
ありがとうございます
>>108さんのアドバイスで解決しました
頑張る、なんてコマンド、リファレンスのどこにも書かれていない...(´・ω・`)
on run {input, parameters}
tell application "System Settings"
activate
reveal pane id "com.apple.systempreferences.GeneralSettings" -- works as expected
delay 1
tell application "System Events"
tell process "System Settings"
click button 3 of group 1 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1 of window "一般"
delay 4 --接続している外部機器がスリープしている場合、すべてのストレージ機器がウェィ苦するまでに要する時間にする
click button 1 of group 1 of scroll area 1 of group 1 of group 1 of group 2 of splitter group 1 of group 1 of window "ストレージ"
end tell
end tell
end tell
end run
ショートカット化して「cmd-F19」で起動可能にして便利になたよ(`・ω・´)
112:sage
23/09/09 09:06:08.82 chRMarHQ0.net
JavaScript(JXA)をAutomatorで効率的に実行する方法についての
質問です。現在は同じ内容のJavaScript(JXA)を
「ライブラリー==>JavaScriptを実行」で複数回
次のようにAutomatorに書き込んでいます。
function run(input, parameters) {
[50行の同一のJXA]
return input;
}
この[50行の同一のJXA]を外部ファイルに書き出して,それをAutomator
から実行する(呼び出す)方法はございますか?
なお「同じ内容のJavaScript(JXA)」の前後には,Automatorで
JXA以外のコマンドを実行しております。
113:名称未設定
23/09/09 11:03:09.67 X6t5qLrj0.net
URLリンク(developer.apple.com)
Libraries
To use scripts as libraries, store them in ~/Library/Script Libraries/.
これがそのまま通じるようだったけど
114:sage
23/09/09 14:35:16.01 chRMarHQ0.net
ご教示ありがとうございます。(1)フォルダーを作成し:
mkdir ~/Library/Script Libraries/
(2)そこにQuickTimeを制御するplayQt.scpt起き
function playMov() {
quickTimePlayer = Application("QuickTime Player");
quickTimePlayer.activate();
途中省略
}
(3)Automatorの方には次のようなJXAを書き込み
function run(input, parameters) {
toolbox = Library('playQt');
toolbox.playMov();
return input;
}
Automatorを実行すると,「Automatorが予期しない理由で終了しました」となりエラーが発生しました。
試しに(2)のスクリプトを次のように実質空にしても
function playMov() {
;
}
同じエラーメッセージが発生するので,(3)に問題があるようです。
115:名称未設定
23/09/09 16:35:45.33 GVt2qfmi0.net
(3)の中の2行は、Automatorでなしに、スクリプトエディタ上では動くの?
toolbox = Library('playQt');
toolbox.playMov();
116:sage
23/09/09 20:01:13.47 chRMarHQ0.net
>>115
>スクリプトエディタ上では動くの?
スクリプトエディタ上で(3)を実行すると
「スクリプトエディタが予期しない理由で終了しました。」と
エラーメッセージが表示され,クラッシュします。
2行目のtoolbox.playMov();を削除して
toolbox = Library('playQt');だけを実行すると
クラッシュはせず,エラーメッセージも表示されませんが
(予想通り)何も起こりません。
117:sage
23/09/09 20:40:36.00 chRMarHQ0.net
>>113
ここに紹介されているtoolbox.scptをコピペして
スクリプトエディタから,同じく紹介されている:
toolbox = Library('toolbox')
toolbox.log('Hello world')
を実行しても,「スクリプトエディタが予期しない理由で終了しました。」
と表示されて,クラッシュします。
どこかで致命的なミス・思い違いをしているかもしれません。
118:名称未設定
23/09/10 07:43:40.20 63TOklfs0.net
JXAの実行環境がぶっ壊れてるのかも
作りかけのJXAスクリプトであっけなくクラッシュしてしまうことは時々あるけど、今回のスクリプトは間違ってるわけでなし、うちでは動く
119:118
23/09/10 08:17:24.02 iEK5/xd+0.net
ご報告
別OSで試してみたらクラッシュしたw
どちらも古いけど
High Sierraでは動く
Catalinaではクラッシュ
120:名称未設定
23/09/10 08:34:25.45 uTX78pbU0.net
ググったら解決策があった
URLリンク(stackoverflow.com)
scptでなく、scptd (Script Bundle)で保存
これでCatalinaで動いた
121:名称未設定
23/09/10 08:39:54.78 uTX78pbU0.net
ID変わったけど同じ者
122:117,116
23/09/10 13:20:58.13 zhde7ZtV0.net
>>120
ありがとうございます。家に帰り次第,試してみます!
123:sage
23/09/10 19:20:04.66 gle52nXw0.net
>>122
「実効専用」の「scptd (Script Bundle)で保存」して
見事,動きました!!! Ventura13.4.1では
「実効専用」のチェックボックスを
チェクしないと,動かないようです。
124:123
23/09/14 09:34:29.15 LjTlinaE0.net
(2)のJXAで,動画ファイル/Users/taro/13.mp4を開こうとすると,
(1)「書類“13.mp4”を開けませんでした。
このファイルはQuickTime Playerと互換性がありません。」
というエラーが表示されます。
(2) quickTimePlayer = Application("QuickTime Player");
quickTimePlayer.activate();
result1 = quickTimePlayer.open("/Users/taro/13.mp4");
しかし(2)を実行する直前に:
(3) この動画ファイル13.mp4をQuickTime Player.appで開き
次にQuickTime Player.appを終了(Quit)する
作業を行い,その後に(2)を実行すると,(1)のエラーは表示されずに
正常に動画13.mp4が再生されます。
ご教示いただきたいのは,(3)の作業を行わずに,直接(2)の
ようなJXAだけで正常に動画13.mp4を再生する方法です。
よろしくお願いします。
125:名称未設定
23/09/14 10:38:53.31 a3ZfMKVf0.net
うちは出たエラーは違うけど、これかな Path
URLリンク(developer.apple.com)
126:名称未設定
23/09/14 10:42:09.43 eXesN4Bq0.net
>>124
>quickTimePlayer.open("/Users/taro/13.mp4");
quickTimePlayer.open(Path("/Users/taro/13.mp4"));
JXAでファイルパスは単なる文字列表現で済ますのではなく、Pathで明示した方がいいだろう
127:名称未設定
23/09/14 10:42:55.50 eXesN4Bq0.net
>>125
被った。そだねえ
128:123
23/09/14 10:56:24.98 LjTlinaE0.net
無事解決できました。いつもありがとうございます!
129:名称未設定
23/09/23 00:20:22.81 IY+9UYOO0.net
変数が 0 なら 1 を代入するスマートな方法ある?
130:名称未設定
23/09/23 01:55:15.11 lC4/k50A0.net
try
A * 1
on error
set A to 1
end try
---
item ((A / A) + 1) of {1, A}
set A to result
131:名称未設定
23/09/23 04:11:04.50 sFUrl3EY0.net
結局ベタが一番な気が
if x is 0 then set x to 1
x = x === 0 ? 1 : x;
132:名称未設定
23/09/30 20:46:51.36 7T7n9Pw50.net
Dockから特定のアプリを削除
Dockに特定のアプリを登録
これわかんねー
133:名称未設定
23/10/08 02:59:22.19 bQMpxACO0.net
DockもAppleScript対応して欲しいもんだ
134:名称未設定
23/10/15 19:43:16.88 YNkZQK1R0.net
SonomaでNight-shiftをapplescriptで実行する方法ご存知ありませんか?
URLリンク(github.com)
これは試してみましたがダメでした。
本当は「カラーを反転」の状態でNight-Shiftをやりたいのですが
デフォルトではNight-Shiftで自動的にカラー反転が戻ってしまいます。
そこでカラープロファイルを2つ用意してトグルするともう一度反転が起こって
Night-Shiftとカラー反転を両立できるところまで分かっているのですが、
それをスクリプトで実行したくて質問したものです。
135:名称未設定
23/10/16 02:49:48.86 +ATjpBY00.net
GUI scriptingでコントロールセンターを操作するとか
136:名称未設定
23/10/16 14:10:09.50 QTXD08XT0.net
URLリンク(wktk.jp)
とかいうのもあるな
137:名称未設定
23/10/19 13:33:15.36 lQy+IAGn0.net
ご返事ありがとうございます。
Python は無知ですのでハードルが高そうですけど試してみます。
138:名称未設定
23/10/20 03:43:56.56 /Qbn3qeO0.net
そこのグレースケールを操作するところの話、JXAで
var bundle = $.CFBundleCreate($.kCFAllocatorDefault, $.NSURL.fileURLWithPath('/System/Library/PrivateFrameworks/UniversalAccess.framework'));
var UAGrayscaleSetEnabled = $.CFBundleGetFunctionPointerForName(bundle, $('UAGrayscaleSetEnabled'));
ObjC.bindFunction('UAGrayscaleSetEnabled', ['void', ['bool']]);
$.UAGrayscaleSetEnabled(true);
139:名称未設定
23/10/22 11:04:42.65 ujAeEBxd0.net
Night Shiftの設定、JXAで
ObjC.import('CoreBrightness') が使えなかったんでこんな風にしてみた
合ってんだか合ってないんだか
ObjC.import('objc');
$.NSBundle.bundleWithPath('/System/Library/PrivateFrameworks/CoreBrightness.framework').load;
$.CBBlueLightClient = $.objc_getClass('CBBlueLightClient');
var client = $.CBBlueLightClient.alloc.init;
client.setEnabled(true);
140:名称未設定
23/10/25 23:18:00.58 x0BI0MYx0.net
システム環境設定を開かずに優先する言語を逆順に入れ替えるJXA一行
$.NSLocale.setPreferredLanguages($.NSLocale.preferredLanguages.reverseObjectEnumerator.allObjects)
普段は英語を優先してて日本語にすることもあるものの、毎度システム環境設定を開いて入れ替えるのが面倒になった
なお10.13 High Sierraではメニューバーの時計の表示は(システム環境設定を開いて変更したときのように)連動して変わってくれないのが難点
141:123
23/10/27 10:02:02.02 YFWw4ZOQ0.net
>>134
>SonomaでNight-shift
画面の明るさの話題が出たので関連質問です。
スクリプトエディター.appの真っ白な背景色を
変更する方法などはございますでしょうか?
システム設定>アクセシビリティ>カラーを反転
だと,スクリプトエディターはダークになりますが
他のダークモード対応のアプリ・画面が白く輝き
目が疲れてしまいます。
142:名称未設定
23/10/27 10:46:31.09 gy+qqABI0.net
Script Debugger 8 試したら
8でDark Mode対応
試用期限20日後は"lite"モードになって使える
143:名称未設定
23/10/27 10:50:12.16 gy+qqABI0.net
> 試用期限20日後は"lite"モードになって使える
Dark Mode対応がどうなるかは不明
144:123
23/10/27 18:05:27.24 +VQCFrfI0.net
存在を知りませんでした! ここを見ると:
URLリンク(piyocast.com)
背景が黒にできるので,これを使います!
貴重な情報をありがとうございます。
145:名称未設定
23/11/03 23:21:28.92 J/5IhoXs0.net
ターミナルで
printf 'あ' | pbcopy -pboard find
ってやると検索文字に入るのにdo shell scriptだと入らないのなんなん
146:名称未設定
23/11/03 23:32:29.70 J/5IhoXs0.net
自決
これで逝けました
do shell script "export LANG='ja_JP.UTF-8'; printf 'あ' | pbcopy -pboard find"
147:名称未設定
23/11/11 16:52:53.29 FmhRWB130.net
JXAで、ObjC.import('signal')すると、定数宣言されてるsys_signame(やsys_siglist)が見えそうなんだけど、$.sys_signameでクラッシュしてしまって(Segmentation fault: 11)何もできない
どうにか中の文字列を読めないか悩んでたのがとりあえず解決したので記録(元々これ使って何がしたかったって訳でもなく、import関係なくなっちゃったけど)
結論としては、dlsym()の戻り値を本来の'void*'から'void**'に変えてみるとポインタが指す先の文字列を読めた('void*'のままだとポインタそのものは見えるけど、その先はどうにもできなかった)
なお、このimportで参照されるのは/System/Library/PrivateFrameworks/JavaScriptAppleEvents.framework配下、BridgeSupportCache下signal.plistで、sys_signame(やsys_siglist)のtypeは[32*]
元となるsignal.hでの宣言は
extern __const char *__const sys_signame[NSIG]; 等、内容は URLリンク(opensource.apple.com) のように
const char *const sys_signame[NSIG] = {
"Signal 0",
"hup", /* SIGHUP */
"int", /* SIGINT */ 等、これは/usr/lib/system/libsystem_c.dylib内にある
148:名称未設定
23/11/11 16:53:27.38 FmhRWB130.net
続き
読み出し例:
ObjC.bindFunction('dlopen', ['void*', ['char*', 'int']])
ObjC.bindFunction('dlsym', ['void**' /* 本来は 'void*' */, ['void*', 'char*']])
libref = $.dlopen('/usr/lib/libc.dylib', 2 /* RTLD_NOW */)
ptrref = $.dlsym(libref, 'sys_signame' /* または 'sys_siglist' */)
strs = []
for (i = 0; i < 32; i++) {
str = ''
for (j = 0; ; j++) {
if (ptrref[i][j] == 0) {
strs.push(str)
break
}
str += String.fromCharCode(ptrref[i][j])
}
}
strs.forEach((str, i) => console.log(i, str))
結果:
/* 0 Signal 0 */
/* 1 hup */
/* 2 int */ 等
他にも似たようなのあるけど、import用の.plistって、.hから機械的に変換、生成してるだけで、簡単に使えないのも混ざってるぽい
149:名称未設定
23/11/13 22:12:12.75 aSkuUmIr0.net
今更ながら前スレ スレリンク(mac板:669番) のJXA版
ObjC.import('AppKit')
ObjC.import('IOKit') // NX_KEYTYPE_SOUND_UP, etc.
ObjC.import('objc')
var fkey = $.NX_KEYTYPE_SOUND_UP
function fkeydown(fkey, down = true) {
var nil = $()
var flags = down ? 0xa00 : 0xb00
var event = $.NSEvent.otherEventWithTypeLocationModifierFlagsTimestampWindowNumberContextSubtypeData1Data2($.NSSystemDefined, $.NSZeroPoint, flags, 0, 0, nil, 8, ((fkey << 16) | flags), -1)
// $.CGEventPost($.kCGHIDEventTap, event.CGEvent)では動かない。無視される(システムログにエラー'Invalid event'が出る)か、クラッシュする
$.CGEventPost($.kCGHIDEventTap, event.performSelector($.sel_registerName('CGEvent')))
}
fkeydown(fkey)
fkeydown(fkey, false) // fkeyup
時々思い出しては解決できずにもやもやしてたけど、これでどうにか気が晴れた
150:名称未設定
23/12/14 13:14:31.45 zezJY19P0.net
MBPが壊れて買い換えて大幅に環境が変わったらAppletが動かなくなってた。色々影響あるのかな? すいません独り言の愚痴でした
151:名称未設定
23/12/15 08:32:16.45 PTesWRWe0.net
再保存、Script Editorで開いて保存しなければ動かないってあったな
152:名称未設定
24/03/03 04:30:45.67 Xj5rIMR50.net
iTermで現在のフォルダ名を記述するスクリプトを作りたいのですが
URLリンク(daeudaeu.com)
を参考に下記を実行してみましたが
動作してくれません。
どなたか解決方法ご存知ありませんか?
iTermがデフォルトのTerminalでなくても実行できるようにしたいのですが。
on run {input, parameters}
tell application "Finder"
set hfsCurrentFolder to insertion location as Unicode text
set currentFolder to get POSIX path of hfsCurrentFolder
end tell
set command to "cd " & currentFolder
tell application "iTerm"
do script command
activate
end tell
end run
153:名称未設定
24/03/03 09:46:55.58 ms+RoSBt0.net
iTermの用語説明を調べるなりURLリンク(iterm2.com)調べるなりした方がいいと思うけど
do scriptってTerminalの用語じゃないの
154:名称未設定
24/03/03 10:23:56.17 ms+RoSBt0.net
見たところcreate tabかcreate windowにcommand "command"あるけど、それを実行してもsession終わって閉じちゃうようだし、write text "text"の方かな
create window with default profile
tell current session of current window
write text "cd ~/Desktop"
end tell
とか
155:名称未設定
24/03/03 12:19:33.20 Xj5rIMR50.net
ご教示ありがとうございます。
下記を試してみましたが上手く行きませんでした。
mycommandをテキスト化できていないと思うのですが。
----------------------------------------
on run {input, parameters}
tell application "Finder"
set hfsCurrentFolder to insertion location as Unicode text
set currentFolder to get POSIX path of hfsCurrentFolder
end tell
set mycmd to "cd " & currentFolder
tell application "iTerm"
create window with default profile
tell current session of current window
write text mycmd
end tell
end run
156:名称未設定
24/03/03 12:34:44.59 ms+RoSBt0.net
tell と end が対になってないじゃん
それに、動作してくれません、上手くいきませんじゃなくて、エラーメッセージちゃんと書かないと
それと、いきなり組み込むんじゃなくて、あの程度なら、外から渡す変数もないようだし、スクリプトエディタで確認した方がいい
すまん、文句しか出ないw
157:名称未設定
24/03/03 12:50:00.54 Xj5rIMR50.net
ありがとうございます!
end tell を追記したら上手く行きました。
158:名称未設定
24/08/22 23:04:44.56 32QKX5ro0.net
>>1
アップルスクリプト、オートメーター、ショートカット?
macOS 15の今、どれを使えばいいの?
てかプログラミングできない俺は
Windows11のCopilotに日本語で指示して.scpt書かせるのがいいなw
159:名称未設定
24/08/23 03:26:19.77 een06mt10.net
>>158
好きなの使っていいんですよ
160:名称未設定
24/08/23 03:53:24.29 oARa+d0i0.net
どれが一番新しいの?
将来的にはどれに収束させたいの?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
139日前に更新/57 KB
担当:undef