[R] Probleme PixelGetColor DirectX

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Oregon
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 18 févr. 2014 16:25
Status : Hors ligne

[R] Probleme PixelGetColor DirectX

#1

Message par Oregon »

Bonjour,

Je n'arrive pas a capturer un screenshot ou tout simplement la couleur d'un pixel dans une application utilisant DirectX....

J'ai essayer (je vous donne pas tout le code, juste le nécessaire) :

Code : Tout sélectionner

#include <MsgBoxConstants.au3>
#include <_PixelGetColor.au3>

Local $hDll = DllOpen("gdi32.dll")
Local $vDC = _PixelGetColor_CreateDC($hDll)

$vRegion = _PixelGetColor_CaptureRegion($vDC, 0,0,@DesktopWidth,@DesktopHeight,$hDll)

$mPos = MouseGetPos()
$sColor = _PixelGetColor_GetPixel($vDC, $mPos[0],$mPos[1], $hDll)

MsgBox($MB_SYSTEMMODAL, "Title", $sColor & "--" & $mPos[0] & "--" & $mPos[1])

_PixelGetColor_ReleaseRegion($vRegion)
_PixelGetColor_ReleaseDC($vDC,$hDll)
DllClose($hDll)
 
et version normal :

Code : Tout sélectionner

#include <MsgBoxConstants.au3>

Local $iColor = PixelGetColor(10, 100)

MsgBox($MB_SYSTEMMODAL, "", "The hex color is: " & Hex($iColor, 6))
 
Le 1er code ne fonctionne pas du tout :s... Et le 2eme code (le normal) lui me retourne une couleur, mais celle du bureau... et non pas de d'application DirectX...

Avez-vous une idée, ou un exemple de code ?

En vous remerciant.
Modifié en dernier par Oregon le mer. 19 févr. 2014 10:34, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Probleme PixelGetColor DirectX

#2

Message par mikell »

Tu as essayé de définir le paramètre hwnd dans PixelGetColor ?
" hwnd [optional] Window handle to be used. Default is the desktop window. "
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Probleme PixelGetColor DirectX

#3

Message par FireFox »

Bonjour,

Hé bien malheureusement ce n'est pas possible :(

Sans me documenter je ne pourrais te dire précisément pourquoi mais ce qui est sûr c'est que tu peux rien faire sur du DirectX avec des fonctions Windows (les fonctions autoit sont principalement des appels à ces fonctions).

Ce que tu peux faire c'est de prendre une capture d'écran puis de lire le bmp en mémoire et aller chercher la couleur du pixel mais ça serait assez lent...

Cdlt, FireFox.
Oregon
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 18 févr. 2014 16:25
Status : Hors ligne

Re: [..] Probleme PixelGetColor DirectX

#4

Message par Oregon »

J'avais trouvé hier :) c’était tout con... il suffit de désactiver l'aero de Windows ! (de temps en temps faut pas chercher à comprendre....)
Répondre