Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#45

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 16:27
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).
  Mit Zitat antworten Zitat