Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aktuelles Theme herausfinden (https://www.delphipraxis.net/38315-aktuelles-theme-herausfinden.html)

Neutral General 17. Jan 2005 16:11


Aktuelles Theme herausfinden
 
Kann man irgendwie herausfinden welches Theme gerade aktiviert ist ?
Also den Dateinamen vom Theme.

Manne 17. Jan 2005 16:45

Re: Aktuelles Theme herausfinden
 
den DateiNamen bekommst du so:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var reg : TRegistry;
begin
reg := TRegistry.Create;
with reg do
 begin
  RootKey := HKEY_CURRENT_USER;
  OpenKey('Software\Microsoft\Windows\CurrentVersion\ThemeManager',FALSE);
  Caption := ReadString('DllName');
 end;
 FreeAndNil(reg);
end;

Neutral General 17. Jan 2005 16:55

Re: Aktuelles Theme herausfinden
 
Also bei mir gibts da kein Schlüssel mit dem Namen 'DLLName' ... :roll:
Aber ich hab herausgefunden wo man den Pfad vom ArbeitsplatzIcon bekommt :)

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon\

Dadrin istn Schlüssel mit dem Namen (Standard) aber den kann ich so nicht auslesen :gruebel:

Delphi-Quellcode:
var Arbeitsplatz : String;
Registry := TRegistry.Create;
  Registry.RootKey := HKEY_CURRENT_USER;
  Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon\',false);
  Arbeitsplatz := Registry.ReadString('(Standard)');
  ShowMessage(Arbeitsplatz);
Geht das mit so "Standard"-Werten nicht oder was ??

Manne 17. Jan 2005 16:58

Re: Aktuelles Theme herausfinden
 
Sorry war falsch, bei der Prozedur zeigts mir die aktuelle style datei an:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var reg : TRegistry;
begin
reg := TRegistry.Create;
with reg do
begin
  RootKey := HKEY_CURRENT_USER;
  OpenKey('Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme',FALSE);
  Caption := ReadString('ThemeFile');
end;
FreeAndNil(reg);
end;
Edit: Unnötige Sachen gestrichen

Neutral General 17. Jan 2005 17:02

Re: Aktuelles Theme herausfinden
 
Zitat:

Zitat von Manne
Sorry war falsch, bei der Prozedur zeigts mir die aktuelle style datei an:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var reg : TRegistry;
begin
reg := TRegistry.Create;
with reg do
begin
  RootKey := HKEY_CURRENT_USER;
  OpenKey('Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme',FALSE);
  Caption := ReadString('ThemeFile');
end;
FreeAndNil(reg);
end;
Edit: Unnötige Sachen gestrichen

:mrgreen:

"ThemeFile" gibts bei mir auch net :mrgreen:
Aber weis jemand warum das oben genannte mit '(Standard)' nicht funktioniert ?

Manne 17. Jan 2005 17:03

Re: Aktuelles Theme herausfinden
 
Statt 'Standard' --> '' verwenden müsste dann gehen.
Aber den Schlüssel DefaultIcon gibts bei mir nicht :-D

Neutral General 17. Jan 2005 17:15

Re: Aktuelles Theme herausfinden
 
lol wasn das ?? :mrgreen:
Was hast du fürn Windows ?

[Edit]Ahh das mit dem Leerstring funktioniert, danke :)[/edit]

Manne 17. Jan 2005 17:21

Re: Aktuelles Theme herausfinden
 
WinXP Pro.
Hab grad n Registry Monitor laufen lassen und jedesmal wenn ich den Style ändere schreibt er diesen Schlüssel um:

HKCU\Software\Microsoft\Plus!\Themes\Current\(Defa ult)
Weiss aber net, ob des bei andere Windows gleich ist.

Neutral General 17. Jan 2005 17:24

Re: Aktuelles Theme herausfinden
 
Ich hab auch XP Pro und unter dem Pfad findet sich auch was ;)
Den Pfad den du oben angegeben hast war ein ganz anderer :zwinker:

Manne 17. Jan 2005 17:52

Re: Aktuelles Theme herausfinden
 
alernative kann man natürlich auch dies verwenden:
http://www.swissdelphicenter.com/de/...de.php?id=1646


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