![]() |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
dcDesktop := GetWindowDC(hDesktop);
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Bei den AlphaControls ist auch eine (sehr gut funktionierende) Lupe dabei.
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
Delphi-Quellcode:
funktioniert es nicht, da ist das Bild schwarz.
dcForm := GetWindowDC(Form1.Handle);
Mit
Delphi-Quellcode:
kann man das aktive Formular capturen.
hForm := GetForegroundWindow;
dcForm := GetWindowDC(hForm); |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Interessant, 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 :( |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
Zitat:
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:
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). |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Interessant, vielen Dank für die Erklärung.
Dann funktionieren also die meisten Lupen aufgrund eines Bugs so gut - schon witzig. Eine Lösung, das auch unter Aero hinzubekommen, ist dann vermutlich entweder gar nicht möglich oder nur von wirklichen Profis, die die Internas sehr gut kennen, realisierbar. |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Die Lupe von den AlphaControls zeigt immer nur ein aktives Formular an.
Das ist etwas unerwartet, funktioniert aber insgesamt sehr gut. Formularinhalte werden ständig aktualisiert. Demo unter ![]() Vielleicht kann das als Anregung helfen... stahli |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
@NamenLozer:
Stimmt echt interessant, hab jetzt den QC gefunden und ich habe es auch mit dem Bug gemacht :stupid: Heißt das jetzt, meins läuft unter Vista auch nicht? Zitat:
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
Irgendwelche Themes laufen oder anderes Zeugs ? |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 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