Domanda

Devo davvero sapere quale tema di Windows mio utente sta usando.
Più precisamente, Classic, XP, Basic o Aero. (Tema di base come in Vista / 7 di Windows di base tema)
So già come trovare se è aerodinamico, ma come gli altri?


La risposta può essere in qualsiasi lingua NET (C #, VB.NET e C ++).


Se avete davvero sapere perché sulla Terra ho bisogno di sapere il tema, allora qui si va:
Ho alcuni pulsanti che galleggia sopra la didascalia di una forma e ho bisogno di cambiare il loro aspetto a seconda del tema di Windows.
Finora sono riuscito a trovare Aero / Classic.


Le schermate del risultato, dopo aver risolto il problema: Riduci a pulsante del vassoio

È stato utile?

Soluzione

È possibile controllare se i temi sono attivi chiamando IsAppThemed / IsThemeActive quindi verificare la presenza di Aero chiamando DwmIsCompositionEnabled . Ci possono essere altri modi di fare questo !!

Modifica

La logica sarebbe:

  1. Posso importare IsAppThemed e IsThemeActive? Se no allora devo essere in Windows Classic (Win9x o Win2k).
  2. Che cosa significa il ritorno IsAppThemed and IsThemeActive? Se falso, allora devo essere in classica di Windows.
  3. Posso importare DwmIsCompositionEnabled? no se poi devo essere XP a tema.
  4. Che cosa significa il ritorno DwmIsCompositionEnabled? Se fosse vero allora io sono Aero, altrimenti io sono di Windows di base.

Altri suggerimenti

È possibile controllare il registro per il tema corrente:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Themes

sotto String "CurrentTheme", che ha il percorso del tema corrente. al di sotto è il codice per il controllo 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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top