Einzelnen Beitrag anzeigen

Z32
(Gast)

n/a Beiträge
 
#5

Re: Screenshot erstellen und speichern

  Alt 26. Aug 2006, 15:23
So habs mir mal angeguckt, hab aber noch ne Frage:

Ich habe mir jetzt eine Prozedure rausgesucht...

Delphi-Quellcode:
procedure ScreenToFile(aFileName: string);
var
  Bitmap: TBitmap;
  Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    try
      Bitmap := TBitmap.Create;
      try
        Bitmap.Width := Screen.DesktopWidth;
        Bitmap.Height:= Screen.DesktopHeight;
        Bitmap.PixelFormat := pfDevice;
(*
        Bitmap.Canvas.CopyRect(Screen.DesktopRect, Canvas, Screen.DesktopRect);

  Anstatt der folgenden Zeile, kann auch die CopyRect Funktion genutzt werden.
  Die CopyRect-Funktion nutzt zusätzlich ein paar Schutzmechanismen, welche für
  ScreenShots nicht notwendig sind. Ausserdem greift die CopyRect-Funktion auf
  StretchBlt-Funktion zurück, welche langsamer als BitBlt ist.
*)
 
        BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(
            Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
            Screen.DesktopTop, Bitmap.Canvas.CopyMode);
        Bitmap.SaveToFile(aFileName);
      finally
        Bitmap.Free;
      end;
    finally
      ReleaseDC(0, Canvas.Handle);
    end;
  finally
    Canvas.Free;
  end;
end;
... und rufe die hiermit auf...


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
screentofile('testscreen');
end;
...aber wo speichert die Anwendung den Screenshot jetzt hin ????


EDIT: Ach habs schon rausgefunden...war mal wieder zu blöd...

Die Aufrufprozedure muss so heißen...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
screentofile('D:\testscreen.bmp');
end;
  Mit Zitat antworten Zitat