Frage

Ich muss wirklich wissen, welche Windows-Design mein Benutzer verwendet.
Genauer gesagt, Klassik, XP, Basic oder Aero. (Grundthema wie in Vista / Windows 7 Grundthema)
Ich weiß schon, wie zu finden, wenn es aero ist, aber wie die andere?


Die Antwort kann in einem beliebigen .NET-Sprache sein (C #, VB.NET oder C ++).


Wenn Sie wirklich, warum auf der Erde Ich brauche wissen müssen, um hier das Thema wissen, dann gehen Sie:
Ich habe ein paar schwebenden Tasten über die Beschriftung eines Formular und ich brauche um ihr Aussehen zu verändern nach dem Windows-Design.
Bisher habe ich es geschafft Aero / Classic zu finden.


Screenshots des Ergebnisses, nachdem das Problem zu lösen: Minimize to Tray-Taste

War es hilfreich?

Lösung

Sie können prüfen, ob Themen aktiv sind telefonisch unter IsAppThemed / IsThemeActive und Check für Aero dann durch den Aufruf DwmIsCompositionEnabled . Es auch andere Möglichkeiten sein kann, dies zu tun !!

EDIT

Die Logik wäre:

  1. Kann ich Import IsAppThemed und IsThemeActive? Wenn nicht, dann muss ich in Windows Classic (Win9x oder Win2k) sein.
  2. Was bedeutet IsAppThemed and IsThemeActive Rückkehr? Wenn false dann muss ich in Windows klassisch sein.
  3. Kann ich Import DwmIsCompositionEnabled? Wenn nicht, dann muss ich sein XP Themen.
  4. Was bedeutet DwmIsCompositionEnabled Rückkehr? Wenn das stimmt, dann bin ich Aero, sonst bin ich Windows Basic.

Andere Tipps

Sie können die Registrierung für das aktuelle Thema überprüfen unter:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Currentversion \ Themes

unter String „CurrentTheme“, die den Pfad zum aktuellen Thema. Unten ist der Code für die es in C # zu überprüfen.

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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top