3 votos

¿Cómo grabar en pantalla usando AppleScript en Catalina?

Así que he estado usando un script antes de actualizar a Catalina que funcionó bien para la grabación de la pantalla. Se basa en la de otro usuario SE pregunta, pero desde la actualización, parece que hay un nuevo paso.

Básicamente, usted dice "QuickTime Player" para empezar (nueva grabación de la pantalla).

Pero en lugar de una grabación de la pantalla de inicio, sólo se abre un nuevo menú que permite seleccionar algunas opciones de configuración, o haga clic en la pantalla para grabar utilizando la última configuración utilizada.

He intentado usar el Sistema de Eventos haga clic en la pantalla, incluso después de un 1s retraso, pero no está funcionando.

Alguien sabe: 1) Omitir el menú nuevo y acaba de empezar a grabar de inmediato 2) Iniciar la grabación una vez que el menú ha aparecido (los Eventos del Sistema no detecta la ventana 1, así que no estoy seguro de cómo navegar por la interfaz de usuario) 3) haga Clic en la pantalla en la interfaz de usuario utilizando el Sistema de Eventos

* Actualización a la pregunta *

He editado mi AppleScript código desde user3439894 escribió una respuesta. Parece que trabajar por lo que le he pedido. El único problema ahora es que no estoy seguro de cómo guardar en un archivo a una ruta específica. A continuación, he agregado algunos fragmentos de código de lo que en la actualidad se han puesto de decisiones de edición (sólo se guarda la grabación de la pantalla para el Escritorio basado en la fecha por el momento. Debajo de eso, tengo mi código original que se guarda en el Escritorio como test.mov.

Mi código ahora, después de las ediciones de

1) Inicio de la grabación

tell application "QuickTime Player" to activate
tell application "QuickTime Player" to start (new screen recording)
tell application "System Events" to tell process "Screen Shot"
  repeat until exists its front window
    delay 0.1
  end repeat
  if not (exists button "Record" of its front window) then
    click checkbox "Record Entire Screen" of its front window
  end if
  click button "Record" of its front window
end tell

2) final de la grabación

tell application "System Events" to click menu bar item 1 of menu bar 1 of application process "screencaptureui"

Mi Código Antes De Ediciones

3) camino Viejo solía comenzar mi grabación antes de Catalina para la grabación de la pantalla (aún trabaja para webcam (aka Película) grabación)

tell application "QuickTime Player" to activate
tell application "QuickTime Player" to start (new screen recording)

4) Antiguo camino que he utilizado para detener y guardar mi grabación de la pantalla que no funciona en Catalina

set filePath to "Users:mini:Desktop:test.mov"
set f to a reference to file filePath
tell application "QuickTime Player"
  pause document "screen recording"
  save document "screen recording" in f using settings preset "1080p"
  stop document "screen recording"
  close document "screen recording"
end tell

3voto

user3439894 Puntos 5883

Sin ver a su AppleScript código, todo lo que puedo decir es que para mí, como un ejemplo, en macOS Alta de la Sierra de hacer una grabación de la pantalla requiere de codificación diferentes, a continuación, en macOS Catalina, ya que éste no utiliza el Reproductor QuickTime para que haga la grabación de la pantalla.

Esto también puede ser cierto para macOS Mojave, sin embargo, el siguiente ejemplo de AppleScript código fue probado bajo macOS Catalina:

--  # Setup to do a screen recording.

tell application "QuickTime Player" to new screen recording

--  # Start the screen recording.

tell application "System Events" to tell process "Screen Shot"
    repeat until exists button "Record" of its front window
        delay 0.1
    end repeat
    click button "Record" of its front window
end tell

--  # Set the time in seconds you want the recording to be.

delay 2

--  # Stop the recording.

tell application "System Events" to ¬
    click menu bar item 1 ¬
        of menu bar 1 ¬
        of application process "screencaptureui"

En este punto, por defecto, cuando la pantalla de grabación se detiene, se guarda en el Escritorio , como por ejemplo, la Grabación de la Pantalla 2019-11-01 en 3.38.00 PM.mov en mi sistema y se abre en el Reproductor QuickTime.

Una codificación adicional se puede incluir a hacer cualquier otra cosa que uno quisiera hacer con la grabación de la pantalla (dentro de los límites de la aplicación de destino y AppleScript).

Que todo lo dicho, desde macOS Catalina en realidad está utilizando una aplicación diferente para que haga la grabación de la pantalla y no QuickTime Player, uno podría omitir el uso de QuickTime Player y crear la grabación de la pantalla mediante el siguiente ejemplo AppleScript código, que utiliza el sistema por defecto de método abreviado de teclado ⇧⌘5:

--  # Setup to do a screen recording.

tell application "System Events" to keystroke "%" using {shift down, command down}

--  # Start the screen recording.

tell application "System Events" to tell process "Screen Shot"
    repeat until exists its front window
        delay 0.1
    end repeat
    if not (exists button "Record" of its front window) then
        click checkbox "Record Entire Screen" of its front window
    end if
    click button "Record" of its front window
end tell

--  # Set the time in seconds you want the recording to be.

delay 2

--  # Stop the recording.

tell application "System Events" to ¬
    click menu bar item 1 ¬
        of menu bar 1 ¬
        of application process "screencaptureui"
  • Nota el uso de % en lugar de 5 en keystroke "%" como el cambio de tecla es presionada y estoy en un inglés de EE.UU. teclado.
  • Las habituales advertencias, respecto a Preferencias del Sistema > Seguridad y Privacidad > Privacidad, aplicar.

Nota: El ejemplo de AppleScript código es sólo eso y no contiene, además, errores de manejo, según sea apropiado. La responsabilidad recae sobre el usuario para agregar cualquier error de manipulación como puede ser apropiado, necesitaba o quería. Echa un vistazo al tratar de instrucción y de error de instrucción en la Guía de Lenguaje de AppleScript. Véase también el Trabajo con los Errores.

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