Programmer un imprim ecran et l'insérer dans une picturebox

dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011 - 5 juin 2011 à 16:50
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011 - 5 juin 2011 à 22:17
bonjour à tous!
j'essaie de créer un petit bot sous vb6 qui fait bouger et cliquer la souris à des endroits précis de l'écran. Le problème, c'est que j'ai besoin de connaitre la couleur des pixels à l'ecran pour que le bot sache où il doit cliquer. Il y a la fonction point et la fonction getpixel(API) qui permettent ça, mais elle ne le permettent qu'à l'intérieur d'une form ou d'une picture box, alors que je voudrais pouvoir connaitre la couleur de chaque pixel de l'écran. J'avais donc pensé à faire executer au programme une capture d'écran, puis l'insérer dans une picturebox, et ceci plusieurs fois de suite; je pourrais ainsi connaitre la couleur des pixel en dehor des objets form etc.

Ma question: comment faire programmer simultanément un imprim écran et son insertion dans une pictorebox??
merci d'avance!

14 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 17:12
Bonjour,

passer par une picture box qui contiendrait l'image de ton écran ? ===>> bien lourd et nécessiterait également l'utilisation de fonctions de l'Api de Windows, ce que tu n'aimes apparemment pas si j'en juge par l'état (laissée carrément en plan) de ton autre discussion, ouverte ICI

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011
5 juin 2011 à 17:19
ok, et quelle alternative me reste-il alors?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 17:31
ok, et quelle alternative me reste-il alors?

si tu tiens à ton "mécanisme" par relevés de pixels, ===>> ce que je t'ai dit dans ton autre discussion.
Et en te rappelant ce psssage de mes remarques :
certaines applications de jeux n'accepteront rien d'autre que le click physique et donc non "simulé"
Je crains fort que tu ne sois en train de perdre ton temps.

Et commence donc, avant de te lancer dans cette "entreprise", par demander au responsable du site sur lequel tu veux faire "agir ton bot", s'il est d'accord et le permet. Même s'il était d'accord, il y aurait de fortes chances pour qu'il ne le permette qu'après une analyse très approfondie de ce que veut faire ton "bot".

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011
5 juin 2011 à 17:38
je lui ai demandé il est d'accord bien sur! :D
j'ai testé, les clics auto marchent, mais comme le contenu est changeant, je suis obligé d'analyser le contenu de l'écran d'une manière ou d'une autre, et je ne vois pas comment je pourrais faire sans analyse graphique à base de couleur de pixel, il existe un autre moyen?

Dans l'autre discussion, tu m'avais dit d'utiliser la fonction getpixel avec l'écran comme hdc, mais la fonction n'accepte pas l'objet screen, comment jdois faire??
Aide moi stp, c'est pour la bonne cause je le jure :D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 17:48
Dans l'autre discussion, tu m'avais dit d'utiliser la fonction getpixel avec l'écran comme hdc

Non, je ne t'ai pas dit cela, mais :
le handle (hwnd) de l'écran/bureau a pour valeur 0
le hdc d'une fenêtre dont on a le hwnd s'obtient par utilisation de la fonction GetDC de la librairie User32 de l'Api de Windows

ne pas confondre hdc du bureau/écran (ce que je t'ai dit) et "écran comme hdc" (qui ne veut rien dire). Et c'est le hdc que tu dois passer à la fonction GetDc.
Allez ! Bonne chance à nouveau, car moi, j'estime t'avoir suffisamment guidé (sauf pour t'écrire - ce que je neux pas - tout ton code) et te laisse donc à ta noble tâche.


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 17:53
Tiens, puisque tu nous dis que le responsable du site est d'accord.
Facilite-toi donc la tâche en lui demandant de bien vouloir te donner le nom des objets/fenêtres/contrôles sur lesquels tu souhaites agir


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011
5 juin 2011 à 18:07
merci beaucoup pour ton aide, je vais essayer de mettre tes conseils en application, même si j'ai pas absolument tout compris lol. bonne soirée!
0
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011
5 juin 2011 à 19:37
ucfoutu, si tu es tjs là, j'ai encore besoin de ton aide stp...
je déclare les fonction en annexe, je tape ce code dans la partie mousedown:

Dim C As Long
C = GetPixel(GetDC(0), 5000, 5000)
Label1.Caption = C

et pour une raison que j'ignore, cela ne marche pas:/ le label me renvoir comme valeur -1, au lieu de me renvoyer la couleur du pixel. Il n'y que sur le bord supéieur gauche que s'affichent d'autre valeur de pixel. Je comprend pas, qu'est-ce que j'ai mal fait?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 20:12
T'es hors écran, avec ces coordonnées (alors bien sûr ...)!

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011
5 juin 2011 à 20:20
ahh?? mais normalement, l'écran fait presque 20000 pixels sur l'axe horizontal, et 13000 sur l'axe vertical, pourquoi là je suis déjà hors ecran avec ces coordonées?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 20:26
20000 par 13000 ?
Balèze, ton écran ! Tu vas faire des envieux ici !
Plus sérieusement : tu ne connais même pas la résolution de ton écran ? (nul besoin de VB, pour cela, pourtant).



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011
5 juin 2011 à 20:37
ben, je sais pas en fait lol, mais la fonction line, point, et pset de visual basic acceptent 20000 pixel par 13000 oui! et là je suis hors champs avec 1400 pixel par 850. et du coup quand j'utilise les coordonées du mousemove, le pixel que pointe la souris n'est pas du tout le meme que celui analysé par le getpixel. Comment ça se fait??
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 22:07
quand j'utilise les coordonées du mousemove, le pixel que pointe la souris n'est pas du tout le meme que celui analysé par le getpixel.

D'après toi ?
Je crois simplement que lorsque l'on en est encore là, on dédie son temps libre à l'apprentissage des choses essentielles avant de se lancer dans des entreprises du genre de celle que tu as choisie.
Consigne du jour (nettement plus importante que le sujet de ta discussion) : t'intéresser à ce que sont :
- le scalemode
- les unités choisies (twips, pixels, etc...)
- ce que sont les twpisperpixelX et twipsperpixelY
etc ...
bonne chance à toi mais, pour l'instant et tant que je ne serai pas totalement convaincu (à travers ce que tu posteras sur ce forum) de ce que tu n'as pas commencé par apprendre et assimiler les bases élémentaires, je n'interviendrai pas dans les discussions ouvertes par tes soins.
Déasolé d'être aussi "brutal", mais je suis ainsi et n'y peux rien.


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
dieu360 Messages postés 30 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 10 septembre 2011
5 juin 2011 à 22:17
ok merci pour ton aide, je vais me renseigner sur les points dont tu m'as parlé, c'est vrai qu'il me manque les base; à bientôt!
0
Rejoignez-nous