![]() |
ein Video der letzten 10 Sekunden erzeugen
Woanders:
Zitat:
Das in madExcept dann einbauen wäre (für mich) dann das kleinste Problem. |
AW: ein Video der letzten 10 Sekunden erzeugen
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, genial. Dann kriegt man automatisch in den meisten Fällen sicher meist so etwas:
|
AW: ein Video der letzten 10 Sekunden erzeugen
Da es mit den Zeitreisen etwas schwierig ist, musst Du ja permanent mitfilmen - was beim Anwender vielleicht ein paar Fragen aufwerfen könnte. Auch wenn Du das Material nach 10 Sekunden ohne Fehlermeldung wieder verwirfst.
Davon aber mal abgesehen: Windows 10 1903 bringt hierfür eine neue API ("WindowsGraphicsCapture") mit, die auch Video-Overlays und anderes Gelump tadellos erfasst. Ich habe mit einem Demo-Programm getestet, welches diese API implementiert und war durchaus angetan. Es ist eine native API, man müsste da grundsätzlich auch mit Delphi herankommen - aber ich konnte mich bisher nicht damit befassen. |
AW: ein Video der letzten 10 Sekunden erzeugen
Muss es denn direkt ein Video sein?
Hiermit kannst Du ja schonmal ein Bildschirmfoto des angegebenen Formulars machen.
Delphi-Quellcode:
Wenn man jetzt hergeht und die Fehlerbehandlung der Routine, die Ursprung der Idee war, anpasst
procedure HardCopy(sJpegFile : String; fm : TForm);
Var FStream : TStream; FBmp : TPicture; FJpeg : TJpegImage; begin if SysUtils.FileExists(sJpegFile) then SysUtils.DeleteFile(sJpegFile); FStream := TFileStream.Create(sJpegFile,fmCreate); fm.WindowState := wsNormal; fm.Show; fm.Refresh; FJpeg := TJpegImage.Create; FBmp := TPicture.Create; try FBmp.Bitmap.Assign(fm.GetFormImage); FJpeg.Assign(FBmp.Bitmap); FJpeg.SaveToStream(FStream); finally FStream.Free; FJpeg.Free; FBmp.Free; end; end;
Delphi-Quellcode:
könnte man zumindest schonmal ein Bisserl von dem sehen, was da gerade so auf dem Bildschirm los war.
procedure TRWForm.doMouseActivate(AControl: TControl);
begin if (not WinControlValid(Self)) or IsDestroying then Exit; FLastClickedControl := AControl; if (Self <> rwScreen.ActiveForm) then begin try if (Visible and CanFocus) then SetFocus; // Hier wird Exception ausgelöst! rwScreen.ActiveForm := Self; except on e : Exception do begin MessageDlg(e.Message,mtError,[mbOk],0); // <- könnte man auch weglassen. if Assigned(Self) and (Self is TForm) then begin HardCopy('Einen eindeutigen Dateinamen erstellen, Datum Uhrzeit, GUID oder sowas.', Self); // Sinnvollerweise sollte man dann hier auch noch e.Message in eine Logdatei ... // schreiben und dabei direkt vermerken, welches Bild zur Fehlermeldung gehört. end; end; end; end; end; Ist's kein TForm, so könnte man die Kette der Parents nach oben laufen, bis man was vom Typ TForm findet. Oder, man macht einfach Hardcopys von allen Formularen:
Delphi-Quellcode:
Man könnte aber auch z. B. alle x Sekunden per Timer auf diese Art ein Bild machen und davon dann die letzten 10 (oder so) erhalten und jeweils die älteste Datei überschreiben. Beim Programmende wird dann auch dort aufgeräumt. (Frei nach dem Motto: Überwachungskameras zeichnen ja (zum Teil) auch nur alle paar Sekunden ein Bild auf und die Aufnahme werden nach 'ner Weile wieder gelöscht.)
for i := 0 to Screen.FormCount - 1 do begin
sJPeg := Format('%s.Error.Jpg',[Screen.Forms[i].Name]); HardCopy(sJPeg, Screen.Forms[i]); end; Per Dialog oder Konfiguration könnte man auch den Anwender fragen, ob man im Fehlerfalle Bildschirmfotos erstellen darf ..., wenn nicht, dann lässt man es halt. Achso: Alles nur unausgegorene Ideen, aber eventuell kannst Du damit ja was anfangen ;-) |
AW: ein Video der letzten 10 Sekunden erzeugen
Einen Screenshot des aktuellen Desktops bzw. der Anwendung macht madexcept doch sowieso schon, wenn man es denn aktiviert hat.
|
AW: ein Video der letzten 10 Sekunden erzeugen
Leider gibt es das in den aktuellen Versionen ja nicht mehr, aber bis Version 10.30 gab es bei TestComplete noch den TestRecorder:
Zitat:
|
AW: ein Video der letzten 10 Sekunden erzeugen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03: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