I must really know which Windows theme my user is using.
More precisely, Classic, XP, Basic or Aero. (Basic theme as in Vista/7 Windows Basic theme)
I already know h
You can check whether themes are active by calling IsAppThemed/IsThemeActive and then check for Aero by calling DwmIsCompositionEnabled. There may well be other ways of doing this!!
EDIT
The logic would be:
IsAppThemed
and IsThemeActive
? If no then I must be in Windows Classic (Win9x or Win2k).IsAppThemed and IsThemeActive
return? If false then I must be in Windows Classic.DwmIsCompositionEnabled
? If no then I must be XP themed.DwmIsCompositionEnabled
return? If true then I am Aero, otherwise I am Windows Basic.You can check the registry for the current theme at:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes
under String "CurrentTheme" which has the path to the current theme. below is the code for checking it in C#.
using Microsoft.Win32;
public string GetTheme()
{
string RegistryKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes";
string theme;
theme = (string) Registry.GetValue(RegistryKey, "CurrentTheme", string.Empty);
theme = theme.Split('\\').Last().Split('.').First().ToString();
return theme;
}