irvine31
Messages postés23Date d'inscriptionsamedi 10 avril 2010StatutMembreDernière intervention28 juin 2012
-
27 juin 2012 à 21:24
irvine31
Messages postés23Date d'inscriptionsamedi 10 avril 2010StatutMembreDernière intervention28 juin 2012
-
28 juin 2012 à 10:57
Bonjour,
J'ai découvert une API qui peut m’être très utile : GetPixel.
J'ai fait pas mal de recherche et j'en suis venu à ceci :
Public Class Form1
Public Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal x As Integer, ByVal y As Integer) As IntPtr
Public Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As IntPtr) As IntPtr
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
For Each Personnage In Process.GetProcessesByName("Procecus")
Dim cacao As IntPtr = GetWindowDC(Personnage.MainWindowHandle)
TextBox1.Text = GetPixel(cacao, Cursor.Position.X, Cursor.Position.Y).ToString
Next
End Sub
End Class
Tout fonctionne à merveille !
Mais j'aimerais lister toute les positions où les pixels ont une couleur spécifique.
Concrètement, j'aimerais avoir les positions (X et Y) dans la fenêtre où les pixels ont cette valeurs : "15527405".
Voici ma question :
Est-ce que je suis obligé de tester la valeur de chacun des pixels un par un pour effectuer la liste ou existe-il une solution plus simple ?
Par exemple si il existait une API ("FindPixel" pour handle spécifique) se serait super !
Le problème c'est que la fonction va être répété extrêmement rapidement donc j'ai peur que cela prenne beaucoup de ressource ...
Donnez-moi votre point de vue s'il vous plait.
Bonne soirée à tous !
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 27 juin 2012 à 23:04
Bonjour,
Non, je ne pense pas que ça existe, il faudra que tu fasse la boucle pour contrôler tout les pixels.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 28 juin 2012 à 10:11
Bonjour,
mais si quelqu'un d'autre à une astuce je suis preneur
Il n'en existe pas. Je plussoie ce que t'en a dit NHenry.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