0

私のスクリプティング能力が洗練されていないことをお許しください。しかし、スクリプトはスクリプト エディタ内で呼び出すと問題なく動作します。ただし、アプリケーションとして保存すると、アイコンはそれがドロップレットであることを示しておらず、そのように機能しません。どんな助けでも大歓迎です!

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
4

1 に答える 1

0

アプリケーションにドロップされたアイテムを処理するには、ドロップされたアイテムのリストを受け取るオープンハンドラーを追加する必要があります (1 つしかない場合でも)。次に例を示します。

on open theDroppedItems
    -- whatever
end open

アプリケーションをダブルクリックすると代わりにrunハンドラーが呼び出されるため、メイン ステートメントを複数の場所から呼び出すことができるハンドラー (複数可) に配置するようにコードを再配置する必要があります。

于 2012-08-11T15:53:56.740 に答える