終了

AppleScript : ドキュメント設定や環境設定のウィンドウを取得したい

積極的な参加者 ,
May 25, 2022 May 25, 2022

リンクをクリップボードにコピー

コピー完了

お世話になっております。

 

AppleScriptでドキュメント設定や環境設定のウィンドウを取得したいのですが、なかなかうまくいきません。

 

tell application "Adobe Illustrator"
	activate
	execute menu command menu command string "document"
	
	tell application "System Events"
		tell process "Adobe Illustrator"
			set b to title of window 1
			display dialog b as string
		end tell
	end tell
end tell

 

これでは出来ませんでした。

window 1ではないのでしょうか。

 

教えていただきたいです。よろしくお願いします。

キーワード
スクリプティング

表示

524

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 1 件の正解

Community Expert , May 25, 2022 May 25, 2022

そもそもドキュメント設定や環境設定はモーダルダイアログなので、それが表示されている間、Illustratorは外部からの操作や命令を受けつけません。モーダルダイアログの取得と操作をするのは不可能のはずです。

投票

翻訳

翻訳
Community Expert ,
May 25, 2022 May 25, 2022

リンクをクリップボードにコピー

コピー完了

そもそもドキュメント設定や環境設定はモーダルダイアログなので、それが表示されている間、Illustratorは外部からの操作や命令を受けつけません。モーダルダイアログの取得と操作をするのは不可能のはずです。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ファン ,
May 25, 2022 May 25, 2022

リンクをクリップボードにコピー

コピー完了

20220526090515_2132x1014x144.0.png

 

monokanoさんがコメントしている通り
UIを取得できないので操作できませんね
リードオンリーの値もありますが

tell application "Adobe Illustrator"
properties
end tell

とか
tell application "Adobe Illustrator"
tell the current document
properties
get ruler units
end tell
end tell


単位系ならJAVASCRIPT経由かな?
tell application "Adobe Illustrator"
do javascript "app.preferences.getIntegerPreference(\"rulerType\"); "
end tell

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
積極的な参加者 ,
May 27, 2022 May 27, 2022

リンクをクリップボードにコピー

コピー完了

ありがとうございます。

そうなんですね!勉強不足でした・・・。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
May 25, 2022 May 25, 2022

リンクをクリップボードにコピー

コピー完了

設定ウインドウ自体の取得には意味がありませんので、Applicationの子であるPreferencesクラスの参照を考えれば良いのではないかと思います。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
積極的な参加者 ,
May 27, 2022 May 27, 2022

リンクをクリップボードにコピー

コピー完了

ありがとうございます。

別のやり方考えてみます!

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Nov 15, 2023 Nov 15, 2023

リンクをクリップボードにコピー

コピー完了

すでにご解決済みの件ですので大変恐縮なのですが、
過去にIllustratorで処理中のプログレスバーなどモーダルウィンドウをSystem Eventsで監視して、
なくなるまで待つといった処理を書いていたのですが、MacのOSが上がったどこかのタイミングで
モーダルウィンドウがSystem Eventsから取得できなくなりました。

 

添付はInDesign、Photoshop、Illustratorのそれぞれで環境設定ダイアログを出して

ウィンドウの取得を試みた結果です。

InDesignやPhotoshopは私の環境(macOS Big Sur 11.7.10)で現在でもモーダルウィンドウが取得できますが、
Illustratorは無理なようです。

 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Nov 16, 2023 Nov 16, 2023

リンクをクリップボードにコピー

コピー完了

失礼します。追記いたします。

ご質問でのwindowのタイトル名は未だ取得できないので

回答にはならないかもしれないですが、

illustratorのモーダルダイアログ内の要素は

System Eventsから「UI element」で取得できました。

添付はドキュメント設定ダイアログを出した状態でScriptを実行したものです。

 

モーダルダイアログは各UI elementの先頭に来るようです。

結果ウィンドウ内のトップレベルの各要素が得られました。

ですが、ウィンドウのタイトルやOK・キャンセルボタンが含まれていないので、

windowそのものにはアクセスできていないのかもしれません。

ひとまずですがダイアログで見えている要素は取得できました。

 

要素のステータスや値の変更ができるかを試したところ

本来は各要素に対しコマンド(clickやselect、setなど)で、行えるのですが、

受け付けられませんでした。

keystrokeやkey codeは有効でしたので、

例えば断ち落としの幅などを変更することができました。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Nov 16, 2023 Nov 16, 2023

リンクをクリップボードにコピー

コピー完了

最新

下記にSystemEventsでkeystrokeやkey codeコマンドなどを使用して、

ドキュメントの断ち落としを5mmに変更するapplescriptを書かせていただきました。

ご参考になれば幸いです。

set target_mm to "5mm"

tell application "Adobe Illustrator"

activate

tell application "System Events"

tell application process "Adobe Illustrator"

click menu item "ドキュメント設定..." of menu "ファイル" of menu bar item "ファイル" of menu bar 1

tell UI element 1

delay 1

keystroke tab

delay 1

keystroke tab

keystroke target_mm

keystroke tab

keystroke target_mm

keystroke tab

keystroke target_mm

keystroke tab

keystroke target_mm

keystroke return

end tell

end tell

end tell

end tell

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines