リンクをクリップボードにコピー
コピー完了
お世話になっております。
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ではないのでしょうか。
教えていただきたいです。よろしくお願いします。
リンクをクリップボードにコピー
コピー完了
そもそもドキュメント設定や環境設定はモーダルダイアログなので、それが表示されている間、Illustratorは外部からの操作や命令を受けつけません。モーダルダイアログの取得と操作をするのは不可能のはずです。
リンクをクリップボードにコピー
コピー完了
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
リンクをクリップボードにコピー
コピー完了
ありがとうございます。
そうなんですね!勉強不足でした・・・。
リンクをクリップボードにコピー
コピー完了
設定ウインドウ自体の取得には意味がありませんので、Applicationの子であるPreferencesクラスの参照を考えれば良いのではないかと思います。
リンクをクリップボードにコピー
コピー完了
ありがとうございます。
別のやり方考えてみます!
リンクをクリップボードにコピー
コピー完了
すでにご解決済みの件ですので大変恐縮なのですが、
過去にIllustratorで処理中のプログレスバーなどモーダルウィンドウをSystem Eventsで監視して、
なくなるまで待つといった処理を書いていたのですが、MacのOSが上がったどこかのタイミングで
モーダルウィンドウがSystem Eventsから取得できなくなりました。
添付はInDesign、Photoshop、Illustratorのそれぞれで環境設定ダイアログを出して
ウィンドウの取得を試みた結果です。
InDesignやPhotoshopは私の環境(macOS Big Sur 11.7.10)で現在でもモーダルウィンドウが取得できますが、
Illustratorは無理なようです。
リンクをクリップボードにコピー
コピー完了
失礼します。追記いたします。
ご質問でのwindowのタイトル名は未だ取得できないので
回答にはならないかもしれないですが、
illustratorのモーダルダイアログ内の要素は
System Eventsから「UI element」で取得できました。
添付はドキュメント設定ダイアログを出した状態でScriptを実行したものです。
モーダルダイアログは各UI elementの先頭に来るようです。
結果ウィンドウ内のトップレベルの各要素が得られました。
ですが、ウィンドウのタイトルやOK・キャンセルボタンが含まれていないので、
windowそのものにはアクセスできていないのかもしれません。
ひとまずですがダイアログで見えている要素は取得できました。
各要素のステータスや値の変更ができるかを試したところ
本来は各要素に対しコマンド(clickやselect、setなど)で、行えるのですが、
受け付けられませんでした。
keystrokeやkey codeは有効でしたので、
例えば断ち落としの幅などを変更することができました。
リンクをクリップボードにコピー
コピー完了
下記に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