我有一个简单的Electronjs应用程序,我想以某种方式更改桌面屏幕颜色,但我无法找到访问VGA或显示器设置的方法,所以我想知道这是可行的以及如何?
答案 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之类的包来设置背景图像。