Zitat von
Garfield:
Es gibt auch einen dynamischen Modus mit DDraw Overlay.
Unter Vista funktioniert das mit DDraw aber nicht
Zitat von
Garfield:
Funktioniert bei mir unter XP tadellos.
Ja, unter XP. Aber nicht unter Vista, und das ist ja das Problem.
Zu den Artefakten in meinem Programm: Wie gesagt, es ist ein Kompromiss. Meiner Meinung immer noch besser, als wenn der gezeigte Ausschnitt gar nicht aktuell ist.
Zitat von
taaktaak:
Interessanr, aber für mich bleibt die Kernfrage:
Was macht VISTA(+AERO) anders? Hier muss es ja einen grundlegenden Unterschied geben? Der ist für mich noch nicht erkennbar
Unter Vista gibt es halt den neuen Fenstermanager. Meine Vermutung ist, dass unter XP Layered Windows auf Screenshots nicht sichtbar waren, weil der Fenstermanager mit (halb-)transparente Fenster eben nicht "richtig" umgehen konnte, d.h. erst die normalen Fenster gezeichnet wurden, und am Ende heimlich die Layered Windows "dazugemogelt" wurden. Warum die dann nicht auf dem Desktop-Canvas sind, weiß ich nicht, aber es wird wohl irgendwelche internen Gründe gehabt haben.
Wie auch immer, jedenfalls war die Möglichkeit des Auslesens der Pixel unter dem Fenster, eindeutig ein Bug, der durch einen Workaround entstanden zu sein scheint, und kein Feature. Deshalb ist es IMO auch prinzipiell richtig, dass das unter Vista nicht mehr funktioniert. Dass man verdeckte Bereiche unter Windows nicht auslesen kann (außer XP und vllt Win2k durch Ausnutzen eines Bigs), war schon immer ein Problem, und es ist ärgerlich, dass es dafür keine Möglichkeit zu geben scheint (zumindest keine mir bekannte). Soweit ich weiß, kann man mit einer WM_PRINT (?) Message zumindest unverdeckte Screenshots von einzelnen Fenstern machen - die geben aber leider nicht exakt das zurück, was auf dem Bildschirm sichtbar wäre (z.B. ohne Aero).