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

VB.NET Discussion :

repérer un pixel de couleur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Par défaut repérer un pixel de couleur
    Bonjour,
    avec ce code je repère un pixel de couleur rouge à l'écran et je met la souris dessus, ca marche mais si je veux répéter l'opération plus qu'une fois ca ne marche plus?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim bitmap As New Bitmap(My.Computer.Screen.WorkingArea.Height, My.Computer.Screen.WorkingArea.Width)
            Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bitmap)
            g.CopyFromScreen(0, 0, 0, 0, New Size(bitmap.Height, bitmap.Width))
            For i = 0 To bitmap.Height - 1
                For i2 = 0 To bitmap.Width - 1
                    If bitmap.GetPixel(i2, i) = Color.FromArgb(255, 0, 0) Or bitmap.GetPixel(i2, i) = Color.FromArgb(254, 0, 0) Or bitmap.GetPixel(i2, i) = Color.FromArgb(253, 0, 0) Then
     
     
     
     
                        SetCursorPos(i2, i)
                    End If
     
                Next
            Next

  2. #2
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut
    Hello,

    Si tu rajoutais la partie qui "répète l'opération" nous serions plus a meme de t'aider.

    Cordialement.

    DeWaRs

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Par défaut
    Citation Envoyé par DeWaRs Voir le message
    Hello,

    Si tu rajoutais la partie qui "répète l'opération" nous serions plus a meme de t'aider.

    Cordialement.

    DeWaRs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            System.Threading.Thread.Sleep(2000)
     
            Dim p As Point
     
            System.Threading.Thread.Sleep(10000)
            p.X = 966
            p.Y = 154
            Cursor.Position = p
            System.Threading.Thread.Sleep(1000)
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
            System.Threading.Thread.Sleep(3000)
     
           Dim passe As Integer
            passe = 1
     
     
    debut:
     
     
     
     
     
     
            If passe = 1 Then
                p.X = 750
                p.Y = 128
            ElseIf passe = 2 Then
                p.X = 970
                p.Y = 128
            ElseIf passe = 3 Then
                p.X = 1180
                p.Y = 128
            ElseIf passe = 4 Then
                p.X = 750
                p.Y = 192
            End If
            Cursor.Position = p
     
            System.Threading.Thread.Sleep(500)
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
     
     
     
     
            System.Threading.Thread.Sleep(1000)
            Dim bitmap As New Bitmap(My.Computer.Screen.WorkingArea.Height, My.Computer.Screen.WorkingArea.Width)
            Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bitmap)
            g.CopyFromScreen(0, 0, 0, 0, New Size(bitmap.Height, bitmap.Width))
            For i = 0 To bitmap.Height - 1
                For i2 = 0 To bitmap.Width - 1
                    If bitmap.GetPixel(i2, i) = Color.FromArgb(255, 0, 0) Or bitmap.GetPixel(i2, i) = Color.FromArgb(254, 0, 0) Or bitmap.GetPixel(i2, i) = Color.FromArgb(253, 0, 0) Then
     
     
     
     
                        SetCursorPos(i2, i)
                    End If
     
                Next
            Next
     
     
     
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
            System.Threading.Thread.Sleep(3000)
            'ferme la pub
            p.X = 446
            p.Y = 133
            Cursor.Position = p
            System.Threading.Thread.Sleep(1000)
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
            System.Threading.Thread.Sleep(3000)
     
     
     
     
            If passe = 4 Then
                GoTo fin
            End If
            passe = passe + 1
     
     
            System.Threading.Thread.Sleep(3000)
            GoTo debut
    fin:
     
     
     
     
     
        End Sub

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Par défaut
    Citation Envoyé par pascb423 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            System.Threading.Thread.Sleep(2000)
     
            Dim p As Point
     
            System.Threading.Thread.Sleep(10000)
            p.X = 966
            p.Y = 154
            Cursor.Position = p
            System.Threading.Thread.Sleep(1000)
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
            System.Threading.Thread.Sleep(3000)
     
           Dim passe As Integer
            passe = 1
     
     
    debut:
     
     
     
     
     
     
            If passe = 1 Then
                p.X = 750
                p.Y = 128
            ElseIf passe = 2 Then
                p.X = 970
                p.Y = 128
            ElseIf passe = 3 Then
                p.X = 1180
                p.Y = 128
            ElseIf passe = 4 Then
                p.X = 750
                p.Y = 192
            End If
            Cursor.Position = p
     
            System.Threading.Thread.Sleep(500)
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
     
     
     
     
            System.Threading.Thread.Sleep(1000)
            Dim bitmap As New Bitmap(My.Computer.Screen.WorkingArea.Height, My.Computer.Screen.WorkingArea.Width)
            Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bitmap)
            g.CopyFromScreen(0, 0, 0, 0, New Size(bitmap.Height, bitmap.Width))
            For i = 0 To bitmap.Height - 1
                For i2 = 0 To bitmap.Width - 1
                    If bitmap.GetPixel(i2, i) = Color.FromArgb(255, 0, 0) Or bitmap.GetPixel(i2, i) = Color.FromArgb(254, 0, 0) Or bitmap.GetPixel(i2, i) = Color.FromArgb(253, 0, 0) Then
     
     
     
     
                        SetCursorPos(i2, i)
                    End If
     
                Next
            Next
     
     
     
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
            System.Threading.Thread.Sleep(3000)
            'ferme la pub
            p.X = 446
            p.Y = 133
            Cursor.Position = p
            System.Threading.Thread.Sleep(1000)
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris  
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
            System.Threading.Thread.Sleep(3000)
     
     
     
     
            If passe = 4 Then
                GoTo fin
            End If
            passe = passe + 1
     
     
            System.Threading.Thread.Sleep(3000)
            GoTo debut
    fin:
     
     
     
     
     
        End Sub
    Bonjour,
    est ce que vous avez une solution? merci

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Par défaut
    Déjà ce serrait pas mal de supprimer ces Goto... Y rien de plus horrible en vbnet.
    Pourquoi tu ne fais pas simplement une boucle for et 1 à 4 ?

    EDIT et est tu passé dans en pas à pas pour voir ce qu'il se passait si tu atteignais setCurseurPos() (qui je suppose a été créé par tes soins)
    Pourquoi ne pas utilisé Cursor.Position qui est une fonction du framework.

    As-tu un traitement spécifique derrière ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/10/2010, 04h52
  2. changer les pixels de couleur
    Par cedrick21 dans le forum Langage
    Réponses: 0
    Dernier message: 01/08/2010, 10h25
  3. repérer plusieurs pixels sur une video
    Par alex7532 dans le forum Delphi
    Réponses: 11
    Dernier message: 20/12/2006, 19h34
  4. [VB6] Comment récupérer la couleur d'un pixel de l'écran?
    Par Taurëndil dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 26/03/2004, 09h02
  5. Obtenir la couleur d'un pixel
    Par GLDavid dans le forum OpenGL
    Réponses: 2
    Dernier message: 09/03/2004, 19h21

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