Question

Je dois vraiment savoir quel thème Windows mon utilisateur utilise.
Plus précisément, classique, XP, Basic ou Aero. (Thème de base comme dans Vista / 7 thème Windows de base)
Je sais déjà comment trouver si elle est aéro, mais comment les autres?


La réponse peut être dans une langue .NET (C #, VB.NET ou C ++).


Si vous avez vraiment savoir pourquoi sur Terre je besoin de connaître le thème puis ici vous allez:
J'ai quelques boutons flottant sur la légende d'une forme et je dois changer leur apparence en fonction du thème de fenêtres.
Jusqu'à présent, j'ai réussi à trouver Aero / Classic.


Captures d'écran du résultat, après avoir résolu la question: Réduire au bouton de plateau

Était-ce utile?

La solution

Vous pouvez vérifier si les thèmes sont actifs en appelant IsAppThemed / IsThemeActive puis vérifier Aero en appelant DwmIsCompositionEnabled . Il peut y avoir d'autres façons de le faire !!

EDIT

La logique serait:

  1. Puis-je importer IsAppThemed et IsThemeActive? Si non, alors je dois être dans Windows classique (Win9x ou Win2K).
  2. Qu'est-ce que le retour de IsAppThemed and IsThemeActive? Si elle est fausse alors je dois être dans Windows classique.
  3. Puis-je DwmIsCompositionEnabled à l'importation? Si non, alors je dois être XP à thème.
  4. Qu'est-ce que le retour de DwmIsCompositionEnabled? Si cela est vrai alors je suis Aero, sinon je suis sous Windows de base.

Autres conseils

Vous pouvez consulter le registre pour le thème en cours à:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Thèmes

sous String « CurrentTheme » qui a le chemin du thème actuel. ci-dessous est le code pour le contrôle 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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top