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

Windows Forms Discussion :

BOT Poker C#


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 37
    Par défaut BOT Poker C#
    Bonjour

    Je cherche à faire un bot poker en C#, je m'explique :

    Dès que le programme sera lancé, il devra jouer tout seul à ma place au jeux de poker en ligne que j'ai choisi (petit jeu flash)
    - dejà j'utilise emguCV pour reconnaître les cartes
    -à partir de la je décide de ce que je vais faire de ma main.

    quelqu'un s'est il déjà lancé dans un projet similaire ?

    Merci

    PS : quelqu'un sait il comment prendre un canvas(le jeu flash par exemple) d'une page web par exemple et la mettre sur un panel d'un windows forms ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Par défaut
    Bonjour à vous,

    Pour la possibilité de mettre directement votre jeu flash dans votre formulaire, vous pouvez utiliser l'ActiveX de flash player.

    Plusieurs solutions sont possible pour aborder votre objectif.

    Vous pouvez par exemple simuler des clicks de souris/clavier sur le jeu mais du coup vous ne pouvez rien faire d'autre sur votre machine en même temps. Et vous pouvez également envoyer des messages directement au jeu (message dans le sens Windows du terme ici). C-à-d que votre application va envoyer des messages (signaux) qui diront au jeu que vous avez cliquez à tel ou tel endroit tandis que vous vous pouvez continuer à utiliser d'autre application quand vous le souhaitez.

    Pour cela, regardez du coté de la fonction SendMessage de l'API de Windows.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 37
    Par défaut
    Pour l'instant je suis parti vers la première solution.
    Cependant mon prof m'a parlé de :
    -récupérer le canvas du jeux et de le mettre sur un panel du windows form (mais pas de façon manuel sous Visual studio )
    -s'attacher au processus du jeux (pour ensuite récupérer les variables du jeux ?)
    cette dernière ressemble à l'envoie de signaux car on peut faire autre chose entre temps.

    Sauf que je n'ai aucune idée de comment cela fonctionne...

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Par défaut
    Citation Envoyé par freaks88 Voir le message
    -récupérer le canvas du jeux et de le mettre sur un panel du windows form (mais pas de façon manuel sous Visual studio )
    En effet vous pouvez "prendre" la fenêtre du jeu et l'afficher dans un panel. Pour cela, vous devrez utiliser plusieurs fonctions de l'API Windows:
    • FindWindow : Permet d'obtenir un handle vers une fenêtre.
    • SetParent : Permet de définir le parent de la fenêtre précisée via son handle.


    - FindWindow prend 2 paramètres. Le premier c'est le nom de la classe de la fenêtre et le deuxième son nom affiché (c.-à.-d. le nom affiché dans la barre de titre). Un seul des deux paramètre est nécessaire pour cette fonction.

    - Une fois que vous avez obtenu un handle via la fonction FindWindow, utilisez SetParent avec comme premier paramètre le handle trouvé ci-dessus et comme second paramètre, panel1.Handle par exemple (le handle du contôle dans lequel vous souhaitez ancrer la fenêtre).

    - Après vous pouvez surement pauffiner le tout avec SetWindowLong pour retirer des bordures etc mais cela n'est pas obligatoire.

    Citation Envoyé par freaks88 Voir le message
    -s'attacher au processus du jeux (pour ensuite récupérer les variables du jeux ?)
    cette dernière ressemble à l'envoie de signaux car on peut faire autre chose entre temps.
    Je ne vois pas trop ce que vous voulez dire par attacher au processus ? Pour ce que vous voulez faire je dirais que vous devez utiliser ReadProcessMemory et WriteProcessMemory et que pour ce faire il faut ouvrir le processus (avec OpenProcess) et à partir de ce moment la, vous pouvez lire des valeurs du jeu et également en écrire.

    Est-ce cela que vous voulez dire par s'attacher ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 37
    Par défaut
    Justement je ne sais pas, je crois^^
    en procédant ainsi, si j'arrive à récupérer les valeurs du jeu, en théorie je n'aurais pas besoin de reconnaisance graphique des cartes ou je me trompe ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Par défaut
    En effet. Avec cette façon de procéder (Read/WriteProcessMemory) vous n'aurez pas besoin de reconnaitre les cartes.

    Mais si vous désirez utiliser emguCV comme dit plus haut, alors vous n'aurez pas besoin d'utiliser Read/WriteProcessMemory (ni de vous lier au processus).

Discussions similaires

  1. [Conseils] Developper Un Irc Bot
    Par PoiSon dans le forum IRC / mIRC
    Réponses: 4
    Dernier message: 11/11/2006, 15h04
  2. alt/title => bots
    Par C.M dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 01/04/2005, 16h01

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