>>920
>数値文字参照( )
数値文字参照( )
探検
AppleScript アップルスクリプト 質問、発表 7 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
921名称未設定
2022/09/08(木) 04:14:43.73ID:ynvUf+r50922名称未設定
2022/10/07(金) 23:20:22.49ID:Y0EDHbAj0 display notification "保守"
923名称未設定
2022/10/27(木) 18:05:53.00ID:be20UC2i0 illustratorのスクリプトですが、
ASで以下は実行可能なのに
tell application "Adobe Illustrator"
text fonts
end tell
JXAで以下は実行できません。
AI = Application("Adobe Illustrator 2021")
AI.textFonts()
これはそういう仕様になっているのでしょうか?
ASで以下は実行可能なのに
tell application "Adobe Illustrator"
text fonts
end tell
JXAで以下は実行できません。
AI = Application("Adobe Illustrator 2021")
AI.textFonts()
これはそういう仕様になっているのでしょうか?
924名称未設定
2022/10/28(金) 07:17:16.03ID:7o4e9El20 単に間違ってるだけだろう
AppleScript対応アプリがJXAに対応するために何かをなんて無いと思って構わない
AppleScriptで動くなら同等のJXAは動く。動かないのは間違ってるだけだろう
AppleScript対応アプリがJXAに対応するために何かをなんて無いと思って構わない
AppleScriptで動くなら同等のJXAは動く。動かないのは間違ってるだけだろう
925名称未設定
2022/10/31(月) 10:16:41.17ID:V6AlEDNM0 AIのCore Suite>Application>ElementsとしてdocumentとtextFontがあり、
documentの方はAI.documents()で取得可能です。
app = Application("Adobe Illustrator 2021")
app.documents()
--> [app.documents.at(0)]
app.textFonts()
--> Error -1708: メッセージを理解できません。
documentの方はAI.documents()で取得可能です。
app = Application("Adobe Illustrator 2021")
app.documents()
--> [app.documents.at(0)]
app.textFonts()
--> Error -1708: メッセージを理解できません。
926名称未設定
2022/10/31(月) 11:34:07.03ID:C4wogFlK0 https://community.adobe.com/t5/illustratorフォーラム/ct-p/ct-illustrator-jp
で聞いた方がいんちゃう
ていうか
https://community.adobe.com/t5/illustratorフォーラム-discussions/applescriptでフォントとの選択/m-p/11745459
が気になる
で聞いた方がいんちゃう
ていうか
https://community.adobe.com/t5/illustratorフォーラム-discussions/applescriptでフォントとの選択/m-p/11745459
が気になる
927名称未設定
2022/11/11(金) 13:01:07.15ID:RY2MQfym0 教えてください。
あるフォルダのウインドウサイズをMacの起動の際に下記のスクリプトをログイン項目に入れて使っていますが、
ウインドウを開いてウインドウサイズを変更し閉じるのではなく、ウインドウを開かず裏で?ウインドウサイズを変更する方法があれば教えて欲しいです。
また、同じウインドウサイズですが2つのフォルダに対応する方法が知りたいです。
tell application "Finder"
open POSIX file "/testfolder1"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
end tell
tell application "Finder" to close windows
tell application "Finder"
open POSIX file "/testfolder2"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
end tell
tell application "Finder" to close windows
上記のように2つに分けないとうまくウインドウリサイズができないため分けていますが、1つで済むような方法もしりたいです。
ウインドウサイズと位置は同じです。
よろしくお願いします。
あるフォルダのウインドウサイズをMacの起動の際に下記のスクリプトをログイン項目に入れて使っていますが、
ウインドウを開いてウインドウサイズを変更し閉じるのではなく、ウインドウを開かず裏で?ウインドウサイズを変更する方法があれば教えて欲しいです。
また、同じウインドウサイズですが2つのフォルダに対応する方法が知りたいです。
tell application "Finder"
open POSIX file "/testfolder1"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
end tell
tell application "Finder" to close windows
tell application "Finder"
open POSIX file "/testfolder2"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
end tell
tell application "Finder" to close windows
上記のように2つに分けないとうまくウインドウリサイズができないため分けていますが、1つで済むような方法もしりたいです。
ウインドウサイズと位置は同じです。
よろしくお願いします。
928名称未設定
2022/11/11(金) 20:09:40.13ID:NgST5RNV0 デュアルモニタ環境でミッションコントロールを使いやすくしたいと言う要望で、
色々錯誤中
on run {input, parameters}
set MO1 to 18
set MO2 to 20
--デフォルトのショートカット(command + number)を登録しといてください
set CO to 0
set ORIG to do shell script "defaults read com.apple.spaces.plist SpacesDisplayConfiguration"
set KEY1d to "name"
set freqNum to retFrequency(ORIG, KEY1d) of me
if CO > freqNum then
CO = 0
ele
CO = CO + 1
end if
tell application "System Events"
--モントレのミッションコントロールロケーション
do shell script "/System/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
delay 0.5
key code MO1 + CO using {control down}
key code MO2 + CO using {control down}
end tell
end run
面倒
色々錯誤中
on run {input, parameters}
set MO1 to 18
set MO2 to 20
--デフォルトのショートカット(command + number)を登録しといてください
set CO to 0
set ORIG to do shell script "defaults read com.apple.spaces.plist SpacesDisplayConfiguration"
set KEY1d to "name"
set freqNum to retFrequency(ORIG, KEY1d) of me
if CO > freqNum then
CO = 0
ele
CO = CO + 1
end if
tell application "System Events"
--モントレのミッションコントロールロケーション
do shell script "/System/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
delay 0.5
key code MO1 + CO using {control down}
key code MO2 + CO using {control down}
end tell
end run
面倒
929名称未設定
2022/11/12(土) 09:28:35.62ID:7Com+ghL0 >>927
1つ目: わからない
2つ目: 単に繋げればいいって話じゃないの?
tell application "Finder"
open POSIX file "/testfolder1"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
--end tell
--tell application "Finder" to close windows
--tell application "Finder"
open POSIX file "/testfolder2"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
close windows
end tell
--tell application "Finder" to close windows
1つ目: わからない
2つ目: 単に繋げればいいって話じゃないの?
tell application "Finder"
open POSIX file "/testfolder1"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
--end tell
--tell application "Finder" to close windows
--tell application "Finder"
open POSIX file "/testfolder2"
tell front window
set bounds to {600, 500, 1500, 1200}
end tell
close windows
end tell
--tell application "Finder" to close windows
930名称未設定
2022/11/12(土) 15:06:08.91ID:3bXgbCDC0 >>927
ウインドウを存在させないことにはbounds等を操作出来ないので開かざるを得ないかと。
Finderを隠してから実行すれば…と思ったけど以下のコメントの通りダメでした。
同じような、でも一部だけ異なる処理を繰り返す場合は、異なる部分を変数に入れて処理させるのがコードを書くときの基本テクニックの1つです。
tell application "Finder"
--set visible to false --やってもopenで表示されてしまう
repeat with posixPath in {"/Users/", "/System/"} --パスは適当に書き換えて
open (posixPath as POSIX file)
--set visible to false --やるとwindowもしくはそのpropertiesが取れなくなる
tell front Finder window
set bounds to {600, 500, 1500, 1200}
close
end tell
end repeat
end tell
ウインドウを存在させないことにはbounds等を操作出来ないので開かざるを得ないかと。
Finderを隠してから実行すれば…と思ったけど以下のコメントの通りダメでした。
同じような、でも一部だけ異なる処理を繰り返す場合は、異なる部分を変数に入れて処理させるのがコードを書くときの基本テクニックの1つです。
tell application "Finder"
--set visible to false --やってもopenで表示されてしまう
repeat with posixPath in {"/Users/", "/System/"} --パスは適当に書き換えて
open (posixPath as POSIX file)
--set visible to false --やるとwindowもしくはそのpropertiesが取れなくなる
tell front Finder window
set bounds to {600, 500, 1500, 1200}
close
end tell
end repeat
end tell
931名称未設定
2022/11/12(土) 15:23:30.36ID:TchPlUlA0932名称未設定
2022/11/16(水) 11:45:38.29ID:GtJRusAX0 こんにちは。
一つのAutomatorに複数のAppleScriptを埋め込んだアプリを使っています。
多分最後がいいんだと思って最後にNASを自動でマウントするAppleScriptを入れていますが、5回に1回くらいエラーが出てAutomatorが最後まで完了しません。
エラーは2つでてきて、1つ目が
「サーバ”NAS”への接続で問題が起きました。
サーバが存在しないか、現在利用できません。
サーバの名前またはIPアドレス、およびネットワーク接続を確認してから、やり直してください。」
2つ目
「アクション"AppleScriptを実行”でエラーが起きました:“Finderでエラーが起きました: タイプ-5016のエラーが起きました。」
とでます。
最後のNASをマウントするスクリプトは
tell application "Finder"
mount volume "smb://NAS”
end tell
です。
このスクリプりの前にAutomatorの一時停止で3〜5秒程度待ち時間を与えても、スクリプト中にdelayを数秒入れてもやはり回数はばらばらですが何度かに一度接続に失敗します。
これ、何かいい方法はないでしょうか。
また、待ち時間を与えるならスクリプトの前かスクリプト中かどちらがいいのでしょう。
一つのAutomatorに複数のAppleScriptを埋め込んだアプリを使っています。
多分最後がいいんだと思って最後にNASを自動でマウントするAppleScriptを入れていますが、5回に1回くらいエラーが出てAutomatorが最後まで完了しません。
エラーは2つでてきて、1つ目が
「サーバ”NAS”への接続で問題が起きました。
サーバが存在しないか、現在利用できません。
サーバの名前またはIPアドレス、およびネットワーク接続を確認してから、やり直してください。」
2つ目
「アクション"AppleScriptを実行”でエラーが起きました:“Finderでエラーが起きました: タイプ-5016のエラーが起きました。」
とでます。
最後のNASをマウントするスクリプトは
tell application "Finder"
mount volume "smb://NAS”
end tell
です。
このスクリプりの前にAutomatorの一時停止で3〜5秒程度待ち時間を与えても、スクリプト中にdelayを数秒入れてもやはり回数はばらばらですが何度かに一度接続に失敗します。
これ、何かいい方法はないでしょうか。
また、待ち時間を与えるならスクリプトの前かスクリプト中かどちらがいいのでしょう。
933名称未設定
2022/11/17(木) 23:08:07.73ID:9TDAZvUf0 tryで括ったのを繰り返してマウント出来たらexitってやってみては?
935名称未設定
2022/11/19(土) 12:30:17.20ID:dkeXPz4r0 AppleScriptで例えば
tell application "System Events"
key code 49
end tell
ってコードをAutomatorに入れて実行を押すとシステムで設定してるアラートがなってしまいますが、ならないようなコードの書き方ってあるのでしょうか?
もしくはなるのは仕方ないのでしょうか?
tell application "System Events"
key code 49
end tell
ってコードをAutomatorに入れて実行を押すとシステムで設定してるアラートがなってしまいますが、ならないようなコードの書き方ってあるのでしょうか?
もしくはなるのは仕方ないのでしょうか?
936名称未設定
2022/11/19(土) 13:19:51.94ID:Ap1v+LFB0 邪魔なら
set volume alert volume 0
でも入れとけばいいんじゃないの
set volume alert volume 0
でも入れとけばいいんじゃないの
938名称未設定
2022/11/20(日) 01:26:37.42ID:KLtsQVua0 なんのためにkey code 49したいのか分からんけど手前のアプリによって挙動を変えることは出来るよ
ただスペース入力されちゃうとか、そのアプリなりの動きはしちゃうけど
-- Finderを手前にしてやる場合
tell application "System Events" to tell application process "Finder"
set frontmost to true
key code 49 --クイックルックが出る(場合あり)
end tell
-- その時手前のアプリでやりたい場合
tell application "System Events" to tell (first application process that frontmost is true)
key code 49
end tell
ただスペース入力されちゃうとか、そのアプリなりの動きはしちゃうけど
-- Finderを手前にしてやる場合
tell application "System Events" to tell application process "Finder"
set frontmost to true
key code 49 --クイックルックが出る(場合あり)
end tell
-- その時手前のアプリでやりたい場合
tell application "System Events" to tell (first application process that frontmost is true)
key code 49
end tell
939名称未設定
2022/12/01(木) 17:39:27.57ID:zR7q9XOP0 tell application "Finder"
mount volume "smb://server”
end tell
これを使ってNASに繋げていますがたびたび
サーバ"server"への接続で問題が起きました。
と出た後に
タイプ-5016のエラーが起きました。
と2つのエラーが出てきます。
2つ目のエラーはtryを使い取り敢えずでなくなりましたが、1つ目のエラーはたまに出ます。
そこで最初にpingを打った後にmountをしてみようと思い
try
do shell script "ping -c 2 -i 0.5 server"
tell application "Finder"
delay 3
mount volume "smb://server/xxx"
end tell
on error
end try
こんな感じでやってみましたが、それでもたまに1つ目のエラーが出ます。
この1つ目のエラーがどこから出されているものかわかりませんが、
1つ目のエラーを出さないようにするにはどうするのがいいのでしょうか。
NASへの接続は出来なくても構いません。
取り敢えずはエラーを出ないようにしたいです。
どなたか知恵を拝借できませんか。
mount volume "smb://server”
end tell
これを使ってNASに繋げていますがたびたび
サーバ"server"への接続で問題が起きました。
と出た後に
タイプ-5016のエラーが起きました。
と2つのエラーが出てきます。
2つ目のエラーはtryを使い取り敢えずでなくなりましたが、1つ目のエラーはたまに出ます。
そこで最初にpingを打った後にmountをしてみようと思い
try
do shell script "ping -c 2 -i 0.5 server"
tell application "Finder"
delay 3
mount volume "smb://server/xxx"
end tell
on error
end try
こんな感じでやってみましたが、それでもたまに1つ目のエラーが出ます。
この1つ目のエラーがどこから出されているものかわかりませんが、
1つ目のエラーを出さないようにするにはどうするのがいいのでしょうか。
NASへの接続は出来なくても構いません。
取り敢えずはエラーを出ないようにしたいです。
どなたか知恵を拝借できませんか。
940名称未設定
2022/12/02(金) 09:28:20.09ID:uMnk7rPb0 https://apple.stackexchange.com/questions/387841/applescript-how-to-mount-remote-server-without-error-if-unavailable
smbutil status ...で状態チェックした後でやったらどう、って
あと、エラーと関係ないけど、mount volume ...はStandard Additionsのコマンドで、Finderが実行する訳じゃないからtell app "Finder"いらない、って
smbutil status ...で状態チェックした後でやったらどう、って
あと、エラーと関係ないけど、mount volume ...はStandard Additionsのコマンドで、Finderが実行する訳じゃないからtell app "Finder"いらない、って
941名称未設定
2022/12/02(金) 11:21:44.60ID:kVy3baxJ0 >>940
レスありがとうございます
tell app "Finder”は必要ないんですね。
必要だと思い込んでいました。
教えていただいたリンク先を読んでみます。
https://discussionsjapan.apple.com/thread/253019596?answerId=255677244122#255677244122
こちらでも私と同じようなことを言ってる人がいて回答がいくつかされていますが、
書かれているコードを私も試しましたがどれもエラーが出て使えませんでした。
シェルでやれば?とのコメントもありますので試しに作ったAutomatorアプリをLaunchで動かしてみようと思います。
レスありがとうございます
tell app "Finder”は必要ないんですね。
必要だと思い込んでいました。
教えていただいたリンク先を読んでみます。
https://discussionsjapan.apple.com/thread/253019596?answerId=255677244122#255677244122
こちらでも私と同じようなことを言ってる人がいて回答がいくつかされていますが、
書かれているコードを私も試しましたがどれもエラーが出て使えませんでした。
シェルでやれば?とのコメントもありますので試しに作ったAutomatorアプリをLaunchで動かしてみようと思います。
942名称未設定
2022/12/14(水) 10:52:17.49ID:IhMsMLAt0 この流れ見たおかげで、jxaでネットワークフォルダに接続できた。ありがとう。
systemEventsやらfinder試してたができなくて悩んでたが、下のでできた。
app = Application.currentApplication()
app.mountVolume('smb://hoge/hoge/’)
どおりでsystemEventsもfinderも用語説明にmountVolumeが無いと思った。
systemEventsやらfinder試してたができなくて悩んでたが、下のでできた。
app = Application.currentApplication()
app.mountVolume('smb://hoge/hoge/’)
どおりでsystemEventsもfinderも用語説明にmountVolumeが無いと思った。
943名称未設定
2023/01/02(月) 07:27:29.86ID:qBQZs/ov0 ド初心者です
このようなhtmlのセレクトボックスを選択してクリックするには
どうすればいいのでしょうか?
https://ondoku3.com/ja/
ここの言語をEnglish(USA)にしたいです
このようなhtmlのセレクトボックスを選択してクリックするには
どうすればいいのでしょうか?
https://ondoku3.com/ja/
ここの言語をEnglish(USA)にしたいです
944名称未設定
2023/01/02(月) 10:17:50.89ID:46djlZai0 Safariで開発メニューを表示、開発メニューでAppleEventからのJavaScriptを許可して
tell application "Safari"
do JavaScript "document.getElementById('en-US').selected = true;" in (current tab in front window)
end tell
とかなんとか
tell application "Safari"
do JavaScript "document.getElementById('en-US').selected = true;" in (current tab in front window)
end tell
とかなんとか
945名称未設定
2023/01/02(月) 10:45:45.13ID:qBQZs/ov0 このように書いてみましたがダメそうです…
tell application "Safari"
open location "https://ondoku3.com/ja/"
activate
end tell
clickID("en-US")
to clickID(theId)
tell application "Safari"
do JavaScript "document.getElementById('" & theId & "').click();" in document 1
end tell
end clickID
tell application "Safari"
open location "https://ondoku3.com/ja/"
activate
end tell
clickID("en-US")
to clickID(theId)
tell application "Safari"
do JavaScript "document.getElementById('" & theId & "').click();" in document 1
end tell
end clickID
946名称未設定
2023/01/02(月) 13:40:12.38ID:KmQn2xLX0 そのJavascript自体で変わらないんじゃないの
ちゃんと変わるJavascriptの話は、まあここじゃないかな
SafariのJavaScript Consoleでちゃんと動くのに、do JavaScript で動かないのはここでだね
ちゃんと変わるJavascriptの話は、まあここじゃないかな
SafariのJavaScript Consoleでちゃんと動くのに、do JavaScript で動かないのはここでだね
947名称未設定
2023/01/02(月) 16:10:49.69ID:KmQn2xLX0 let readLanguagePopUp = document.getElementById('read-form').id_language
readLanguagePopUp.selectedIndex = 8
で、変わりはするが、ページ/コンテンツ特有の問題/特性でこれだけでは意味がない
変更を検知してのコンテンツ特有の処理、関数 change_voice_selection もしくは create_voice_selection を呼ぶ必要がある
create_voice_selection を呼ぶ方が簡単なので、
create_voice_selection(readLanguagePopUp.value)
を呼べばいいだけかな。Webブラウザ/Safariの中のコンソールでは良さげ
ここまでは単にJavascriptの
do JavaScript では、create_voice_selection が呼べない/存在しない。外部スクリプトだし do JavaScript はJavascript実行環境が違うスコープ外なのかな
てことで、selectedIndex を変更しても 'change'イベントを飛ばしてくれないなら飛ばせばいいかので、
readLanguagePopUp.dispatchEvent(new Event('change'))
で良さげ
do JavaScript "(() => {
let readLanguagePopUp = document.getElementById('read-form').id_language
readLanguagePopUp.selectedIndex = 8
readLanguagePopUp.dispatchEvent(new Event('change'))
})()" in (current tab in front window)
readLanguagePopUp.selectedIndex = 8
で、変わりはするが、ページ/コンテンツ特有の問題/特性でこれだけでは意味がない
変更を検知してのコンテンツ特有の処理、関数 change_voice_selection もしくは create_voice_selection を呼ぶ必要がある
create_voice_selection を呼ぶ方が簡単なので、
create_voice_selection(readLanguagePopUp.value)
を呼べばいいだけかな。Webブラウザ/Safariの中のコンソールでは良さげ
ここまでは単にJavascriptの
do JavaScript では、create_voice_selection が呼べない/存在しない。外部スクリプトだし do JavaScript はJavascript実行環境が違うスコープ外なのかな
てことで、selectedIndex を変更しても 'change'イベントを飛ばしてくれないなら飛ばせばいいかので、
readLanguagePopUp.dispatchEvent(new Event('change'))
で良さげ
do JavaScript "(() => {
let readLanguagePopUp = document.getElementById('read-form').id_language
readLanguagePopUp.selectedIndex = 8
readLanguagePopUp.dispatchEvent(new Event('change'))
})()" in (current tab in front window)
948名称未設定
2023/01/02(月) 22:28:25.23ID:qBQZs/ov0 なるほど皆ありがとう
どうやらド初心者にはハードル高そうですね
エレメントをゲットしないでキーボード操作で
所望の箇所まで移動させてみます
どうやらド初心者にはハードル高そうですね
エレメントをゲットしないでキーボード操作で
所望の箇所まで移動させてみます
949名称未設定
2023/01/14(土) 20:09:08.93ID:hOXDjmwo0 AutomatorでAppleScriptを使ったアプリケーションを作っています。
動画をループさせながら再生するものですが、
tell application "QuickTime Player"
open "/Users/my/Desktop/test.mov"
tell front document
present
set looping to true
play
end tell
end tell
を実行すると、
書類"test.mov”を開けませんでした。
このファイルはQuickTime Player と互換性がありません。
アクション"AppleScriptを実行™でエラーが起きました: “QuickTime
Playerでエラーが起きました:
document1を取り出すことはできません。正しくないインデックスです。”
とエラーが出てきてうまく再生できません。
元の動画ファイルは問題なくQuickTime Playerで再生出来るものです。
動画ファイルを変えてみてもやはり同じエラーが出ます。
どのようにすればループして再生出来るでしょうか。
どなたか教えていただけませんか。
動画をループさせながら再生するものですが、
tell application "QuickTime Player"
open "/Users/my/Desktop/test.mov"
tell front document
present
set looping to true
play
end tell
end tell
を実行すると、
書類"test.mov”を開けませんでした。
このファイルはQuickTime Player と互換性がありません。
アクション"AppleScriptを実行™でエラーが起きました: “QuickTime
Playerでエラーが起きました:
document1を取り出すことはできません。正しくないインデックスです。”
とエラーが出てきてうまく再生できません。
元の動画ファイルは問題なくQuickTime Playerで再生出来るものです。
動画ファイルを変えてみてもやはり同じエラーが出ます。
どのようにすればループして再生出来るでしょうか。
どなたか教えていただけませんか。
950名称未設定
2023/01/14(土) 21:11:32.15ID:NoIkVHQB0 >>949
POSIX化すれば良い。
open "/Users/my/Desktop/test.mov"
↓
set A to open "/Users/my/Desktop/test.mov"
play
↓
play A
POSIX化すれば良い。
open "/Users/my/Desktop/test.mov"
↓
set A to open "/Users/my/Desktop/test.mov"
play
↓
play A
951名称未設定
2023/01/14(土) 21:12:06.05ID:NoIkVHQB0 ごめん抜けた
set A to open POSIX file
set A to open POSIX file
952名称未設定
2023/01/14(土) 21:14:42.72ID:0Ha2vBvH0 open POSIX file ということじゃなく?
953名称未設定
2023/01/14(土) 21:14:56.29ID:0Ha2vBvH0 あ、ごめんリロードしてなかった
955名称未設定
2023/01/14(土) 21:47:50.50ID:IFtoiy9i0 自分は全く理解しないでやってるけど、こんな感じではどうでしょう
tell application "QuickTime Player"
activate
open "/Users/my/Desktop/test.mov"
tell document 1
set looping to true
play
end tell
end tell
tell application "QuickTime Player"
activate
open "/Users/my/Desktop/test.mov"
tell document 1
set looping to true
play
end tell
end tell
956名称未設定
2023/01/14(土) 21:53:16.81ID:NoIkVHQB0 クイックタイムが起動していない状態であれば問題のコードでも開けるけど、
基本applescriptは旧来のhfs path。
でもアプリケーションはPOSIXに準じるので、アプリケーションが起動している状態だとhfs pathとして受け取ってしまう。
結果として/が名前として受け取り、:が階層として判断してしまうのでファイルが開かない。
そのため、POSIXパスとしての型とすれば問題なく開ける。
ちなみに初回だけ変数の型がhfsパスなのにPOSIX書きで開けるのは、
apple scriptのfile objectがPOSIXなので、hfsパスを押し退けて使える()
基本applescriptは旧来のhfs path。
でもアプリケーションはPOSIXに準じるので、アプリケーションが起動している状態だとhfs pathとして受け取ってしまう。
結果として/が名前として受け取り、:が階層として判断してしまうのでファイルが開かない。
そのため、POSIXパスとしての型とすれば問題なく開ける。
ちなみに初回だけ変数の型がhfsパスなのにPOSIX書きで開けるのは、
apple scriptのfile objectがPOSIXなので、hfsパスを押し退けて使える()
957sage
2023/01/23(月) 15:17:06.44ID:8wZ0hG4u0 javascriptの質問で申し訳ないですが、QuickTime Playerで
開いた15.mp4を縦横(100, 300)の位置に移動させたいのですが
15.mp4を開くことまでは成功できるのですが、次が
わかりません。ご教示お願いできませんか?
var quickTimePlayer = Application("QuickTime Player");
quickTimePlayer.activate();
quickTimePlayer.open("/Volumes/HD1/15.mp4");
var system = Application('System Events');
var qtWindow = system.processes['QuickTime Player'];
qtWindow.windows[0].position[100, 300];
開いた15.mp4を縦横(100, 300)の位置に移動させたいのですが
15.mp4を開くことまでは成功できるのですが、次が
わかりません。ご教示お願いできませんか?
var quickTimePlayer = Application("QuickTime Player");
quickTimePlayer.activate();
quickTimePlayer.open("/Volumes/HD1/15.mp4");
var system = Application('System Events');
var qtWindow = system.processes['QuickTime Player'];
qtWindow.windows[0].position[100, 300];
958名称未設定
2023/01/23(月) 16:43:50.74ID:qAppQcQp0 qtWindow.windows[0].position = [100, 300];
959sage
2023/01/23(月) 16:56:08.26ID:8wZ0hG4u0 上手くできました、感謝です。
私はAppleScriptは20年以上使っているのですが
10年ほど前にJavaScript形式で書くように
変更したのが、失敗でした。JavaScript形式の
AppleScriptの検索が非常に困難で、このような
質問をして、ご迷惑をお掛けしてしまいます。
私はAppleScriptは20年以上使っているのですが
10年ほど前にJavaScript形式で書くように
変更したのが、失敗でした。JavaScript形式の
AppleScriptの検索が非常に困難で、このような
質問をして、ご迷惑をお掛けしてしまいます。
960名称未設定
2023/01/28(土) 02:26:43.44ID:f3R26hc10 function pseudoESTK(){
const app = Application.currentApplication();
const Cot = Application('CotEditor');
const SysEv = Application('System Events');
app.includeStandardAdditions=true;
if(!Cot.documents.length){app.displayAlert("実行したいスクリプトを開いてから実行してください");return;}
let scr = Cot.documents[0].contents();
let tgt = scr.match(/#target\s+([^\s-]+)/);
let appList = SysEv.applicationProcesses().filter(function(a){if(a.visible()==true && a.name().indexOf("Adobe")!=-1){return a}}).map((a) => a.name());
if(tgt){tgt = tgt[0].split(/\s/)[1].toLowerCase();appList = appList.filter(function(a){if(a.toLowerCase().indexOf(tgt)!=-1){return a}})}
let selApp;
switch(appList.length){
case 0:
app.displayAlert("対象アプリを起動してから実行してください",{givingUpAfter:1});return;break;
case 1: selApp = appList;break;
default:selApp = app.chooseFromList(appList,{withPrompt:"対象アプリを選択してください"});
if(!selApp){return}
break;
}
let scrRet;
let tgtApp = Application(selApp[0]);
let appLow = selApp[0].toLowerCase();
if(appLow.indexOf('indesign')!=-1){scrRet = tgtApp.doScript(scr,{language:'javascript', undoMode:'fast entire script'});
}else if(appLow.indexOf('acrobat')!=-1){scrRet = tgtApp.doScript(scr);
}else{scrRet = tgtApp.doJavascript(scr);}
if(scrRet){Cot.writeToConsole(selApp)};
}
const app = Application.currentApplication();
const Cot = Application('CotEditor');
const SysEv = Application('System Events');
app.includeStandardAdditions=true;
if(!Cot.documents.length){app.displayAlert("実行したいスクリプトを開いてから実行してください");return;}
let scr = Cot.documents[0].contents();
let tgt = scr.match(/#target\s+([^\s-]+)/);
let appList = SysEv.applicationProcesses().filter(function(a){if(a.visible()==true && a.name().indexOf("Adobe")!=-1){return a}}).map((a) => a.name());
if(tgt){tgt = tgt[0].split(/\s/)[1].toLowerCase();appList = appList.filter(function(a){if(a.toLowerCase().indexOf(tgt)!=-1){return a}})}
let selApp;
switch(appList.length){
case 0:
app.displayAlert("対象アプリを起動してから実行してください",{givingUpAfter:1});return;break;
case 1: selApp = appList;break;
default:selApp = app.chooseFromList(appList,{withPrompt:"対象アプリを選択してください"});
if(!selApp){return}
break;
}
let scrRet;
let tgtApp = Application(selApp[0]);
let appLow = selApp[0].toLowerCase();
if(appLow.indexOf('indesign')!=-1){scrRet = tgtApp.doScript(scr,{language:'javascript', undoMode:'fast entire script'});
}else if(appLow.indexOf('acrobat')!=-1){scrRet = tgtApp.doScript(scr);
}else{scrRet = tgtApp.doJavascript(scr);}
if(scrRet){Cot.writeToConsole(selApp)};
}
962名称未設定
2023/01/30(月) 09:05:16.02ID:5649FAEH0 whose使えるよ
adobeApps=Application("System Events").applicationProcesses.whose({name:{ _contains: 'Adobe' }}).name()
adobeApps=Application("System Events").applicationProcesses.whose({name:{ _contains: 'Adobe' }}).name()
963sage
2023/01/31(火) 09:32:42.92ID:M2eRX9Lu0964名称未設定
2023/01/31(火) 12:21:12.08ID:qR88flPO0 俺もJSで書くようにしようかな… と時々思っては思うだけで終わってる
966名称未設定
2023/02/06(月) 10:17:18.89ID:0bjnOdyZ0 誰か教えていただけませんか。
set volumeを使ってボリュームのコントロールができますが、
左右のバランスをセンターに設定する方法をどなたか知りませんか?
Audio MIDI設定で0.5に設定すればいいのは知っていますが、
set volume alert volume 0
set volume output volume 50
set volume input volume 50
などとまとめて設定をしたいのです。
set volumeを使ってボリュームのコントロールができますが、
左右のバランスをセンターに設定する方法をどなたか知りませんか?
Audio MIDI設定で0.5に設定すればいいのは知っていますが、
set volume alert volume 0
set volume output volume 50
set volume input volume 50
などとまとめて設定をしたいのです。
967名称未設定
2023/02/06(月) 11:09:59.95ID:NlXXdeKF0 > set volume output volume 50
これで一緒にバランス調整されてない?
試したらセンターになったけど、ってここ見て知った https://github.com/jpwenzel/reset-audio-balance
これで一緒にバランス調整されてない?
試したらセンターになったけど、ってここ見て知った https://github.com/jpwenzel/reset-audio-balance
968名称未設定
2023/02/06(月) 11:37:39.59ID:0bjnOdyZ0969名称未設定
2023/02/06(月) 13:07:14.73ID:YlUscaYB0 こういう記事があるので、System Events経由しないと触れないってことじゃないかな。
therapy.under.jp/osx-mavericks-%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A%EF%BC%9A%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%EF%BC%9A%E3%83%90%E3%83%A9%E3%83%B3%E3%82%B9-%E3%82%92%E3%82%BB/
therapy.under.jp/osx-mavericks-%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A%EF%BC%9A%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%EF%BC%9A%E3%83%90%E3%83%A9%E3%83%B3%E3%82%B9-%E3%82%92%E3%82%BB/
970名称未設定
2023/02/15(水) 15:56:09.72ID:qib9yM4Y0 AppleScriptではないのですが、Automatorのフォルダアクションがある時から動かなくなる減少が頻繁に起こるのですが、同じ現象の人いませんか?ソースをいじっていないのに急に動かなくなります...
971名称未設定
2023/02/15(水) 18:50:08.07ID:wteAUxtG0 Automatorスレでやれや
972名称未設定
2023/02/20(月) 10:48:54.33ID:TuuDDhJs0 教えてください。
https://eastmanreference.com/complete-list-of-applescript-key-codes
ここを参考に
tell application "System Events"
key code 49
end tell
これをAutomatorでアプリケーションで作ったAppleScriptで実行すると構文エラーになってしまいます。
なぜなんでしょうか?
アプリケーションとして保存しても
アクション"AppleScriptを実行”でエラーが起きました:“操作を完了できませんでした。
(com.apple. Automator I 5 --212) "
アクション"AppleScriptを実行”でエラーが起きました: “System Events
でエラーが起きました: アプリ名にはキー操作の送信は許可されません。
などのエラーが出ます。
システム設定のプライバシーとセキュリティのアクセシビリティでアプリを追加をしています。
なぜエラーが出て実行できないのでしょうか。
どうすれば改善できるのでしょう。
https://eastmanreference.com/complete-list-of-applescript-key-codes
ここを参考に
tell application "System Events"
key code 49
end tell
これをAutomatorでアプリケーションで作ったAppleScriptで実行すると構文エラーになってしまいます。
なぜなんでしょうか?
アプリケーションとして保存しても
アクション"AppleScriptを実行”でエラーが起きました:“操作を完了できませんでした。
(com.apple. Automator I 5 --212) "
アクション"AppleScriptを実行”でエラーが起きました: “System Events
でエラーが起きました: アプリ名にはキー操作の送信は許可されません。
などのエラーが出ます。
システム設定のプライバシーとセキュリティのアクセシビリティでアプリを追加をしています。
なぜエラーが出て実行できないのでしょうか。
どうすれば改善できるのでしょう。
973名称未設定
2023/02/20(月) 11:09:34.12ID:YANdS4h30 System Eventsも追加すりゃいいんじゃないの
974名称未設定
2023/02/20(月) 11:10:11.63ID:YANdS4h30 ってもう追加されてんのか流れ的に
すまん
すまん
975名称未設定
2023/02/20(月) 17:59:43.63ID:dsaFNpZw0 何で Automatorでやってるのかわからんけど
一度実行ボタン押して
カーソルの位置にスペースが入ったとかってオチじゃないよね?
一度実行ボタン押して
カーソルの位置にスペースが入ったとかってオチじゃないよね?
976名称未設定
2023/02/20(月) 18:47:50.41ID:TuuDDhJs0 レス頂いててありがとうございます。
しかし私のミスでAutomatorスレと間違って書き込みをしてたようです…
移動させていただきます。
失礼しました。
しかし私のミスでAutomatorスレと間違って書き込みをしてたようです…
移動させていただきます。
失礼しました。
977名称未設定
2023/03/23(木) 10:11:24.47ID:sMTI/zjW0 Venturaでシステム設定に変わって制御するスクリプト書き換えててなんか上手く動かねえなと思ったら「セキュリティとプライバシー」が「プライバシーとセキュリティ」に変わっていた
978名称未設定
2023/03/23(木) 17:23:33.29ID:IR5kOyOp0 なんという間違い探し…よく見つけたね
com.apple.preference.securityとかbundle使った方が安全っちゅうこっちゃね
com.apple.preference.securityとかbundle使った方が安全っちゅうこっちゃね
979名称未設定
2023/03/23(木) 21:04:53.89ID:sMTI/zjW0 そういや.prefPaneを開くという方法もあったな
ちなみにpaneは用語説明に残ってはいるがエラーにしかならない
ちなみにpaneは用語説明に残ってはいるがエラーにしかならない
980名称未設定
2023/03/23(木) 21:14:32.64ID:IR5kOyOp0 こんな?
tell application "System Preferences" to set current pane to pane id "com.apple.preference.security"
tell application "System Preferences" to set current pane to pane id "com.apple.preference.security"
981名称未設定
2023/03/23(木) 21:23:16.08ID:OytpOZvV0 本当によく見つけたね…
存在してるけど動かない物も多いから最近はターミナルでバンドル組んでるわ…
存在してるけど動かない物も多いから最近はターミナルでバンドル組んでるわ…
982名称未設定
2023/03/23(木) 22:20:24.22ID:1lysEDrt0 ターミナルでバンドル組むってなに
983名称未設定
2023/03/23(木) 23:24:59.63ID:IR5kOyOp0 こんな??知らんけど
open x-apple.systempreferences:com.apple.preference.security
open x-apple.systempreferences:com.apple.preference.security
984sage
2023/03/24(金) 09:48:22.00ID:tp6ybqm30 次のAppleScript(1)に対応するJavaScriptの書き方をご教示いただけますか?
(1) set test1 to do shell script "
test2=$(/bin/ls /Users/john/*.json)
echo $test2
"
log (test1)
自分で書いたJavaScript(2)ではスクリプトエラー(3)が表示されます。
ただこのエラーの中には*.jsonに一致するファイル名が含まれているので
/bin/ls /Users/john/*.jsonは途中まで成功しているようです。
(2)app = Application.currentApplication();
app.includeStandardAdditions = true;
var exec = `
"
test2=$(/bin/ls /Users/john/*.json)
echo $test2
"
`
var resultX = app.doShellScript(exec)
console.log(resultX);
(3) スクリプトエラー
Error: Error: sh: line 4:
test2=/Users/john/01.json
/Users/john/03.json
echo
: No such file or directory
(1) set test1 to do shell script "
test2=$(/bin/ls /Users/john/*.json)
echo $test2
"
log (test1)
自分で書いたJavaScript(2)ではスクリプトエラー(3)が表示されます。
ただこのエラーの中には*.jsonに一致するファイル名が含まれているので
/bin/ls /Users/john/*.jsonは途中まで成功しているようです。
(2)app = Application.currentApplication();
app.includeStandardAdditions = true;
var exec = `
"
test2=$(/bin/ls /Users/john/*.json)
echo $test2
"
`
var resultX = app.doShellScript(exec)
console.log(resultX);
(3) スクリプトエラー
Error: Error: sh: line 4:
test2=/Users/john/01.json
/Users/john/03.json
echo
: No such file or directory
985名称未設定
2023/03/24(金) 10:22:38.24ID:G8ouTVCw0 (2)からダブルクウォーツ取っ払えばいけたぽいけど
986sage
2023/03/24(金) 10:43:07.07ID:tp6ybqm30 素早いご助言を感謝です。ダブルクウォーツを削除した結果
エラー表示が消えました。ただ「帰り値を表示する」console.log(resultX);
での結果が、undefinedとなります。
console.log(resultX)を削除して、(4)を実行すると、ScriptEditorの「結果」の欄に
*.jsonファイル名が正しく表示できます。ここで表示されているリストをresultXに
入れる方法がございますでしょうか?
(4) app = Application.currentApplication();
app.includeStandardAdditions = true;
var exec = `
test2=$(ls /Users/john/*.json)
echo $test2
`
resultX = app.doShellScript(exec);
エラー表示が消えました。ただ「帰り値を表示する」console.log(resultX);
での結果が、undefinedとなります。
console.log(resultX)を削除して、(4)を実行すると、ScriptEditorの「結果」の欄に
*.jsonファイル名が正しく表示できます。ここで表示されているリストをresultXに
入れる方法がございますでしょうか?
(4) app = Application.currentApplication();
app.includeStandardAdditions = true;
var exec = `
test2=$(ls /Users/john/*.json)
echo $test2
`
resultX = app.doShellScript(exec);
987名称未設定
2023/03/24(金) 10:56:15.68ID:5GAFP4Gj0 resultXには代入されているが文字列としてだね
「返された値」を表示すれば出てくるよ
「返された値」を表示すれば出てくるよ
988名称未設定
2023/03/24(金) 11:01:18.81ID:G8ouTVCw0 結果は入ってるじゃん
989名称未設定
2023/03/24(金) 11:06:51.34ID:5GAFP4Gj0 ゴメンよく読んでなかった。すでに表示してるんだね。
undefinedはresultXへの代入結果でしょ
最後にresultX入れとけば表示されるよ
undefinedはresultXへの代入結果でしょ
最後にresultX入れとけば表示されるよ
990sage
2023/03/24(金) 11:38:00.15ID:tp6ybqm30 >>989
>最後にresultX入れとけば表示されるよ
ありがとうございます。うまくいきました。
デバッグ作業で変数などの値を確認するために、console.log(変数)で確認して
きましたが、
console.log(resultX)だとundefinedになるのは、何か特別な「仕様」なのでしょうか?
>最後にresultX入れとけば表示されるよ
ありがとうございます。うまくいきました。
デバッグ作業で変数などの値を確認するために、console.log(変数)で確認して
きましたが、
console.log(resultX)だとundefinedになるのは、何か特別な「仕様」なのでしょうか?
991名称未設定
2023/03/24(金) 12:26:23.67ID:5GAFP4Gj0992名称未設定
2023/03/24(金) 12:26:44.94ID:5GAFP4Gj0 アンカ間違えて>990ね
993sage
2023/03/24(金) 15:56:27.67ID:tp6ybqm30 >>991
>console.logの表示内容は「返された値」に表示されている。
丁寧なご説明を本当にありまとうございます。
「結果」の欄と「メッセージ」の欄を混乱してました。
「最後にresultX入れとけば表示される」のは「結果」の
欄で、それとほぼ同じ内容がconsole.log(resultX)とすると
「メッセージ」の欄に表示されるため、作業している
途中で頭が混乱してしまいました。
>console.logの表示内容は「返された値」に表示されている。
丁寧なご説明を本当にありまとうございます。
「結果」の欄と「メッセージ」の欄を混乱してました。
「最後にresultX入れとけば表示される」のは「結果」の
欄で、それとほぼ同じ内容がconsole.log(resultX)とすると
「メッセージ」の欄に表示されるため、作業している
途中で頭が混乱してしまいました。
994名称未設定
2023/03/25(土) 02:05:22.65ID:eef2YPir0 >>984
ChatGPT さんにその質問を投げてみた
ワイにはちんぷんだがこれ合ってんの?
↓
次のJavaScriptコードは、AppleScriptで提供されたコードと同じ機能を提供します。
const { execSync } = require('child_process');
const test2 = execSync('/bin/ls /Users/john/*.json').toString().trim();
console.log(test2);
このJavaScriptコードは、Node.jsの標準ライブラリであるchild_processを使用して、ターミナルからコマンドを実行しています。execSync()メソッドは、指定されたコマンドを同期的に実行し、その出力を返します。これにより、test2変数に/Users/johnディレクトリにある.jsonファイルのリストが格納されます。
そして、console.log()メソッドを使用してtest2変数の値をログに出力しています。注意してください、JavaScriptの場合、 console.log()のみログに出力することができ、変数を直接ログに出力することはできません。
ChatGPT さんにその質問を投げてみた
ワイにはちんぷんだがこれ合ってんの?
↓
次のJavaScriptコードは、AppleScriptで提供されたコードと同じ機能を提供します。
const { execSync } = require('child_process');
const test2 = execSync('/bin/ls /Users/john/*.json').toString().trim();
console.log(test2);
このJavaScriptコードは、Node.jsの標準ライブラリであるchild_processを使用して、ターミナルからコマンドを実行しています。execSync()メソッドは、指定されたコマンドを同期的に実行し、その出力を返します。これにより、test2変数に/Users/johnディレクトリにある.jsonファイルのリストが格納されます。
そして、console.log()メソッドを使用してtest2変数の値をログに出力しています。注意してください、JavaScriptの場合、 console.log()のみログに出力することができ、変数を直接ログに出力することはできません。
995名称未設定
2023/03/25(土) 06:44:11.86ID:9wC9X/Dv0 AppleScript アップルスクリプト 質問、発表 8
https://egg.5ch.net/test/read.cgi/mac/1679693883/
https://egg.5ch.net/test/read.cgi/mac/1679693883/
997名称未設定
2023/03/25(土) 13:35:07.93ID:jgAiznrY0 うめ
998名称未設定
2023/03/25(土) 13:37:33.81ID:jgAiznrY0 こぶ
999名称未設定
2023/03/25(土) 13:38:53.62ID:pO8wJ1xu0 とり
1000名称未設定
2023/03/25(土) 13:40:40.88ID:jgAiznrY0 Fin
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2184日 0時間 57分 50秒
新しいスレッドを立ててください。
life time: 2184日 0時間 57分 50秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「ブサイクばっかりやないか!」女性専用車両に乗り込んだ高齢男性、男性はダメと指摘され激昂 女性「恐怖、ショック」 ★2 [首都圏の虎★]
- 【備蓄米放出】どうしてコメはなかなか流通しないのか? 関係者「精米やコメの袋詰めが追いつかない状況だ」★2 [シャチ★]
- 『ダウンタウンDX』6月末終了→『ダウンタウンチャンネル』7月1日開始予定の点と線 莫大予算&一流集結 [ネギうどん★]
- バスは消え、タクシーは来ない…全国2割「移動難民」化の悲劇! なぜ「足」は奪われたのか? [首都圏の虎★]
- 「ブサイクばっかりやないか!」女性専用車両に乗り込んだ高齢男性、男性はダメと指摘され激昂 女性「恐怖、ショック」 ★3 [首都圏の虎★]
- 【芸能】元フジ・渡邊渚アナ、独立後初の地上波バラエティMCが決定! 6月13日スタートの新番組『昨日のアレ観』 [冬月記者★]
- ネパールパビリオン、未だオープンせず [402859164]
- 【石破速報】『ToHeart』リメイク、まるで別ゲーになるwwwww [705549419]
- ▶ぺこらんど
- 【石破悲報】日銀、25年度の成長率見通しを早くも1.1%→0.5%に下方修正😲これもう結果出る頃にはマイナスだろ [359965264]
- 【悲報】迷惑配信者、懲役24年wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [986198215]
- 山菜採りに行った妻を車で待っていた男性が行方不明 [696684471]