![]() |
Re: Screenshots schnell erstellen???
Moin, Moin.
Mal abgesehen von der Geschwindigkeit: Liefert BitBlt() bei Verwendung des HDC unter VISTA und aktiviertem AeroGlass überhaupt ein korrektes Bild? Habe selbst auch das Problem, kann es aber nicht selbst testen, da mir zum Programmieren kein VISTA-System zur Verfügung steht (auf einer VM konnte ich den Aero-Effekt nicht aktivieren, da die Graphikemulation der VM offenbar nicht schnell genug ist) |
Re: Screenshots schnell erstellen???
Zitat:
|
Re: Screenshots schnell erstellen???
Ich kann acuh nicht bestätigen, dass Screenshots unter Vosta langsamer sind als unter XP. :gruebel:
Und Dank des neuen Window-Managers sind auf den Screenshots auch halbtransparente und Direct3D-fenster zu sehen. |
Re: Screenshots schnell erstellen???
Danke für die Info, dann wird der Fehler in MEINEM Programm wohl woanders liegen.
|
Re: Screenshots schnell erstellen???
Hat jemand Ideen, warum das System während der Screenshot-Erstellung friert und was dagegen zu unternehmen ist?
|
Re: Screenshots schnell erstellen???
Zitat:
|
Re: Screenshots schnell erstellen???
Für die Erstellung der Screenshot benutze ich die Funktion, die jfheins vorgeschlagen hat.
Delphi-Quellcode:
Es friert auch bei dem einzelchen Screenshot ein, nur man merkt es kaum, weils zu schnell passiert. Aber wenn ich dann mehrere nacheinander erstelle, z.B. mit einem Timer und 500ms Interval, dann merkt man sehr gut, dass das System "stottert".
var
HDdc: HDC; Bild: TBitmap; CopyWidth: integer; CopyHeight: integer; begin HDdc := GetDC(0); CopyWidth := Screen.Width; CopyHeight := Screen.Height; Bild := TBitmap.Create; Bild.PixelFormat := pf24bit; Bild.SetSize(CopyWidth, CopyHeight); BitBlt(Bild.Canvas.Handle, 0, 0, CopyWidth, CopyHeight, HDdc, 0, 0, SRCCOPY); ReleaseDC(0, HDdc); Image1.Picture.Bitmap := Bild; Bild.Free; |
Re: Screenshots schnell erstellen???
Nebeinbei ein kleiner Optimierungsvorschlag:
Das Bitmap einmal erstellen und am Schluss frei geben. |
Re: Screenshots schnell erstellen???
Danke für den Vorschlag! Wollte ich sowieso machen. Doch im vesentlichen hat sich nichts geändert.
|
Re: Screenshots schnell erstellen???
Ich kann mir zwar nicht vorstellen, dass das viel zeit kostet, aber ggf. würde es auch Sinn machen, nur einmal das Handle zu ermitteln und dann zwischenzuspeichern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 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