GetPixel(), alternatywa

0

mam problem z GetPixel(), nie działa - zawsze zwraca wartość $FFFFFFFF

 GetCursorPos(MP);
  //Han:= FindWindow(nil, 'Kalkulator');
  Han := WindowFromPoint(MP);
  if Han = 0 then
    Close();
  kolor:= GetPixel(Han,MP.X,MP.Y);
  if ColorToString(kolor)<>'$FFFFFFFF' then
    Memo1.Lines.Add(ColorToString(kolor)); 

no i Memo jest puste... próbowałem wartości x i y od -1000 do +1000 każdy piksel i jest tak samo :)

z tego co wyczytałem w necie są problemy z funkcją pod win 7 i zapewne o to tutaj chodzi (próbowałem tryby zgodności)

potrzebuje podobnie działającej funkcji lub pomocy z GetPixelem

z góry dziękuje za odpowiedzi

0

Twoja funkcja przechodzi dalej, gdy nie znaleziono uchwytu. Sprawdź, czy poprawnie pobierasz ten uchwyt (czy coś zwraca).

0
Opi napisał(a)

Twoja funkcja przechodzi dalej, gdy nie znaleziono uchwytu. Sprawdź, czy poprawnie pobierasz ten uchwyt (czy coś zwraca).

z tego co mi wiadomo gdy nie znajdzie uchwytu to hwnd = 0
dodałem warunek...
coś jest źle? testowałem

0

RTFM, do cholery, GetPixel wcale nie przyjmuje HWND!

1

To nie ma być uchwyt okna tylko:

GetPixel function

The GetPixel function retrieves the red, green, blue (RGB) color value of the pixel at the specified coordinates.
Syntax

COLORREF GetPixel(
  __in  HDC hdc,
  __in  int nXPos,
  __in  int nYPos
);

Parameters

hdc [in]

    A handle to the device context.
nXPos [in]

    The x-coordinate, in logical units, of the pixel to be examined.
nYPos [in]

    The y-coordinate, in logical units, of the pixel to be examined.

1 użytkowników online, w tym zalogowanych: 0, gości: 1