Seite 2 von 4
Re: original Window Farben auslesen
Verfasst: 23.08.2021 18:28
von Varistor
Hast schon recht. Ich finde es nur immer wieder traurig, dass es bei so simplen Dingen wie der Fensterfarbe, so schwierig sein kann, diese zu ermitteln. Was habe ich damals gegoogelt um eine Lösung zu finden. Aber nix...
Re: original Window Farben auslesen
Verfasst: 23.08.2021 18:38
von northstarex
ich sage immer.... viele Wege führen nach Rom

Re: original Window Farben auslesen
Verfasst: 23.08.2021 18:54
von jacdelad
Professionell meint sicher eine API.
Und sorry für die falsche Aussage meinerseits. Ich war mir sicher, dass man damit alle Farben bekommt. Vielleicht damit:
https://docs.microsoft.com/en-us/window ... ationcolor
Re: original Window Farben auslesen
Verfasst: 23.08.2021 21:38
von Varistor
Ja, genau damit geht es. Aber wie ?! Womit wir wieder am Anfang wären.
Re: original Window Farben auslesen
Verfasst: 23.08.2021 22:59
von northstarex
cool.... hat wer ne idee?
Re: original Window Farben auslesen
Verfasst: 23.08.2021 23:48
von jacdelad
Code: Alles auswählen
Define color.l,opaque.l,library.i
library=OpenLibrary(#PB_Any,"dwmapi.dll")
If library
If CallFunction(library,"DwmGetColorizationColor",@color,@opaque)
Debug "Fehler"
Else
Debug "Erfolg"
Debug "Farben:"
Debug "R:"+Str(PeekA(@color+2))
Debug "G:"+Str(PeekA(@color+1))
Debug "B:"+Str(PeekA(@color))
Debug "A:"+Str(PeekA(@color+3))
If opaque
Debug "Opaque=1"
Else
Debug "Opaque=0"
EndIf
EndIf
EndIf
Aber ich bin mir gerade nicht sicher, ob ich R, G, B und A richtig zugeordnet habe. Das Format ist etwas anders als das in PureBasic normalerweise verwendete, deshalb muss man die Bytes in color zur weiteren Verwendung umsortieren.
Re: original Window Farben auslesen
Verfasst: 24.08.2021 01:15
von northstarex
R,G,B Reihenfolge sollten so passen (sollte so sein: B,G,R)
alle rgb Werte werden bei mir negativ ausgegeben... soll das so?
ich habe mal aus PeekB mal PeekA editiert. Jetzt sind alle negativen Zahlen positiv und passt jetzt auch zu meiner Windows-Rahmenfarbe.
Was wir jetzt noch vergessen haben, ist die Schriftfarbe auf dem Fensterbalken. Wäre schön, wenn wir das auch noch hinbekommen. thx

Re: original Window Farben auslesen
Verfasst: 24.08.2021 02:19
von jacdelad
Ja, stimmt, PeekA. Hab ich übersehen. Hab's oben korrigiert.
Die Schriftfarbe ist nicht so einfach, weil die unter Umständen dynamisch an die Basisfarbe angepasst wird:
https://stackoverflow.com/questions/245 ... indows-8-1
Re: original Window Farben auslesen
Verfasst: 24.08.2021 18:05
von Varistor
Ok, so weit war ich auch schon mal. Stimmen denn bei euch die ermittelten Farben unter Win 7,8, oder 10 mit den tatsächlichen angezeigten Farben überein ?! Bei mir jedenfalls war das nie der Fall. Es scheint noch irgendwelche "Korrekturwerte zu geben, die unter den verschiedenen Betriebssystemen zum Einsatz kommen. Die ermittelten Farben waren entweder leicht zu hell bzw. zu dunkel. Ich verweise noch einmal auf den Registry-Schlüssel #HKEY_CURRENT_USER Software\Microsoft\Windows\DWM. Dort steht ja noch so allerhand drin. Jedenfalls sollte man ja annehmen, dass wenn man dort den Farbwert von ""ColorizationColor"" und "ColorizationColorBalance" ausliest, die angezeigten Farbwerte bekommt. (Natürlich in der für uns ungewohnten RGBA-Form - was man leicht umfummeln kann.)
Wie auch immer, die Farben ob per Registry oder per dwmapi.dll ermittelt, haben bei mir nie genau die Fenstertitelfarbe ergeben.
Re: original Window Farben auslesen
Verfasst: 25.08.2021 15:06
von Benubi
Wie sieht es mit Transparenz aus und diese ganzen "neuen" Effekte die man so hat - sicherlich werden diese die gesehene Farbe auch beeinflußen?
(Ich habe eine etwas ältere Windows Version... hust).