Entwickler-Ecke
Windows API - Wie unter XP ermitteln, on XP-Stil oder Windows classic?
welu - So 24.02.08 00:22
Titel: Wie unter XP ermitteln, on XP-Stil oder Windows classic?
Ich bin neu hier, viele Grüße an alle!
Wie kann man unter XP von Delphi aus ermitteln, ob für die Oberfläche der XP-Stil oder Windows classic eingestellt ist? Wenn man den Rechner aus- und dann wieder einschaltet, bleibt die Einstellung ja erhalten, d. h. sie muss irgendwo auf der HD gespeichert sein. Ich vermute, in der Registry. Hat jemand eine Idee?
Calculon - So 24.02.08 00:38
Hi,
das hab' ich auch erst benötigt, um die AlphaSkins (Lite) zu aktivieren oder - wenn XP-Theme nicht verfügbar - nicht zu aktivieren.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| uses ..., Themes; [..]
if ThemeServices.ThemesEnabled then ... if ThemeServices.ThemesAvailable then ... |
Gruß
Calculon
--
welu - So 24.02.08 06:42
Titel: Und unter Delphi5?
Das ist sicher eine gute Idee, aber ich habe nur D5 pro. Kann man die Unit Themes auch für für D5 einsetzen? Wenn ja, wo gibt's den Download?
Bernhard Geyer - So 24.02.08 10:07
Titel: Re: Und unter Delphi5?
welu hat folgendes geschrieben: |
Das ist sicher eine gute Idee, aber ich habe nur D5 pro. Kann man die Unit Themes auch für für D5 einsetzen? Wenn ja, wo gibt's den Download? |
Die von neueren Delphi-Versionen mit sicherheit aufgrund von Lizenzrechtlichen Gründen nicht. Aber evtl. ist ja in der Jedi (Win32-API-Translation) ebenfalls ein Import dabei ...
welu - So 24.02.08 20:03
Titel: Registry-Eintrag?
Die Art der Desktopdarstellung muss ja aber irgendwo gespeichert sein. Ich denke mal in der der Registry. Weiß vielleicht jemand den Registry-Eintrag? Den könnte ich direkt lesen, ohne andere Units, die evtl. Lizenzen benötigen würden, zu brauchen.
jakobwenzel - So 24.02.08 20:55
Mitgelieferte VCL-Quellen sind was tolles... :wink:
ThemeAvailable prüft, ob sich die uxtheme.dll per loadlibrary laden lässt.
ThemeEnabled ist dann true, wenn ThemeAvailable true ist, die Funktionen 'IsAppThemed' und 'IsThemeActive' der uxtheme.dll true liefern, und wenn die per GetVersion ermittelte Version der comctl32.dll (Konstante comctl32 in Unit Windows) größer/gleich
$00060000 ist.
Definition der beiden Funktionen:
Delphi-Quelltext
1: 2: 3: 4:
| IsThemeActive: function: BOOL; stdcall; {$EXTERNALSYM IsThemeActive} IsAppThemed: function: BOOL; stdcall; {$EXTERNALSYM IsAppThemed} |
luwe - Mo 25.02.08 09:17
Titel: Problem gelöst
Danke, das war die Lösung.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!