0 votos

¿Cómo puedo modificar la carpeta en la que se guardan las capturas de pantalla en este AppleScript en Automator?

Esta Apple script parece hacer exactamente lo que quería que hiciera, (guardar las capturas de pantalla tanto en una ubicación de archivo como en el portapapeles) pero no puedo, por mi vida, averiguar cómo cambiar este script para que apunte a una carpeta diferente (actualmente está guardando en el Escritorio)

No estoy muy familiarizado con Automator o AppleScript y no he sido capaz de localizar dónde se está configurando para poder cambiarlo Esta línea parece relevante:

set thePathFilename to POSIX path of (path to desktop folder as string) & theFilename

Y este es el script

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

Que encontré aquí: Copiar la captura de pantalla al portapapeles además de guardar el archivo

0voto

Gracias por confirmarlo. Sé que esto es una verdadera fruta madura para cualquiera que conozca AppleScript, pero de todos los lenguajes en los que puedo programar, esta sintaxis realmente me desconcierta. He conseguido que funcione cambiando esa línea por la siguiente:

set thePathFilename to POSIX path of "/Users/username/examplefilepath/" & theFilename

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X