2 votos

Tomar la captura de pantalla de la pantalla con AppleScript

Quiero abrir una imagen en el escritorio con el "Quick Look", a continuación, captura de pantalla, y, a continuación, abra la nueva captura de pantalla para que tome otro. En resumen, quiero saber cómo captura de pantalla de una imagen que ha sido screenshoted, sin cesar. ¿Cómo puedo hacerlo en AppleScript?

Sé que suena un poco raro, pero su intención artística. La imagen resultante es una retroalimentación de la propia imagen, siendo screenshoted. También, es importante que la imagen se abrirá como "quick look" porque muestra la barra superior con la fecha y hora de la captura de pantalla, por lo que la retroalimentación es clara. Muchas gracias.

(Esta imagen es una referencia, yo me he hecho con esta intención. Es exactamente lo que estoy tratando de automatizar]1]1

//El script que he logrado por ahora es:

tell application "Finder"
    do shell script "qlmanage - p /cm.jpg"
    set dFolder to "~/Desktop/screencapture/"

    do shell script ("mkdir -p " & dFolder)

    set i to 0
    repeat 960 times
        set tTime to do shell script "date +%H%M%S"
        do shell script ("screencapture " & dFolder & "frame-" & i & ".png")
        delay 5
        set i to i + 1
    end repeat
end tell

// Yo todavía no sé cómo hacer que funcione relacionado a una imagen específica y, a continuación, relacionados con cada nueva captura de pantalla.

3voto

qarma Puntos 71

Como con cualquier script que intenta controlar la interfaz de usuario, este script es frágil y depende de la suficiente retrasos para dar el Vistazo Rápido de la ventana de tiempo para la forma y la imagen para ser pintadas. Aunque el script comprueba la ventana de la existencia, no puede comprobar para asegurarse de que el contenido de la ventana ha sido pintado, así que he tenido resultados variables en las pruebas, incluyendo algunos buenos éxitos:

tell application "Finder"
    if selection = {} then return
    try
        make new folder with properties {name:"Infinity"}
    end try
    set sourcefile to duplicate item 1 of (get selection) to folder "Infinity"
    select the sourcefile
    activate
end tell

repeat with i from 1 to 50
    tell application "System Events"
        keystroke space
        set _W to (a reference to window "Quick Look" of process "Finder")
        repeat until _W exists
            delay 0.5
        end repeat

        delay 1 -- Give time for window to paint

        set [x, y] to _W's position
        set [w, h] to _W's size

        set my text item delimiters to ","
        set R to {x, y, w, h} as text
    end tell

    set my text item delimiters to {".", ":"}
    set filename to "screen shot " & ((current date) as «class isot» as string) & ".jpg"
    set filename to text items of filename as text

    do shell script "screencapture -R " & R & " -t jpg ~/Desktop/Infinity/" & ¬
        (quoted form of the filename)

    tell application "System Events"
        keystroke space
        repeat until not (_W exists)
            delay 0.5
        end repeat
    end tell

    tell application "Finder" to select file filename in folder "Infinity"
end repeat

Debe garantizar la necesaria accesibilidad de los privilegios concedidos por esta secuencia de comandos para ejecutar.


Nota: Esta secuencia de comandos se ha escrito y probado usando AppleScript versión: 2.7 Sistema de versión: 10.13.6

Script Result

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