J'ai bien validé Editeur de script comme indiqué dans votre capture d'écran, ça ne résout pas le pb.
Mon code (qui fonctionne depuis l'éditeur de script mais ne fonctionne plus lorsqu'il est exporté en Application) est donné ci-dessous.
Mon niveau de programmation en Appel Script est assez modeste ;-)
J'ai simplifié le script, dans sa version complète, il est plus complet, mais juste avec ce code, on voit apparaitre le pb.
En fait, en supprimant du code, je pense avoir identifié que le pb vient de la partie en gras.
L'idée du script :
- une fenêtre s'ouvre pour demander de choisir entre deux Serveurs (choix par un nom plutôt que par un www.xxx.xxx)
- ensuite, Cisco Any Connect est lancé
- et l'idée est ensuite de modifier automatiquement le nom du serveur où Cisco doit se connecter, et de valider, c'est à dire de simuler l'appuie sur Entree
- C'est à ce moment là qu'une fenêtre apparait indiquant
ChoixVPN n'est pas autorisé à un accès d'aide.
Erreur dans System Events : ChoixVPN n'est pas autorisé à un accès d'aide (-25211)
set theapp to "Cisco AnyConnect Secure Mobility Client"
set serveur1 to "vpn.serveur1.fr"
set user1 to "Utilisateur1"
set fenetre1 to "Cisco AnyConnect | " & serveur1
set serveur2 to "vpn.serveur2.fr"
set user2 to "Utilisateur2"
set fenetre2 to "Cisco AnyConnect | " & serveur2
set reponse to choose from list {"Serveur1", "Serveur2"} with title "Mon appli VPN rien qu'à moi ;-)" with prompt "Quel VPN voulez-vous ?"
set boutonAppuye to reponse as string
if boutonAppuye = "Serveur1" then
set serveur to serveur1 as string
set utilisateur to user1 as string
set fenetre to fenetre1 as string
end if
if boutonAppuye = "Serveur2" then
set serveur to serveur2 as string
set utilisateur to user2 as string
set fenetre to fenetre2 as string
end if
if not (boutonAppuye = "Serveur1" or boutonAppuye = "Serveur2") then
return
end if
tell application theapp
activate
end tell
repeat until application theapp is running
delay 1
end repeat
tell application "System Events"
repeat until (window 1 of process theapp exists)
delay 1
end repeat
tell process theapp
keystroke (serveur as string)
keystroke return
end tell
repeat until (exists window fenetre of application process theapp)
-- repeat until (window 2 of process theapp exists)
delay 1
end repeat
-- delay 1
tell process theapp
keystroke tab
-- keystroke user as string -- Enter your password
keystroke utilisateur
keystroke tab
end tell
repeat until (not (exists window fenetre of application process theapp))
-- repeat until (window 2 of process theapp exists)
delay 1
end repeat
end tell