Aiguillage sur la route à  prendre pour simuler la souris

Joan13Joan13 Membre
06:25 modifié dans API AppKit #1
Bonjour.

Voici mon petit problème : je cherche à  créer un programme qui émule en quelque sorte un clic de souris. Par exemple je charge un swf dans une fenêtre de safari. On peut voir une balle qui roule d'un bord à  l'autre et un bouton qui permet de rembobiner l'animation.

Le programme en question permettrait par exemple de simuler un clic de souris sur à  un endroit "x,y" de l'écran spécifier (le bouton par exemple) à  intervalle régulier.

Peut on réaliser cela en applescript ? sinon vers quel type de programmation dois je me tourner ?

Merci d'avance pour vos conseilles ::)

Réponses

  • BruBru Membre
    06:25 modifié #2
    J'ai du mal à  saisir l'intérêt de la chose...

    Mais, ce que tu demandes n'est pas si simple que cela...
    Que cherches-tu vraiment à  faire ?

    .
  • Joan13Joan13 Membre
    06:25 modifié #3
    En faites j'ai une annimation flash avec 2 boutons (un jeu) et je dois cliquer sur le premier bouton puis sur le second, puis recliquer sur le premier, puis le second etc... le programme me permettrait de faire cela sans que je sois derriere mon écran (en automatisant le clic) : clic sur bouton 1 puis 1 seconde plus tard clic sur bouton 2 puis 1 seconde plus tard clic sur bouton 1, etc... du moins simule le clic de la souris comme si moi j'avais cliqué.

    Est ce possible ?
  • AliGatorAliGator Membre, Modérateur
    06:25 modifié #4
    Ouuuuhhhh le tricheuuurrrr :)  :) ;D :o

    Je pense qu'avec AppleScript, qui permet de commander l'interface graphique, tu peux le faire, mais j'ai peur que ce pilotage de la GUI ce soit du genre "clique sur le bouton 5 du conteneur 3 de la fenêtre 12" et que au lancement d'après de ton appli le bouton soit le n°6, le conteneur le n°2, et la fenêtre la n°27...
    Et surtout je doute qu'il puisse identifier les "Boutons flash" (cette méthode de commande de la GUI ne peut commander que les "entités OSX" des interfaces).

    Par contre simuler un clic, je crois que c'est faisable.
    On peut bien simuler un appui sur une touche avec la commande "keystroke" alors je crois que la réponse est oui (ou plus exactement que la soution est plutôt AppleScript que Cocoa), maintenant je ne saurais pas te donner le bout de code pour le faire.
  • Joan13Joan13 Membre
    mai 2006 modifié #5
    Je suis découvert :P

    Merci pour ta réponse AliGator. Je viens de regarder "keystroke" c'est super pratique. En ce qui concerne la souris malheureusement je trouve plus des éléments me permetant de cliquer sur un menu, ou le bouton d'une appli... pas de solution pour le moment avec un click de souris aux coordonnées (x,y) de l'écran...

    Complément d'info :

    J'ai réussi cela

    Citation:
    tell application "iCal"
    activate
    end tell
    tell application "System Events"
    tell process "ical"
    click at {60, 60}
    end tell
    end tell

    Ca marche super bien. Donc ce que je fais c'est un imprime ecran que j'ouvre avec graphicconverter ce qui me donne la position en pixel. En placant le bouton rouge pour fermer la fenêtre d'iCal ca marche super.

    Je fais la même chose, sauf que je remplace iCal par Safari. Pour un lien ca marche super. Par contre si i y a un fichier flash dans la page il ne veut pas cliquer dans l'animation flash si le point du click se trouve dnas celle-ci : comment faire ?

    Merci de votre patience avec le grand débutant que je suis.
  • Eddy58Eddy58 Membre
    06:25 modifié #6
    Ca me rappel un topic. Attention, j'ai pas dit que c'était facile. ;)
  • Joan13Joan13 Membre
    mai 2006 modifié #7
    C'est juste un poil plus simple ce que je veux faire étant donné que qu'il n'y a rien a reconnaitre mais juste un clic à  un endroit donné à  intervalle régulier. En effet il y a un gros point commun entre les deux topics merci beaucoup Eddy je l'avais pas trouvé celui-là . Par contre aurais tu simplement une idée de pourquoi ma solution fonctionne super dans Safari et sur n'importe quel élément d'une page web mais pas sur une animation en flash (et cela même sur un micro anim avec juste un petit bouton qui affiche un texte par exemple comme on peut trouver sur les tutorial des sites de flash)?
  • Eddy58Eddy58 Membre
    06:25 modifié #8
    Dans ce cas, il est probable que Flash ne passe pas par la gestion d'évènements du système, et fonctionne à  plus bas niveau que Carbon pour récupérer les évènements. Je pense qu'AppleScript passe sûrement par des fonctions Carbon, donc passer directement par Carbon ne va peut-être rien faire de plus, mais ça n'empêche pas d'essayer pour être sûr. :o
  • Joan13Joan13 Membre
    mai 2006 modifié #9
    dans 1147269320:

    Dans ce cas, il est probable que Flash ne passe pas par la gestion d'évènements du système, et fonctionne à  plus bas niveau que Carbon pour récupérer les évènements. Je pense qu'AppleScript passe sûrement par des fonctions Carbon, donc passer directement par Carbon ne va peut-être rien faire de plus, mais ça n'empêche pas d'essayer pour être sûr. :o


    Merci beaucoup j'avais besoin de cette explication à  cause de mon petit niveau.
Connectez-vous ou Inscrivez-vous pour répondre.