Come menzionato in un post precedente, si desidera la funzione GetPixel dall'API Win32.
GetPixel si trova all'interno di gdi32.dll, quindi se si dispone di una corretta configurazione dell'ambiente, si dovrebbe essere in grado di includere windows.h (che include wingdi.h) e si dovrebbe essere d'oro.
Se si dispone di una configurazione ambiente minima per qualsiasi motivo, è possibile utilizzare direttamente LoadLibrary su gdi32.dll.
Il primo parametro di GetPixel è un handle per il contesto del dispositivo, che può essere recuperato chiamando la funzione GetDC (disponibile anche tramite <windows.h>
).
Un esempio di base che carica GetPixel dalla DLL e che stampa il colore del pixel ovunque sia il cursore è il seguente.
#include<windows.h>
#include<stdio.h>
int main(int argc, char** argv)
{
FARPROC pGetPixel;
HINSTANCE _hGDI = LoadLibrary("gdi32.dll");
if(_hGDI)
{
pGetPixel = GetProcAddress(_hGDI, "GetPixel");
HDC _hdc = GetDC(NULL);
if(_hdc)
{
POINT _cursor;
GetCursorPos(&_cursor);
COLORREF _color = (*pGetPixel) (_hdc, _cursor.x, _cursor.y);
int _red = GetRValue(_color);
int _green = GetGValue(_color);
int _blue = GetBValue(_color);
printf("Red: 0x%02x\n", _red);
printf("Green: 0x%02x\n", _green);
printf("Blue: 0x%02x\n", _blue);
}
FreeLibrary(_hGDI);
}
return 0;
}
Informazioni insufficienti. Puoi spiegare perché vuoi farlo? Inoltre, questo è sicuramente OS specifico. –
Mi dispiace, ho aggiunto più informazioni. – rectangletangle