0
votes

I am writing a script and want to hem in the user(s) in the future from errors. The big one I'm working on right now is that the Choose File command box for Finder or AppleScript (doesn't matter) do not contain the "giving up after" option. So while I can set the timeout to a very large number of seconds (5000 for example), I can't get the box to close and reopen without the Apple Events timing out.

So here is one option I've tried. but the problem I have is that if I swipe to another screen, even if I Activate the finder, it will say that it can't find the window "Choose a File"

Is there a way to get the window to follow the swipe or a command with activate that will bring the finder window to the current screen, even if I'm working in say Safari?

The error occurs when I swipe to another screen; see the error below:

error "System Events got an error: Can’t get window \"Choose a File\" of process \"Finder\"." number -1728 from window "Choose a File" of process "Finder"

Script:

try with timeout of 5 seconds tell application "Finder" set theFilestoChoose to every item of (choose file with prompt "Please select the file(s) you would like to move and rename:" with multiple selections allowed) as list end tell end timeout on error errStr number errorNumber if errorNumber is -1712 then --timeout error my closeWindow() --call handler to close window end if end try

on closeWindow() tell application "System Events" delay 2 -- for observation testing purposes
set frontmost of process "Finder" to true delay 2 -- for observation testing purposes click button "Cancel" of window "Choose a File" of process "Finder" end tell end closeWindow

1

1 Answers

0
votes

You'll have to look into the defaults setting AutoSwoosh = true; defaults write com.apple.Dock workspaces-auto-swoosh -bool YES ; KillAll Dock which makes you go to the active app, if it isn't in the current space, the app itself, (Finder in this case?), shouldn't be assigned to a space.

If that is your basic configuration, then a simple activate before it, should bring you directly to your choose file dialog, if it is in another space.

Here is a fleshed out example of embedding the choose file with tell application (path to frontmost application as text):

  tell application (path to frontmost application as text)
      set theF to (choose file)
  end tell