![]() |
Desktop Screenshot
Hallo Leutz,
ich suche Tipps für das Programmieren eines Programmes welches Regelmäßig (1.Min) einen Screenshot vom Desktop erstellt und automatisch als JPG Datei in einem Ordner abspeichert. Wäre für eure Hilfe dankbar... |
Re: Desktop Screenshot
![]() ![]() Greetz alcaeus |
Re: Desktop Screenshot
Danke für deine Antowrt wie baue ich den ein. Und wo wird die Zeit gesteuert in dem Code außerdem wird da die Datei doch als BMP und nicht als JPG gespeichert oder?
|
Re: Desktop Screenshot
Zitat:
Zitat:
![]() Zitat:
![]() Greetz alcaeus |
Re: Desktop Screenshot
![]() |
Re: Desktop Screenshot
mit diesem code
Delphi-Quellcode:
kann ich einen Desktop Screenshot machen aber wie konvertiere ich ihn nach jpeg
procedure TForm1.Button1Click(Sender: TObject);
var DCDesk: HDC; // hDC of Desktop bmp: TBitmap; begin {Create a bitmap} bmp := TBitmap.Create; {Set a bitmap sizes} bmp.Height := Screen.Height; bmp.Width := Screen.Width; {Get a desktop DC handle - handle of a display device context} DCDesk := GetWindowDC(GetDesktopWindow); {Copy to any canvas, here canvas of an image} BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DCDesk, 0, 0, SRCCOPY); {Save the bitmap} bmp.SaveToFile('ScreenShot.bmp'); {Release desktop DC handle} ReleaseDC(GetDesktopWindow, DCDesk); {Release a bitmap} bmp.Free; end; |
Re: Desktop Screenshot
konvertieren geht so
Delphi-Quellcode:
und schon sollte dann dein JPEG den inhalt von dem Bitmap haben
VariableVomTypTJPEGImage.Assign(VariableVomTypBitmap);
|
Re: Desktop Screenshot
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Timer1.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); var DCDesk: HDC; // hDC of Desktop bmp: TBitmap; begin {Create a bitmap} bmp := TBitmap.Create; {Set a bitmap sizes} bmp.Height := Screen.Height; bmp.Width := Screen.Width; {Get a desktop DC handle - handle of a display device context} DCDesk := GetWindowDC(GetDesktopWindow); {Copy to any canvas, here canvas of an image} BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DCDesk, 0, 0, SRCCOPY); {Save the bitmap} bmp.SaveToFile('ScreenShot.bmp'); {Release desktop DC handle} ReleaseDC(GetDesktopWindow, DCDesk); {Release a bitmap} bmp.Free; end; procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled := False; end; so sieht das jetzt aus kann ich irgentwie das konvertieren einbauen oder gleich es als jpg speichern lassen |
Re: Desktop Screenshot
SirThornberry hat es doch schon beschrieben. Du musst im OnTimer-Event
Delphi-Quellcode:
ersetzen.
bmp.SaveToFile('ScreenShot.bmp');
|
Re: Desktop Screenshot
siehe unten:
|
Re: Desktop Screenshot
Entschuldigt für den komischen
posting. Also ich bin jetzt soweit das eine bmp datei erstellt wird. In diesem Link gibt es einen Code mitdem man BMP nach Jpeg konvertieren kann wie seht dieser Code eingebaut in einen timer2.* aus? ![]() |
Re: Desktop Screenshot
Sei mir nicht böse, aber schau dir mal ein Anfängertutorial an.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var Bmp: TBitmap; Jpg: TJpegImage; begin //Screenshot etc ... //dann hast du den in der Variblen "bmp" try Jpg.Assign(Bmp); //Dem Jpg das Bmp zuweisen Jpg.SaveToFile(ChangeFileExt(Filename, '.jpg' )); //Jpg speichern finally Jpg.Free; //Speicher jeweils freigeben Bmp.Free; end; end; |
Re: Desktop Screenshot
[Fehler] Unit1.pas(63): Undefinierter Bezeichner: 'Filename'
Wenn ich anstatt Filename -> 'test' reinschreibe bekomme ich Achtung die Variable JPG ist nicht richtig intialisiert worden. |
Re: Desktop Screenshot
Moin Knotti2015,
Du musst auch erst dein JPEGImage erstellen, wie du es auch oben in deinem Code mit der Bitmap gemacht hast:
Delphi-Quellcode:
Das heißt, du musst jetzt noch über deinem try
{Create a bitmap}
bmp := TBitmap.Create;
Delphi-Quellcode:
hinzufügen.
{Create a JpegImage}
Jpg := TJpegImage.Create; |
Re: Desktop Screenshot
"FileName" soll eine String-Variable mit dem Pfad zum Speichern sein (bzw. TOpenDialog.FileName, da solltest du aber über den Filter erst gar keine andere Endung zulassen).
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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