Ja das geht. So bekommst Du das Desktopbitmap im Bereich eines Fensters:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
WindowHandle : HWND;
DC : HDC;
Rect : TRect;
Bmp : TBitmap;
begin
WindowHandle := FindWindow(
nil, PChar('
Unbenannt - Editor'));
if WindowHandle > 0
then
begin
DC := GetWindowDc(WindowHandle);
GetWindowRect(WindowHandle, Rect);
Bmp := TBitmap.Create;
Bmp.Pixelformat := pf8bit;
Bmp.Width := Rect.Right - Rect.Left;
Bmp.Height := Rect.Bottom - Rect.Top;
BitBlt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height,
DC, 0, 0, SRCCOPY);
ReleaseDc(WindowHandle,
DC);
// Hier dann Funktion zum Durchsuchen des Bitmap aufrufen...
Bmp.Free;
end;
end;
Dann kanst Du FindColorInFor Funktion in z.b. FindColorInBitmap umschreiben. Die Koordinaten musst Du dann noch umrechnen. Allerdings darf das Fenster nicht durch andere verdeckt sein.