[R] Pixelgetcolor et programme

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
hck
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 23 juin 2008 20:20
Status : Hors ligne

[R] Pixelgetcolor et programme

#1

Message par hck »

Salutations

J'ai réalisé un court programme pour facilité la recherche de pixel dans mes futur script,
pour cela il se base sur trois pixel proche du curseur,

Voilà mon code :
► Afficher le texte
Le soucis est que les couleurs ne sont pas juste, pourriez vous me dire ou j'ai eu faux ?
Je galère pour trouver ça, pourtant mon script est "logique", et je ne trouve pas de faute :x



Autre soucis, il est incompilable, détécté comme trojan par avast :/
Modifié en dernier par hck le jeu. 10 juil. 2008 16:43, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#2

Message par timmalos »

Le soucis est que les couleurs ne sont pas juste
Peux tu expliquer le problème?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#3

Message par Tlem »

Pour le problème de détection par Avast, ajoutez dans les directives de compilation la non utilisation de la compression UPX, et éventuellement selon votre version, la non utilisation du mode ANSI.

Si vous utilisez Scite4Autoit pour compiler, ajoutez ceci dans votre script :

Code : Tout sélectionner

#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseAnsi=n
Pour le problème des couleurs, je dirais pareil que timmalos ...
Je n'ai pas tout compris non plus !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
hck
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 23 juin 2008 20:20
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#4

Message par hck »

Merci bien, pour la couleur c'est simple, faites le teste, ouvrez window info, ouvrez mon script, placez votre souris sur un point précis, appuyez sur F2, la première couleur du scripte ne correspond pas a celle de window info !
d'où viendrais le problème ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#5

Message par Tlem »

Ajoutez MouseClick("left") au début de votre fonction 'Com'.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
hck
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 23 juin 2008 20:20
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#6

Message par hck »

Rien y fait, les couleurs ne sont toujours pas bonne :x
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#7

Message par Tlem »

Ceci fonctionne chez moi :

Code : Tout sélectionner

func com()
    MouseClick("left")
    $pos = MouseGetPos()
    $x = $pos[0]
    $y = $pos[1]
    ;MouseMove(0,0,1)
    $pix0 = PixelGetColor($x,$y)
    msgbox(0,"",$pix0)
    $pix0 = hex($pix0,6)
    $pix1 = PixelGetColor($x + 1,$y)
    $pix1 = hex($pix1)
    $pix2 = PixelGetColor($x,$y + 1)
    $pix2 = hex($pix2)
    MouseMove($pos[0],$pos[1],1)
    msgbox(0,"",$pix0 & " " & $pix1 & " " & $pix2)
    GUICtrlSetData($code,'while 1' & @CRLF & '$coord = PixelSearch ( $x , $y , $x2 , $y2 , 0x' & $pix0 & ')' & @CRLF & '      if not @error then' & @CRLF & '         if Hex(pixelgetcolor($coord[0]+1, $coord[1] )) = "' & $pix1 & '" then' & @CRLF & '            if Hex(pixelgetcolor($coord[0], $coord[1] +1)) = "' & $pix2 & '" then' & @CRLF & '               exitloop' & @CRLF & '            endif' & @CRLF & '         endif' & @CRLF & '      endif' & @CRLF & 'WEnd')
endfunc
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
hck
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 23 juin 2008 20:20
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#8

Message par hck »

Code : Tout sélectionner

func com()
    MouseClick("left")
    $pos = MouseGetPos()
    $x = $pos[0]
    $y = $pos[1]
    ;MouseMove(0,0,1)
    $pix0 = PixelGetColor($x,$y)
    $pix0 = hex($pix0,6)
        msgbox(0,"",$pix0)
    $pix1 = PixelGetColor($x + 1,$y)
    $pix1 = hex($pix1)
    $pix2 = PixelGetColor($x,$y + 1)
    $pix2 = hex($pix2)
    MouseMove($pos[0],$pos[1],1)
    msgbox(0,"",$pix0 & " " & $pix1 & " " & $pix2)
    GUICtrlSetData($code,'while 1' & @CRLF & '$coord = PixelSearch ( $x , $y , $x2 , $y2 , 0x' & $pix0 & ')' & @CRLF & '      if not @error then' & @CRLF & '         if Hex(pixelgetcolor($coord[0]+1, $coord[1] )) = "' & $pix1 & '" then' & @CRLF & '            if Hex(pixelgetcolor($coord[0], $coord[1] +1)) = "' & $pix2 & '" then' & @CRLF & '               exitloop' & @CRLF & '            endif' & @CRLF & '         endif' & @CRLF & '      endif' & @CRLF & 'WEnd')
endfunc
 
En simplement bougeant la msg box, je n'obtient pas le même résultat, je doute que mon code soit faux, c'est moi qui ne comprend pas, Window Info ne donne pas la couleur en hexa ?

Soit dans mon exemple
screen.jpg
La couleur dans la msgbox ne devrait pas être 00324C ?

Merci de votre aide, je pense que je nage un peu là :x
Modifié en dernier par jbnh le jeu. 10 juil. 2008 11:32, modifié 1 fois.
Raison : Code couleur.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#9

Message par jbnh »

Attention, une règle du forum a été ajoutée!

Si ca peut aider =>

Code : Tout sélectionner

$var = PixelGetColor( 10 , 100 )
MsgBox(0,"The hex color is", Hex($var, 6))
pour avoir la couleur hex.
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
hck
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 23 juin 2008 20:20
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#10

Message par hck »

désolé pour les règles, pour mon problème je recommence mon script, on verra ce que ça donne, car je n'arrive pas a trouver le problème.

Un autre screen pour me faire comprendre :
http://img230.imageshack.us/img230/7/screenim4.jpg

Avec le code que j'ai utilisé présent sur le screen :
► Afficher le texte
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#11

Message par Tlem »

Je viens de faire les essais avec votre code (Celui du premier post), et je suis tombé sur sur le même problème que vous !!!

J'ai trouvé cela étrange, et je me suis dit ... Mais quels sont les coordonnées capturées par la fonction Com() ???

Petite modification du script avec ceci :

Code : Tout sélectionner

traytip("",$pos[0] & "  " & $pos[1] & "  " & hex($pix0,6),0)
et là ... rhhhooooo mais les coordonnées ne sont pas bonne !!!

Alors, re-lecture du code, et là juste au niveau des fonctions Opt() je vois ceci :

Code : Tout sélectionner

Opt("MouseCoordMode", 0)
Donc petite transformation en

Code : Tout sélectionner

Opt("MouseCoordMode", 1)
et là, nickel chrome chaque couleur correspond aux coordonnées prévues. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
hck
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 23 juin 2008 20:20
Status : Hors ligne

Re: [..] Pixelgetcolor et programme

#12

Message par hck »

Merci bien alors, je ne sais même pas pourquoi j'ai mis ça :]
Répondre