简体   繁体   中英

Applescript: Unable to make script into droplet

Please excuse my less-than-elegant scripting ability, but the script is working fine when invoked within the script editor itself. When I save it as an application however, the icon doesn't show that it's a droplet and does not work as such. Any help is greatly appreciated!

try
    set destinationFolder to "Mercury:F1_PropertyLogos:"
    tell application "Finder" to set logoFileName to name of item 1 of (get selection)

end try

set file_name to logoFileName
set file_name to remove_extension(file_name)


on remove_extension(this_name)
    if this_name contains "." then
            set this_name to ¬
                    (the reverse of every character of this_name) as string
            set x to the offset of "." in this_name
            set this_name to (text (x + 1) thru -1 of this_name)
            set this_name to (the reverse of every character of this_name) as string
    end if
    return this_name
end remove_extension

tell application "Finder"
    set selected_items to selection
    set theFolder to "Mercury:F1_PropertyLogos:"

    repeat with x in selected_items
            move x to theFolder
    end repeat
end tell

tell application "QuarkXPress"
    set mypath to "Mercury:F1_Layouts:"
    set myfile to file_name
    set extension to ".qxp"
    set logoFolderPath to "Mercury:F1_PropertyLogos:"
    set myLogoFile to file_name
    set myLogoExtension to ".psd"
    set myLogo to (logoFolderPath & myLogoFile & myLogoExtension)
    open file (mypath & myfile & extension)
    set selected of picture box "Logo" of spread 1 of document 1 to true
    set image 1 of picture box "Logo" of spread 1 of document 1 to file myLogo
    set bounds of image 1 of picture box "Logo" of spread 1 of document 1 to proportional fit
end tell

end

To deal with items dropped onto the application, you will need to add an open handler that receives a list of the dropped items (even if there is only one), for example:

on open theDroppedItems
    -- whatever
end open

You should probably rearrange your code to place your main statements into a handler (or handlers) that can be called from multiple places, since double-clicking on the application will call the run handler instead.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM