![]() |
Screenshot nicht sichtbarer Fenster
Es ist ja allgemein bekannt wie man nen Desktop Screenshot oder einen Screenshot von irgendeinem Fenster erstellt. Das ganze funktioniert nur leider nicht mit Fenstern die a) vom einem anderen Fenster überdeckt werden und b) die überhaupt nicht sichtbar sind - da immer nur das als Screenshot genommen wird was gerade auf dem Monitor sichtbar ist.
Nun ist meine Frage wie man einen Screenshot von minimierten und nicht (vollständig) sichtbaren Fenstern erstellt. Gibt es eventuell eine PAINT TO Methode an die man ein window handle übergibt und man dann die canvas des Fensters zurück bekommt? Oder eine andere Möglichkeit? |
Re: Screenshot nicht sichtbarer Fenster
Da ich keine fertige Lösung präsentieren will hier ein Denkanstoss.
Man kann einer WM_PAINT oder einer WM_PRINT Nachricht ein Handle auf ein Devicecontext übergeben. Die Schwierigkeit liegt darin, dass der Kontext im für den Zielprozess erreichbaren Adressraum liegen muss. Denkanstoss Suche -> DLL-Injection. Ausserdem muss die Ziel-Windowprocedure auf diese Nachrichten eingehen, was aber meistens der Fall ist. Eine zweite Möglichkeit die ich aber auch nicht genau kenne, was aber gehen soll ist dem Fenster das Layered - Attribut zu verpassen. Danach ist es wohl möglich an das Live-Bild des Fensters heranzukommen. Eine fertige aber bei mir nicht funktionierende Lösung ist ![]() Eine dritte Möglichkeit, die aber erst ab WinXP geht ist die neue PrintWindow-Funktion -> google. Damit solltest du es hinbekommen. MfG Volker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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