Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Wie kann man veststellen ob Aero oder Basic -Style ... (https://www.delphipraxis.net/153739-wie-kann-man-veststellen-ob-aero-oder-basic-style.html)

turboPASCAL 14. Aug 2010 11:08

Wie kann man veststellen ob Aero oder Basic -Style ...
 
Hi,
wie kann man veststellen ob bei Win Vista/7 der Aero oder Basic-Style aktiv ist.
Bei DwmIsCompositionEnlabeld zeigt er ja in beiden Fällen "True" an.


Mein Problem ist ich möchte im Fall von XP alles selbst zeichnen und bei Win Vista/7 nur dann
wenn kein Theming oder der Basic-Style aktiv ist.

DeddyH 14. Aug 2010 11:31

AW: Wie kann man veststellen ob Aero oder Basic -Style ...
 
Sind im Basic-Style denn Themes enabled? Ich kann das gerade nicht ausprobieren.

[edit] Quatsch, ich habe Basic und Classic verwechselt. [/edit]

turboPASCAL 16. Aug 2010 14:26

AW: Wie kann man veststellen ob Aero oder Basic -Style ...
 
Ich muss hier mal pushen, es wäre mir wirklich wichtig wie man feststellen kann
ob Aero im Basic.- oder "Normalmodus" läuft.

Cylence 16. Aug 2010 15:40

AW: Wie kann man veststellen ob Aero oder Basic -Style ...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

das geht ganz einfach, hab dir ne unit hier hochgeladen w32functions, glaub die hab ich auch von hier...bin mir nicht sicher.

Delphi-Quellcode:
if not DSiAeroIsEnabled then DSiAeroEnable;
if DSiAeroIsEnabled then DSiAeroDisable;
so kann man es abfragen und ein-ausschalten. Einfach die w32functions in uses oben.

Gruß Cylence

hierher kommt die unit, habs noch gefunden
http://gp.17slon.com/gp/dsiwin32.htm

turboPASCAL 16. Aug 2010 16:51

AW: Wie kann man veststellen ob Aero oder Basic -Style ...
 
Also, mal das Wesentliche:
Delphi-Quellcode:
function DSiAeroIsEnabled: boolean;
  var
    isEnabled: BOOL;
  begin
    Result := (DSiDwmIsCompositionEnabled(isEnabled) = S_OK);
    if Result then
      Result := isEnabled;
  end; { DSiAeroIsEnabled }
Mit DwmIsCompositionEnabled wird U. A. geprüft ob die Transparenz
aktiv ist was für Aero notwendig ist. Im Fall das die Transparenz inaktiv
ist Kann es sich um den Style Aero mit deaktivierter Transparenz oder
Basicstyle handeln.

Hilft also leider nicht weiter.

DeddyH 16. Aug 2010 16:55

AW: Wie kann man veststellen ob Aero oder Basic -Style ...
 
Kann mir aber mal einer die Logik dieser Funktion erklären? Mich interessiert vor allem das
Zitat:

Delphi-Quellcode:
if Result then
      Result := isEnabled;

Welchen Sinn soll es haben, Result ggf. den Inhalt einer nicht initialisierten lokalen Variablen zuzuweisen?

[edit] Ok, sry, habe übersehen, dass die Variable im vorherigen Aufruf als (Var-)Parameter dient. Hat sich also erledigt. [/edit]

Cylence 16. Aug 2010 16:56

AW: Wie kann man veststellen ob Aero oder Basic -Style ...
 
Hi,

ich hab dir doch eben eine meldung zuvor die lösung gesendet, da is doch alles drinn und ich hab das schon seit Jahren so in meinem Player und es funktioniert, ich weiß wann Aero an is und wann nicht... klappt doch ohne probleme. Ich nutze in meinem Player Overlay Rendering, oder EVR udn bei Overlay Rendering muß ich checken ob Aero an ist und wenn ja dann ausschalten, und das klappt auch genau so wie ich es geschrieben habe. Genauso schalt ich es wieder ein, geht auch ohne Probleme. Also los gehts

turboPASCAL 17. Aug 2010 15:15

AW: Wie kann man veststellen ob Aero oder Basic -Style ...
 
So, neuer Tag und ich muss mich Revidieren. Das klappt so, ich hatte gestern in der Applikation einen Fehler der mir falsche Werte anzeigte.

Also wieder mal so ein Ding gucken lassen... :oops::wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 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