Entwickler-Ecke

Multimedia / Grafik - Screenshot erstellen


_Tyrael_ - Fr 03.09.10 17:17
Titel: Screenshot erstellen
Hallo Leute,
will gerade ein programm schreiben, welches einen Screenshot meines kompletten bildschirms machen soll. nun habe ich bereits viele einträge zum thema screenshots durchgelesen, leider ging es in diesen aber immer nur um screenshots eines bildschirmausschnittes und ich habe fast nichts davon verstanden(ich bin noch anfänger).
es wäre also nett, wenn mir jemand erklären könnte wie ich einen kompletten screenshot machen und diesen dann als .bmp datei speichern kann.


elundril - Fr 03.09.10 17:34


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure ScreenCapture(Bmp: TBitmap);
var
  DeskWnd: HWnd;
  DeskDC: HDC;
  DeskCv: TCanvas;
  R: TRect;
  W, H: Integer;
begin
  if Bmp = nil then Exit;
  DeskWnd := GetDesktopWindow;
  DeskDC := GetWindowDC(DeskWnd);
  DeskCv := TCanvas.Create;
  DeskCv.Handle := DeskDC;
  W := Screen.Width;
  H := Screen.Height;
  R := Bounds(00, W, H);
  try
    Bmp.HandleType := bmDIB;
    Bmp.PixelFormat := pf24Bit;
    Bmp.Width := W;
    Bmp.Height := H;
    Bmp.Canvas.CopyMode := cmSrcCopy;
    Bmp.Canvas.CopyRect(R, DeskCv, R);
  finally
    DeskCv.Free;
    ReleaseDC(DeskWnd, DeskDC);
  end;
end;


30 sekunden googeln, ist nicht dein ernst oder?


bummi - Fr 03.09.10 17:35


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure GenSceenshot(var BMP: TBitmap);
  var
    DC: THandle;
  begin
    if Assigned(BMP) then
      begin
        dc := GetDC(0);
          try
            With BMP do
              begin
                Width := Screen.Width;
                Height:= Screen.Height;
                BitBlt(Canvas.Handle,
                0,
                0,
                Screen.Width,
                Screen.Height,
                dc,
                0,
                0,
                SrcCopy);
              end;
          finally
            ReleaseDC(0, DC);
        end;
      end;
end;


_Tyrael_ - Fr 03.09.10 17:44

vielen dank für die antworten, aber mein problem ist, dass ich das nicht verstehe, allein die deklarierten variablen sind mir schon unbekannt... sollte einer die zeit erübrigen können, mir dass zu erklären wäre ich sehr dankbar, aber wenn nicht kann ich das gut verstehen.


acnut - Fr 03.09.10 19:18

für anfänger würde ich das hier empfehlen

http://www.delphi-treff.de/tutorials/

od. das hier:
http://www.delphitutorials.de/tutorials/index.php



mfg
acnut


_Tyrael_ - Fr 03.09.10 20:36

vielen dank!