代码之家  ›  专栏  ›  技术社区  ›  Ed Swangren

如何获取当前的Windows主题名称?

c#
  •  0
  • Ed Swangren  · 技术社区  · 17 年前

    我试图用C#获得当前的Windows主题名称,但结果比预期的要难一些。我有一个来自MSDN的代码示例:

    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);
    


    系统。窗户。形式。视觉样式。VisualStyleInformation类,但它充满了空值。有人知道怎么做吗?我一定错过了一些简单的东西,但我还没有找到任何有效的东西。

    2 回复  |  直到 17 年前
        1
  •  3
  •   Xn0vv3r    17 年前

    That article on CodeProject

    它包含如何做到这一点的示例代码。

        2
  •  -1
  •   Wenff Wenff    17 年前