Re: Determining Win XP vs. Classic styles



I worked out the Registry version of this problem,
if anyone's interested.

The following "pidgin VB" will find whether XP style
is active and which one it is. (The terms are confusing.
These settings are in the "ThemeManager" key, and the
DLL approach apparently uses a function named
"IsThemeActive". Yet in Display Properties a theme
is something applied in Classic mode, while a "Style"
is what we're talking about as a theme, and a "Color"
denotes the name of a selection within a style. The "luna"
DLL - luna.msstyles - is the source of the 3 Color options
of "XP Style". Presumably if, say, an OS X style were
installed it would show up as a third option under Style,
and would then have one or more choices under "Color".
[ To make things even more confusing, the Color options
in Luna are default, silver and olive, but in the Registry
ColorName value they become NormalColor, Metallic
and HomeStead! ]

As it turns out, Windows also seems to set a theme to
go with styles. The system color of title bars under Silver,
for instance, is light gray. Even though it may rarely be
displayed, that's the setting in Control Panel\Dekstop\etc..
If the style is then set to default then the title bar color will
switch to a blue that's close to the blues used in the
default skin.)

In the key:

HKCU\Software\Microsoft\Windows\CurrentVersion\ThemeManager\

LStyleOn = data for value "ThemeActive"

If no such value then
'-- it's not XP.
ElseIf StyleOn = 0 then
classic setting
Else
'-- if StyleOn = 1 then it's XP Style active.
'-- continue on to find details.

sStyle = data for value "DllName"
If Instr(sStyle, "\luna") = 0 then
'-- a custom style that has been installed.
Else
sColor = data for value "ColorName"
Select Case sColor
Case "NormalColor"
'-- current style is default blue.
Case "Metallic"
'-- current style is silver.
Case "HomeStead"
'-- current style is olive.
end select
End If
end if
--
_____________________________

mayayXXana1a@xxxxxxxxxxxxxxxx
For return email remove XX and YY.
_____________________________
mayayana <mayaXXyana1a@xxxxxxxxxxxxxxxx> wrote in message
news:v4Ybe.381$V01.188@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > I don't have "Plus" installed -- I use the stock "silver" theme that
> shipped
> > with XP. And that's why I gave you that log -- to try and figure out
> which
> > entry, if any, simply said "using themes" or "using classic".
> >
>
> Hmm. I guess it's not so simple. From your
> log, and from info. I found online, it looks like
> the critical bit is:
>
> HKCU\Software\Microsoft\Windows\CurrentVersion\ThemeManager\
>
> ThemeActive seems to indicate whether there is
> any theme currently. (1-yes. 0-no. One place online
> said that the login screen could also be set to
> classic by setting ThemeActive to 0.)
> At about line 580 that gets changed to 0 and other
> values of "DllName", "ColorName" and "SizeName"
> get deleted.
> I had seen something online about DllName indicating
> the theme name and defaulting to "luna". So maybe
> the combination of ThemeActive and DllName settings
> is enough to figure out which theme, if any, is currently
> active. I don't have easy access to XP to figure that out
> but it would be interesting to hear if anyone comes up
> with a definitive answer.....It doesn't help me find
> the "skinning" pictures for my VBS message boxes,
> but it's a start.
>
>
>


.