# Applescript et Adobe Premiere



## paroliver (8 Novembre 2020)

Bonjour à tous,
Gros utilisateur d'Adobe Premiere, pas toujours sur les machines les plus puissantes... je voudrais disposer d'un Applescript qui lance la commande "Option R" (Adobe Premiere/Séquence/Rendu de l'entrée à la sortie) dès que je n'utilise plus Premiere pendant 1, 2 ou 3 minutes.
J'ai essayé ce script dans Applescript, mais il ne semble pas marché : 

*on* *idle*
*tell* _application_ "Adobe Premiere Pro 2020"
 _keystroke_ {"r", {using:["option down"]}}
 *end* *tell
end* *idle*

J'ai cru comprendre que la commande "idle" se déclenchait toutes les 30 sec... donc, cela implique-t-il que le Mac soit inactif pendant 30 sec. pour que le script se déclenche ??? Ce qui, à l'évidence n'est pas tout à fait ce que je cherchais... mais ce serait un bon départ !

Quelqu'un peut-il m'éclairer ?
Merci,
Bien à vous toutes et tous,

Paroliver


----------



## paroliver (8 Novembre 2020)

Cette version ne fait pas mieux :

*on* *idle*
*tell* _application_ "Adobe Premiere Pro 2020" *to* *activate*

 *tell* _application_ "System Events"
 *tell* _application process_ "Adobe Premiere Pro 2020"
 *keystroke* {"r", {|using|:["option down"]}}
 *end* *tell*
*end* *tell
end* *idle*

...


----------



## zeltron54 (9 Novembre 2020)

Bonjour,

Pour envoyer une combinaison de touche à une application il faut: utiliser key code voir script ci-dessous.
Je n'ai pas pu tester avec "adobe première" je ne possède pas ce logiciel.

Tu peux trouver les codes des touches là: https://eastmanreference.com/complete-list-of-applescript-key-codes


```
tell application "Adobe Premiere Pro 2020" to activate

tell application "System Events"
    tell application process "Adobe Premiere Pro 2020"
        key code 15 using {option down} --touche r+option
    end tell
end tell
```

Pour l'utilisation de  "idle", il faut enregistrer ton script en tant qu'application et cocher les 2 options : "afficher l'écran de démarrage" et "Ne pas quitter après l'exécution"

Ci-dessous un exemple qui fait un bip toute les 5 secondes.


```
idle

on idle
    beep
    return 5
end idle
```

Fait déjà des tests de ces 2 exemples, avant de les combiner pour  pour ton utilité.


----------



## paroliver (9 Novembre 2020)

-


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Bonjour,
> 
> Pour envoyer une combinaison de touche à une application il faut: utiliser key code voir script ci-dessous.
> Je n'ai pas pu tester avec "adobe première" je ne possède pas ce logiciel.
> ...


Bonjour,
Merci de ta réponse, Zeltron54.

Puis-je tester le fait que Premiere n'ai pas été utilisé depuis un certain temps ?

if le temps d'inactivité de Premiere est supérieur à 5 minutes --par exemple
then le script
end if

Merci bien,
Paroliver


----------



## zeltron54 (9 Novembre 2020)

Je ne connaît pas d'instruction permettant d'obtenir le temps d'inactivité d'une application !
Je regarde si je trouve quelque chose sur la toile... sans grand espoir ...


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Je ne connaît pas d'instruction permettant d'obtenir le temps d'inactivité d'une application !
> Je regarde si je trouve quelque chose sur la toile... sans grand espoir ...


Encore une question :
Dans l'application Editeur de script :
- comment enregistre-t-on un script comme application et 
-où coche-t-on les 2 options : "afficher l'écran de démarrage" et "Ne pas quitter après l'exécution" ?
Merci à toi,
P.


----------



## zeltron54 (9 Novembre 2020)

Dans la fenêtre d'enregistrement tu as:
Enregistrer sous: --> tu choisis le nom
Juste en dessous une case --> choix du dossier ou enregistrer
En bas de la fenêtre : Format de fichier --Menu déroulant -->Application
Avec le choix "application" les options juste dessous (cases à cocher) seront activées...


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Bonjour,
> 
> Pour envoyer une combinaison de touche à une application il faut: utiliser key code voir script ci-dessous.
> Je n'ai pas pu tester avec "adobe première" je ne possède pas ce logiciel.
> ...


C'est super !
Merci de toutes ces infos qui me permettent d'avancer dans le monde merveilleux des scripts...
Mais, il doit y avoir encore qq chose que je fais mal :
J'ai crée "
on idle
    beep
    return 5
end idle"
en application comme tu me l'as indiqué.
J'appuie sur le bouton Play en haut de la fenêtre de script... Mais ça ne biper pas toutes les 5 secondes... Pourquoi ?
Merci d'avance,
P.


----------



## zeltron54 (9 Novembre 2020)

Enregistres ce script comme application. Puis tu lances cette application avec un double clic classique, il va te demander si tu veux exécuter ou quitter, tu exécutes, cela fera un bip toute les 5 secondes, pour quitter, tu clic sur l’appli dans le dock...


----------



## paroliver (9 Novembre 2020)

Excellent !
Ça marche : mille merci.
J'avance...


----------



## paroliver (9 Novembre 2020)

Et : puis-je tester si une application est en "arrière", n'est pas l'application active ?
Merci,
P.


----------



## zeltron54 (9 Novembre 2020)

Pas sur d'avoir compris ta demande !

Mais pour savoir quelle application est actuellement active (celle au premier plan)


```
tell application "System Events" to set {Appli} to (get processes whose frontmost is true)
set nom to name of Appli -- Nom de l'application en premier plan

tell application "Finder"
    display dialog nom
end tell
```


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Pas sur d'avoir compris ta demande !
> 
> Mais pour savoir quelle application est actuellement active (celle au premier plan)
> 
> ...


Et pour savoir si une application N'EST PAS en premier plan ?


----------



## zeltron54 (9 Novembre 2020)

Tu testes celle qui est en premier plan ... si ce n'est pas ...?


----------



## paroliver (9 Novembre 2020)

Re-re-re-rebonjour,
J'ai écrit ça :

*idle*

*on* *idle*

 *tell* _application_ "Finder"
 *set* liste_app *to* *the* name *of* *every* _application process_ *whose* file type *is* "APPL"
 *end* *tell*

*if* "Adobe Premiere Pro 2020" *is* *in* liste_app *then*
 *tell* _application_ "Adobe Premiere Pro 2020"
 *if* frontmost *is* _false_ *then*

*tell* _application_ "System Events"
 *tell* _application process_ "Adobe Premiere Pro 2020"
 *key code* 15 using {_option down_} --touche r+option
*end* *tell*
*end* *tell*

*end* *if*
*end* *tell*
*end* *if*

*return* 15

*end* *idle*


Ça marche par petits bouts :
*Amener en front une application en arrière plan, test toute les 15 sec. *

*idle*

*on* *idle*

*tell* _application_ "Finder"
 *set* liste_app *to* *the* name *of* *every* _application process_ *whose* file type *is* "APPL"
 *end* *tell*

*if* "Adobe Premiere Pro 2020" *is* *in* liste_app *then*
 *tell* _application_ "Adobe Premiere Pro 2020"
 *if* frontmost *is* _false_ *then*
 *tell* _application_ "Adobe Premiere Pro 2020" *to* *activate*

*end* *if*
*end* *tell*
*end* *if*

*return* 15

*end* *idle*


*Ou lancer le rendu dans Premiere :*

*tell* _application_ "Adobe Premiere Pro 2020" *to* *activate*

*tell* _application_ "System Events"
 *tell* _application process_ "Adobe Premiere Pro 2020"
*keystroke* "r" using {_option down_}
*end* *tell
end* *tell*

Mais quand j'essaye de les rassembler : ça marche plus...

Un e idée ?
Un coupe de main ?

1000 mercis !
P.


----------



## paroliver (9 Novembre 2020)

paroliver a dit:


> Re-re-re-rebonjour,
> J'ai écrit ça :
> 
> *idle*
> ...


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Tu testes celle qui est en premier plan ... si ce n'est pas ...?


Bon... Je suis arrivé à ça ET ça marche :

*idle*

*on* *idle*

 *tell* _application_ "Finder"
 *set* liste_app *to* *the* name *of* *every* _application process_ *whose* file type *is* "APPL"
 *end* *tell*

*if* "Adobe Premiere Pro 2020" *is* *in* liste_app *then*
 *tell* _application_ "Adobe Premiere Pro 2020"

 *if* frontmost *is* _false_ *then*
 *tell* _application_ "Adobe Premiere Pro 2020" *to* *activate*
 *tell* _application_ "System Events"
 *tell* _application process_ "Adobe Premiere Pro 2020"
 *key code* 15 using {_option down_} --touche r+option
*end* *tell*
*end* *tell*
*end* *if*

*end* *tell*
*end* *if*

*return* 60

*end* *idle*

Ne me reste plus qu'à trouver comment lancer le *key code* 15 using {_option down_}
sans passer par *tell* _application_ "Adobe Premiere Pro 2020" *to* *activate*
C'est à dire que le rendu se lance en tâche de fond...


----------



## zeltron54 (9 Novembre 2020)

Je n'ai pas testé (pas de mac actuellement à disposition), mais en enlevant le "to activate"  ne laissant que : "*tell* _application_ "Adobe Premiere Pro 2020""
A tester !


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Je n'ai pas testé (pas de mac actuellement à disposition), mais en enlevant le "to activate"  ne laissant que : "*tell* _application_ "Adobe Premiere Pro 2020""
> A tester !


Hélas... non !
Réponse du script : « end » ou « end tell » prévu(s) mais fin de script trouvé(s).


----------



## paroliver (9 Novembre 2020)

Une autre version du script qui "hide" Premiere au bout de 1 sec. (c'est mieux que rien... au début ça surprend de voir revenir Premiere tout seul et repartir !!! ;-P):

*idle*

*on* *idle*

*tell* _application_ "Finder"
 *set* liste_app *to* *the* name *of* *every* _application process_ *whose* file type *is* "APPL"
 *end* *tell*

*if* "Adobe Premiere Pro 2020" *is* *in* liste_app *then*
 *tell* _application_ "Adobe Premiere Pro 2020" *to* *activate*

 *if* frontmost *is* _false_ *then*
 *tell* _application_ "Adobe Premiere Pro 2020"
 *tell* _application_ "System Events"
 *tell* _process_ "Adobe Premiere Pro 2020"
 *tell* _application process_ "Adobe Premiere Pro 2020"
 *key code* 15 using {_option down_} --touche r+option
*end* *tell*

*delay* 1

*set* visible *to* _false_
 *end* *tell*
*end* *tell*
*end* *tell*
*end* *if*
*end* *if*

*return* 180

*end* *idle*


----------



## zeltron54 (9 Novembre 2020)

Cette erreur signifie qu'il manque un "end tell"

ou qu'il y a une imbrication end tell,  end if , qui n'est pas bonne

Edit : je viens de voir ton post , effectivement dans le post #18 il y a un end if avant le end tell !!!


----------



## paroliver (9 Novembre 2020)

paroliver a dit:


> Hélas... non !
> Réponse du script : « end » ou « end tell » prévu(s) mais fin de script trouvé(s).


J'ai essayé de rajouter un end tell en miroir de la phrase.. mais ça n'a pas non plus marché...


----------



## paroliver (9 Novembre 2020)

paroliver a dit:


> J'ai essayé de rajouter un end tell en miroir de la phrase.. mais ça n'a pas non plus marché...



tell application "Adobe Premiere Pro 2020"
    tell application "System Events"
         tell application process "Adobe Premiere Pro 2020"
            key code 15 using {option down} --touche r+option
         end tell
    end tell
end tell


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Cette erreur signifie qu'il manque un "end tell"
> Si je reprend ton script ci-dessus il devrait devenir:
> 
> 
> ...


Yes, je l'ai aussi rajouté !
Merci !!!


----------



## zeltron54 (9 Novembre 2020)

Nos post ce sont croisés...

As-tu réussi ?
L'ecriture depuis le tel ne me réussi pas  ! LOL


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Nos post ce sont croisés...
> 
> As-tu réussi ?
> L'ecriture depuis le tel ne me réussi pas  ! LOL


Oui, ça marche ! Seul défaut : la fenêtre Première apparaît 1 sec. toutes les 3 minutes (selon le paramétrage du script)... Je n'ai pas réussi à adresser l'ordre de shortcut (Alt-r) sans passer par l'application active... Je cherche encore le moyen de tout faire en background... 
Un immense merci pour les conseils ça m'a permis d'avancer à pas de géant !!!
Si tu as de infos sur les shortcuts en background : je reste preneur !


----------



## zeltron54 (9 Novembre 2020)

Tu as bien supprimé le «  to activate «  ?


----------



## paroliver (9 Novembre 2020)

zeltron54 a dit:


> Tu as bien supprimé le «  to activate «  ?


Oui : mais ça n'a pas l'air de marcher...
Le test qui fait que si l'application est en frontmost le script ne se lance pas ne marche pas non plus... 
Il faut que je test encore... tout en montant sous Premiere !!!
Mais je vais y arriver !!!


----------



## zeltron54 (9 Novembre 2020)

Si je reprend ton script du message #21 modifié pour enlever l'activation cela donne:
Peux-tu essayer ce script  et voir s' il fonctionne ? avec l'appli en arrière plan.

```
idle

on idle
    
    tell application "Finder"
        set liste_app to the name of every application process whose file type is "APPL"
    end tell
    
    if "Adobe Premiere Pro 2020" is in liste_app then
        
        tell application "Adobe Premiere Pro 2020"
            tell application "System Events"
                tell application process "Adobe Premiere Pro 2020"
                    key code 15 using {option down} --touche r+option
                end tell
            end tell
        end tell
    end if
    
    return 180
    
end idle
```


----------



## zeltron54 (9 Novembre 2020)

Bonsoir,

J'ai enfin eu accès au mac, et après essai cela ne fonctionne pas sans le "to activate".
Désolé !


----------

