Holen Sie sich Windows Thema?
-
11-10-2019 - |
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:
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:
- Kann ich Import
IsAppThemed
undIsThemeActive
? Wenn nicht, dann muss ich in Windows Classic (Win9x oder Win2k) sein. - Was bedeutet
IsAppThemed and IsThemeActive
Rückkehr? Wenn false dann muss ich in Windows klassisch sein. - Kann ich Import
DwmIsCompositionEnabled
? Wenn nicht, dann muss ich sein XP Themen. - 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;
}