applescript, xtool et souris

two

Membre actif
6 Novembre 2005
895
291
Namur
bonjour :coucou:
je suis en train d'écrire un script qui a comme fonction d'ouvrir un onglet dans safari, charger une page donnée et cliquer sur un bouton sur cette page...
Ceci dans le but but d'activer ce script avec ical une fois par jour
le script marche bien si ce n'est que je n'arrive pas à faire marcher la commande xtool
Bloc de code:
tell application "Safari"
    activate
    tell application "System Events"
        keystroke "t" using command down
    end tell
    set the URL of document 1 to "mon url"
    delay 5
    tell application "System Events" to tell window 1 of process "Safari"
        set {g, h} to position -- Postion de la fenêtre sur l'écran
        set g2 to (g + 120)
        set h2 to (h + 145) -- position ou je veux cliquer
    end tell
    tell application "Xtool"
        move [COLOR=Purple]mouse[/COLOR] {g2, h2}
        mouse click 
    end tell 
end tell
j'ai bien créer un dossier "ScriptingAdditions" dans le dossier bibliothèque dans lequel j'ai mis Xtool. J'ai bien dans les dictionnaires de scripts le dictionnaire "Skeleton addition".
mais j'ai beau remplacer -tell application "Xtool"- par -tell application "Skeleton addition"
j'ai une réponse me disant ne pas savoir ou est xtool (ou autre)
si je ne mets pas le tell application alors c'est la ligne move mouse qui me met une erreur...

Je précise que les quelques scripts que j'ai écrit jusque à présent sontt du copier-coller-assembler de scripts trouvés çà et la ou améliorés grace a l'aide de certains membre du forum... J'avoue ne pas y comprendre énormément ;)
je fonctionne sous 10.5.4 si cela influence quelque chose...

D'avance merci pour toute piste :zen:
 
Bonjour,
En applescript, la commande "move mouse {x, y}" et "click mouse {x, y} times 1 delay 1 using primary button" existent.
Pour la commande "click mouse", "times 1" désigne le nombre de click, "delay 1" désigne l'intervale en seconde entre chaque click et "using primary button" désigne le boutton avec lequel clicker.

Je ne vois pas pourquoi tu devrais utiliser Xtool pour cela.

En espérant avoir pu t'aider,
 
Bonjour,
En applescript, la commande "move mouse {x, y}" et "click mouse {x, y} times 1 delay 1 using primary button" existent.
Pour la commande "click mouse", "times 1" désigne le nombre de click, "delay 1" désigne l'intervale en seconde entre chaque click et "using primary button" désigne le boutton avec lequel clicker.

Je ne vois pas pourquoi tu devrais utiliser Xtool pour cela.

En espérant avoir pu t'aider,
a mon avis je dois l'utiliser comme un manche car cela ne donne rien...
Bloc de code:
tell application "Safari"
    activate
    tell application "System Events"
        keystroke "t" using command down
    end tell
    set the URL of document 1 to "mon url"
    delay 5
    tell application "System Events" to tell window 1 of process "Safari"
        set {g, h} to position -- Postion de la fenêtre sur l'écran
        set g2 to (g + 120)
        set h2 to (h + 145) -- position ou je veux cliquer
    end tell
    tell application "System Events"
        click mouse {g2, h2} [COLOR=DarkOrchid]times[/COLOR] 1 delay 1 using primary button        
    end tell
end tell
cela me donne un message d'erreur : fin de ligne prévu mais "times" trouvé
je ne sais même pas si cette commande doit être utilisé sous "System events"

edit : et si je supprime le times 1 delay 1 using primary button...
le message d'erreur devient : erreur dans system events : impossible de poursuivre mouse
 
Je suis sous Panther, et le script que tu as fait fonctionne parfaitement chez moi.
Je peut même enlever

tell application "System Events"
end tell

et aussi

times 1 delay 1 using primary button

et ça marche toujours, sans message d'erreur.


Donc le script suivant marche très bien. Je ne sait pas d'où vient l'erreur.

tell application "Safari"
activate
tell application "System Events"
keystroke "t" using command down
end tell
set the URL of document 1 to "mon url"
delay 5
tell application "System Events" to tell window 1 of process "Safari"
set {g, h} to position -- Postion de la fenêtre sur l'écran
set g2 to (g + 120)
set h2 to (h + 145) -- position ou je veux cliquer
end tell
move mouse {g2, h2}
click mouse {g2, h2}
end tell
 
deux possibilités : soit la syntaxe a évolué dans leopard... soit tu as un "scripting additions" que je n'ai pas....
car chez moi cela me donne toujours un message d'erreur : Erreur dans Safari : {162, 167} ne comprend pas le message move mouse.

