IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Simuler clic souris sous linux


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut Simuler clic souris sous linux
    Bonjour/bonsoir ami(e)s programmeurs;

    Je me permet de vous ecrire pour vous demander quelques conseils/pistes/aides (rayer la mention inutile)

    J'essai depuis plusieurs semaines et beaucoup de recherche de simuler un déplacement de souris ainsi qu'un clic (qui sera sûrement dans une boucle pour en faire tout plein).

    Mais rien n'y fais, je suis incapable de mettre cela en place bien que j'imagine que cela soit possible.

    Mon but dans tout ca vous entends-je dire ?

    C'est de faire un petit programme qui pourra cliquer a des endroits précis sur une fenêtre de navigateur (Clickers Heroes pour ceux qui connaissent).

    J'aimerai donc mettre en place un programme avec un switch (case ?) qui me demandera quel genre de clic je veux faire. Si CapsLock est enfoncé alors il démarre la rotation, sinon il s’arrête et il me laisse reprendre la main sur la souris ^^

    Je sais que cela est possible sous windows mais je suis plus souvent sous Linux (windows me sert de console).

    Merci de votre aide et a très vite j'espère

    mcvovol

    P.S. : je pourrai mettre la source si vous êtes interessé

    Edit : Pour faire fonctionner le jeu pendant plusieurs heure (en mode actif) je pourrai faire cela

    While (capslock enfoncé)
    - deplacer la souris vers x1, y1,
    - cliquer pendant 5 minutes
    - deplacer la souris vers x2, y2,
    - enfoncer la touche Q
    - cliquer une fois
    puis ca recommence

    Pour faire fonctionner le jeu pendant plusieurs heure (en mode inactif) je pourrai faire cela

    While (capslock enfoncé)
    - deplacer la souris vers x2, y2,
    - enfoncer la touche Q
    - cliquer une fois
    - sleep x minutes
    puis ça recommence

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Tu peux simuler clavier et souris avec xdotool (programme dans les paquets).
    Pour vérifier l'enfoncement de capslock il y a bien xinput --test $id_clavier_optenu_avec_xinput + filtre, mais je pense qu'il vaut mieux lancer et arrêter un script via raccourcie clavier (raccourcie qui peut être capslock). Perso j'utilise xbinkeys. Certains environnements de bureau proposent aussi de lier un raccourci à une application.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut
    Bonsoir et merci pour votre réponse.

    Helas, Xdotool n'est pas ce qu il me faut bien que pratique pour des taches simple.

    Dans l'ideal, il faudrait que je puisse tout faire en mode console avec C++. Ce qui serait très intéressant niveau programmation je trouve.

    Pour la petite histoire, je bottai sur un certain jeu en ligne il y a fort longtemps. Dommage que cela soit devenu interdit pour cette licence.

    Concernant mon bot, rassurez vous, c'est autorisé sur Clickers Heroes ^^

    Dans un premier temps que pourrai faire mon tantque Clapslock enfoncé cout << "it's ouork !!!" << endl;
    puis permettre de choisir a nouveau un programme

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    La simulation des entrées vers et venant d'autres applications est vachement dépendante de l'OS. Tu peux regarder du côté de libX11/libxcb ou libwayland (si wayland est installé).
    Il y a toujours les sources de xdotool et xinput pour exemple .

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut
    En effet, xdotool servira de teste pour les coordonnées notamment

    L'autoclicker fonctionne déjà en clic simple ainsi quand clic sur le boss suite a 3 ou 4 position souris/clic successif (en prenant le temps de faire une pause entre chaque déplacement). Comme c'est instantané, ça ne laisse pas le temps a l'appli (flash) de suivre...

    Finalement c'est vrai qu'Xdotool est sympa a utiliser mais pas aussi souple que du C++ je n'en démordrai pas ^^

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Je ne vois pas l'intérêt de farmer sur clicker heroes... il suffirait de modifier ta sauvegarde directement. Tant qu'a faire, ca irait plus vite

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut
    Citation Envoyé par leternel Voir le message
    Je ne vois pas l'intérêt de farmer sur clicker heroes... il suffirait de modifier ta sauvegarde directement. Tant qu'a faire, ca irait plus vite
    Je sais bien mais l'automatisation du jeu c'est un loisir pour moi alors si je peux faire mon propre autoclicker j'en serai ravi

    Tout les copains du clan HFR Autoclick pour automatiser certaine action alors je souhaiterai pouvoir faire pareil sauf qu'ils sont tous sous windows

    J'ai deja une vague idée de comment faire mon menu ^^

    cout << "Comment jouent-t-on aujourd'hui ?" << endl << endl;
    cout << "1- Run de nuit (actif)" << endl;
    cout << "2- Run de nuit (inactif)"<< endl;
    cout << "3- Achat anciens"<< endl;
    cout << "4- Mise en place apres ascend" << endl;
    cout << "5- Midas start" << endl;
    cout << "6- A propos" << endl;
    cout << "7- Quitter" << endl << endl;

    Bon ca fait debutant voir gamin meme si j'ai 31 ans 2/3. Mais je voudrai faire cet autoclicker aussi pour m'ameliorer dans la programmation en C++.

    L'une des prochaines etapes et de reussir a faire de la poo (jeu pour mes enfants sous la console)

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    @mcvovol: Pour sûr d'être comprit, libX11, libxcb et libwayland ont des bibliothèques C. C'est pour cela que les sources de xdotoot et xinput peuvent servir d'exemple.

    À noter que wayland est le successeur de X11.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut
    Bonsoir et desolé pour le retard.

    Je pense que les lib x11 seront plus optimisé dans mon cas si j'ai bien compris car Ubuntu l'utilise couramment je pense ^^

    Par contre j'ai pas bien compris comment trouver la doc sur ces deux lib et comment les utiliser.

    Biensur, j'ai googlelisé cela mais ca ne donne rien si ce n'est les moyens de telecharger...

    Certain script utilise le format suivant :

    J'imagine que ca serait trop simple pour le faire fonctionner en C++ non ?

  10. #10
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    http://www.x.org/releases/X11R7.7/do...11/libX11.html

    Mais la doc est tellement abrupte, et X11 tellement compliqué que perso j'irais plutôt voir comment est fait xdotool. Et dans un premier temps, carrément en utiliser les sources.

    Citation Envoyé par mcvovol Voir le message
    Certain script utilise le format suivant :

    J'imagine que ca serait trop simple pour le faire fonctionner en C++ non ?
    Oui
    Cela ressemble plus à du scripting pour des logiciels d'automatisation. Si tu veux quelque chose comme cela, il faudra faire ton propre langage et interpréteur.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut
    En effet la doc est vraiment compliqué meme si je me debrouille en anglais ca reste tres tendu de comprendre ce qui se dit...

    Pourtant j'ai besoin que de deux commandes.

    A savoir déplacer la souris et cliquer.

  12. #12
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    a priori, même pas, tu vas juste émettre un clic à la position qu'il te plait.

    Le problème, c'est de deviner à quelle position, donc trouver la position et la taille de la fenêtre du navigateur.
    Ou alors trouver un moyen de connaitre la position de la souris dans le même jeu de coordonnées que ton clic (les coordonnées pouvant être relative à l'application qui les gère)

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut
    Bonjour,

    je reviens vers vous car je me suis rendu compte qu'il est plus viable de faire ce que je souhaite sous Windows plutôt que sous Linux dans un premier temps.

    L’émulation d un clic et déplacement de souris a l'air bien trop compliqué sous Linux au vu de mon niveau de programmation.

    Il serait donc préférable que je m'oriente plutôt vers un programme sous Windows crée via Qt4 (histoire de profiter du designer ^^)

    Dans ma logique, il faudrait crée une (un?) mainwindows et y associer plusieurs boutons afin de faire les diverses actions.

    Exemple :

    - sélectionner l action voulu
    - rendre invisible la mainwindows si possible et afficher le widget/ form de l action voulu
    - activer caps lock pour faire l action voulu
    - désactiver avec caps lock
    - retourner sur la mainwindows

    Dans un premier temps cela a l'air réalisable

    Je vais donc me lancer dans le design avant de chercher a faire cliquer la souris.

    Qu en pensez vous ?

Discussions similaires

  1. Simuler clic souris en VBScript
    Par menas dans le forum VBScript
    Réponses: 6
    Dernier message: 14/12/2010, 11h12
  2. Hook sur clique de souris sous linux
    Par geek-59600 dans le forum Linux
    Réponses: 1
    Dernier message: 23/10/2009, 12h08
  3. Controler la souris sous linux "comme" win32.dll
    Par openmind38fr dans le forum GTK+ avec Python
    Réponses: 0
    Dernier message: 13/10/2009, 14h44
  4. problème simulation clic souris avec "postMessage"
    Par Lustuc dans le forum Windows
    Réponses: 1
    Dernier message: 06/09/2009, 10h49
  5. simuler clic souris robot
    Par zarbouine dans le forum Langage
    Réponses: 2
    Dernier message: 01/02/2006, 07h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo