Ce qui suit est un exemple de ce que je ferais, si j'avais besoin des deux, pour placer un capture d'écran sur le presse-papiers et le sauvegarder comme un fichier en même temps.
J'utiliserais Automator pour créer un Service 1 flux de travail à laquelle un raccourci clavier pourrait être attribué, pour exécuter un AppleScript script de faire en sorte que ces deux événements se produisent en conjonction l'un avec l'autre.
En Automator , créer une nouvelle Service 1 avec les paramètres suivants :
- Le service reçoit (aucune entrée) dans (toute application)
-
Ajouter a Exécuter AppleScript action en remplacement de la valeur par défaut code
avec le exemple AppleScript code présenté plus loin :
-
Sauvez le site Automator Service 1 comme, par exemple : Capture d'écran vers le presse-papiers et le fichier
-
Affecter a raccourci en Préférences du système > Clavier > Raccourcis > Services :
-
Capture d'écran vers le presse-papiers et le fichier 5 2
Maintenant, quand vous appuyez sur 5 2 le site curseur en forme de croix apparaît comme si vous aviez appuyé sur 4 Cependant, après avoir fait le sélection comme d'habitude et en relâchant la souris, le zone sélectionnée est à la fois copié dans le presse-papiers et sauvegardé dans un fichier sur le Bureau .
Mise à jour de MacOS Mojave :
- 1 En <strong>MacOS Mojave </strong>, a <em>Service </em>en <strong>Automator </strong>est désormais appelé <em>Action rapide </em>alors sélectionnez-la.
- 2 Par défaut, <strong>5 </strong>en <strong>MacOS Mojave </strong>est attribué à une nouvelle fonctionnalité de capture d'écran, alors essayez <strong>6 </strong>à la place.
El convention d'appellation des fichiers est celle de la MacOS par défaut pour Captures d'écran sauvegardé normalement, dans ma région. Vous devrez peut-être ajuster la ligne suivante de code pour qu'il soit comme dans votre région :
set theDateTimeNow to (do shell script "date \"+%Y-%m-%d at %l.%M.%S %p\"")
Dans ma région, cette commande produit l'exemple de sortie suivant, où l'option valeur de la theDateTimeNow
variable serait, par exemple :
2018-01-13 at 12.04.30 PM
Entre la ligne de code ci-dessus et les deux lignes qui la suivent dans le fichier script ils produisent, par exemple :
Screen Shot 2018-01-13 at 12.04.30 PM.png
En Terminal Jetez un coup d'œil à la page de manuel pour les deux date
y strftime
afin d'effectuer des ajustements pour formater la date et l'heure. valeur de la theDateTimeNow
variable selon les besoins ou les envies.
Nota: Lire l'article commentaires tout au long de la exemple AppleScript code afin de comprendre ce que le script fait.
Ceci a été testé sous MacOS 10.13.1 et a fonctionné pour moi sans problème.
Exemple AppleScript code :
on run {input, parameters}
-- # Screen Shot to Clipboard and File
-- # Clear the clipboard so the 'repeat until isReady ...' loop works properly.
set the clipboard to ""
-- # Copy picture of selected area to the clipboard, press: 4
-- # Note that on my system I need to keystroke '$' instead of '4'.
-- # I assume this is because the 'shift' key is being pressed.
tell application "System Events"
keystroke "$" using {control down, shift down, command down}
end tell
-- # Wait while user makes the selection and releases the mouse or times out.
-- # Note that the time out also acts as an escape key press of sorts. In other
-- # words, if the user actually presses the escape key it has no effect on this
-- # script like it would if pressing the normal shortcut outside of the script.
-- #
-- # As coded, the time out is 5 seconds. Adjust 'or i is greater than 10' and or
-- # 'delay 0.5' as appropriate for your needs to set a different length time out.
-- # This means, as is, you have 5 seconds to select the area of the screen you
-- # want to capture and let go of the mouse button, otherwise it times out.
set i to 0
set isReady to false
repeat until isReady or i is greater than 10
delay 0.5
set i to i + 1
set cbInfo to (clipboard info) as string
if cbInfo contains "class PNGf" then
set isReady to true
end if
end repeat
if not isReady then
-- # User either pressed the Esc key or timed out waiting.
return -- # Exit the script without further processing.
end if
-- # Build out the screen shot path filename so its convention is of
-- # the default behavior when saving a screen shot to the Desktop.
set theDateTimeNow to (do shell script "date \"+%Y-%m-%d at %l.%M.%S %p\"")
set theFilename to "Screen Shot " & theDateTimeNow & ".png"
set thePathFilename to POSIX path of (path to desktop folder as string) & theFilename
-- # Retrieve the PNG data from the clipboard and write it to a disk file.
set pngData to the clipboard as «class PNGf»
delay 0.5
try
set fileNumber to open for access thePathFilename with write permission
write pngData to fileNumber
close access fileNumber
on error eStr number eNum
try
close access fileNumber
end try
activate
display dialog eStr & " number " & eNum buttons {"OK"} default button 1 with title "File I/O Error..." with icon caution
end try
-- # Convert the POSIX path filename to an alias.
set thePathFilename to POSIX file thePathFilename as alias
-- # Hide the file extension as is the default.
tell application "Finder"
try
set extension hidden of thePathFilename to true
end try
end tell
end run
Nota: Le site exemple AppleScript code ci-dessus est juste cela, et sans l'inclusion traitement des erreurs ne comprend pas d'autres éléments qui pourraient être appropriés/besoins/souhaités, il incombe à l'utilisateur d'ajouter tout autre élément. gestion des erreurs pour tout exemple de code présenté et ou code écrit par soi-même.