Einzelnen Beitrag anzeigen

WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#17

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 22:19
Delphi-Quellcode:
var
  hButton :THandle;
  ButtonRect :_Rect;//das ist ein c-Typ //evtl auch nur Rect
  Farbe : TColor;//????
  bit : TBitmap;//TODO: schauen, ob Graphics.TBitmap oder Windows.Bitmap
  can : TCanvas;
begin
  res:=GetWindowRect(hButton, @ButtonRect);//vllt ohne @
  posx := (ButtonRect.Left + ButtonRect.Right) div 2;
  posy := (ButtonRect.Top + ButtonRect.Bottom) div 2;
  can.Handle := GetWindowDC(0);
  try
    bit := TBitmap.Create;
    try
      bit.Width := Screen.DesktopWidth;
      bit.Height:= Screen.DesktopHeight;
      bit.PixelFormat := pfDevice;
      BitBlt(bit.Canvas.Handle,
             0,
             0,
             Pred(Screen.DesktopWidth),
             Pred(Screen.DesktopHeight),
             can.Handle,
             Screen.DesktopLeft,
             Screen.DesktopTop,
             bit.Canvas.CopyMode);
      Farbe:=bit.Canvas.Pixels[posx,posy]//<--geändert
    finally
      bit.Free;
    end;
  finally
    ReleaseDC(0, can.Handle);
  end;
end;
k.A ob das funktioniert. im Zweifelsfall nach jedem API aufruf ein GetLastError.

PS: bei dem Ansatz wirst du Probleme mit mehreren Monitoren kriegen

Geändert von WM_CLOSE (18. Feb 2011 um 07:13 Uhr)
  Mit Zitat antworten Zitat