Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Screenshot von Fenster mit Transparenter Farbe (https://www.delphipraxis.net/153923-screenshot-von-fenster-mit-transparenter-farbe.html)

erich.wanker 20. Aug 2010 11:43

Screenshot von Fenster mit Transparenter Farbe
 
Hallo Leute,

hab eine Frage zu einem "altbekannten Thema": Screenshot von einem Fenster das keine Titelbar besitzt - aber eine transparente Farbe.

MSDN sagt ja, daß "CaptureBLT" alles kopiert -> msdn, aber irgendwie schaff ich es nicht, vom DC(0) ein komplettes Bild abzugreifen :?:

Mein Codeschnipsterl:

Delphi-Quellcode:
procedure ScreenShot(activeWindow: bool; destBitmap : TBitmap) ;
var
  w,h : integer;
  DC : HDC;
  hWin : Cardinal;
const
  CAPTUREBLT = $40000000;
begin

    hWin := GetDesktopWindow;
    dc := GetDC(hWin);
    dc := GetDC(0);
    w := GetDeviceCaps (DC, HORZRES);
    h := GetDeviceCaps (DC, VERTRES);


  try
   destBitmap.Width := w;
   destBitmap.Height := h;
   BitBlt(destBitmap.Canvas.Handle,
          0,
          0,
          destBitmap.Width,
          destBitmap.Height,
          DC,
          0,
          0,
          SRCCOPY or CAPTUREBLT) ;
  finally
   ReleaseDC(hWin, DC) ;
  end;
end;
Beschreibung vom Form:
Form.color = Yellow
Transparent color = yellow
Borderstyle = bsnone
auf Form ist einegraue Paintbox mit abgerundeten Ecken, wo ich reinzeichne
Vielen Dank für Hinweise

Erich




Nachtrag: Die zweite "DC:=" -Zeile ist beim probieren übersehen worden, änder aber eh nix
dc := GetDC(hWin);
dc := GetDC(0);

Cirec 24. Sep 2010 17:01

AW: Screenshot von Fenster mit Transparenter Farbe
 
Hallo,

könntest du ein bisschen mehr Infos geben über dein Problem ?

Ich habe dein Code ausprobiert ... es funktioniert so wie es sollte ... nach meine Meinung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz