Coodonnées du curseur et recherche de couleur.

Messages postés
20
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
18 janvier 2012
- - Dernière réponse : WariorProg
Messages postés
18
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
15 décembre 2013
- 10 juil. 2005 à 03:18
Voila ce que je voudrais faire.
Je voudrait savoir la position exacte de la souris sur le bureau entier de windows.
Une fois la position du curseur trouver, creer une zone carree de recherche autour du curseur de façon a trouver la couleur d'un pixel, et une fois cette couleur trouver, positionner le curseur pile poil sur cette couleur.

Auriez vous des idée ?
Un petit bout de code de votre part fera de moi un heureux de plus sur cette terre Lol !
Pleaseeeeeeeeeeeeeeeeee !
A+
Afficher la suite 

8 réponses

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83
0
Merci
Tu peux utiliser les fonctions API : GetCursorPos pour récupérer la position de la souris, PaintDesktop pour récupérer l'image du bureau (zone définit par toi même), GetPixel pour récupérer les pixels de cette zone définie.

Pour plus d'info sur ces api, va faire un tour dans la rubrique API du site www.ProgOtoP.com

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
Messages postés
20
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
18 janvier 2012
0
Merci
Merci Guy pour ta reponse
A+
Rockit
Messages postés
20
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
18 janvier 2012
0
Merci
Je n'arrive pas acceder au site que tu ma conseiller,
Aussi je debute en vb et les api pour moi sont encore un mystere
Tu pourrais pas me faire un petit exemple de code
Avec PaintDeskTop qui utilise GetDesktopWindows
comme reference. Je n'arrive a utiliser ces api(manque d'informations)

Ce serais sympa et surtout ca me donnera une idee de comment je pourrais proceder.
A+
Rockit
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83
0
Merci
Je suis désolé pour le site, mais apparement il a du y avoir un problème de serveur car moi non plus je n'ai pas pu m'y connecter pendant 2 heures !

Bon, je t'ai préparé un petit code d'exemple tout simple. Il te montreras comment récupérer l'image du bureau très facilement en déplacant la feuille à l'endroit du curseur. Pour le faire fonctionner : Clique sur le bouton créer préalablement, puis relache le bouton de la souris à l'endroit dont tu veux récupérer l'image. Ensuite, l'image est directement tracée dans ta form. Par contre, je n'ai pas fait de commande pour arrêter le prog... je te laisse faire ;-p

Voici le code :

Private Declare Function PaintDesktop Lib "user32" (ByVal hdc As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Type POINTAPI
    X As Long
    Y As Long
End Type

Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim PNT_Position As POINTAPI

    'on récupère la position du curseur
    GetCursorPos PNT_Position
    
    'on déplace la feuille ainsi que la picturebox à la position de la souris
    Form1.Move Form1.ScaleX(PNT_Position.X, vbPixels, vbTwips), Form1.ScaleY(PNT_Position.Y, vbPixels, vbTwips)
    
    'on enlève l'ancienne image
    Form1.Picture = LoadPicture("")
    
    'on copie l'image du bureau dans les picture box
    PaintDesktop Form1.hdc

End Sub

Private Sub Form_Load()

'initialisation de la feuille
Form1.ScaleMode = vbPixels
Form1.AutoRedraw = False
Form1.BorderStyle = 0

End Sub


DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
Messages postés
20
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
18 janvier 2012
0
Merci
C'est encore moi,
En faite j'ai essayer d'adapter ce code pour mon utilisation, tout fonctionne nickel sauf qu'il ne prend que le fond de windows(ignorant toute fenetres et icones), or je voudrais qu'il prenne aussi le fond y compris les icones et fenetres se trouvant a l'emplacement du curseur.
Je sais pas si je suis clair :-)
Merci d'avance de ton aide.
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83
0
Merci
Ah ! à ce moment là il faut faire une capture d'écran ! Mais je ne sais pas exactement comment il faut faire. Mais je pense qu'il doit y avoir quelques sources sur ce site qui pourront te l'expliquer.

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
Messages postés
18
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
15 décembre 2013
0
Merci
WariorProg

Je te remercie beaucoup pour ce code car j avais un soucis sur un menu popup avec une icone dans la barre des tache.
Messages postés
18
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
15 décembre 2013
0
Merci
WariorProg

pour definir ton carre utilise setwindowsregion ou un truc dans ce genre. J ai dejas fait ce truc et cela marche.
Aller Bon courrage .