Is possible to detect XP theme names?
I think paint the background color of outlook class based on XP theme (blue, silver or green...).
Regards,
Maurilio
Theme names under XP
- Maurilio Viana
- Posts: 252
- Joined: Tue Oct 25, 2005 2:48 pm
- Location: Garça/Garza/Heron City - Brazil
- Contact:
- James Bott
- Posts: 4654
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Maurilio,
The answer is supposedly here:
http://www.codeproject.com/csharp/xptheme.asp
It shows how to read this information from the registry. However, the key, ColorName, that it says holds the theme color, doesn't exist in my registry (and I am using themes). So, I don't know the anwser.
James
The answer is supposedly here:
http://www.codeproject.com/csharp/xptheme.asp
It shows how to read this information from the registry. However, the key, ColorName, that it says holds the theme color, doesn't exist in my registry (and I am using themes). So, I don't know the anwser.
James
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Theme names under XP
The API is GetCurrentThemeName() but I don't know how to use it as it requires wide chars strings.
EMG
EMG
- Maurilio Viana
- Posts: 252
- Joined: Tue Oct 25, 2005 2:48 pm
- Location: Garça/Garza/Heron City - Brazil
- Contact:
- Maurilio Viana
- Posts: 252
- Joined: Tue Oct 25, 2005 2:48 pm
- Location: Garça/Garza/Heron City - Brazil
- Contact:
Here a single function to detect XP theme name
return:
"WindowsClassic" if no theme is used
"XPBlue" if theme is blue
"XPGreen" if theme is olive green
"XPSilver" if theme is silver
return:
"WindowsClassic" if no theme is used
"XPBlue" if theme is blue
"XPGreen" if theme is olive green
"XPSilver" if theme is silver
Code: Select all
#define HKEY_CURRENT_USER 2147483649
function CurrentTheme()
local cTheme := "WindowsClassic"
local cKeyName := "Software\Microsoft\Windows\CurrentVersion\ThemeManager\"
oReg := TReg32():New( HKEY_CURRENT_USER, cKeyName )
if oReg:nError == 0
cTheme := StrTran( oReg:Get("ColorName", ""), chr(0),"")
do case
case cTheme == "NormalColor" ; cTheme := "XPBlue"
case cTheme == "HomeStead" ; cTheme := "XPGreen"
case cTheme == "Metallic" ; cTheme := "XPSilver"
otherwise ; cTheme := "WindowsClassic"
endcase
endif
oReg:Close()
return( cTheme )