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 :

Recherche d'une solution pour créer un robot


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut Recherche d'une solution pour créer un robot
    Bonjour,

    Je voudrais m'essayer à la création d'un robot qui jouerai à ma place à mon jeu Flash préféré. L'idée est la suivante: je lance mon jeu flash dans mon navigateur, prêt à jouer, puis ensuite je lance mon programme dans une console qui se chargerait de cliquer au bon endroit au bon moment.

    Après avoir réfléchi, je recherche des solutions pour effectuer les fonctions principales de mon robot, à savoir:
    • Cliquer à un endroit précis sur mon écran: une fonction qui simule un clic utilisateur à une position définie en pixel par exemple.
    • Reconnaitre la couleur d'un pixel: une fonction qui est capable de lire la couleur d'un pixel à une position définie et d'en retourner le code RGB.

    Que pensez-vous de la faisabilité de ce programme ?
    Existe-t-il une bibliothèque pour faire ces tâches de base ?

    Il serait bien que le programme tourne sous Windows XP de préfèrence, mais si cela s'avère impossible alors sous Linux.

    Cordialement,

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut
    1) Les hooks, msdn t'aidera.
    2) Pas trop dur ca... un minimum de recherche ne ferait pas de mal... Allez je suis gentil, regarde du côté de OpenCV.

    Faire un minimum de recherche soit même n'a jamais fait de mal...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    J'ai commencé à désespérer en tombant sur des forums qui m'apportaient aucune réponse...! Je dois reconnaitre que j'ai fait une recherche sommaire., je vais chercher un peu plus, en utilisant tes lignes directrices.
    Si je trouve, je posterai la solution.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 121
    Billets dans le blog
    148
    Par défaut
    [Commentaire Idiot]
    Je trouve ça un peu dommage qu'un jeu fait pour vous divertir, soit réalisé par un robot. Vous n'allez plus vous amusé après.
    [/Commentaire Idiot]
    ( Chacun ses raisons ... je ne demande pas à avoir les autres ).
    Par contre je serai curieux d'avoir la réponse, car c'est une question souvent posé, finalement.
    Je crois qu'il te faudra le handle de la fenêtre pour réalisé les cliques. ( un HWND ... mais je m'avance peut être )
    ( va fouiner la doc des hooks :p )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    Bonjour,

    J'ai trouvé la solution hier soir.
    Je la posterai ce soir en rentrant chez moi ^^

    Cordialement,

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    Voila la solutions à mes deux problématiques de base.
    J'ai eu un petit peu plus de mal pour la seconde, du fait qu'il faut inclure une librairie.
    Je me suis également rendu compte qu'il est possible de faire plein de chose sympas en se basant sur les fonctions de le lib qui contient SetCursorPos.

    Simuler un clic sourie en C

    Nécessite d'inclure "windows.h" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void clicGauche(int x, int y) {
     
                // Définir la position du curseur de al souris
                SetCursorPos(x, y);
     
                // Simule l'action de clic du bouton gauche de la souris
                mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
     
                // Simule l'action de relâcher du bouton gauche de la souris
                mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
            }
    Lire la couleur RVB d'un pixel à l'écran

    Nécessite d'inclure "windows.h"
    Nécessite de linker la librairie "libgdi32.a" avec la commande "-lgdi32" lors de la compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void getCouleur(int x, int y, int* rDest, int* vDest, int* bDest) {
     
                int r, v, b;
                COLORREF nColor;
                HDC hScreenDC;
     
                hScreenDC = GetDC(0);
                nColor = GetPixel(hScreenDC, x, y); // Nécessite la lib libgdi32.a
     
                *rDest = nColor & 0xFF;
                *vDest = (nColor & 0xFF00) >> 8;
                *bDest = (nColor & 0xFF0000) >> 16;
     
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/10/2014, 23h56
  2. Réponses: 0
    Dernier message: 31/10/2011, 20h14
  3. Réponses: 4
    Dernier message: 25/05/2010, 14h59
  4. Quelles solutions pour créer une Bases de données géographiques ?
    Par subzero82 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 25/11/2007, 21h45
  5. meilleur solution pour créer un document imprimable???
    Par martimacfly dans le forum XML/XSL et SOAP
    Réponses: 26
    Dernier message: 08/07/2004, 10h09

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