AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bildschirmlupe - Bereich unter Formular ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirmlupe - Bereich unter Formular ermitteln

Ein Thema von Fussball-Robby · begonnen am 29. Dez 2008 · letzter Beitrag vom 17. Jul 2009
Antwort Antwort
Seite 5 von 10   « Erste     345 67     Letzte »    
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#41

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 12:06
Zitat von turboPASCAL:
Nein, auch wenn wenn man die die Lupe nicht bewegt wird diese aktualisiert. Es hann sich ja in der Zwischenzeti etwas im Hintergrund, also unter der Lupe ändern.
Bei mir anscheinend nicht. Die Lupe stand eine Weile über VirtualVCR und es hat sich nichts geändert.

Zitat von turboPASCAL:
Zitat:
ganz so ist es nicht. Der Hintergrund des Formulars wird vor dem Screenshot transparent geschaltet und darin scheint das Problem zu bestehen.
Hui, das flackert schön.
Mit der jetzigen Einstellung flackers bei mir nicht. Allerdings darf man nicht über den Desktoprand hinaus.

Zitat von turboPASCAL:
Aber nicht vom gesamten Screen oder ? Das ist/wäre Resourcenverschwendung.

    dcDesktop := GetWindowDC(hDesktop);
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#42

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 12:18
Bei den AlphaControls ist auch eine (sehr gut funktionierende) Lupe dabei.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#43

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 12:50
Zitat von turboPASCAL:
Aber nicht vom gesamten Screen oder ? Das ist/wäre Resourcenverschwendung.
Mit dcForm := GetWindowDC(Form1.Handle); funktioniert es nicht, da ist das Bild schwarz.

Mit
Delphi-Quellcode:
hForm := GetForegroundWindow;
dcForm := GetWindowDC(hForm);
kann man das aktive Formular capturen.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#44

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 17:23
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
Ralph
  Mit Zitat antworten Zitat
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, 17: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
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#46

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 17:55
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.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#47

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 20:14
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 AlphaControls

Vielleicht kann das als Anregung helfen...

stahli
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#48

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 20:19
@NamenLozer:
Stimmt echt interessant, hab jetzt den QC gefunden und ich habe es auch mit dem Bug gemacht


Heißt das jetzt, meins läuft unter Vista auch nicht?


Zitat von Garfield:
Zitat von turboPASCAL:
Nein, auch wenn wenn man die die Lupe nicht bewegt wird diese aktualisiert. Es hann sich ja in der Zwischenzeti etwas im Hintergrund, also unter der Lupe ändern.
Bei mir anscheinend nicht. Die Lupe stand eine Weile über VirtualVCR und es hat sich nichts geändert.
Bei mir, Win XP/SP2 aktuallisiert es auch nicht.
Angehängte Dateien
Dateityp: zip lupos_105.zip (102,8 KB, 23x aufgerufen)
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#49

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 20:26
Zitat:
Bei mir, Win XP/SP2 aktuallisiert es auch nicht.
Bei mir, Win XP/SP2 schon.
Irgendwelche Themes laufen oder anderes Zeugs ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Namenloser

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

Re: Bildschirmlupe - Bereich unter Formular ermitteln

  Alt 1. Jan 2009, 20:31
Zitat von stahli:
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 AlphaControls

Vielleicht kann das als Anregung helfen...

stahli
Wo ist diese Lupe denn? Ich find die da nirgens.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 10   « Erste     345 67     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 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