Bonjour, j'ai fais un programme permettant de trouver la couleur d'un pixel rechercher, et de cliquer dessus par la suite. Le programme fonctionne parfaitement sur mon ordinateur, mais quand je l'essaye sur l'ordinateur d'un ami, il ne clique pas sur la bonne couleur.
J'aimerais donc savoir si, la couleur des pixels peuvent varier en fonction de la carte graphique? (je précise que le pixel reste a la même position, et qu'il est bleu, par exemple mais que le bleu est le même a l'œil nue mais peut être pas pour la fonction pixelsearch).
Ou si la cause peut venir d'autre part...
Cordialement, merci de toute réponses !
PixelSearch problème de comptabilité
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- TommyDDR
- Modérateur
- Messages : 2086
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: PixelSearch problème de comptabilité
Non, la couleur du pixel ne variera pas, au pire suivant la qualité de l'écran il apparaitra plus ou moins bleu à vos yeux, mais la donnée elle, reste la même.
Êtes-vous sur que le pixel est EXACTEMENT de la même couleur ?
Essayez de voir le code hexa de la couleur avec AutoIt Window Info (disponible avec l'installation d'autoit).
Êtes-vous sur que le pixel est EXACTEMENT de la même couleur ?
Essayez de voir le code hexa de la couleur avec AutoIt Window Info (disponible avec l'installation d'autoit).
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Re: PixelSearch problème de comptabilité
Bonjour et merci de votre réponse..TommyDDR a écrit : ↑jeu. 25 févr. 2021 02:46 Non, la couleur du pixel ne variera pas, au pire suivant la qualité de l'écran il apparaitra plus ou moins bleu à vos yeux, mais la donnée elle, reste la même.
Êtes-vous sur que le pixel est EXACTEMENT de la même couleur ?
Essayez de voir le code hexa de la couleur avec AutoIt Window Info (disponible avec l'installation d'autoit).
J'ai bien vérifier sur les deux ordinateurs via l'outil d'autoit l'hexa de la couleur, et c'est bien la même. Mais sur l'ordinateur de mon ami, il ne clique pas sur le bon pixel, mon code :
$flashXb = 705
$flashYb = 391
$flashXb2 = 1217
$flashYb2 = 1018
_ConvertXY($flashXb, $flashYb)
_ConvertXY($flashXb2, $flashYb2)$rtp = PixelSearch($flashXb, $flashYb, $flashXb2, $flashYb2, 0x8c0000,10,1) ;search for random move and put the coords on rtp variable
If isArray($rtp) Then
MouseClick ("Left", $rtp [0], $rtp [1]) ; click on item
Func _ConvertXY(ByRef $Xin, ByRef $Yin)
$Xin = Round( ($Xin / 1920) * @DesktopWidth )
$Yin = Round( ($Yin / 1080) * @DesktopHeight )
EndFunc
$Xin = Round( ($Xin / 1920) * @DesktopWidth )
$Yin = Round( ($Yin / 1080) * @DesktopHeight )
EndFunc
- TommyDDR
- Modérateur
- Messages : 2086
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: PixelSearch problème de comptabilité
Quand vous dites : Il ne clic pas sur le bon pixel, cela veut dire qu'un pixel est quand même trouvé ?
Si oui : avez vous vérifié la couleur de ce pixel ? (il est surement de la couleur souhaité)
Sinon :
je suppose qu'il manque un retour à la ligne avant $rtp = PixelSearch
Voilà ce que vous devez faire :
avant
Puis avec AutoIt Window Info (AWI), notez les coordonnées du pixel que vous cherchez
En suite, vous comparez les coordonnées obtenues via AWI et regardez si elles se situent bien à l'intérieur du cadre fourni dans le ConsoleWrite
Si oui : avez vous vérifié la couleur de ce pixel ? (il est surement de la couleur souhaité)
Sinon :
je suppose qu'il manque un retour à la ligne avant $rtp = PixelSearch
Voilà ce que vous devez faire :
avant
$rtp = PixelSearch
, ajoutez :ConsoleWrite($flashXb & ", " & $flashYb & " -> " & $flashXb2 & ", " & $flashYb2 & @CRLF)
Puis avec AutoIt Window Info (AWI), notez les coordonnées du pixel que vous cherchez
En suite, vous comparez les coordonnées obtenues via AWI et regardez si elles se situent bien à l'intérieur du cadre fourni dans le ConsoleWrite
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Re: PixelSearch problème de comptabilité
En effet, un retour a la ligne est manquant, erreur de ma part lors du copié / coller.TommyDDR a écrit : ↑jeu. 25 févr. 2021 15:20 Quand vous dites : Il ne clic pas sur le bon pixel, cela veut dire qu'un pixel est quand même trouvé ?
Si oui : avez vous vérifié la couleur de ce pixel ? (il est surement de la couleur souhaité)
Sinon :
je suppose qu'il manque un retour à la ligne avant $rtp = PixelSearch
Voilà ce que vous devez faire :
avant$rtp = PixelSearch
, ajoutez :
ConsoleWrite($flashXb & ", " & $flashYb & " -> " & $flashXb2 & ", " & $flashYb2 & @CRLF)
Puis avec AutoIt Window Info (AWI), notez les coordonnées du pixel que vous cherchez
En suite, vous comparez les coordonnées obtenues via AWI et regardez si elles se situent bien à l'intérieur du cadre fourni dans le ConsoleWrite
Ensuite, oui il clique quand même sur un pixel, il trouve donc un pixel... Mais la couleur est différente (je cherche du rouge et mon programme clique sur du rose foncer).
Concernant la ligne du ConsoleWrite, je ne comprends pas bien son utilité...
- TommyDDR
- Modérateur
- Messages : 2086
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: PixelSearch problème de comptabilité
C'est étrange (et compliqué à débugger sans le code complet + la fenêtre de ce que le programme est censé trouver).
Le ConsoleWrite c'est la base du debug, quand quelque chose de fonctionne pas, vous regardez ce que contiennent les variables.
Le but là était de définir la zone de recherche envoyé à PixelSearch dans le but de vérifier si le pixel que vous voulez trouver s'y trouve bien.
Mais je viens de voir que vous avez mis 10 en shade variation de PixelSearch, cela veut dire que PixelSearch ne va pas chercher exactement 0x8c0000 mais une couleur qui s'en rapproche (plus le shadevariation est élevé, plus la couleur peut s'éloigner de la couleur d'origine)
Si la couleur cherchée est 0x8c0000 et qu'il n'y a pas de raison qu'elle fluctue, alors mettez shadevariation à 0 et non 10, cela devrait corriger votre problème.
Le ConsoleWrite c'est la base du debug, quand quelque chose de fonctionne pas, vous regardez ce que contiennent les variables.
Le but là était de définir la zone de recherche envoyé à PixelSearch dans le but de vérifier si le pixel que vous voulez trouver s'y trouve bien.
Mais je viens de voir que vous avez mis 10 en shade variation de PixelSearch, cela veut dire que PixelSearch ne va pas chercher exactement 0x8c0000 mais une couleur qui s'en rapproche (plus le shadevariation est élevé, plus la couleur peut s'éloigner de la couleur d'origine)
Si la couleur cherchée est 0x8c0000 et qu'il n'y a pas de raison qu'elle fluctue, alors mettez shadevariation à 0 et non 10, cela devrait corriger votre problème.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679