跳到主要内容

screen

screen 提供显示器信息,用于把窗口放回正确的屏幕、处理缩放和多显示器。必须在 ready 之后使用。

文档:https://www.electronjs.org/docs/latest/api/screen

常用方法​

const { screen } = require('electron');

const primary = screen.getPrimaryDisplay();
const all = screen.getAllDisplays();
const current = screen.getDisplayMatching(win.getBounds());

每台显示器上常用的字段:

字段含义
bounds显示器在虚拟桌面中的位置和大小
workArea去掉任务栏、Dock 之后的可用区域
scaleFactor设备像素比
id当前这次连接中的编号,重连后可能变化

screen.getCursorScreenPoint() 返回鼠标所在的点,用来决定新窗口出现在哪块屏上。

事件​

display-added、display-removed、display-metrics-changed 在插拔显示器或分辨率变化时触发。恢复窗口位置时,先看保存的矩形是否和某一台显示器的 workArea 相交。没有交集时,放到主显示器中央,避免窗口出现在已经拔掉的屏幕上。

尺寸使用 DIP(与设备无关的像素),不是物理像素。scaleFactor 为 2 时,逻辑上的 100 像素对应 200 个物理像素。

相关文档​