guiguidu25
Messages postés280Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention 9 février 2010
-
21 déc. 2008 à 11:53
guiguidu25
Messages postés280Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention 9 février 2010
-
24 déc. 2008 à 14:04
Bonjour à tous, j'aimerais savoir si il existe une instruction qui permette d'obtenir la couleur d'un pixel précis à l'écran.
Si oui, comment faire ?
Merci d'avance !
guiguidu25
Messages postés280Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention 9 février 20101 22 déc. 2008 à 11:18
Merci pour vos conseils à tous les deux
J'ai juste un petit problème : d'abord effectivement le vb6 ne m'est d'aucun utilité mais merci de m'avoir proposé tout de même... Ensuite je dois préciser que le pixel en question ne se trouve pas sur une image mais dans un contrôle WebBrowser. La source que tu m'as donné nhervagault ne m'a malheureusement pas apporté de réponse précise à mon cas
Merci tout de même d'avoir répondu !
Black G - Le futur de Microsoft
guiguidu25
Messages postés280Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention 9 février 20101 23 déc. 2008 à 08:41
Merci, j'ai essayé d'adapter le code C# en VB.net seulement il s'avère que la fonction la plus importante du programme en C# n'este pas sur VB.net.
Si c'est impossible à réaliser (ce qui m'étonne pourtant =// ), j'essaierais de faire autrement... Dommage
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 23 déc. 2008 à 22:20
Voila la solution
Tu cliques sur la forme et tu deplace la souris sur l'ecran et ta form
prend la couleur sous la souris.
Il faut une form et un controle timer.
Je ne vois pas quelle fonction est intraduisible.
Le code était je l'admet un peu complexe a traduit mais c'était pas insurmontable ;-)
J'ai les memes focntions, sauf que le code de recup de la couleur
qui etait foireux (a moins que je l'avais mal traduis) donc je l'ai refais.
'API
Private Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As IntPtr, ByVal X As Int32, ByVal Y As Int32) As Int32
Private Declare Function GetDC Lib "user32" (ByVal hWnd As IntPtr) As IntPtr
'variable de l'handle du bureau
Private desktopDc As IntPtr
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'recupere le bureau
desktopDc = GetDC(IntPtr.Zero)
end sub
Private Sub Form1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick
'lancement sur clique souris
Timer1.Enabled = Not Timer1.Enabled
End Sub
'prend la couleur a chaque tick du timer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim pt As Point = MousePosition()
Dim colorVal As Int32 = GetPixel(desktopDc, CType(pt.X, Int16), CType(pt.Y, Int16))
Dim r As Int32 = colorVal And &HFF
Dim g As Int32 = (colorVal And &HFF00) >> 8
Dim b As Int32 = (colorVal And &HFF0000) >> 16
Dim c As Color = Color.FromArgb(r, g, b)
'change la couleur de fond de la form
Me.BackColor = c