乐闻世界logo
搜索文章和话题

How can I get Screen from BrowserWindow in Electron

6 个月前提问
5 个月前修改
浏览次数53

1个答案

1

在Electron中,如果我们要从BrowserWindow获取屏幕的信息,一种常用的方法是使用screen模块,该模块提供了用于获取有关屏幕尺寸、显示器信息的接口。以下是一个如何实现这一功能的步骤和示例:

步骤 1: 引入必要的模块

在你的Electron主进程中,需要引入appBrowserWindow来创建窗口,screen模块来获取屏幕信息。示例代码如下:

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

步骤 2: 等待应用准备就绪

在创建窗口之前,应确保Electron应用已经完全载入:

javascript
app.whenReady().then(createWindow);

步骤 3: 创建窗口并获取屏幕信息

createWindow函数中,你可以创建一个BrowserWindow的实例,并利用screen模块获取屏幕信息。例如,获取主显示器的尺寸,并据此设定窗口大小:

javascript
function createWindow() { // 获取主显示器的屏幕尺寸 const { width, height } = screen.getPrimaryDisplay().workAreaSize; // 创建浏览器窗口。 const mainWindow = new BrowserWindow({ width: width, height: height }); // 加载应用的 index.html。 mainWindow.loadFile('index.html'); // 打开开发者工具 mainWindow.webContents.openDevTools(); }

例子: 根据屏幕信息调整窗口位置

如果你想让窗口出现在屏幕的右下角,可以计算得出窗口的初始位置:

javascript
function createWindow() { const { width, height } = screen.getPrimaryDisplay().workAreaSize; // 设定窗口大小为屏幕的一半 const windowWidth = width / 2; const windowHeight = height / 2; // 创建浏览器窗口 const mainWindow = new BrowserWindow({ width: windowWidth, height: windowHeight, x: width - windowWidth, // 右对齐 y: height - windowHeight // 底对齐 }); mainWindow.loadFile('index.html'); mainWindow.webContents.openDevTools(); }

总结

这样,你就可以在创建Electron窗口时根据屏幕的实际情况动态调整窗口的尺寸和位置了。这个功能特别适合开发多屏应用或需要适应不同显示设备的应用。

2024年6月29日 12:07 回复

你的答案