2011-02-14 18:18:51 +00:00
|
|
|
on saveImageWithItselfAsIcon(icon_image_file)
|
|
|
|
-- save icon_image_file with itself as icon
|
|
|
|
set icon_image_file_string to icon_image_file as string
|
|
|
|
tell application "Image Events"
|
|
|
|
launch
|
|
|
|
set icon_image to open file icon_image_file_string
|
|
|
|
save icon_image with icon
|
|
|
|
close icon_image
|
|
|
|
end tell
|
|
|
|
end saveImageWithItselfAsIcon
|
|
|
|
|
|
|
|
on copyIconOfTo(aFileOrFolderWithIcon, aFileOrFolder)
|
|
|
|
tell application "Finder" to set f to aFileOrFolderWithIcon as alias
|
|
|
|
-- grab the file's icon
|
|
|
|
my CopyOrPaste(f, "c")
|
|
|
|
-- now the icon is in the clipboard
|
|
|
|
tell application "Finder" to set c to aFileOrFolder as alias
|
|
|
|
my CopyOrPaste(result, "v")
|
|
|
|
end copyIconOfTo
|
|
|
|
|
|
|
|
on CopyOrPaste(i, cv)
|
|
|
|
tell application "Finder"
|
|
|
|
activate
|
|
|
|
open information window of i
|
|
|
|
end tell
|
|
|
|
tell application "System Events" to tell process "Finder" to tell window 1
|
|
|
|
keystroke tab -- select icon button
|
|
|
|
keystroke (cv & "w") using command down (* (copy or paste) + close window *)
|
|
|
|
end tell -- window 1 then process Finder then System Events
|
|
|
|
end CopyOrPaste
|
|
|
|
|
|
|
|
on run
|
|
|
|
set icon_image_file to POSIX file "%s" as alias
|
|
|
|
set dmg_file to POSIX file "/Volumes/%s" as alias
|
|
|
|
|
|
|
|
my saveImageWithItselfAsIcon(icon_image_file)
|
|
|
|
-- wait for virus scanner
|
|
|
|
delay 2
|
|
|
|
my copyIconOfTo(icon_image_file, dmg_file)
|
|
|
|
|
|
|
|
tell application "Finder"
|
|
|
|
tell disk "%s"
|
|
|
|
open
|
|
|
|
set current view of container window to icon view
|
|
|
|
set toolbar visible of container window to false
|
|
|
|
set statusbar visible of container window to false
|
|
|
|
set the bounds of container window to {400, 100, 1100, 500}
|
|
|
|
set theViewOptions to the icon view options of container window
|
|
|
|
set arrangement of theViewOptions to not arranged
|
|
|
|
set icon size of theViewOptions to 128
|
2011-07-13 20:41:54 +00:00
|
|
|
set background picture of theViewOptions to file ".background:installer-background.png"
|
2011-02-14 18:18:51 +00:00
|
|
|
if not exists file "Applications" then
|
|
|
|
make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
|
|
|
|
end if
|
|
|
|
delay 5
|
|
|
|
set position of item "%s" of container window to {160, 200}
|
|
|
|
set position of item ".Trashes" of container window to {100, 500}
|
|
|
|
set position of item ".installer-background.png" of container window to {200, 500}
|
|
|
|
set position of item ".DS_Store" of container window to {400, 500}
|
|
|
|
set position of item "Applications" of container window to {550, 200}
|
|
|
|
set position of item ".VolumeIcon.icns" of container window to {500, 500}
|
|
|
|
set position of item ".fseventsd" of container window to {300, 500}
|
|
|
|
if exists POSIX file ".SymAVx86QSFile" then
|
|
|
|
set position of item ".SymAVx86QSFile" of container window to {600, 500}
|
|
|
|
end if
|
|
|
|
open
|
|
|
|
close
|
|
|
|
update without registering applications
|
|
|
|
-- wait until the virus scan completes
|
|
|
|
delay 5
|
|
|
|
-- eject
|
|
|
|
end tell
|
|
|
|
end tell
|
|
|
|
end run
|