Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Screenshot von unsichtbarer Form (https://www.delphipraxis.net/161386-screenshot-von-unsichtbarer-form.html)

relocate 1. Jul 2011 08:57

Screenshot von unsichtbarer Form
 
Hallo,

auf Basis der Themen
http://www.delphipraxis.net/153575-s...m-oder-so.html
und
http://www.delphipraxis.net/159841-s...m-fenster.html

bzw.
http://www.delphipraxis.net/118294-s...-erzeugen.html

habe ich mal herumprobiert, aber keine der Lösungen arbeit bei einer versteckten/unsichtbaren (also nicht bloß verdeckten) Form.

Die Lösung unter 118294 arbeitet bei verdeckten Fenster gut, aber die andere Lösung bringt gar nichts außer ein völlig schwarzes Bitmap aber mit der richtigen Maßen der Form (immerhin).

Die Lösung sollte dazu noch unter Windows 2000 funktionieren (was mit Printwindow ja nicht geht) wenn es aber nicht anders möglich sein sollte, dann letztendlich halt nicht.

Hier gibt es dazu ein Statement und eine Lösung, die ich aber nicht
probiert habe, da es sich um C++ handelt, was nicht das Problem ist,
die Lösung aber mit einer DLL Injection arbeitet.

Hat irgendeiner eine Idee, warum die Lösung von 153575 nur ein schwarzes Window bringt. Wo anders habe ich gelesen es könnte ein Timing Problem sein. Eine Zeitverzögerung brachte bei mir aber kein Erfolg.

:pale:

Memnarch 1. Jul 2011 09:31

AW: Screenshot von unsichtbarer Form
 
soweit ic weiß ist es generel so, das unsichtbare forms grafisch nicht geupdated werden und auch verdeckte forms davon ausgeschlossen werden. Wie weit dass das manuelle neuzeichnen betrifft weiß ich nicht.

relocate 1. Jul 2011 10:02

AW: Screenshot von unsichtbarer Form
 
Hi,

automatisch sicher nicht, aber dafür ist ja das WM_PAINT.
Im Normalfall gibt Windows der Form den Befehl sich neu zu zeichnen,
wenn sie verdeckt war.
Manuell ausgelöst soll das mit diesen Funktionen in einem anderen
Device Context gehen, bei einer verdeckten aber nicht unsichtbaren
Form funktioniert es ja. Sie wird also in den DC gezeichnet und
zwar korrekt, obwohl sie auf dem Desktop verdeckt ist.
Sollte also eigentlich auch unsichtbar gehen, da sie ja in einem
anderen Device Context gezeichnet wird.
Praktisch funktioniert es bei mir allerdings nicht, woanders scheint
es ja gegangen zu sein, leider sind die Rückmeldungen dahingehend nicht
schlüssig.

Gruß Relocate


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz