有没有办法用ElectronJS更改桌面屏幕颜色

时间:2017-07-05 14:23:56

标签: javascript electron

我有一个简单的Electronjs应用程序,我想以某种方式更改桌面屏幕颜色,但我无法找到访问VGA或显示器设置的方法,所以我想知道这是可行的以及如何?

3 个答案:

答案 0 :(得分:0)

只需创建一个全屏浏览器窗口,然后使用BrowserWindow选项将背景颜色设置为您给定的颜色。只需在给出的示例中更改#ABABAB。

const electron = require('electron');
const { app, BrowserWindow } = require('electron');

app.on('ready', () => {
const {width, height} = electron.screen.getPrimaryDisplay().workAreaSize

let win = new BrowserWindow({ fullscreen: true, backgroundColor: 
"#ABABAB" })

});

如果你不想制作全屏"在窗口中,您可以创建一个与屏幕大小相同的窗口,并将其放在所有窗口上。但是,这将覆盖OSX中的菜单栏。

const electron = require('electron');
const { app, BrowserWindow } = require('electron');


app.on('ready', () => {
const {width, height} = electron.screen.getPrimaryDisplay().size
console.log(width + "|" + height);
let win = new BrowserWindow({
        width: width,
        height: height,
        x:0, y:0,
        alwaysOnTop: true,
        frame: false,
        resizable: false,
        backgroundColor: "#ABABAB"
})
win.setAlwaysOnTop(true, "screen-saver");
});

答案 1 :(得分:0)

我找到了一个解决我的问题的简单方法,并且使用了电子通知,当应用程序准备就绪时,我设置了一个通知,其中包含自定义html模板,主体上有一些颜色,不透明度为0.5并设置通知比我的屏幕大,所以我可以肯定它将在整个屏幕上

app.on('ready', () => {
 const maxWidth = electron.screen.getPrimaryDisplay().workAreaSize.width;
 const maxHeigh = electron.screen.getPrimaryDisplay().workAreaSize.heigh;

 // create browser window here and other logic

 const eNotify = require('electron-notify');

 eNotify.setTemplatePath( path-to-template );

 eNotify.setConfig({
  width: maxWidth + 1000,
  height: maxHeight + 1000,
  displayTime: 1000
 });

 eNotify.notify({
  onClickFunc: handleNotificationClick,
  onCloseFunc: handleNotificationClose
 });
})

答案 2 :(得分:-2)

你不能直接用Electron做。但是可以执行其他可以为您执行此操作的命令。由于您可以使用npm包,因此您还可以使用https://www.npmjs.com/package/wallpaper-cli之类的包来设置背景图像。