3 votes

Comment enregistrer un écran avec AppleScript sur Catalina ?

J'ai donc utilisé un script avant la mise à jour de Catalina qui fonctionnait bien pour l'enregistrement d'écran. C'est basé sur la question SE d'un autre utilisateur, mais depuis la mise à jour, il semble qu'il y ait une nouvelle étape.

En gros, vous dites à "QuickTime Player" de démarrer (nouvel enregistrement d'écran).

Mais au lieu de démarrer un enregistrement d'écran, il ouvre simplement un nouveau menu qui vous permet de sélectionner certains paramètres, ou de cliquer sur l'écran pour enregistrer en utilisant les derniers paramètres utilisés.

J'ai essayé d'utiliser les événements système pour cliquer sur l'écran, même après un délai de 1s, mais cela ne fonctionne pas.

Quelqu'un sait comment faire : 1) contourner le nouveau menu et commencer à enregistrer immédiatement 2) Commencer l'enregistrement une fois que le menu est apparu (System Events ne détecte pas la fenêtre 1, donc je ne suis même pas sûr de savoir comment naviguer dans l'interface utilisateur). 3) Cliquer sur l'écran/UI en utilisant System Events

* Mise à jour de la question *

J'ai modifié mon code AppleScript depuis que l'utilisateur 3439894 a écrit une réponse. Il semble fonctionner pour ce que j'ai demandé. Le seul problème maintenant est que je ne suis pas sûr de savoir comment enregistrer un fichier dans un chemin spécifique. Ci-dessous, j'ai ajouté quelques extraits de code de ce que j'ai actuellement depuis que j'ai fait des modifications (il enregistre simplement l'enregistrement d'écran sur le bureau en fonction de la date pour l'heure. En dessous de cela, j'ai mon code original qui l'enregistre sur le bureau en tant que test.mov .

Mon code actuel, après modifications

1) Début de l'enregistrement

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) fin de l'enregistrement

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

Mon code avant modifications

3) L'ancienne méthode que j'utilisais pour démarrer mon enregistrement avant Catalina pour l'enregistrement d'écran (fonctionne toujours pour l'enregistrement de webcam (aka Movie)).

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

4) L'ancienne méthode que j'utilisais pour arrêter et sauvegarder mon enregistrement d'écran ne fonctionne pas dans 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 Points 52496

Sans voir votre AppleScript code tout ce que je peux dire, c'est que pour moi, à titre d'exemple, sur MacOS High Sierra faire un enregistrement d'écran nécessite un codage différent alors que sur MacOS Catalina car ce dernier n'utilise plus réellement Lecteur QuickTime pour faire le véritable enregistrement d'écran .

Cela peut également être le cas pour MacOS Mojave Toutefois, les éléments suivants exemple AppleScript code n'a été testé que sous 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"

À ce stade, par défaut, lorsque le enregistrement d'écran est arrêté, il est sauvegardé dans le Bureau comme par exemple Enregistrement d'écran 2019-11-01 à 3.38.00 PM.mov sur mon système et ouvert dans Lecteur QuickTime .

Il est possible d'inclure un codage supplémentaire pour faire tout ce que l'on souhaite faire avec la enregistrement d'écran (dans les limites de l'application cible et AppleScript ).

Tout cela étant dit, puisque MacOS Catalina utilise en fait une autre application pour faire le travail réel. enregistrement d'écran et non Lecteur QuickTime on peut se passer de l'utilisation de Lecteur QuickTime et créer le enregistrement d'écran en utilisant les éléments suivants exemple AppleScript code qui utilise le raccourci clavier par défaut du système 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"
  • Notez l'utilisation de % au lieu de 5 sur keystroke "%" comme le équipe est pressée et je suis sur un clavier anglais américain.
  • Les mises en garde habituelles, concernant Préférences du système > Sécurité et confidentialité > Vie privée appliquer.

Note : Le <em>exemple </em><strong>AppleScript </strong><em>code </em>n'est que cela et ne contient pas d'éléments supplémentaires. <em>erreur </em>la manipulation qui s'impose. C'est à l'utilisateur qu'il incombe d'ajouter toute <em>traitement des erreurs </em>selon ce qui est approprié, nécessaire ou souhaité. Consultez le <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>essayez </strong></a><em>déclaration </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>erreur </strong></a><em>déclaration </em>dans le <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guide du langage AppleScript </strong></a>. Voir aussi, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Travailler avec des erreurs </strong></a>.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X