user3038051
user3038051

Reputation: 21

Applescripting - down arrow to highlight and select file within a Photoshop CS5 choose file window

Hello and Thank you for any help whatsoever,

I am writing a script to write a long list of file formats by accessing Adobe action scripts.

My problem is that I cannot seem to access a file with a down arrow within the script once it is in a photoshop "choose file" window.

I would have it open a specific file by path but this file name will change constantly.

Here is what I have

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

And to tell you the truth I would love for it to open any file within a specified path to the folder it is in so that there are no glitches later.

Thank you for any help

Upvotes: 2

Views: 331

Answers (1)

regulus6633
regulus6633

Reputation: 19032

You can't do as you ask. First, regarding the choose file dialog, it is not a "photoshop" choose file dialog. It is an applescript dialog box. It doesn't matter that you have it inside the photoshop tell block of code, applescript is executing the command not photoshop.

Second, when the choose file dialog is open the entire script pauses waiting for you to actually choose a file in the dialog. So the system events code to press the down arrow does not execute until after the dialog box is dismissed. As such the system events code isn't run when the dialog is showing.

In general your whole approach will not work. To illustrate notice this won't work. You have to manually choose the file before the system events code will run.

set myFile to (choose file) as string

tell application "System Events"
    key code 125
    delay 0.2
    key code 36
end tell

return myFile

But there is a trick you can use. We can issue the system events code before the choose file dialog is shown, make that code delay 3 seconds before it is run, then when it does run it will effect the choose file dialog. We can do this by running the system events code through the shell. Try this...

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

So now we can put this in your script to open the chosen file in 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

Upvotes: 1

Related Questions