我必须真知道用户正在使用哪个Windows主题
更确切地说,Classic,XP,Basic或Aero。 (基本主题如Vista / 7 Windows Basic主题)
我已经知道如何找到它是空气动力学,但其他人呢?
答案可以是任何.NET语言(C#,VB.NET或C ++)。
如果你真的必须知道为什么在地球上我需要知道这个主题,那么你去吧:
我在表单的标题上有一些浮动按钮,我需要根据windows主题更改其外观
到目前为止,我已经找到了Aero / Classic。
解决问题后的结果屏幕截图:
答案 0 :(得分:4)
您可以在以下位置检查注册表中的当前主题:
HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \主题
字符串“CurrentTheme”下的,其中包含当前主题的路径。 下面是用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;
}
答案 1 :(得分:3)
您可以致电IsAppThemed / IsThemeActive查看主题是否有效,然后致电DwmIsCompositionEnabled查看Aero。可能还有其他方法可以做到这一点!!
修改
逻辑是:
IsAppThemed
和IsThemeActive
吗?如果不是,那么我必须使用Windows Classic(Win9x或Win2k)。IsAppThemed and IsThemeActive
返回什么?如果为false,那么我必须使用Windows Classic。DwmIsCompositionEnabled
吗?如果不,那么我必须是XP主题。DwmIsCompositionEnabled
返回什么?如果是,那么我是Aero,否则我是Windows Basic。