Witam. Mam taki problem. Próbuje stworzyć aplikację, która po naciśnięciu przycisku button wykonuje skan RGB wybranego piksela pulpitu, a następnie podświetla na otrzymany kolor określony Panel w tej aplikacji.

Kod wygląda tak (dla buttona, nic innego nie robiłem oprócz wstawienia tych elementów na zasadzie przeciągnięcia)

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{




int pixelX, pixelY;

HWND subWindow = FindWindow(NULL, TEXT("Profile Setting"));
pixelX = 73;
pixelY = 148;
SetForegroundWindow(subWindow);
HDC hdc = GetDC(subWindow);


COLORREF color = GetPixel(hdc, pixelX, pixelY);
BYTE redValue, greenValue, blueValue;
redValue = GetRValue(color);
greenValue = GetGValue(color);
blueValue = GetBValue(color);

Label1->Caption=redValue;
Label2->Caption=greenValue;
Label3->Caption=blueValue;


   TColor kolor1;
   kolor1=RGB(redValue,greenValue,blueValue);

   Panel1->Caption="";
   Panel1->Color=kolor1;

}

//---------------------------------------------------------------------------

Wszystko ładnie pięknie, tylko mam takie problemy, których nie umiem przeskoczyć:

  1. Chciałbym aby po naciśnięciu przycisku button, kod był wykonywany przynajmniej 15 razy na sekundę. Umieszczałem już kod w pętlach, ale to tylko zawieszało program ;/ To w sumie jest problem nr 1.

  2. Chciałbym sczytywać informację RGB z kilku pix, np z określonego prostokąta na ekranie, załóżmy zaczynającego się w (0,0)pix a kończącego na (300,200)pix.

Pozdrawiam i z z góry dziękuję za pomoc i wyrozumiałość dla początkującego.