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 :

Fonction getPixel() / handle du curseur / récupération de pixels particuliers


Sujet :

C++

  1. #1
    Membre averti Avatar de thorium90
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 328
    Points
    328
    Par défaut Fonction getPixel() / handle du curseur / récupération de pixels particuliers
    Bonsoir, je suis dans une certaine impasse :
    Dans le jeu auquel je joue, je voulait faire une capture d'écran AVEC le curseur. mais lorsque j'appuyais sur la touche impr écran, voila que le curseur n'est pas capturé. donc me suis dit, connaissant la fonction getPixel de l'api windows et étant familiariser avec la sdl, je vais programmer une impression écran sans l'eventuel "ShowCurseur(False)" que windows devais implementait dans la touche.
    mais rien du tout ! en effet pas moyen de réécrire les pixels capturés grâce a getpixel car l'image du curseur n'est apparemment pas inclut dans le handle du bureau. les pixels finalement capturés sont ceux au dessous de la souris

    Donc quels serait selon vous, s'il vous plait, les pistes que vous auriez afin de capturer les pixels de l'icône du curseur du jeu auquel je joue qui sont évidement différent de toutes icônes enregistrées sur le système ?

    Je vous remercie d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 16
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Points : 65
    Points
    65
    Par défaut
    • Rechercher une fonction windows qui permet de récupérer l'image du curseur en cours d'utilisation
    • Récupérer les coordonnées du curseur
    • Copier le curseur aux coordonnées voulues


    Je ne sais pas si la première étape est possible, mais je pense que si

  3. #3
    Membre averti Avatar de thorium90
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 328
    Points
    328
    Par défaut
    Bon... ou je suis vraiment pas doué en recherche ou y'a quelque chose qui cloche, pas moyen de trouver les mots clefs qui m'amèneront a résoudre la 1er étape, j'ai beau chercher je ne vois pas du tout comment choper cette image.
    De plus pour des raisons qui sont trop longues à expliquer, j'aimerai pouvoir si besoin est, récupérer seulement 1 à 10 pixels de mon curseur.

    Voici la fonction qui me permet actuellement de récupérer le code RVB des pixels de l'écran:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    HDC a_hScreenDC;// ca c'est dans le header de ma class.
     
    a_hScreenDC = GetDC(0); //ca c'est dans mon constructeur de class, et le 0 definit "tout l'ecran"
     
    void Vision::CapturePixel(POINT coordoneesPixel)
    {
        pixelColor = GetPixel(a_hScreenDC, coordoneesPixel.x, coordoneesPixel.y);
        a_R = GetRValue(pixelColor);
        a_V = GetGValue(pixelColor);
        a_B = GetBValue(pixelColor);
    }//ci dessus la méthode se chargeant de lire les info RVB
    Donc l'idéal serait de pouvoir changer le "0" après le getdc, et mettre le numéro correspondant à la souris mais la doc msdn n'a pas l'air de le supposer.

    enfin voila, je continue de chercher comme un taré et je me tien a dispo pour toute info complémentaire.
    Merci boucoup

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Il me semblait qu'il 'suffisait' de faire un blit dans une bitmap offscreen ?
    Parceque appeler GetPixel 2 à 3 millions de fois.... ca risque:

    1. D'etre chaud question temps !
    2. D'etre completement faux (entre le premier et le dernier appel le screen a pu changer)
    3. Ne pas marcher sous certains OS... Vista ou 7 par exemple....

    Et Windows n'appelle pas ShowCursor(False) pour le print-screen... le cursor est un 'sprite' qui est dessiné apèrs tout (y compris l'écran qui ne contient donc pas le curseur).
    D'ailleurs rien n'empeche d'avoir plusieurs curseurs
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre averti Avatar de thorium90
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 328
    Points
    328
    Par défaut
    bon, en fait mon but n'était pas la capture d'écran, mais l'analyse OCR d'un seul pixel de mon curseur, mais par respect de ce forum, je ne voulait pas amener le sujet a troll : la fabrication de bot.
    Quoi qu'il en soit pour 3 raisons je vais clore le sujet :
    - Premièrement il s'avère que mon jeu présente les sécurités nécessaires a rendre mon logiciel caduc, car détectable en - de deux.
    - Deuxièmement, apparemment vous faite une fixation sur la capture d'écran (que j'en avait en soit rien a faire ^^) mais personne ne m'a dit comment récupérer ces fichus pixels sur le curseur.
    - Troisièmement, ba maintenant que vous savez mes fins "malhonnêtes" vous ne voudrai plus répondre a ma question xD

    Scuzez moi de ne pas vous avoir dit clairement mes buts initiaux :p et je vous remercie d'avoir pris la peine d'essayer de répondre.

    @++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 16
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Points : 65
    Points
    65
    Par défaut
    Mais si c'est pour faire un bot (en local, pas en multi sinon ce serait à des fins malhonnêtes ^^), simplement récupérer les coordonnées du curseurs ne suffit pas?

    Je ne comprends pas pourquoi il faut que ce soit exactement le même curseur?

  7. #7
    Membre averti Avatar de thorium90
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 328
    Points
    328
    Par défaut
    ben en fait, le curseur à un petit coin de couleur gris qui change de couleur vers le orange lorsque le personnage est à porter du minerai à miner. Donc dans l'idée, le personnage aurai pu se calibrer en terme de temps d'approche.

    (en local, pas en multi sinon ce serait à des fins malhonnêtes ^^)
    et effectivement.... les joies du MMO

    Mais le problème a été pensé différemment, et j'ai trouvé une solution viable mais tres tres bas niveau donc vraiment ardu :p

    allez savoir si ce sera possible
    ++

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/10/2007, 10h04
  2. Handle au curseur
    Par Ludo_360 dans le forum Delphi
    Réponses: 2
    Dernier message: 15/05/2007, 12h29
  3. Aide pour la fonction GetPixel
    Par craryb dans le forum MFC
    Réponses: 4
    Dernier message: 15/03/2007, 17h33
  4. [9i] PLS-00320 avec une fonction qui renvoi un curseur
    Par hoaxpunk dans le forum Oracle
    Réponses: 5
    Dernier message: 09/02/2006, 17h04
  5. [PL/SQL] Curseur - Récupération du dernier élément
    Par dupont166 dans le forum Oracle
    Réponses: 5
    Dernier message: 27/12/2005, 04h57

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