Bildschirmaufnahme mit Lazarus Programmen
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Bildschirmaufnahme mit Lazarus Programmen
Hallo,
Mit der Webseite "https://recorder.calipio.com/record" kann man Bildschirm Aufnahmen erstellen und diese mit anderen Teilen
Dazu drückt man "Aufnahme" dann kann man die jeweilige EXE auswählen, die man aufnehmen möchte.
Alle Programme funktionieren, außer die Lazarus Programme, da zeigt es nur einen schwarzen Bildschirm. Aus irgend einem Grund kann das System nicht das Haupt-Window finden.
Test mit Lazarus: Projekt -> Neu -> Neue Anwendung
Überstzen und diese leere EXE einfach starten, keine Einstellung geändert.
Dann sie Screen-Recorder Seite öffnen und "Aufnahme", dann das "Project1" auswählen. Im Prinzip finde ich es ein "Sicherheits-Feature" dass man die EXE nicht so einfach automatisch lesen kann, man sollte es dennoch abschalten können, so dass eine Bildschirm-Aufnahme möglich ist.
Für mich sieht es so aus als Ob Lazarus im Hintergrund ein "Splash Screen" erzeugt, und darauf zugreift. Beim neuen Projekt ist "FPC-Logo ausgeben (-l)" aktiviert, auch das Deaktivieren ändert nichts daran, es wird dennoch ein schwarzes Quadrat gezeigt und nicht das Formular.
Der Hersteller der SW der Aufzeichnung hatte mich kontaktiert, er wollte die Aufnahme mit einem meiner Programme machen, er selbst hatte dieses Problem in seiner SW untersucht und konnte keinen Fehler finden. Daher schreibe ich mal hier, vielleicht weiß jemand was ich einstellen könnte.
PS: Auch ein "Application.OnGetMainFormHandle" wo ich gezielt die Main-Forum zurück gebe bringt nichts.
Vielen Dank für eure Hilfe.
Grüße Markus
Mit der Webseite "https://recorder.calipio.com/record" kann man Bildschirm Aufnahmen erstellen und diese mit anderen Teilen
Dazu drückt man "Aufnahme" dann kann man die jeweilige EXE auswählen, die man aufnehmen möchte.
Alle Programme funktionieren, außer die Lazarus Programme, da zeigt es nur einen schwarzen Bildschirm. Aus irgend einem Grund kann das System nicht das Haupt-Window finden.
Test mit Lazarus: Projekt -> Neu -> Neue Anwendung
Überstzen und diese leere EXE einfach starten, keine Einstellung geändert.
Dann sie Screen-Recorder Seite öffnen und "Aufnahme", dann das "Project1" auswählen. Im Prinzip finde ich es ein "Sicherheits-Feature" dass man die EXE nicht so einfach automatisch lesen kann, man sollte es dennoch abschalten können, so dass eine Bildschirm-Aufnahme möglich ist.
Für mich sieht es so aus als Ob Lazarus im Hintergrund ein "Splash Screen" erzeugt, und darauf zugreift. Beim neuen Projekt ist "FPC-Logo ausgeben (-l)" aktiviert, auch das Deaktivieren ändert nichts daran, es wird dennoch ein schwarzes Quadrat gezeigt und nicht das Formular.
Der Hersteller der SW der Aufzeichnung hatte mich kontaktiert, er wollte die Aufnahme mit einem meiner Programme machen, er selbst hatte dieses Problem in seiner SW untersucht und konnte keinen Fehler finden. Daher schreibe ich mal hier, vielleicht weiß jemand was ich einstellen könnte.
PS: Auch ein "Application.OnGetMainFormHandle" wo ich gezielt die Main-Forum zurück gebe bringt nichts.
Vielen Dank für eure Hilfe.
Grüße Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Bildschirmaufnahme mit Lazarus Programmen
Ja, das ist eigenartig. Kann das bestätigen.
Habe mal versucht das nachzubauen mit Lazarus und PrintWindow. Da werden alle GUIs gezeichnet, egal ob mit Lazarus oder anderweitig erstellt. (Prog anbei - Windows only).
Evtl. versuchen sie das falsche Handle auszulesen (Application Handle, statt MainWindow Handle).
Ansonsten würde ich solche Einstellungen per Manifest-File oder bei Window-Styles oder Extended-Window-Styles vermuten. Mir ist sowas aber nicht bekannt.
Habe mal versucht das nachzubauen mit Lazarus und PrintWindow. Da werden alle GUIs gezeichnet, egal ob mit Lazarus oder anderweitig erstellt. (Prog anbei - Windows only).
Evtl. versuchen sie das falsche Handle auszulesen (Application Handle, statt MainWindow Handle).
Ansonsten würde ich solche Einstellungen per Manifest-File oder bei Window-Styles oder Extended-Window-Styles vermuten. Mir ist sowas aber nicht bekannt.
- Dateianhänge
-
- Snapshot.zip
- (2.35 KiB) 69-mal heruntergeladen
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Bildschirmaufnahme mit Lazarus Programmen
Hallo Michl, vielen Dank dass du dieses Problem an schaust.
Das "EnumWindows" gibt alle Fenster vom Desktop zurück. Ich habe mal alles geschlossen, bis auf Datei-Explorer und Firefox.
Danach zeigt das den ersten Eintrag "Start" mit einem schwarzen Fenster. Dieses "Start" muss die eigene EXE von deinem Demo-Programm sein.
Vielleicht hilft dir das:
Die Bezeichnung "Start" muss ja wo her kommen, also bei Start vom FPC Programm muss ja irgend wann einmal das aller erste CreateWindow() mal ausgeführt werden, da wird vermutlich der Fenster-Name "Start" erzeugt.
Vielleicht dient es auch nur als Container für Windows, damit darin der ganze zugeordnete Speicher mit angehängt wird.
Ich kann natürlich auch völlig falsch liegen, ich kenne mich so tief in der FPC Eingeweihte nicht aus.
PS: Ja Windows. Sorry hatte ich im Eingangspost vergessen zu schreiben.
Viele Grüße Markus
Das "EnumWindows" gibt alle Fenster vom Desktop zurück. Ich habe mal alles geschlossen, bis auf Datei-Explorer und Firefox.
Danach zeigt das den ersten Eintrag "Start" mit einem schwarzen Fenster. Dieses "Start" muss die eigene EXE von deinem Demo-Programm sein.
Vielleicht hilft dir das:
Die Bezeichnung "Start" muss ja wo her kommen, also bei Start vom FPC Programm muss ja irgend wann einmal das aller erste CreateWindow() mal ausgeführt werden, da wird vermutlich der Fenster-Name "Start" erzeugt.
Vielleicht dient es auch nur als Container für Windows, damit darin der ganze zugeordnete Speicher mit angehängt wird.
Ich kann natürlich auch völlig falsch liegen, ich kenne mich so tief in der FPC Eingeweihte nicht aus.
PS: Ja Windows. Sorry hatte ich im Eingangspost vergessen zu schreiben.
Viele Grüße Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Bildschirmaufnahme mit Lazarus Programmen
Noch ein Hinweis:
Ich habe das mit Lazarus erstellte Programm "EleLa" gestartet.
Nun sind 2 Einträge ersichtlich, beide mit unterschiedlichen Bezeichnern:
Der erste "EleLa V4.0...." zeigt das Fenster.
Der zweite "EleLa - Mein ..." ist der Eintrag aus der Taskleiste, also so sieht es in der Windows Taskleiste aus.
Ich vermute mal dass hier versucht wird das Fenster aus der Taskleiste zu holen, jedoch ist dem Taskleiste-Eintrag nicht das MainForm-Handle zugewiesen.
Vielleicht ist dies ebenfalls ein Hinweis der weiter hilft.
VG Markus
Ich habe das mit Lazarus erstellte Programm "EleLa" gestartet.
Nun sind 2 Einträge ersichtlich, beide mit unterschiedlichen Bezeichnern:
Der erste "EleLa V4.0...." zeigt das Fenster.
Der zweite "EleLa - Mein ..." ist der Eintrag aus der Taskleiste, also so sieht es in der Windows Taskleiste aus.
Ich vermute mal dass hier versucht wird das Fenster aus der Taskleiste zu holen, jedoch ist dem Taskleiste-Eintrag nicht das MainForm-Handle zugewiesen.
Vielleicht ist dies ebenfalls ein Hinweis der weiter hilft.
VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Bildschirmaufnahme mit Lazarus Programmen
Moin,
ich habe das gerade mal unter "Linux Mint Cinnamon 64-Bit" mit "Lazarus 2.1.0 (FPC 3.3.1) probiert.
Einfach ein Form genommen, ein paar Objekte drauf und F9.
Die Seite zeigt mir dann zweimal "Form1" an.
Einmal aus dem Editor und einmal das kompilierte Programm.
Von letzterem wird alles außer der Titelleiste aufgezeichnet.
Wenn ich einfach so eine Aufzeichnung der IDE machen möchte, dann fehlen in der Aufnahme auch die Titelleisten.
Aber ein schwarzes Bild bekomme ich nicht.
Gruß HEiko
ich habe das gerade mal unter "Linux Mint Cinnamon 64-Bit" mit "Lazarus 2.1.0 (FPC 3.3.1) probiert.
Einfach ein Form genommen, ein paar Objekte drauf und F9.
Die Seite zeigt mir dann zweimal "Form1" an.
Einmal aus dem Editor und einmal das kompilierte Programm.
Von letzterem wird alles außer der Titelleiste aufgezeichnet.
Wenn ich einfach so eine Aufzeichnung der IDE machen möchte, dann fehlen in der Aufnahme auch die Titelleisten.
Aber ein schwarzes Bild bekomme ich nicht.
Gruß HEiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
-
- Beiträge: 834
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Bildschirmaufnahme mit Lazarus Programmen
Für Windows: mir hat geholfen in der Hauptdatei des Projekts Application.MainFormOnTaskBar := True; nach dem Application.Initialize; einzufügen.
FPC Compiler Entwickler
-
- Beiträge: 1469
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Bildschirmaufnahme mit Lazarus Programmen
Ein guter Tipp!
Ja, das hilft. Damit geht es.
Hat jedoch den Nachteil dass dann man in der Taskbar keinen anderen Text haben kann als wie in der MainForm.Caption drin steht.
Code: Alles auswählen
Application.MainFormOnTaskBar := True;
Hat jedoch den Nachteil dass dann man in der Taskbar keinen anderen Text haben kann als wie in der MainForm.Caption drin steht.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Bildschirmaufnahme mit Lazarus Programmen
Hallo,
danke für die Analyse des Problems. Ich bin der Entwickler vom screen Recorder. Zur Info, der Screenrecorder verwendet hier die screen sharing Funktionen der namhaften Browser, welche im Zuge von WebRTC bereitgestellt werden. Es ist also nicht nur ein Problem des Recorders, es würde auch in allen WebRTC meetings nicht funktionieren. PrintWindow ist hier leider keine Option.
danke für die Analyse des Problems. Ich bin der Entwickler vom screen Recorder. Zur Info, der Screenrecorder verwendet hier die screen sharing Funktionen der namhaften Browser, welche im Zuge von WebRTC bereitgestellt werden. Es ist also nicht nur ein Problem des Recorders, es würde auch in allen WebRTC meetings nicht funktionieren. PrintWindow ist hier leider keine Option.