![]() |
Screenshot unter Linux
Hallo,
hat Jemand von Euch zufälligerweise schon herausgefunden, wie man mit Delphi 10.2 unter Linux einen Screenshot erstellen kann? Und zwar nicht so, dass man ein anderes Linux-Systemtool aufruft, sondern das direkt mit Delphi selber erledigen kann? Über einen Hinweis wäre ich dankbar.:) |
AW: Screenshot unter Linux
X11?
ohne "Linux-Systemtool" wirst du dir schwer tun, wobei ich nicht weis was du darunter verstehst |
AW: Screenshot unter Linux
Systemtool: Darunter verstehe ich z.B. das unter Ubuntu schon installierte gnome. Man kann es mit einem Parameter aufrufen und dann einen Screenshot als Datei speichern lassen.
Nur: Es werden bei Multimonitor-Systemen dann alle 3 Monitore erfasst und außerdem flackert es dann einmal kurz. Von der Performance natürlich auch viel zu langsam. Ich möchte mein Remote-Desktop-Programm auch für Linux erweitern, da wäre es schon gut, alles auf Memory-Ebene erledigen zu können. Bei der Suche nach entsprechenden Funktionen in den von Delphi mitgelieferten Linux-Dateien (Enterprise-Version) bin ich allerdings leider nicht fündig geworden. |
AW: Screenshot unter Linux
![]() guck mal in den Source von z.B. TigerVNC, die haben das was du willst für Linux gelöst :) (was in C geht, geht auch in Delphi und wenn man es als eine externe C lib realisiert und diese aufruft) |
AW: Screenshot unter Linux
Kannst du das Drücken der PrintScreen Taste emulieren?
|
AW: Screenshot unter Linux
Zitat:
Da Android intern quasi auch nur ein Linux ist, wird es das doch auch im "normalen" Linux geben? Das wäre für dich ja auch ein Systemtool? ![]() |
AW: Screenshot unter Linux
Es gibt genug Lösungen für X-Windows in C am Netz. Diese Beiträge hat der Harry Stahl bestimmt schon zuvor gefunden. Im Freepascal geht/ging es bestimmt. Ich will allein nicht dauern dorthin verlinken.
![]() Unter Windows brauche ich zumindest noch das gute alte SnagIt da ich SAP Listboxen quasi scrolle und ein Qualitätsprüfung mache (wofür würde jetzt zuweit vom Thema wegführen). Imagemagick gibt es auch mit Pascal interface ... wenn man nachher etwas tun will. Zitat:
|
AW: Screenshot unter Linux
Zitat:
|
AW: Screenshot unter Linux
PrintScreen hat den Nachteil, dass es auch flackert und sich standardmäßig das Bildschirmtool präsentiert (Ubuntu).
In TigerVNC konnte ich (zumindest nach kursorischer Durchsicht) nichts relevantes finden... |
AW: Screenshot unter Linux
Unter Linux mit X wird normalerweise das Komando/Programm XWD benutzt um Screenshots zu machen. Das dürfte für die unterschiedlichen Desktop-Manager die portabelste Lösung sein.
XWD selbst greift auf die XLib bzw. libX11 zurück (XGetImage) Da der Linux Support von Delphi sich ausdrücklich nur auf die Kommandozeile bezieht, bezweifle ich das es Bindings dafür gibt. Für FPC / Lazarus gibt es die sehr wohl, möglicherweise kannst Du ja damit etwas anfangen. * Nachtrag : Da Du ausdrücklich GNOME erwähnst könntest Du auch mal nach Bindings für Delphi/FreePascal und GTK+ suchen (da Gnome auf GTK+ basiert) oder die entsprechenden Funktionen / Header einfach selbst übersetzen. ** cu Ha-Jö * ![]() ** ![]() |
AW: Screenshot unter Linux
Wie soll das mit xwd reigentlich richtig funktionieren?
xwd -out test.jpg erzeugt eine nicht lesbare Datei. Ja, mit Lazarus ist das an dieser Stelle einfach, mit "Bitmap.LoadFromdevice (GETDC(0))" kann man ganz einfach einen Screenshot machen, das setze ich schon in meinem Bildbearbeitungsprogramm für Linux ein. Hab auch schon mal bei Lazarus nachgesehen, die machen das aber mit den einzelnen Widget-Sets, dass kann ich so nicht auf Delphi übertragen. Wenn ich es für Delphi nicht rausfinde, dann mache ich mir halt ein kleines Lazarus-Hilfsprogramm, das mir über eine TCP-IP-Verbindung den Screen an mein Delphi-Programm streamt.... |
AW: Screenshot unter Linux
Zitat:
cu Ha-Jö |
AW: Screenshot unter Linux
Allein der Vollständigkeit halber ...
![]() ![]() Zitat:
|
AW: Screenshot unter Linux
Zitat:
Nur kein jpg ist es halt nicht, dazu müsste es erst Konvertiert werden. ![]() |
AW: Screenshot unter Linux
..."dann mache ich mir halt ein kleines Lazarus-Hilfsprogramm, das mir über eine TCP-IP-Verbindung den Screen an mein Delphi-Programm streamt"...
..."Du kannst eine Library bzw. shared library mit Lazarus erzeugen und wie eine DLL in Dein Delphi Programm einbinden"... im aktuellem Delphi-Linux-FMX Stand würde ich auch eine der Varianten nehmen. Ansonsten schreibe deinen "Wunsch" den LinuxFMX Leuten, die können das "nebenbei" ähnlich Lazerus selbst dann für alle einbinden:) |
AW: Screenshot unter Linux
@Mensch72
Gute Idee, habe da mal eine Anfrage gestartet. Ansonsten wäre der Weg mit der Lazarus-DLL wohl die beste Variante (muss ich aber selber noch raus finden, wie das konkret geht, diese Kombi hatte ich noch nicht, sollte aber machbar sein). Danke auch für die Hinweise der anderen Thread-Teilnehmer...:thumb: |
AW: Screenshot unter Linux
In einem der Links sah ein Code ja nicht sooo schlimm aus (python), der für alle möglichen Linuxe etwas versuch.
bezüglich Lazarus-DLL: Auf Java kann man doch auch vom Delphi aus zugreifen, wenn du dafür einen Code findest, dann könnte man den Weg versuchen. Es gibt doch da von einem Drittanbieter den Versuch 'ne GUI für Linux anzubieten. Kannst die fragen, ob sie auch schon eine Lösung für die andere Richtung kennen. |
AW: Screenshot unter Linux
Zitat:
Aber muss ja ein wenig schmunzeln bei Deiner Formulierung... Aus FMXLinux ist schon deutlich mehr draus geworden, als ein Versuch, die sind bald fertig, nehme relativ aktiv an der Betaphase teil. Hier kann man den aktuellen Stand laden: ![]() Das sieht schon alles so super aus...:-D:-D:-D:-D:-D:-D |
AW: Screenshot unter Linux
Das war eine gute Idee von Dir, Mensch72, die Entwickler haben die Funktionalität kurzerhand hinzugefügt:
Bitmap := TakeScreenShot; Funktioniert super...:thumb::thumb: |
AW: Screenshot unter Linux
isch weiß, bin mit denen zwar nicht so direkt und ständig in Kontakt, hatte den Wunsch aber auch schonmal geäußert:)
Was braucht es denn nun noch für eine vernünftige Linux 2D-GUI Anwendung?... 1. Druckerunterstützung & Kapselung stehen bei mir noch ganz oben auf der Wunschliste mit ein paar Beispielen! 2. etwas mehr Support/Kapselung für "schnelles 2D - DirectDraw"... sagen wir für externes Bitmapstreaming... bei dir ala Anzeige deiner externen ScreenStreams, bei uns mehr sowas wie live berechnete Bitmaps oder Overlays Wenn die gut auf dich "hören", kannst ja mal so frei sein und dies auch mal nebenbei denen auch als "deinen Wunsch" mitteilen:) |
AW: Screenshot unter Linux
Ich glaube, das hat nichts mit gut hören oder so zu tun, sondern mit dem erforderlichen Aufwand, der mit der gewünschten Implementation verbunden ist...
Es geht ja nur eins nach dem anderen und ich gehe davon aus, dass Deine Wünsche gute Chancen haben, auch noch in Erfüllung zu gehen. Was ich auch total cool finde, ist, dass TMS mit seinen FNC- und FMX-Komponentensammlungen das FMX-Linux unterstützen will (im Moment noch "experimental"), aber wenn das wirklich kommt, dann hat man schon eine Super-Komponenten-Basis um moderne Desktop-Programme mit vielen hübschen Fähigkeiten und Schnittstellen aller Art unter Linux zu entwickeln... |
AW: Screenshot unter Linux
Kennt Linux keinen DC für die Screen, wie unter Windows? Irgendwie müssen es ja auch die Linux-Tools machen. Ist das Voodoo unter Linux den so ein Geheimnis?
|
AW: Screenshot unter Linux
Zitat:
habe die fmxlinux trial ausprobiert und würde auch gerne versuhcen unter linux einen screenshot zu machen :) bei mir kann jedoch TakeScreenShot nicht gefunden werden, ich habe zur sicherheit auch die neuste version installiert ohne erfolg. kannst du mir bitte sagen wie icch zu der funktion komme? grüsee |
AW: Screenshot unter Linux
Man muss zusätzlich die Unit "FMX.Canvas.Linux" einbinden.
Im Dokumentenverzeichnis installiert FMXLinux einige Beispiele, da ist auch eins Namens "Screenshot" dabei... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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