Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

applescript, xtool et souris

Discussion dans 'Développement Mac' créé par two, 27 Août 2008.

  1. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    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
    Code (Text):

    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:
     
  2. macman31

    macman31 Membre junior

    Inscrit:
    10 Mars 2008
    Messages:
    31
    J'aime reçus:
    3
    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,
     
  3. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    a mon avis je dois l'utiliser comme un manche car cela ne donne rien...
    Code (Text):
    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
     
  4. macman31

    macman31 Membre junior

    Inscrit:
    10 Mars 2008
    Messages:
    31
    J'aime reçus:
    3
    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
     
  5. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    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... ;)
     
  6. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    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
    Code (Text):
    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)
     
  7. macman31

    macman31 Membre junior

    Inscrit:
    10 Mars 2008
    Messages:
    31
    J'aime reçus:
    3
    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 :

    Code (Text):


    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 …)
     
    two aime ça.
  8. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    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... :'(
     
  9. ceslinstinct

    ceslinstinct Membre d’élite
    Club MacG

    Inscrit:
    10 Août 2004
    Messages:
    2 069
    J'aime reçus:
    111
    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.

    @+
     
  10. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    :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... :'(
     
  11. ceslinstinct

    ceslinstinct Membre d’élite
    Club MacG

    Inscrit:
    10 Août 2004
    Messages:
    2 069
    J'aime reçus:
    111
    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.

    Code (Text):
    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.

    Code (Text):
    ignoring application responses
        tell application "Extra Suites" to quit
    end ignoring
    @+
     
  12. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    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
     
  13. ceslinstinct

    ceslinstinct Membre d’élite
    Club MacG

    Inscrit:
    10 Août 2004
    Messages:
    2 069
    J'aime reçus:
    111
    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?

    @+
     
  14. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    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?"
     
  15. ceslinstinct

    ceslinstinct Membre d’élite
    Club MacG

    Inscrit:
    10 Août 2004
    Messages:
    2 069
    J'aime reçus:
    111
    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).

    Code (Text):
    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.

    @+
     
    two aime ça.
  16. two

    two Membre émérite

    Inscrit:
    6 Novembre 2005
    Messages:
    895
    J'aime reçus:
    296
    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...
     
Chargement...