Windows 7, çeşitli yerleşik temalarla birlikte gelir. Masaüstünü sağ tıklayıp Kişiselleştir'i seçerek erişilebilirler. Kişiselleştir altında, "Mimari" "Doğa" ve benzeri gibi temalar içeren "Aero Temalar" bölüm adları vardır.Windows 7 tema adı nasıl edinilir
Ben uxtheme.dll en GetCurrentThemeName kullanarak çalıştı, ama aslında stil adını veriyor: : Mevcut temamın, Windows Basic ayarlanmadığı sürece "C \ Windows \ kaynaklar \ Temalar Aero \ Aero.msstyles \", bu durumda boş bir dize döndürür. "Doğa" "Mimari" vb. Gibi tema ismini döndüren bir API var mı?
[DllImport("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
public extern static Int32 GetCurrentThemeName(StringBuilder stringThemeName,
int lengthThemeName, StringBuilder stringColorName, int lengthColorName,
StringBuilder stringSizeName, int lengthSizeName);
StringBuilder stringThemeName = new StringBuilder(260);
StringBuilder stringColorName = new StringBuilder(260);
StringBuilder stringSizeName = new StringBuilder(260);
Int32 s = GetCurrentThemeName(stringThemeName, 260,stringColorName, 260,stringSizeName, 260);
Bir kayıt defteri anahtarı buldum: Bir girdi içeren HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Temalar: Tema dosya adıyla doldurulmuş "CurrentTheme", orijinalimde adı geçen missnamed API gibi tema görsel stilleri değil sonrası. Örneğin, Doğa Teması için, değeri alır: "C: \ Windows \ resources \ Themes \ nature.theme" bu, ayrıştırmak ve adı almak için gerçekten yeterince iyi. Tabii ki, tema dosyasının adı UI'daki gerçek tema görünen adıyla uyuşmazsa bir sorun olur, ancak bu senaryoyu asla sınırlı senaryoda asla vurmayacağım. – user577240
Genellikle, uygulama ayrıntılarının başka herhangi bir şeyden daha fazla olması nedeniyle, kayıt defterinin etrafında dolaşmak genellikle iyi bir fikir değildir. [Brian Dishaw'un bahsettiği gibi] (http://stackoverflow.com/questions/6631796/how-to-get-the-windows-7-theme-name/6632887#6632887), [GetThemeDocumentationProperty() '] (http : //msdn.microsoft.com/en-us/library/bb773402.aspx) istediğiniz şeyi yapıyor gibi görünüyor. –
Teşekkürler beyler. Bu kadar. – user577240