IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> AppleScript et Application pour contrôler ordinateur
Options
Mayeric
posté 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.
Go to the top of the page
 
+Quote Post
Mayeric
posté 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.
Go to the top of the page
 
+Quote Post
PBell
posté 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 sad.gif
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
Go to the top of the page
 
+Quote Post
Mayeric
posté 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.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 24th April 2024 - 23:29