Iconizer: Revisited

Hello, I posted this in the AppleScript OSX Forum and didn’t get any bites. Perhaps I will here.

Hello, great site! Thanks for having me aboard. I got my hands on a very cool AppleScript from Apple Discussions that copies icons from the information window of the chosen file or folder and transfers these icons to a folder or file of your choosing. However, it has one annoying limitation. If the file (Source object) has a “generic” icon, the generic icon will be undesirably copied to the Target object. I have a shell script that should solve this problem (“/usr/bin/sips -i "$@"”) and I’d like to know where I can add it to this AppleScript. I made a couple of modifications to this script and it didn’t have a name so I took the liberty of naming it “Iconizer”.
Open this Scriplet in your Editor:
on run {}
set theSourceObject to my DetermineLocationOfObject(“source”)
set theTargetObject to my DetermineLocationOfObject(“target”)
my ApplyCustomIcon(theSourceObject, theTargetObject)
end run

to DetermineLocationOfObject(ObjectType)
display dialog “Is the " & ObjectType & " object going to be a file or a folder?” buttons {“File”, “Folder”} default button 2
if button returned of the result is equal to “File” then
set theObject to choose file with prompt “Please locate the " & ObjectType & " file.”
set theObject to choose folder with prompt “Please locate the " & ObjectType & " folder.”
end if
return theObject
end DetermineLocationOfObject

to ApplyCustomIcon(SourceObject, TargetObject)

my HandleInfoWindow(“source”, SourceObject)
my HandleInfoWindow(“target”, TargetObject)

end ApplyCustomIcon

to HandleInfoWindow(ObjectType, theObject)

tell application “Finder”
set InfoWindow to name of (open information window of item theObject)
end tell

tell application “System Events”
tell application process “Finder”
tell window InfoWindow
keystroke tab
if ObjectType is equal to “source” then
keystroke “c” using command down
keystroke “v” using command down
end if
end tell
end tell
end tell

tell application “Finder”
close window InfoWindow
if ObjectType is equal to “target” then display dialog “Icon transferred.” buttons {“OK”} default button 1 giving up after 5
end tell

end HandleInfoWindow
Model: eMac G4 1.25 GHz
AppleScript: 2.1.1 (81)
Browser: Safari 3.0.4
Operating System: Mac OS X (10.4)

No duplicate posts please. Also: http://bbs.applescript.net/viewtopic.php?id=13292

Original topic: http://bbs.applescript.net/viewtopic.php?id=23489