Bonjour,

Je souhaite pilote/automatiser mes applications via du python.
Comme je suis sous mac, l'idee est d'utiliser de l'AppleScript puis de l'intégrer dans du python
Ci-dessous un petit exemple très simple permettant d'exporter un fichier PDF en XLSX en utilisant Acrobat Adobe
Lancement du programme uniquement en AppleScript, marche nickel mais petit soucis d'intégration dans python.
Je me retrouve avec ce message d'erreur suivant (soucis niveau partie System Events) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
File "/anaconda3/lib/python3.6/site-packages/py_applescript-1.0.0-py3.6.egg/applescript/__init__.py", line 90, in run
File "/anaconda3/lib/python3.6/site-packages/py_applescript-1.0.0-py3.6.egg/applescript/__init__.py", line 65, in _unpackresult
applescript.ScriptError: System Events got an error: python3 n'est pas autorisé à un accès d'aide. (-1719) app='System Events' range=275-456
Donc un soucis niveau partie System Events ....
Si vous avez une idée de comment mixer System Events avec du Python, je suis preneuse ,-)

Merci d'avance

Thais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
import applescript
 
scpt = applescript.AppleScript('''
        set MyPath to "Macintosh HD:Users:toto:Desktop:"
        set MyFileName to "a"
        set MySavePath to POSIX path of MyPath
        tell application "Adobe Acrobat"
                activate
                open MyPath & MyFileName & ".pdf"
                tell application "System Events"
                        tell process "Acrobat Pro DC"
                                click menu item "Classeur Microsoft Excel" of its menu of menu item "Feuille de calcul" of its menu of menu item "Exporter vers" of its menu of menu bar item "Fichier" of menu bar 1
                                delay 1
                                keystroke MySavePath & MyFileName & ".xlsx"
                                delay 1
                                keystroke return
                                delay 1
                                keystroke return
                                delay 2
                        end tell
                end tell
                tell active doc
                        close
                end tell
                quit
        end tell
''')
result = scpt.run()