![]() |
Jpg Screenshot von einem Fenster
Hi,
Wie kann man mit Delphi ein Screenshot von einem Fenster machen ? Also nicht von dem ganzen Bildschirm. Und am besten auch direkt im jpg Format. |
Re: Jpg Screenshot von einem Fenster
Hi,
such mal hier im Forum nach Screenshot. Da wirst du 100% fündig ;) |
Re: Jpg Screenshot von einem Fenster
Delphi-Quellcode:
uses [...] jpeg;
[...] var b1,b2:tbitmap; j:tjpegimage; begin b1:=tbitmap.Create; b1.width:=fensterbreite; b1.height:=fensterbreite; b1.canvas.handle:=GetWindowDC(Handle des Fensters, normalerweise form1.handle); // Desktop erfassen b2:=tbitmap.create; b2.width:=b1.width; b2.height:=b1.height; b2.Canvas.CopyRect(screen.desktoprect,b.Canvas,screen.desktoprect); j:=tjpegimage.create; j.assign(b2); j.savetofile('C:\Screen.jpg'); |
Re: Jpg Screenshot von einem Fenster
Ok danke ich habs hinbekommen und jetzt will ich das bild direkt im Anschluss auf meinen FTP Server laden. Und das Bild ist 17KB groß und es dauert echte 5 Sekunden.. Das kann doch nicht sein oder?? Ohne das Hochladen dauert das ganze nur Millisekunden..
|
Re: Jpg Screenshot von einem Fenster
Mit j.compressionquality kannst du den Komprimierungsfaktor einstellen. 100 = maximale Qualität (=verlustfreie Komprimierung) | 2= maximale Komprimierung (minimale Qualität)
|
Re: Jpg Screenshot von einem Fenster
die 5 Sekunden sind durchaus realistisch zum verbinden, uploaden und disconnecten. Wenn du deine anwendung aktiv halten willst, musst du das hochladen wohl in eine thread auslagern.
|
Re: Jpg Screenshot von einem Fenster
Die Compression habe ich schon auf 20 eingestellt. Und für 15-17KB 5 Sek mit DSL finde ich aber echt zu viel...
|
Re: Jpg Screenshot von einem Fenster
Hi,
ich würde beim Programmstart connecten und beim Programmbeenden wieder disconnecten. Vielleicht geht es dann schneller, weil du nicht immer connecten und disconnecten tust. |
Re: Jpg Screenshot von einem Fenster
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin IDFTP1.Host := 'ftp.geheim.de'; IDFTP1.Username := 'Hans'; IDFTP1.Password := 'kenntkeiner'; IDFTP1.Passive := true; IDFTP1.Connect(); end;
Delphi-Quellcode:
procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer); begin Loading := true; end;
Delphi-Quellcode:
procedure TForm1.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin Loading := false; end;
Delphi-Quellcode:
und disconnectet wird eh wenn man das prog beendet xD
procedure TForm1.Timer1Timer(Sender: TObject);
begin if not Loading then LadeDateiHoch; end; |
Re: Jpg Screenshot von einem Fenster
Zitat:
Aber das nur am Rande... :balloon: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 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