Pregunta

Realmente tengo que saber qué tema de Windows mi usuario está utilizando.
Más precisamente, clásico, XP, Basic o Aero. (Tema básico como en Vista / 7 Windows Básico tema)
Ya sé cómo encontrar si es aerodinámico, pero ¿qué hay de los otros?


La respuesta puede estar en cualquier lenguaje .NET (C #, VB.NET o C ++).


Si usted realmente tiene que saber por qué en la Tierra I necesidad de conocer el tema a continuación, aquí van:
Tengo algunos botones flotantes sobre el título de un formulario y necesito cambiar su apariencia de acuerdo con el tema de las ventanas.
Hasta ahora he conseguido encontrar Aero / Classic.


Las capturas de pantalla de los resultados, después de resolver el problema: Minimizar a la bandeja de botón

¿Fue útil?

Solución

Puede comprobar si los temas son activos llamando IsAppThemed / IsThemeActive y a continuación, comprobar para Aero llamando DwmIsCompositionEnabled . Muy bien puede haber otras maneras de hacer esto !!

editar

La lógica sería:

  1. ¿Puedo IsAppThemed importación y IsThemeActive? Si no, entonces yo debía estar en la clásica de Windows (Windows 9x o Win2k).
  2. ¿Qué significa el retorno IsAppThemed and IsThemeActive? Si es falso entonces debe estar en Windows clásico.
  3. DwmIsCompositionEnabled importación
  4. ¿Puedo? Si no, entonces debo ser XP temática.
  5. ¿Qué significa el retorno DwmIsCompositionEnabled? Si esto es cierto, entonces estoy Aero, de lo contrario estoy de Windows básico.

Otros consejos

Puede comprobar el registro para el tema actual en:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Temas

en cadena "CurrentTheme", que tiene la ruta al tema actual. a continuación se muestra el código para comprobar que en 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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top