我想在C#中獲取當前的Windows主題名稱,但事實證明它比預期的要困難得多。我有一個來自MSDN的代碼示例:如何獲取當前的Windows主題名稱?
public void Test()
{
StringBuilder themeFileName = new StringBuilder(0x200);
GetCurrentThemeName(themeFileName, themeFileName.Capacity, null, 0, null, 0);
string fileName = Path.GetFileName(VisualStyleInformation.ThemeFilename);
if (string.Equals("aero.msstyles", fileName, StringComparison.OrdinalIgnoreCase))
{
// user is using aero theme
}
}
[DllImport("uxtheme.dll", CharSet = CharSet.Auto)]
public static extern int GetCurrentThemeName(StringBuilder pszThemeFileName, int
dwMaxNameChars, StringBuilder pszColorBuff, int dwMaxColorChars,
StringBuilder pszSizeBuff, int cchMaxSizeChars);
GetCurrentTheme()不修改StringBuilder。我也嘗試過查看System.Windows.Forms.VisualStyles.VisualStyleInformation類的
,但它充滿了空值。有人知道怎麼做嗎?我必須錯過一些簡單的東西,但我還沒有發現任何可行的東西。
謝謝,我沒有看到那一個。閱讀... – 2009-02-13 06:52:12