Questo piccolo AppleScript eseguirà una schermata e sovrascriverà qualsiasi file selezionato al momento nel Finder.
# Check that precisely one file is selected
set F to the selection of application "Finder" as list
if (count F) ≠ 1 then return beep
set F to F's first item as alias
# Perform a screengrab straight to the clipboard
# then overwrite the file above with the image
# data from the clipboard
do shell script "screencapture -c"
set screenshot to the clipboard as JPEG picture
write screenshot to (F as alias)
Non si sposta, copia o cancella; semplicemente lo sovrascrive. Quindi, tenete a mente, questo significa che la data creata rimarrà la stessa, che potenzialmente potrebbe vedere la generazione di una nuova schermata di scrittura su un file immagine creato due anni fa. (La data modificata viene aggiornata come ci si aspetterebbe.)
Come qualcuno ha suggerito, questo tipo di cose funzionerebbe bene come un servizio in Finder , a cui potresti assegnare un collegamento.
Ho iniziato a crearne uno:
Loscriptèmoltosimileaunosopra(eaggiuntoinfondoaquestarispostainunbloccodicodicechepuoicopiare/incollare).Haunpo'digestionedeglierrorienotifiche,datochequestosaràunservizioedèbellorenderlorobusto.Inoltre,nonprendealcunaimmaginedelloschermodisuaspontaneavolontà,inquantounoscreenshoteseguitoquandoilservizioèattivatodovrebbeaverenecessariamenteilFinderafuoco,chepotrebbenonessereloscreenshotdesiderato.
Pertanto,questoserviziopresupponechetuabbiagiàacquisitoloscreenshotechesiainattesanegliAppunti.IlFinderhagiàscorciatoiecheconsentonodiinviaregliscreenshotdirettamentenegliAppunti,quindinonc'èbisognodifarenulladipiù.
HosalvatoilserviziocomeunochiamatoSostituiscifileimmagine,comenoteraichel'inputèspecificamentefileimmagineinFinder.Pertanto,ilserviziononverràattivatoaccidentalmentese,peresempio,èstatoselezionatounfiledell'applicazione.
Oravienevisualizzatonelmenudisceltarapidaognivoltachefaccioclicconilpulsantedestrodelmousesuun'immagineinFinder:
Successivamente,sonoentratoinPreferenzediSistemaperassegnareunascorciatoiadatastiera:
QuestocollegamentositrovanelmenuFindersottoServizi:
Hoscelto^⇧⌘Rperchéèragionevolmentedifficiledapremereaccidentalmente,maèpiuttostoadiacenteallescorciatoiepredefiniteperinviareunoscreenshotdirettamentenegliappunti,ovvero^⇧⌘3e^⇧⌘4,ovverolamanovrafisicatral'assunzioneunoscreenshoteattivandoilserviziounoconvenientedafare.
Felicedidireche,duranteitest,hafunzionatomagnificamente,quindipotreisemplicementetenerlopermestessoperchépossovederecheèabbastanzautile.
Infine,eccoilbloccodicodiceperilflussodilavorodelservizioAutomator:
onrun{input,parameters}#Makesurepreciselyonefileispassedtotheservice#Otherwiseterminatewithabeepif(countinput)isnot1thenreturnbeep#Errorcatchingintheeventthattheclipboard#doesnotcontainimagedatatrysetImageDatatotheclipboardasJPEGpictureonerrorerrMsgnumbererrNo#Terminatescriptwithanotificationreturndisplaynotification¬"No image content found. Unable to proceed." with title ¬
"Replace Image File" subtitle ¬
"Error: clipboard content is the wrong data type"
end try
# If the script reaches this point, all must be
# well so we can try and overwrite the input file
try
write ImageData to input
on error errMsg number errNo
return display notification ¬
"Unsuccessful overwriting." with title ¬
"Replace Image File" subtitle ¬
("Error " & errNo as text) & ": " & errMsg
end try
end run