![]() |
Screenshot erstellen und speichern
Hallo Wissende,
Ich habe gerade mal eine kurze Frage, habe bei der Suchfunktin nicht das richtige gefunden. Ich programmiere gerade an einem Programm, dass 25 Screenshots pro Sekunde erstellen soll. Und in ein bestimmtes Verzeichnis speichern soll. Eigentlich ja ganz einfach glaube ich. Doch leider kenne ich den Befehl zum erstellen eines Screenshots nicht. Ich hoffe ihr könnt mir da weiterhelfen. |
Re: Screenshot erstellen und speichern
![]() |
Re: Screenshot erstellen und speichern
Hi,
auch wenn dir jmd. schon die Lösung rausgesuch hat (und ich mich hier "namentlich" ausgeschlossen fühle), für's nächste Mal (oder ale Erklärung für Florians Ergebnisse), schränke die Suche auf die Code-Lib (Code Bibliothek in der Suche genannt) ein. Da findest du dann fertigen Code! Gruß Der Unwissende |
Re: Screenshot erstellen und speichern
schon mal vielen Dank, werde ich mir aufjeden Fall angucken... :-D
|
Re: Screenshot erstellen und speichern
So habs mir mal angeguckt, hab aber noch ne Frage:
Ich habe mir jetzt eine Prozedure rausgesucht...
Delphi-Quellcode:
... und rufe die hiermit auf...
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;
Delphi-Quellcode:
...aber wo speichert die Anwendung den Screenshot jetzt hin ????
procedure TForm1.Button1Click(Sender: TObject);
begin screentofile('testscreen'); end; 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; |
Re: Screenshot erstellen und speichern
Du musst nicht nur einen Namen sondern den ganzen Pfad angeben:
Delphi-Quellcode:
gruss
procedure TForm1.Button1Click(Sender: TObject);
begin screentofile('C:\testscreen.bmp'); end; |
Re: Screenshot erstellen und speichern
|
AW: Screenshot erstellen und speichern
Hallo Gemeinde,
ja, das Thema ist schon ein paar Tage alt, aber irgendwie stelle ich mich etwas dusselig an. Ich habe herausgefunden, wie ich einen Screenshot eines ganzen Desktops machen kann, auch kann ich einen Screenshot der aktiven Anwendung machen, allerdings habe ich nicht herausgefunden, wie ich nur einen Teil des Desktops oder einer Anwendung als Screenshot aufnehmen kann. Vielleicht kann mir dazu jemand einen Tipp geben? Hintergrund: Ich möchte kopierten Text auslesen, diesen in eine Maske aufbereiten und diese Maske soll dann als Screenshot (Grafik) weiter verarbeitet werden. LG Micha (DieFliege) |
AW: Screenshot erstellen und speichern
Wieso hat niemand gesagt, wie er den Screenshot macht?
Es gibt tausende Wege. Zitat:
Oder du suchst das gewünschte Fenster (HWND) und machst von dessen DC das Foto, anstatt vom DC des Desktops. |
AW: Screenshot erstellen und speichern
Zitat:
Zitat:
Zitat:
Vielen Dank erst mal für deine Hilfe! LG Micha (DieFliege) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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-2025 by Thomas Breitkreuz