ou alors je suis encore plus branque que je ne pensais... ;)
 
Bon,... j'ai trouvé une différence de syntaxe pour la commande click. :sleep:

ce code ci ne m'envoie plus de messages d'erreur... mais il n'est pas plus efficace
Bloc de code:
tell application "Safari"
    activate
    tell application "System Events"
        keystroke "t" using command down
    end tell
    delay 0.5
    set the URL of document 1 to "http://www.macg.co/"
    delay 5
    tell application "System Events" to tell window 1 of process "Safari"
        set {g, h} to position -- Postion de la fenêtre sur l'écran
        set g2 to (g + 16)
        set h2 to (h + 13) -- position ou je veux cliquer
    end tell
    tell application "System Events"
        click at {g2, h2}
    end tell
end tell
Safari s'ouvre bien (si nécessaire) un nouvel onglet s'ouvre aussi, la page macgénération aussi (pour l'exemple) mais la suite...
pour tester j'ai décidé que pour le moment je cliquerai sur le bouton rouge de la fenêtre , ce qui devrait la fermer et confirmer l'efficacité de la commande mais rien, niks, nothing, nada, nulla... pas de message d'erreur (ouf...) mais pas d'action visible non plus... :confused:
une idée?

quand a la commande move elle semble etre destinée à déplacer un objet ou un disque vers une nouvelle destination... (dixit le dictionnaire system events)
 
Oulà, je suis vraiment désolé.

En effet, je ne m'était pas souvenu que j'avais installé xtool.osax dans le passé …

Voici la syntaxe à utiliser :

Bloc de code:
XTool scripting addition: 

click mouse: 
    click mouse  point  -- where to do the mouse click
        [times  integer]  -- how many times you want to clik the mouse
        [delay  integer]  -- delay between two mouse clicks
        [using  primary button/secondary button/middle button]  -- which mouse button

hide mouse: hide the mouse
    hide mouse

move mouse: move the mouse to given coordinates
    move mouse  point  -- where you want to move the mouse

position of the mouse: get the mouse location
    position of the mouse
    Result:   point

scroll mouse: 
    scroll mouse  integer  -- the amount of scrolling
        [scroll direction  vertical/horizontal]  -- which mouse button

show mouse: show the mouse
    show mouse
Par contre, je ne sais pas où le télécharger.
Au pire, je peut t'envoyer ma version d'xtool.

A mon avis, ca ne sert à rien de mettre " tell application xtool ".

Est-ce que "xtool.osax" est bien installé pour toi dans : /Library/ScriptingAdditions ?

Mon script est donc sensé fonctionner avex xtool installé …

Voilà, mes connaissances s'arrêtent là, et encore désolé.


P.S.: j'ai retrouvé sur mon ordi une image disque d'Xtool 2, si tu la veut, tu peut la télécharger à :

http://power.up.free.fr/XTool-2.dmg

( c'est sur un vieux site web à moi …)
 
  • J’aime
Réactions: two
merci de ta patience ;)
j'avais xtool installé mais en comparant avec la version que tu as uplouadé, je me suis rendu compte que la version que j'avais trouvé sur le web était powerPC et la tienne universal...
J'ai donc remplacé le fichier mais rien y fait... :'(
 
merci de ta patience ;)
j'avais xtool installé mais en comparant avec la version que tu as uplouadé, je me suis rendu compte que la version que j'avais trouvé sur le web était powerPC et la tienne universal...
J'ai donc remplacé le fichier mais rien y fait... :'(
Bonjour

Une autre version qui chez moi avec Leopard 10.5.4 marche.

tell application "Safari"
***activate
***
***tell application "System Events" to keystroke "t" using {command down}
***delay 0.5
***set the URL of document 1 to "http://www.macg.co/"
***delay 5
***
***set fenetreSafari to bounds of window 1
***set {{g}, {h}} to {{item 1 of fenetreSafari}, {item 2 of fenetreSafari}}
***set {{g2}, {h2}} to {{g + 16}, {h + 13}}
***
***tell application "Extra Suites" -- Utilise le gestionaire de la souris
******ES move mouse {g2, h2} -- Positionne le curseur pour le clic
******ES click mouse with command -- Clic
***end tell
end tell


Bon j'ai fait le test avec Extra Suites.

http://osaxen.com/files/extrasuites1.1.html

PS: Chez moi quelques commandes de Xtool fonctionnent mais pas celles recherchés.

Il est signalé par le créateur pour Tiger (10$)

ATTENTION: C'est pas un OSAX mais une application donc à placer dans le dossier Applications à la racine du DD.

@+
 
:coucou:
:'( :'( :'(
ca ne marche pas plus chez moi...
cette fois ci c'est sur le { après ES move mouse que cela coince
avec comme message d'erreur :
« given », « with », « without », autre nom de paramètre, etc. prévu mais « { » trouvé.


j'dois être maudit... :'(
 
:coucou:
:'( :'( :'(
ca ne marche pas plus chez moi...
cette fois ci c'est sur le { après ES move mouse que cela coince
avec comme message d'erreur :
« given », « with », « without », autre nom de paramètre, etc. prévu mais « { » trouvé.


j'dois être maudit... :'(
Bonjour

Contrôle si l'application Extra Suite est ouverte.

Elle ne parait pas dans le Dock, c'est une application qui travaille en tache de fond.

Un petit script pour simplifier le contrôle.

tu place en commentaire ES move et ES click, teste le script et fait le contrôle avec le code ci-dessous.

Bloc de code:
tell application "Finder"
	if "Extra Suites" is not in name of (every application process whose file type is "Appl" and visible is false) then
		display dialog "Application Extra Suites non Ouverte"
	else
		display dialog "Application Extra Suites ouverte"
	end if
end tell

Il faut ajouter en fin de script ce code pour quitter l'application en fin d'utilisation.

Bloc de code:
ignoring application responses
	tell application "Extra Suites" to quit
end ignoring

@+
 
eh non... extra suite est activé
j'ai rajouté un - tell application "Extra Suites" to activate - en début de script
et ton script pour le fermer à la fin
et les messages d'erreurs restent les mêmes
 
eh non... extra suite est activé
j'ai rajouté un - tell application "Extra Suites" to activate - en début de script
et ton script pour le fermer à la fin
et les messages d'erreurs restent les mêmes
Le plus simple ce serais que tu te créer une signature avec:
Le type d'ordinateur (PPC ou intel)
Le système utilisé avec le nom du fauve et sa version (bon pour toi c'est Leopard).

Ca permet de voir si l'on peut te répondre si l'on a le même matériel pour faire le test.

Chez moi testé avec l'iMac intel Core 2 duo 2.16 GHz Leopard 10.5.4 et ça fonctionne parfaitement.

PS c'est quoi le point d'interrogation dans un carré bleu?

@+
 
macbookpro 2.4GHZ core 2 duo...
leopard 10.5.4
je croyais que j'avais mis ces infos dans mon profil utilisateur... (mais c'est vrai que ce n'était pas complet)

Par contre je ne vois pas de quoi tu parle avec "c'est quoi le point d'interrogation dans un carré bleu?"
 
macbookpro 2.4GHZ core 2 duo...
leopard 10.5.4
je croyais que j'avais mis ces infos dans mon profil utilisateur... (mais c'est vrai que ce n'était pas complet)

Par contre je ne vois pas de quoi tu parle avec "c'est quoi le point d'interrogation dans un carré bleu?"

Citation:
Envoyé par Ma môman
T'es assez grand pour savoir ce que tu fais...
et en plein milieu de Citation sous la ligne ci-dessus un carré bleu avec un point d"interrogation blanc (c'est pas une image non reconnue?)

Je vient d'écrire un nouveau code qui marche aussi sur mon iMac (il utilise aucunes applications non fournies avec le système).

Il est réglé pour créer un nouvel onglet et éliminer le premier onglet de Safari (c'est à toi d'indiquer la position ou cliquer pour ton script).

Bloc de code:
tell application "Safari"
	activate
	
	tell application "System Events" to keystroke "t" using {command down}
	delay 0.5
	set the URL of document 1 to "http://www.macg.co/"
	delay 0.5
	
	set fenetreSafari to bounds of window 1
	set {{g}, {h}} to {{(item 1 of fenetreSafari) + 18}, {(item 2 of fenetreSafari) + 87}}
	
	activate application "Finder"
	tell application "System Events" to tell process "Safari" to click at {g, h}
end tell

Cela ferais plaisir a notre ami macman31 que dans ton premier post au titre tu écrive Résolu.

@+
 
  • J’aime
Réactions: two
Super, ca marche ! Merci a vous 2 ceslinstinct et macman31
:zen: :zen: :zen:

pour le carré bleu et le point d'interrogation je n'ai rien... mais je vais veiller à voir qu'il n'y ait plus rien de tel dans ma signature

Pour ce qui es de changer le titre d'une discussion... je croyais que cela ne pouvait se faire que dans les 3 heures après l'émission du premier post...