void KisCefBrowserProcessHandler::OnBeforeChildProcessLaunch(CefRefPtr<CefCommandLine> cmdLine) {
cmdLine->AppendSwitchWithValue("disable-features", "DarkMode");
}
Where would I set this switch?
magreenblatt wrote:Another currently available option is to implement the context menus using JavaScript instead of using the default native menus.
// Code was taken from https://github.com/komiyamma/win32-darkmode
void restoreLightMode()
{
enum class PreferredAppMode { Default, AllowDark, ForceDark, ForceLight };
using fnRtlGetNtVersionNumbers = void (WINAPI *)(LPDWORD major, LPDWORD minor, LPDWORD build);
using fnAllowDarkModeForApp = bool (WINAPI *)(bool allow); // ordinal 135, in 1809
using fnSetPreferredAppMode = PreferredAppMode(WINAPI *)(PreferredAppMode appMode); // ordinal 135, in 1903
auto hNTDLL = GetModuleHandleW(L"ntdll.dll");
if (hNTDLL)
{
auto RtlGetNtVersionNumbers = reinterpret_cast<fnRtlGetNtVersionNumbers>(GetProcAddress(hNTDLL, "RtlGetNtVersionNumbers"));
if (RtlGetNtVersionNumbers)
{
DWORD major, minor, buildNumber;
RtlGetNtVersionNumbers(&major, &minor, &buildNumber);
buildNumber &= ~0xF0000000;
if (major >= 10 && (
buildNumber == 17763 || // 1809
buildNumber == 18362 || // 1903
buildNumber == 18363 || // 1909
buildNumber == 19041 || // 2004
buildNumber >= 19042 // over 2009
))
{
HMODULE hUxtheme = LoadLibraryExW(L"uxtheme.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32);
if (hUxtheme)
{
auto ord135 = GetProcAddress(hUxtheme, MAKEINTRESOURCEA(135));
if (buildNumber < 18362)
{
auto AllowDarkModeForApp = reinterpret_cast<fnAllowDarkModeForApp>(ord135);
AllowDarkModeForApp(false);
}
else
{
auto SetPreferredAppMode = reinterpret_cast<fnSetPreferredAppMode>(ord135);
SetPreferredAppMode(PreferredAppMode::ForceLight);
}
}
}
}
}
}
Users browsing this forum: No registered users and 195 guests