跳转至

screen

获取有关屏幕尺寸、显示器、光标位置等的信息。

进程:主进程

在 app 模块发出 ready 事件之前,不能使用此模块。

screen 是一个 EventEmitter。

[!NOTE] 在渲染进程 / DevTools 中,window.screen 是一个保留的 DOM 属性,因此编写 let { screen } = require('electron') 将不起作用。

创建一个占满整个屏幕的窗口的示例:

```fiddle docs/fiddles/screen/fit-screen // Retrieve information about screen size, displays, cursor position, etc. // // For more info, see: // https://www.electronjs.org/docs/latest/api/screen

const { app, BrowserWindow, screen } = require('electron/main')

let mainWindow = null

app.whenReady().then(() => { // Create a window that fills the screen's available work area. const primaryDisplay = screen.getPrimaryDisplay() const { width, height } = primaryDisplay.workAreaSize

mainWindow = new BrowserWindow({ width, height }) mainWindow.loadURL('https://electronjs.org') })

另一个在外部显示器上创建窗口的示例:

```js
const { app, BrowserWindow, screen } = require('electron')

let win

app.whenReady().then(() => {
  const displays = screen.getAllDisplays()
  const externalDisplay = displays.find((display) => {
    return display.bounds.x !== 0 || display.bounds.y !== 0
  })

  if (externalDisplay) {
    win = new BrowserWindow({
      x: externalDisplay.bounds.x + 50,
      y: externalDisplay.bounds.y + 50
    })
    win.loadURL('https://github.com')
  }
})

[!NOTE] 本模块使用的屏幕坐标是 Point 结构。 进程中可以使用两种坐标:

  • 物理屏幕点 是显示器上的原始硬件像素。
  • 设备无关像素(DIP)点 是基于显示器的 DPI (每英寸点数)进行缩放的虚拟化屏幕点。

事件

screen 模块会发出以下事件:

事件:'display-added'

返回值:

当 newDisplay 被添加时发出。

事件:'display-removed'

返回值:

当 oldDisplay 被移除时发出。

事件:'display-metrics-changed'

返回值:

  • event 事件
  • display Display
  • changedMetrics string[]

当 display 中的一项或多项指标发生变化时发出。changedMetrics 是一个描述变化的字符串数组。可能的变化包括 bounds、workArea、scaleFactor 和 rotation。

方法

screen 模块具有以下方法:

screen.getCursorScreenPoint()

返回值 Point

鼠标指针的当前绝对位置。

Wayland(Linux)上不支持。

[!NOTE] 返回值是一个 DIP 点,而不是屏幕物理点。

screen.getPrimaryDisplay()

返回值 Display - 主显示器。

screen.getAllDisplays()

返回值 Display[] - 当前可用显示器数组。

screen.getDisplayNearestPoint(point)

返回值 Display - 距离指定点最近的显示器。

screen.getDisplayMatching(rect)

返回值 Display - 与提供的边界最密切相交的显示器。

screen.screenToDipPoint(point) Windows Linux

返回值 Point

将屏幕物理点转换为屏幕 DIP 点。 DPI 缩放相对于包含该物理点的显示器执行。

目前 Wayland 上不支持——如果在那里使用,它将原样返回传入的点。

screen.dipToScreenPoint(point) Windows Linux

返回值 Point

将屏幕 DIP 点转换为屏幕物理点。 DPI 缩放相对于包含该 DIP 点的显示器执行。

目前 Wayland 上不支持。

screen.screenToDipRect(window, rect) Windows

返回值 Rectangle

将屏幕物理矩形转换为屏幕 DIP 矩形。 DPI 缩放相对于距离 window 最近的显示器执行。 如果 window 为 null,则会对距离 rect 最近的显示器执行缩放。

screen.dipToScreenRect(window, rect) Windows

返回值 Rectangle

将屏幕 DIP 矩形转换为屏幕物理矩形。 DPI 缩放相对于距离 window 最近的显示器执行。 如果 window 为 null,则会对距离 rect 最近的显示器执行缩放。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron