您好,感谢您的任何帮助,
我正在编写一个脚本,通过访问Adobe动作脚本来编写一长串文件格式。
我的问题是,一旦进入photoshop“选择文件”窗口,我似乎无法访问脚本中带有向下箭头的文件。
我希望它按路径打开一个特定的文件,但这个文件名会不断变化。
这就是我所拥有的
tell application "Adobe Illustrator"
do script "eps format save" from "Default Actions" without dialogs
end tell
delay 2
tell application "Adobe Photoshop CS5"
set myFile to (choose file) as string
open file myFile
delay 4
tell application "System Events"
key code 125 -- **DOES NOT KEY DOWN**
key code 36 -- **FOR SELECTING THE CHOOSE BUTTON ONCE HIGHLIGHTED**
end tell
delay 4
tell current document
do action "saving formats" from "Default Actions" -- action and set name, case sensitive
end tell
end tell
说实话我真的很喜欢它在指定路径中打开任何文件到它所在的文件夹中,以便以后不会出现故障。
感谢您的帮助
答案 0 :(得分:1)
你不能按照你的要求去做。首先,关于选择文件对话框,它不是“photoshop”选择文件对话框。这是一个Applecript对话框。你在photoshop中告诉代码块没关系,applecript正在执行命令而不是photoshop。
其次,当选择文件对话框打开时,整个脚本会暂停,等待您在对话框中实际选择文件。因此,在关闭对话框之后,按下向下箭头的系统事件代码才会执行。因此,当对话框显示时,系统事件代码不会运行。
一般来说,你的整个方法都行不通。为了说明这一点,这将不起作用。您必须在运行系统事件代码之前手动选择文件。
set myFile to (choose file) as string
tell application "System Events"
key code 125
delay 0.2
key code 36
end tell
return myFile
但是你可以使用一个技巧。我们可以在显示选择文件对话框之前发出系统事件代码,使代码在运行前3秒延迟,然后当它运行时它将影响选择文件对话框。我们可以通过shell运行系统事件代码来完成此操作。试试这个......
do shell script "/usr/bin/osascript -e 'delay 3' -e 'tell application \"System Events\"' -e 'key code 125' -e 'delay 0.2' -e 'key code 36' -e 'end tell' > /dev/null 2>&1 &"
set myFile to (choose file) as string
return myFile
现在我们可以将它放在你的脚本中,在photoshop中打开所选文件。
-- do illustrator stuff here
do shell script "/usr/bin/osascript -e 'delay 3' -e 'tell application \"System Events\"' -e 'key code 125' -e 'delay 0.2' -e 'key code 36' -e 'end tell' > /dev/null 2>&1 &"
set myFile to (choose file) as string
tell application "Adobe Photoshop CS5"
open file myFile
-- do photoshop action stuff here
end tell