Theme (Windows): reports basic is DWM is disabled

This commit is contained in:
李通洲
2026-07-17 23:00:31 +08:00
parent 0feec933ea
commit 62180366fc
+22 -15
View File
@@ -1,27 +1,34 @@
#include "theme.h" #include "theme.h"
#include "detection/os/os.h" #include "detection/os/os.h"
#include "detection/displayserver/displayserver.h"
const char* ffDetectTheme(FFThemeResult* result) { const char* ffDetectTheme(FFThemeResult* result) {
const FFOSResult* os = ffDetectOS(); const FFOSResult* os = ffDetectOS();
const FFDisplayServerResult* displayServer = ffConnectDisplayServer();
if (ffStrbufEqualS(&displayServer->wmProcessName, "dwm.exe")) {
uint32_t ver = (uint32_t) ffStrbufToUInt(&os->version, 0); uint32_t ver = (uint32_t) ffStrbufToUInt(&os->version, 0);
if (ver > 1000) { if (ver > 1000) {
// Windows Server // Windows Server
if (ver >= 2016) { if (ver >= 2016) {
ffStrbufSetStatic(&result->theme1, "Fluent"); ffStrbufSetStatic(&result->theme1, "Fluent");
} else if (ver >= 2012) { } else if (ver >= 2012) {
ffStrbufSetStatic(&result->theme1, "Metro"); ffStrbufSetStatic(&result->theme1, "Metro");
} else {
ffStrbufSetStatic(&result->theme1, "Aero");
}
} else { } else {
ffStrbufSetStatic(&result->theme1, "Aero"); if (ver >= 10) {
} ffStrbufSetStatic(&result->theme1, "Fluent");
} else { } else if (ver >= 8) {
if (ver >= 10) { ffStrbufSetStatic(&result->theme1, "Metro");
ffStrbufSetStatic(&result->theme1, "Fluent"); } else {
} else if (ver >= 8) { ffStrbufSetStatic(&result->theme1, "Aero");
ffStrbufSetStatic(&result->theme1, "Metro"); }
} else {
ffStrbufSetStatic(&result->theme1, "Aero");
} }
} else if (ffStrbufEqualS(&displayServer->wmProcessName, "explorer.exe")) {
ffStrbufSetStatic(&result->theme1, "Basic");
} }
return nullptr; return nullptr;
} }