如何使用Node.js/Electron确定Windows 10暗模式?

如何使用Node.js/Electron确定Windows 10暗模式?,node.js,windows,user-interface,Node.js,Windows,User Interface,Windows 10周年纪念更新引入了一种暗模式,大多数支持应用将其调色板更改为暗。我想使用Node.js或Electron来确定是否启用了该设置,以便在默认情况下可以适当地选择启动应用程序的主题。执行此操作的最佳方法是什么?我可以想到的一个选项是读取以下注册表项: HKEY\U CURRENT\U USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme从electron 6.0.0(

Windows 10周年纪念更新引入了一种暗模式,大多数支持应用将其调色板更改为暗。我想使用Node.js或Electron来确定是否启用了该设置,以便在默认情况下可以适当地选择启动应用程序的主题。执行此操作的最佳方法是什么?

我可以想到的一个选项是读取以下注册表项:
HKEY\U CURRENT\U USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme
electron 6.0.0(和chromium 76)
媒体查询
首选配色方案可以用于检测如下暗/亮模式:

@媒体屏幕和(首选配色方案:灯光)、屏幕和(首选配色方案:无首选){
/*轻主题*/
身体{
颜色:黑色;
背景色:白色;
}
}
@媒体屏幕和(首选颜色方案:深色){
/*黑暗主题*/
身体{
颜色:白色;
背景色:黑色;
}
}
您还可以按如下程序检查暗模式:

if (window.matchMedia('(prefers-color-scheme:dark)').matches) {
    console.log('dark');
}
else {
    console.log('light or no-preference');
}

演示:

很有趣!!这将适用于除我之外的大多数情况:(,我正在尝试创建一个位于任务栏中的应用程序(使用托盘模块),在我的情况下)不需要渲染器进程,无需调用
matchMedia
函数的
window
对象,如果您了解任何相关信息,我将非常感谢您,也感谢您分享这一点,因为它在将来会非常有帮助。