AppleScript et Application pour contrôler ordinateur |
Bienvenue invité ( Connexion | Inscription )
AppleScript et Application pour contrôler ordinateur |
14 May 2014, 19:20
Message
#1
|
|
Adepte de Macbidouille Groupe : Membres Messages : 129 Inscrit : 6 Jul 2013 Membre no 185 566 |
Bonjour,
total débutant en AppleScript, j'ai réussi à écrire un petit script sous Maverick qui me permet de d'activer/désactiver un appareil bluetooth sur mon mac. Lorsque j'exécute le script à partir de l'éditeur de script, après avoir autorisé l'éditeur de script dans Général->Sécurité et confidentialité->Accessibilité. Le script s'exécute et produit l'effet désiré. Par contre si je crée une application exécutable à partir du script et que je tente de la lancer, il me demande la même autorisation que je lui donne avec plaisir. cependant lors de l'exécution du script, je vois bien le menu bar s'ouvrir et les bonnes cases se sélectionner en bleu, mais aucune action ne se produit à la fin du script. Je veux dire par là que mon périphérique est toujours connecté. Encore une fois si j'exécute le script depuis l'éditeur cela ne pose pas de problème et c'est ce que je ne comprend pas. Voici le code : CODE tell application "System Events" tell application process "SystemUIServer" tell menu bar item 2 of menu bar 1 click tell menu item 7 of front menu click tell first menu item of front menu click end tell end tell end tell end tell end tell Merci à tous ceux qui prendront le temps de me lire et de me répondre. Cordialement. |
|
|
14 May 2014, 19:50
Message
#2
|
|
Adepte de Macbidouille Groupe : Membres Messages : 129 Inscrit : 6 Jul 2013 Membre no 185 566 |
re,
j'ai trouvé quelque chose de bizarre, si je rajoute say"" (ou "ce que je veux") juste avant tout les end tell, alors l'application fonctionne parfaitement comme je le veux. quelqu'un de plus expérimenté pourrait-il m'expliquer pourquoi ? merci beaucoup. |
|
|
14 May 2014, 21:49
Message
#3
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 264 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonsoir,
Ton problème me semble venir des autorisations. Maverick est apparemment beaucoup plus verrouillé que les OS précédents. Comme je ne l'ai pas installé (Snow Leopard est si stable !) je ne peux tester. Désolé. Cependant, je me permets de te signaler que ton code est assez spécifique à ta configuration. En effet, si demain, tu ajoutes un autre menu dans la menu bar 1, ton code ne fonctionnera plus. En lieu et place des numéros d'item, de bar et de menu, il est toujours préférable d'utiliser les noms qui eux, ne changent pas. Par exemple le click sur le menu bluetooth ci-dessous fonctionnera sur toutes les machines, quelque soit les options choisies sur la barre de menu 1 : CODE tell application "System Events" tell application process "SystemUIServer" set BlueT to first item of (get every menu bar item of menu bar 1 whose description is "bluetooth") tell BlueT to click end tell end tell Je ne peux t'aider plus faute de Maverick Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
15 May 2014, 12:32
Message
#4
|
|
Adepte de Macbidouille Groupe : Membres Messages : 129 Inscrit : 6 Jul 2013 Membre no 185 566 |
Bonjour PBel,
Merci pour ces renseignements. En fait débutant totalement en AppleScript (moins avec Xcode), j'ai adapté un bout de code trouvé sur le net en essayant tous les menu bar et menu item jusqu'à réussir à faire ce que je voulais. J'avais plus ou moins conscience que le code est spécifique à ma configuration mais merci de me le souligner et de me confirmer que ça peut facilement plantouiller. J'avais bien trouvé du code faisant appel directement au Bluetooth mais je n'ai pas réussi à l'adapter, j'avais un message d'erreur me disant que le nom du périphérique était introuvable. J'avais trouvé ce code : http://stackoverflow.com/questions/7748249...op-of-the-scree J'ai donc chercher à refaire le chemin de la souris mais je vais creuser ta solution. Ceci dit je ne comprend pas pourquoi une simple instruction say"", même vide donc, permet de contourner le problème. Je vais essayer de voir si en faisant appel directement au Bluetooth, cela change quelque chose. Merci beaucoup en tout cas. Bonne journée. |
|
|
Nous sommes le : 26th April 2024 - 14:57 |