AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi AeroGlass - Status erkennen + An-/Ausschalten
Thema durchsuchen
Ansicht
Themen-Optionen

AeroGlass - Status erkennen + An-/Ausschalten

Ein Thema von taaktaak · begonnen am 10. Aug 2008 · letzter Beitrag vom 11. Aug 2008
Antwort Antwort
taaktaak

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

AeroGlass - Status erkennen + An-/Ausschalten

  Alt 10. Aug 2008, 15:10
Moin, Moin.
Bei meinem Programm rzMagnifier gibt es Probleme mit dem AeroGlassEffekt von Windows-VISTA. Im Augenblick bin ich der Auffassung, das dieser Effekt während des Scanvorgangs von rzMagnifier deaktiviert werden muss, da damit ja die tatsächlichen vom Programmierer für ein Programm verwendeten Farben ermittelt werden sollen und nicht irgendein von Windows daraus erzeugter "Farbmatsch".

Problem für mich ist derzeit, dass ich nicht unter VISTA entwickeln sondern nur testen kann. Das ist natürlich sehr umständlich. Gestern habe ich nun aus verschiedenen Quellen einige Informationen zusammengetragen und eine Klasse entwickelt, die die 3 im Titel benannten Funktionalitäten bereitstellt. Zunächst war ich an der Umsetzung von DwmIsCompositionEnabled() gescheitert, dank eines Beispiels von "extrem" (Vielen Dank! Das war wohl Gedankenübertragung!) ist wohl auch dieser Punkt gelöst.

Im Anhang die "Mini"-Klasse und ein kleines Testprogramm. Ich veröffentliche das hier mal aus zwei Gründen:
  • Schaut euch das bitte mal kurz an, ob das auch alles so ok ist. Es scheint zwar zu funktionieren, aber besser ist besser...
  • Vielleicht kann es ja auch noch ein Anderer mal gebrauchen.

// edit: Ahh, sorry, im Quelltext von test15_u1 ist unter uses noch "rzM_Base" aufgeführt, das wird nicht benötigt - bitte auskommentieren! Jetzt neue Version hochgeladen, dort schon auskommentiert!
Angehängte Dateien
Dateityp: zip rzm_aeroglass_172.zip (2,3 KB, 43x aufgerufen)
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 10. Aug 2008, 16:20
Also bei mir, Windows Vista 32 bit scheint alles zu funktionieren, damit noch andere das Programm testen können und es nicht erst compilieren müssen hab ich das mal unten angehängt, hoffe das stört keinen...
Angehängte Dateien
Dateityp: zip test15_211.zip (202,2 KB, 36x aufgerufen)
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
taaktaak

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

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 10. Aug 2008, 16:33
Danke
... und der Source der Klasse ist OK?
Ralph
  Mit Zitat antworten Zitat
extrem

Registriert seit: 27. Mai 2008
72 Beiträge
 
#4

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 10. Aug 2008, 17:24
Zitat von taaktaak:
Danke
... und der Source der Klasse ist OK?
Jupp, von der für mich ungewohnten Codeformatierung mal abgesehen. Ansonsten funktioniert es auch bei mir unter Vista 32 bit.

Ob es nun der richtige Weg ist Aero bei deinem Tool dafür abzuschalten ist wieder eine andere Frage.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 10. Aug 2008, 20:12
Zitat von extrem:
Zitat von taaktaak:
Danke
... und der Source der Klasse ist OK?
Jupp, von der für mich ungewohnten Codeformatierung mal abgesehen. Ansonsten funktioniert es auch bei mir unter Vista 32 bit.

Ob es nun der richtige Weg ist Aero bei deinem Tool dafür abzuschalten ist wieder eine andere Frage.
ja der meinung bin ich auch, da sollte es doch bestimmt noch ne andere möglichkeit geben, denn deswegen die neuen features der windows version brach zulegen, kann nicht der richtige weg sein, schon gar nicht für spätere version von nwindows!!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
taaktaak

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

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 10. Aug 2008, 21:22
Tja, in diesem Punkt bin ich ja auch noch unsicher. Aber (ich zitiere mich mal selber):

Zitat:
Im Augenblick bin ich der Auffassung, das dieser Effekt während des Scanvorgangs von rzMagnifier deaktiviert werden muss, da damit ja die tatsächlichen vom Programmierer für ein Programm verwendeten Farben ermittelt werden sollen und nicht irgendein von Windows daraus erzeugter "Farbmatsch".
Ist das denn falsch gedacht? Im Umkehrschluß: Wenn es gelingt, die aktuell von Windows dargestellten Farben in die Anzeige zu scannen und diesen Farbwert zu bestimmen. Dann ist dieser Farbwert doch im Sinne der eigentlichen Aufgabe wertlos?! Ich erhalte dann nicht die ursprüngliche Farbe, die der Programmierer des fremden Programms bestimmt hat, sondern die AeroGlass-Farbe. Und die will ich doch gar nicht wissen.
Ralph
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#7

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 11. Aug 2008, 12:09
Wenn du die Farbe an einer Stelle ausliest, auf der der Glass-Effekt zu sehen ist, dann hat der Programmierer das bewusst für diesen Bereich aktiviert. Glass wirkt sich nur auf von Windows gezeichnete Elemente (sprich, Titelleiste und Fensterrahmen) aus und auf die Bereiche, die explizit dafür freigegeben wurden. Der Inhalt eines normalen Fenster ist auch mit Glass in der Farbe, die da sein sollte.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
taaktaak

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

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 11. Aug 2008, 14:44
Hmmm, dieser Hinweis bringt mein Denkmodell ins Wanken. Werde das ganze zunächst zurückstellen bis ich direkt unter VISTA entwickeln kann. Danke!
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 11. Aug 2008, 15:14
Dieser Effekt wird doch erst von diesem DesktopManager erstellt/dargestellt?

da wäre es doch "schöner", wenn man von dem das Originalbild abfragen könnte (falls man die Originalfarben möchte)


PS: der Glass-Effekt ist ja durchsichtig und somit hätte man nicht nur die Farbe des gewünschten Fensters, sondern auch mit die der dahinterligenden Dinge (gemischt)?

bei der Bildschirmlupe würde ich zwar weiterhin den Glass-Effekt nutzen (wenn er vorhanden ist), aber beim Colorpicker wär doch die Farbe des gewünschten Fensterpünktchens wichtig und nicht 'ne Mischung mit wer weiß mit was noch.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: AeroGlass - Status erkennen + An-/Ausschalten

  Alt 11. Aug 2008, 17:37
Zitat von himitsu:
bei der Bildschirmlupe würde ich zwar weiterhin den Glass-Effekt nutzen (wenn er vorhanden ist), aber beim Colorpicker wär doch die Farbe des gewünschten Fensterpünktchens wichtig und nicht 'ne Mischung mit wer weiß mit was noch.
Aber wenn der User auf den Pixel klickt, und von dem die Farbe haben möchte, dann klickt er ja nicht drauf um ne andere (als die angezeigte) Farbe zu bekommen. Also würde ich den Aero-Effekt mit berücksichtigen in der Farbauswahl...
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:58 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