Windows 7 поставляется с несколькими встроенными темами. Доступ к ним можно получить, щелкнув правой кнопкой мыши на рабочем столе и выбрав «Персонализация». В разделе «Персонализация» есть раздел «Aero Themes», содержащий такие темы, как «Архитектура», «Природа» и т. Д.
Я пытался использовать GetCurrentThemeName файла uxtheme.dll, но на самом деле это имя стиля:
«C: \ Windows \ resources \ Themes \ Aero \ Aero.msstyles», если моей текущей темой не является Windows Basic, в этом случае она возвращает пустую строку. Есть ли API, который на самом деле возвращает название темы, например «Природа», «Архитектура» и т. Д.? *
Код, который я пробовал, выглядит следующим образом:
[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);