题
我必须真的知道我的用户正在使用哪个窗口主题。
更准确地说,经典,XP,基本或Aero。 (vista/7 Windows基本主题中的基本主题)
我已经知道如何找到它是否是航空,但是其他人呢?
答案可以使用任何.NET语言(C#,VB.NET或C ++)。
如果您真的必须知道为什么在地球上我需要知道主题,那么您就可以了:
我在表单的标题上有一些浮动按钮,我需要根据Windows主题更改它们的外观。
到目前为止,我设法找到了Aero/Classic。
解决问题后,结果的屏幕截图:
解决方案
您可以通过致电检查主题是否处于活动状态 Isappthemed/等激素 然后通过打电话检查Aero DWMisCompositionEnabled. 。可能还有其他方法!
编辑
逻辑是:
- 我可以导入吗?
IsAppThemed
和IsThemeActive
?如果没有,那么我必须参加Windows Classic(Win9x或Win2k)。 - 有什么
IsAppThemed and IsThemeActive
返回?如果是错误的,那么我必须在Windows Classic中。 - 我可以导入吗?
DwmIsCompositionEnabled
?如果没有,我必须以XP为主题。 - 有什么
DwmIsCompositionEnabled
返回?如果是属实,那么我是Aero,否则我是Windows Basic。
其他提示
您可以在注册表中查看当前主题:
hkey_current_user Software Microsoft 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;
}
不隶属于 StackOverflow