![]() |
Screenshots einzelner Fenster
Hallo,
ich muss Screenshots einiger Fenster von bestimmten Prozessen machen - ansich kein Problem, ABER: die Fenster können minimiert oder irgendwo im Hintergrund (durch andere Fenster verdeckt) sein. Ich kann sie natürlich "restoren" und in den Vordergrund holen, jedoch handelt es sich dabei um sehr komplexe Applikationen die unter Umständen recht lange brauchen, bis der Fensterinhalt wieder vollständig neu gezeichnet ist. Wenn ich den Screenshot zu früh mache kommt als nur Mist dabei raus. Daher meine Frage - gibt es irgendwelche APIs/Messages die ein Fenster dazu veranlassen sich neu zu zeichnen und erst zurückkehren, wenn das Fenster damit fertig ist? Ich hab bis jetzt leider nichts gefunden.... LG, Manuel |
Re: Screenshots einzelner Fenster
Brauchst du einen Scrennshoot oder willst du nur das Fenster ausdrucken?
|
Re: Screenshots einzelner Fenster
Hallo,
du kannst das per InvalidateRect oder SendMessage (WM_PAINT) machen, aber Windows ist so intelligent, dass es keine versteckten Fenster zum Neuzeichnen veranlasst. Ausserdem würde ich das als Programmierer der App ebenfalls abfragen, warum Neuzeichnen, wenn ich versteckt bin ? Drittes Problem. WM_PAINT ist Nachricht mit niedriger Priorität. Meine Lösung deshalb: Vergess das ganze. Heiko |
Re: Screenshots einzelner Fenster
Zitat:
man könnte dann noch versuchen mit
Delphi-Quellcode:
das Fenster nach vorne zu holen und dann in einer Schleife solange darauf warten.
windows.SetForegroundWindow()
Delphi-Quellcode:
while windows.GetForegroundWindow <> ... do
Zitat:
|
Re: Screenshots einzelner Fenster
Hallo, erstmal danke für die Antworten!
@mkinzler: ich brauch einfach den Inhalt des Fensters - es muss nicht unbedingt ein Screenshot sein, aber was gibt es für Alternativen? WM_PRINT/WM_PRINTCLIENT sind AFAIK keine wirklichen Alternativen, da die jeweilige Anwendung diese Nachrichten explizit unterstützen muss - zumindest laut PSDK: Zitat:
Zitat:
|
Re: Screenshots einzelner Fenster
Handelt es sich um ein Programm von dir?
|
Re: Screenshots einzelner Fenster
Nein, genau das ist das Problem.. es handelt sich um verschiedene Programme anderer Hersteller.
|
Re: Screenshots einzelner Fenster
Zitat:
|
Re: Screenshots einzelner Fenster
Nein, versucht hab ich es noch nicht, werd ich aber vielleicht noch. Ich hab aber keine großen Hoffnungen, da die Anwendung große Netzpläne grafisch darstellt etc. und genau darum geht es - also nicht einfach nur um normale Standard-Steuerelemente.
|
Re: Screenshots einzelner Fenster
Und das Programm hat keine Druckfunktion?
|
Re: Screenshots einzelner Fenster
Mein Programm ist ein automatisches BugReporting Tool, das im Fall eines Fehlers alle verfügbaren Daten sammelt. Dazu gehören auch Informationen zu verschiedenen Prozessen und nach Möglichkeit eben auch Screenshots aller Fenster dieser Prozesse. Das BugReporting Tool wird von einer Applikation aus aufgerufen, die von der Firma entwickelt wurde für die ich auch das BugReporting Tool schreibe. Diese Applikation arbeitet ihrerseits aber auch mit Applikationen von Fremdanbietern zusammen, die ebenfalls in den BugReport eingebunden werden sollen.
Ich hoffe es ist nun klar gestellt worum es geht und was das Problem ist! ;) |
Re: Screenshots einzelner Fenster
Hi,
unter Vista (Falls du es benutzt, wahrscheinlich nicht.) gibt so ne Funktion (DwmThumbnail???). Beispiel sind gibts von Daniel (seine Monumentale Delphi-Trilogie) ![]() Gruß, geofranz P.S. Vielleicht hilft's dir. |
Re: Screenshots einzelner Fenster
Ich selbst verwende zwar Vista, aber ich kann nicht davon ausgehen, dass das auch bei allen Endanwendern der Fall ist. Von daher...
|
Re: Screenshots einzelner Fenster
Liste der Anhänge anzeigen (Anzahl: 1)
WM_PRINT = FÜRN_POPO
:( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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