Entwickler-Ecke

Multimedia / Grafik - Screenshot eines AKTIVEN Fenster?


Bomania - Sa 03.05.03 22:13
Titel: Screenshot eines AKTIVEN Fenster?
Hallo,

für das Erstellen eines Screenshots habe ich hier bereits genug gefunden. Das funktioniert soweit auch. Ich möchte aber gerne einen Screenshot vom gerade aktiven Fenster erstellen. Kann mir da jemand weiterhelfen?

Danke


bis11 - Sa 03.05.03 22:23

Benutze einfach mal die Suchfunktion oder schau in die FAQ's, da stehen Beispiele.

Edit : 1. Url ==> ... einen Screenshot erstellen [http://www.delphi-forum.de/viewtopic.php?t=7302]


Bomania - So 04.05.03 08:05

Wie ich bereits angedeuted habe, habe ich die Suche natürlich schon benutzt. Und in der FAQ steht ebenfalls nur das Erstellen eines "normalen" Screenshots vom gesamten Desktop.

Was ich suche ist aber das Erstellen eines Screenshots von einem EINZELNEN (aktiven) Fenster.

Gruß,


bis11 - So 04.05.03 10:21

Dann probiere es doch mal so :

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure ScreenShotActiveWindow(Bild: TBitMap);
var
  c : TCanvas;
  r, t : TRect;
  h : THandle;
begin
  c := TCanvas.Create;
  c.Handle := GetWindowDC(GetDesktopWindow);
  h := GetForeGroundWindow;
  if h<>0 then
    GetWindowRect(h, t);
  try
    r := Rect(0,0,t.Right-t.left, t.Bottom-t.Top);
    Bild.Width := t.Right-t.left;
    Bild.Height := t.Bottom-t.Top;
    Bild.Canvas.CopyRect(r, c, t);
  finally
    ReleaseDC(0, c.handle);
    c.Free;
  end;
end;


Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt


Bomania - So 04.05.03 12:42

Vielen Dank!

Eine Sache vielleicht noch. Wie kann man das dann als Datei abspeichern?


Raphael O. - So 04.05.03 13:47

müssste theoretisch mi

Delphi-Quelltext
1:
bild.savetofile('C:\123.bmp');                    

gehen...

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt


Bomania - So 04.05.03 14:11

Ja es funktioniert...vielen Dank!