IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> applescript pour cocher une option des préférences
Options
MacEmbert
posté 22 Mar 2023, 12:23
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 914
Inscrit : 12 Oct 2004
Lieu : Liège.be
Membre no 25 088



Bonjour,

Je désirerais scripter un geste que je dois faire plusieurs fois par heure… mais ne suis pas trop versé dans le codage.

Dans une application, je voudrais créer les étapes suivantes:
(dans l'application courante, celle qui est à l'avant-plan)
- raccourci clavier ⌥⌘,
- clic sur onglet "cotations"
- clic sur case à cocher "Placer les cotations…" (pour cocher ou décocher selon que l'état de la case)
- clic sur OK en bas de la fenêtre de dialogue

L'idée est de placer ce script dans BetterTouchTool pour l'appeler via un raccourci clavier.

Merci de votre aide!

Capture d'écran



--------------------
Je ne croque pas que des pommes, j'aime aussi le Camembert.
iMac 2020, macOS Ventura
MacMini C2D 2020, macOS Monterey
iPad mini 2, iPad 6
iPhone 12 pro
Go to the top of the page
 
+Quote Post
MacEmbert
posté 22 Mar 2023, 20:30
Message #2


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 914
Inscrit : 12 Oct 2004
Lieu : Liège.be
Membre no 25 088



J'ai essayé ceci
Code
tell application "System Events"
    tell application "Vectorworks" to activate
    keystroke "," using {command down, option down}
end tell
tell application "System Events" to tell process "Vectorworks" to tell window 1
    click checkbox "Placer les cotations dans la classe :" of tab group 2
end tell


Et voici la réponse
error "Erreur dans System Events : Il est impossible d’obtenir tab group 2 of window 1 of process \"Vectorworks\". Index non valable." number -1719 from tab group 2 of window 1 of process "Vectorworks"


--------------------
Je ne croque pas que des pommes, j'aime aussi le Camembert.
iMac 2020, macOS Ventura
MacMini C2D 2020, macOS Monterey
iPad mini 2, iPad 6
iPhone 12 pro
Go to the top of the page
 
+Quote Post
PBell
posté 23 Mar 2023, 09:29
Message #3


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 265
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour MacEmbert,
L'erreur provient du fait que tu cherches à atteindre un élément de l'interface qui n'existe pas: checkbox of tab group 2 of window 1

C'est une des difficultés classiques lorsque l'on cherche à simuler l'interface utilisateur. Il se peut que l'application n'ai pas défini les tab dans l'ordre où tu les vois, voir même dans certains cas que tu n'adresses pas la bonne window.
Il se peut aussi que ton script soit trop rapide: tu cherches à utiliser la check box de la window 1, quelques milisecondes (ou secondes !) avant que celle-ci ne soit ouverte par l'application. La première chose à tenter est d'ajouter un délai dans le script entre ton keystroke "," et le "tell window 1".

Si le délai ajouté ne change rien, il faut considérer alors que, bien que la fenêtre soit ouverte, l'élément que tu cherches n'est pas présent !
N'ayant pas Vectorworks, je ne peux t'aider directement, mais je vais t'expliquer comment tu peux chercher le bon UI element (la case à cocher) par itérations sucessives.

1) tu ouvres Vectorworks et sa fenêtre de préférence
2) tu ouvres l'éditeur Applescript. En bas de la fenêtre, tu sélectionnes pour voir les réponses et tu lances le script suivant:
CODE
tell application "Vectorworks" to activate -- set active the last actived application
delay 1
tell application "System Events"
    set B to UI element of window 1 of application process "Vectorworks"    
end tell

(je suppose que ta fenêtre de préférence est bien Window 1 !)

Dans la partie Réponses en bas de fenêtre, tu dois obtenir la liste des IU elements de la fenêtre de préférence.
Il faut que y trouve le tab que tu cherches. Il peut être inclus dans un groupe lui-même.
Une fois que tu l'as trouvé, tu corriges le script ci-dessus pour l'étape suivante.
Par exemple, si tu as trouvé qu'il s'agit de group 1, la ligne de script devient :
CODE
set B to UI element of group 1 of window 1 of application process "Vectorworks"

Tu relances le script et tu verras le contenu du group 1 et ainsi de suite jusqu'à ce que tu trouves ta checkbox !

Bon courage


--------------------
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
MacEmbert
posté 23 Mar 2023, 11:37
Message #4


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 914
Inscrit : 12 Oct 2004
Lieu : Liège.be
Membre no 25 088



Merci bcp. Pas trop rôdé à ce domaine, mais je vais me lancer dedans. Merci pour tous les détails en tout cas!! jap.gif


--------------------
Je ne croque pas que des pommes, j'aime aussi le Camembert.
iMac 2020, macOS Ventura
MacMini C2D 2020, macOS Monterey
iPad mini 2, iPad 6
iPhone 12 pro
Go to the top of the page
 
+Quote Post
MacEmbert
posté 23 Mar 2023, 12:11
Message #5


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 914
Inscrit : 12 Oct 2004
Lieu : Liège.be
Membre no 25 088



J'y suis presque. drill.gif
Voici le code
Code
tell application "System Events"
    tell application "Vectorworks" to activate
    keystroke "," using {command down, option down}
end tell
delay 1
tell application "System Events"
    click radio button "Cotations" of tab group 1 of window "Préférences document" of application process "Vectorworks"
end tell
tell application "System Events"
    click checkbox "Placer les cotations dans la classe :" of radio button "Cotations" of tab group 1 of window "Préférences document" of application process "Vectorworks"
end tell


Voici le message d'erreur confused5.gif
error "Erreur dans System Events : Il est impossible d’obtenir checkbox \"Placer les cotations dans la classe :\" of radio button \"Cotations\" of tab group 1 of window \"Préférences document\" of application process \"Vectorworks\"." number -1728 from checkbox "Placer les cotations dans la classe :" of radio button "Cotations" of tab group 1 of window "Préférences document" of application process "Vectorworks"

Capture

Je précise qu'ajouter un délai avant le dernier bloc tell ne change rien.

Ce message a été modifié par MacEmbert - 23 Mar 2023, 12:25.


--------------------
Je ne croque pas que des pommes, j'aime aussi le Camembert.
iMac 2020, macOS Ventura
MacMini C2D 2020, macOS Monterey
iPad mini 2, iPad 6
iPhone 12 pro
Go to the top of the page
 
+Quote Post
ades
posté 23 Mar 2023, 13:34
Message #6


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 23 Nov 2002
Membre no 4 808



VW possède son propre éditeur de script (jamais utilisé) et peut-être qu'un script existant répondrait à ta question …

Pas le temps de chercher où les trouver, mais on en trove sur le net (j'ai déjà utilisé des scripts vw, rectif de pers. par ex).


--------------------
MBP 15 unibody (circa 2010) 2,4 Ghz , 4Go ssd 256 Go, dual boot OSX10.9.5-Linux mint
MacMini late 2012, i7 2,3Ghz, 16Go, 2 ssd 1to, OSX Sonoma 14.7 dual boot Sequoia 15 (lent sur ce mac) ; OpencoreLegacy Patcher 2.0.2
Go to the top of the page
 
+Quote Post
MacEmbert
posté 24 Mar 2023, 20:13
Message #7


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 914
Inscrit : 12 Oct 2004
Lieu : Liège.be
Membre no 25 088



L'idée est bonne mais je ne suis pas développeur, et lorsque j'ai ouvert un manuel de vectorscript j'ai compris que je m'attaquais à trop grand. Quitte à chercher une solution, autant choisir un langage nettement plus répandu et donc plus connu.


--------------------
Je ne croque pas que des pommes, j'aime aussi le Camembert.
iMac 2020, macOS Ventura
MacMini C2D 2020, macOS Monterey
iPad mini 2, iPad 6
iPhone 12 pro
Go to the top of the page
 
+Quote Post
PBell
posté 26 Mar 2023, 15:40
Message #8


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 265
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Désolé de cette réponse tardive...
Ton message d'erreur est toujours le même: la checkbox que tu cherches à cliquer dans ton script n'existe pas. Soit elle a un autre numéro ou nom, soit, plus probablement, elle n'est pas dans le tab/group que tu références dans ton script.

Je reviens à mon premier message: quand tu lances le premier script que je t'ai proposé, tu obtiens quoi dans la fenêtre réponse de l'éditeur ?

Avec ta réponse, on pourra ensuite, par itérations successives trouver le tab, le group, sub group,...etc qui convient pour adresser le bouton qui t'intéresse.
Encore une fois, n'ayant pas VW, je ne peux pas trouver directement.

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

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 : 1st November 2024 - 00:57