Du haut de ma tête, la manière simple:
#include <stdio.h>
#include <Windows.h>
int main(void) {
POINT p;
COLORREF color;
HDC hDC;
BOOL b;
// Get the device context for the screen
hDC = GetDC(NULL);
if (hDC == NULL)
return 3;
// Get the current cursor position
b = GetCursorPos(&p);
if (!b)
return 2;
// Retrieve the color at that position
color = GetPixel(hDC, p.x, p.y);
if (color == CLR_INVALID)
return 1;
// Release the device context again
ReleaseDC(GetDesktopWindow(), hDC);
printf("%i %i %i", GetRValue(color), GetGValue(color), GetBValue(color));
return 0;
}
ETA: semble fonctionner, au moins pour moi.
ETA2: Ajouté une erreur de vérification
ETA3: code commenté, compilé exécutable et une solution Visual Studio se trouve dans my SVN repository.
Merci beaucoup! Je suppose que je construis cela dans une "Win32 Console App" ?? –
@Jeremy: Oui. Je ne pouvais pas comprendre comment le construire à partir de la ligne de commande, mais comme une application de console à partir de Visual Studio, il a bien fonctionné. – Joey
Merci! Juste une chose de plus, j'essaye d'invoquer ce derrière les coulisses d'une autre application, donc y a-t-il un moyen de cacher la fenêtre de ligne de commande noire de montrer? –