[Resolu] Commande POINT sur une appli externe?
[Resolu] Commande POINT sur une appli externe?
Est-il possible de lire la couleur d'un pixel d'un fenêtre externe?
Je pourrai contourner le problème en faisant une capture d'écran de la fenetre externe puis en lisant ma capture dans mon appli PB, mais je préfererai le faire en direct, si c'est possible biensûr.
Je pourrai contourner le problème en faisant une capture d'écran de la fenetre externe puis en lisant ma capture dans mon appli PB, mais je préfererai le faire en direct, si c'est possible biensûr.
Dernière modification par gildev le ven. 22/août/2008 23:02, modifié 1 fois.
essaye avec ça :
Code : Tout sélectionner
; Return the RGB color of the pixel at the specified coordinates
; or #CLR_INVALID (-1) if coordinates is outside the screen
Procedure GetPixelColor(x,y)
sysviewDC = GetDC_( hwndSysview )
ProcedureReturn GetPixel_( sysviewDC,x, y )
EndProcedure
En ajoutant ces quelques lignes, j'ai pu vérifier que les couleurs correspondent bien:
Ca marche à 100%.
Droopy tu es un dieu! Merci encore.
Code : Tout sélectionner
couleur=GetPixelColor(100,100)
ro = Red(couleur)
ve = Green(couleur)
bl = Blue(couleur)
Debug Str(ro)+" "+Str(ve)+" "+Str(bl)
Droopy tu es un dieu! Merci encore.
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Normalement DROOPY c'est un chien....
Mais dans notre forum à nous, qui est le plus beau forum du monde parce qu'il n'est pas comme les autres, et ben DROOPY, c'est vrai, c'est aussi un dieu
Et on est tres fier de notre talentueux, joli et gentil toutou
Merci DROPPY
PS pour DOBRO
Faire de la leche à un chien, si c'est pas un paradoxe ça

Mais dans notre forum à nous, qui est le plus beau forum du monde parce qu'il n'est pas comme les autres, et ben DROOPY, c'est vrai, c'est aussi un dieu

Et on est tres fier de notre talentueux, joli et gentil toutou

Merci DROPPY

PS pour DOBRO
Faire de la leche à un chien, si c'est pas un paradoxe ça

Arf! Je rencontre une autre difficulté.
Je maximise la fenêtre externe de manière à ce que ses coordonnées soient à 0,0 (pour faciliter la lecture des pixels) avec:
Mais pour une raison qui m'échappe, parfois elle se maximise mal, elle se retrouve décalée vers la droite et vers le bas (à cause de mon double affichage je pense car je travaillle sur deux écrans).
Donc j'ai fais des recherches sur MSDN pour trouver l'argument #SC_MOVE qui devrait me permettre de la positionner aux coordonnées 0,0 comme prévu. J'ai donc tenté:
Mais aucune réaction! Je ne comprends pas le pourquoi du comment...
Je maximise la fenêtre externe de manière à ce que ses coordonnées soient à 0,0 (pour faciliter la lecture des pixels) avec:
Code : Tout sélectionner
SendMessage_(handle,#WM_SYSCOMMAND,#SC_MAXIMIZE,0)
Donc j'ai fais des recherches sur MSDN pour trouver l'argument #SC_MOVE qui devrait me permettre de la positionner aux coordonnées 0,0 comme prévu. J'ai donc tenté:
Code : Tout sélectionner
SendMessage_(handle,#WM_SYSCOMMAND,#SC_MOVE,0)
Merci gnozal!
En cherchant le mot GetWindowRect_ sur le forum j'ai trouvé ça:
http://www.purebasic.fr/french/viewtopic.php?t=7641
C'est 100% ce que je cherchais, merci à toi encore, ainsi qu'à Chris pour ce source très clair.

En cherchant le mot GetWindowRect_ sur le forum j'ai trouvé ça:
http://www.purebasic.fr/french/viewtopic.php?t=7641
C'est 100% ce que je cherchais, merci à toi encore, ainsi qu'à Chris pour ce source très clair.