【中の人】Automator【小人】3人目 [転載禁止]©2ch.net
>>415
なんでopen locationした後、make new windowしてんの?
余計な空白タブができる原因はこれでしょ
Firefoxは入れてないんで知らんけど、Safariではこれでできてるよ >>418
レスどうも。
うちの環境では(特に特別な設定はしてません)make new documentを外してもやはり空白の新規タブが最初に作られてしまいます。 >>415
do shell script "open -g -b 'org.mozilla.firefox' 'https://www.apple.com/'" --手前にせず背後で開く(新規タブ/ウインドウは作られないはず)
--delay 1 --front windowが見つからないとか言われる場合は少し待たせる。
tell application "Firefox"
tell front window
set bounds to {0, 0, 1000, 1000}
end tell
--delay 1 --activateで新規タブ/ウインドウが開いてしまう場合は少し待たせる。
activate
end tell >>420
レスどうも。
私の環境ではうまくいかないようです。
やはり空白タブが出てきたり、指定してウインドウサイズにならなかったりします。
ちゃんと思うように動作することもあるのですが。
待ち時間も変更してみましたがうまくいかないようです。 Firefoxが起動して既にウィンドウがあっても別の新しいウィンドウでなら、
Firefox実行ファイルのオプションで(起動。新たに別のAppとしては起動しないけど)かな
set firefoxPath to quoted form of ((POSIX path of (path to application id "org.mozilla.firefox")) & "Contents/MacOS/firefox-bin")
set firefoxOption to "--new-window"
set theURL to "https://www.apple.com/"
do shell script firefoxPath & " " & firefoxOption & " " & quoted form of theURL
Firefoxが起動してなくてでは余計なブランクタブができてることが(ままある)のはもうFirefoxの癖(wまあバグといえばバグ)だから、気にくわないならブランクタブを消すようにスクリプトを書くしかないかな
ウィンドウサイズは、許可を与えてないか、ブラウザウィンドウではないなんか不可視の隠しウィンドウがあるからそれに対してか、単なるスクリプトのミスかな
ちゃんとしたドキュメントウィンドウ/ブラウザウィンドウはSystem Eventsでのattributeで得られたはず >ちゃんとしたドキュメントウィンドウ/ブラウザウィンドウはSystem Eventsでのattributeで得られたはず
System Eventsでの対象ウィンドウは、ドキュメントウィンドウやGUIとしてちゃんと意味あるウィンドウだけで、余計ななんかわからんのは無い方だったか
逆に、他のスペースにあるのは無かったりもするけど。今回のようなのはSystem Events/processでのfront windowでやった方が良さげ みなさんご親切に様々な方法を教えていただいてありがとうございます。
もしかすると当方の環境のせいでうまく動作しないのかもしれないので
一旦Firefoxを初期化して教えていただいている方法を試してみます。
ここまでありがとうざいます。 Firefoxのオプションは、--new-window でなくて -new-window な
コマンドラインから open -a /Applications/Firefox.app --args -new-window https://5ch.net とかって試してみるのオススメ わざわざそんないちゃもんwはどこから出てきたんだ?
フルネーム的なオプションの場合は、- ではなく -- というのがデファクトスタンダード(どこか策定するとことかでそうすべきという文書があるはず)
Terminalで firefox-bin --help もしくは firefox-bin -h してみ ああ、
>コマンドラインから open 〜
openに拘ってそれだと動いたうご来ないとかでか??だとしたら色々勘違いしすぎてるな こんばんは。
いつもお世話になり続けています。
少し教えてください。
tell application "System Events"
if exists (window 1 of process "Safari") then
display dialog "1"
else
display dialog "0"
end if
end tell
Safariを終了してる状態でこのコードを実行するとダイアログで0が出て来るまでに7秒程度かかります。
Safariが起動しているとすぐに表示されます。
また、同じコードのSafariをFirefoxに変えるとアプリの終了起動に関係なくすぐにダイアログが出てきます。
このコード、何かおかしいでしょうか?
ウインドウは有無でコードを変えたいです。 >>428
レスを修正します。
>また、同じコードのSafariをFirefoxに変えるとアプリの終了起動に関係なくすぐにダイアログが出てきます。
Firefoxでもやはりアプリが起動してない場合ダイアログが出て来るまで時間がかかります。
macOS Ventura 13.2.1です。 やりたい事と違うかもだけど、プロセスが無ければ他の処理する案
tell application "System Events"
set p to every process whose name is "Safari"
if p is {} then
display dialog "-1"
else
if (exists window 1 of process "Safari") then
display dialog "1"
else
display dialog "0"
end if
end if
end tell へーexistsで有無を調べられるんだ
tryでやってたわ exists process が目的のprocessが存在しない場合がめっちゃ遅いね
>>430の、existsではない方法でプロセスの存在を確認してからのが適切のよう おはようございます。
>>430さんの方法でばっちりいけました。
しかも、3通りの確認ができてさらに便利になりました。
大変助かりました。ありがとうざいます。 >>430
昨日教えていただいたこのコードですが、Safariだとうまく行っています。
とても嬉しいです。ありがとうございます。
うまくいってるのでFirefoxに転用しようとやっているのですが、(Safari -> Firefoxに書き換えています)
display dialog “-1”の所に例えば
tell application "Firefox"
activate
make new document
tell front window
set bounds to {0, 25, 1000, 1000}
end tell
end tell
を入れてFirefoxを終了した状態でAutomatorアプリを実行するとなぜかダイアログ1が返ってきます。
Safariではちゃんとダイアログ-1が返って来るのですが、Safariと同じような動作をさせるにはどうすればいいか分かりませんでしょうか。 >>434
念のための確認だけど
display dialog "1"
の上の行の “Safari” を “Firefox” に書き換えてますよね? >>435
レスありがとうございます。
コードはテキストエディタにコピペして置換してるので漏れなく置き換えできてると思います。 >>436
元の >>434 だけど
> display dialog “-1”の所に例えば
の “-1” は “1” の誤りかな
んで「の所に」ってのは、置き換えで合ってる?
自分の所だと、想定通り(*)動いているような…?
* Firefoxウィンドウがある時だけリサイズ
tell application "System Events"
set p to every process whose name is "Firefox"
if p is {} then
display dialog "-1"
else
if (exists window 1 of process "Firefox") then
tell application "Firefox"
activate
make new document
tell front window
set bounds to {0, 25, 1000, 1000}
end tell
end tell
else
display dialog "0"
end if
end if
end tell 全く関係ないけど、Firefox の make new document は何の意味もないよ
documentオブジェクトは作られるが、何の意味もないのが作られるだけでただのメモリの浪費 >>438
Firefoxでは意味はないが、Safariの場合は意味があるってことですか? FirefoxはStandard Suiteしかないから、Scriptableとは言いがたいな ちょっと前までは UI scriptingで何とかタブまではアクセスできたが、今のはそれすら全くだからな。今の話題のせいぜいウィンドウ「だけ」
全くScriptableではないよ。make new document の現在の無意味なのも前にScriptableにしようとした名残で残ってるだけで、現在のは全くScriptableではないな >現在のは全くScriptableではない
かなり前から 正式なScriptable にする気は無くなっていて、その時からScriptableではないが、
普通にCocoa使って/準拠してのアプリを作れば UI Scripting で操作できるアプリになるのに、それすらできなくする、
全く「スクリプトによって」というのを意識しないオレオレな作り(スクリプトによるを排除/拒絶しようとしてんのかさえ思えるw)なアプリだなという意味での 全くScriptableではない ね ワークフローが動かない場合、各アプリごとに許可しないといけないと思いますが設定のどこから許可するんでしたっけ…?
venturaにしてから分からなくなってしまいました…https://i.imgur.com/k9H3rhk.png >>445
システム設定/プライベートとセキュリティ/アクセシビリティ
ですかね。
オートメーションの方は自動で設定されるので。 いつもお世話になっています。
以前>>420で教えていただいたコードですが、現在
AppleScriptを実行
do shell script "open -g -b 'org.mozilla.firefox' 'https://www.apple.com/'"
delay 0.5
AppleScriptを実行
tell application "Firefox"
activate
tell front window
delay 0.1
set bounds to {0, 0, 1000, 1000}
end tell
end tell
とAppleScriptを実行を2つに分けて使うとなんとなくうまくいくようになりました。
なぜ2つに分けるとなんとなく(1/10くらいの確率で空白タブができたりリサイズされなかったりますが)うまくいくのでしょうか?
1つにまとめるとほぼ毎回空白タブができてしまいます。
なぜそうなるのか理由が知りたいのですがわかりませんでしょうか。 なんてーかもう、いちいちここで聞く話じゃない、突き詰めようとし過ぎじゃないの、って感じ
そこそこ回避できてるっぽいなら、それでもう満足しとけば AppleScriptは基本的に他のアプリに命令を投げるから、それにどれくらい正しく反応するかは投げられた側の実装次第。
起動してウインドウ表示しようとしてる時とか忙しそうな時には微妙なタイミングの違いで動作が変わってしまうのはよくあること。
確実に動かしたいならUI Scriptingで状態をチェックする処理を入れるとかするしかない。
(ただFirefoxは上の話のように対応度が低いのでそれも難しいけど) Finderで開いているフォルダをカレントディレクトリとしてターミナルで新たなシェルを
開始する、みたいのってAutomatorでできるんでしたっけ?
あと、Finderで開いているフォルダに空のテキストファイルを作成してそれをエディタで
開くとか
以前見たような気がするんだけど、今さら気になって こんなところで「簡単なことは教えない」みたいなマウントしてる感じ? AppleScriptのスレだったと思うけど、一言「頑張れ」って返したら、自力で目的を達成するスクリプトを書いてた人がいた
だから君も「頑張れ」 システム設定 → キーボード → キーボードショートカット... → サービス → ファイルとフォルダ
「フォルダに新規ターミナル」に好きなショートカットキーを設定する >>457
これで付けたショートカットって、選択してるフォルダには使えるけど、開いてるフォルダ(タブ/ウインドウ)には使えないのよね 写真アプリから書き出した写真や動画の作成日や更新日時を、撮影した時間に一括変更する方法ないでしょうか?
スクリプトでありそうなのですが見つかりませんでした。
プレビューアプリ→Exif情報の「オリジナルの日時」にはきちんと撮影した時間が入っています。
こちらでFinderでソートしたいのですが、一括変更は出来ないでしょうか?
宜しくお願い致します。 >>459
コマンドラインでだけど、
ExifTool を使えば情報は取れるから、あとは setfile で作成日を変更すれば OK
https://exiftool.org/ あった
ttps://ogawadan.com/mac-photo-exif-date-automator-exiftool/ >>461
ありがとうございます!
ただ、こちらにMOVをドラッグ&ドロップしてもCreation Dateを変更日には出来なかったです…。
MOVは無理なのでしょうか >>462
exiftool -CreationDate target.MOV で取れるみたいだけど?
ttps://kiririmode.hatenablog.jp/entry/20220219/1645245471 デフォルトのmdlsコマンドでexifデータを取得することも可能 凄く初歩的な質問で申し訳ないですが
WindowsとMacのパスを変換するクイックアクションを作ったんですが
そもそも右クリックのクイックアクションの所に作ったクイックアクションが表示されません
システム設定のプライバシーとセキュリティのところにも表示されていません
ユーザー>ライブラリ>Serviceにクイックメニューのファイルはあります
原因分かるかたいますか? >>465
入力は何?
Finderで、ファイルやフォルダを右クリックして実行したいなら、
クイックアクションを作るときに、
ワークフローが受け取る現在の項目を“ファイルまたはフォルダ”にしとけば出るんじゃないの? >>466
ありがとう
無事出来るようになりました!!