当前位置: 首页 > 文档资料 > Electron 中文文档 >

screen

优质
小牛编辑
162浏览
2023-12-01

检索有关屏幕大小、显示器、光标位置等的信息。

进程:主进程

app 模块发出 ready 事件之前, 您不能引用或者使用此模块。

screen 是一个 EventEmitter.

注意: 在 renderer/DevTools 中, window.screen 是一个保留的 DOM 属性, 因此编写 let { screen } = require('electron') 将不起作用。

创建填充整个屏幕的窗口的示例:

const electron = require('electron')
const { app, BrowserWindow } = electron
let win
app.on('ready', () => {
  const { width, height } = electron.screen.getPrimaryDisplay().workAreaSize
  win = new BrowserWindow({ width, height })
  win.loadURL('https://github.com')
})

另一个在外部显示器中创建窗口的例子

const electron = require('electron')
const { app, BrowserWindow } = require('electron')
let win
app.on('ready', () => {
  let displays = electron.screen.getAllDisplays()
  let 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')
  }
})

Retrieve information about screen size, displays, cursor position, etc.

Process: Main

You cannot require or use this module until the ready event of the app module is emitted.

screen is an EventEmitter.

Note: In the renderer / DevTools, window.screen is a reserved DOM property, so writing let { screen } = require('electron') will not work.

An example of creating a window that fills the whole screen:

const electron = require('electron')
const { app, BrowserWindow } = electron
let win
app.on('ready', () => {
  const { width, height } = electron.screen.getPrimaryDisplay().workAreaSize
  win = new BrowserWindow({ width, height })
  win.loadURL('https://github.com')
})

Another example of creating a window in the external display:

const electron = require('electron')
const { app, BrowserWindow } = require('electron')
let win
app.on('ready', () => {
  let displays = electron.screen.getAllDisplays()
  let 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')
  }
})

事件

screen模块触发以下事件:

Events

The screen module emits the following events:

Event: 'display-added'

返回:

  • event Event
  • newDisplay Display

当新的窗口newDisplay被添加的时候触发。

Event: 'display-added'

Returns:

  • event Event
  • newDisplay Display

Emitted when newDisplay has been added.

Event: 'display-removed'

返回:

  • event Event
  • oldDisplay Display

当旧的窗口oldDisplay被移除的时候触发。

Event: 'display-removed'

Returns:

  • event Event
  • oldDisplay Display

Emitted when oldDisplay has been removed.

Event: 'display-metrics-changed'

返回:

  • event Event
  • display Display
  • changedMetrics String[]

display中的一个或多个值发生改变时发出。 changedMetrics是描述更改信息的字符串数组。 可能改变的值有bounds, workArea, scaleFactorrotation.

Event: 'display-metrics-changed'

Returns:

  • event Event
  • display Display
  • changedMetrics String[]

Emitted when one or more metrics change in a display. The changedMetrics is an array of strings that describe the changes. Possible changes are bounds, workArea, scaleFactor and rotation.

方法

screen模块有以下方法:

Methods

The screen module has the following methods:

screen.getCursorScreenPoint()

返回 Point

当前鼠标的绝对位置。

screen.getCursorScreenPoint()

Returns Point

The current absolute position of the mouse pointer.

screen.getPrimaryDisplay()

返回主窗口Display

screen.getPrimaryDisplay()

Returns Display - The primary display.

screen.getAllDisplays()

返回一个窗口数组Display[],表示当前可用的窗口。

screen.getAllDisplays()

Returns Display[] - An array of displays that are currently available.

screen.getDisplayNearestPoint(point)

  • point Point

返回离指定点最近的一个窗口Display

screen.getDisplayNearestPoint(point)

  • point Point

Returns Display - The display nearest the specified point.

screen.getDisplayMatching(rect)

  • rect Rectangle

返回离指定的图形最密切相交一个窗口Display

screen.getDisplayMatching(rect)

  • rect Rectangle

Returns Display - The display that most closely intersects the provided bounds.

screen.screenToDipPoint(point) Windows

  • point Point

返回 Point

Converts a screen physical point to a screen DIP point. The DPI scale is performed relative to the display containing the physical point.

screen.screenToDipPoint(point) Windows

  • point Point

Returns Point

Converts a screen physical point to a screen DIP point. The DPI scale is performed relative to the display containing the physical point.

screen.dipToScreenPoint(point) Windows

  • point Point

返回 Point

Converts a screen DIP point to a screen physical point. The DPI scale is performed relative to the display containing the DIP point.

screen.dipToScreenPoint(point) Windows

  • point Point

Returns Point

Converts a screen DIP point to a screen physical point. The DPI scale is performed relative to the display containing the DIP point.

screen.screenToDipRect(window, rect) Windows

  • window BrowserWindow | null
  • rect Rectangle

返回 Rectangle

Converts a screen physical rect to a screen DIP rect. The DPI scale is performed relative to the display nearest to window. If window is null, scaling will be performed to the display nearest to rect.

screen.screenToDipRect(window, rect) Windows

  • window BrowserWindow | null
  • rect Rectangle

Returns Rectangle

Converts a screen physical rect to a screen DIP rect. The DPI scale is performed relative to the display nearest to window. If window is null, scaling will be performed to the display nearest to rect.

screen.dipToScreenRect(window, rect) Windows

  • window BrowserWindow | null
  • rect Rectangle

返回 Rectangle

Converts a screen DIP rect to a screen physical rect. The DPI scale is performed relative to the display nearest to window. If window is null, scaling will be performed to the display nearest to rect.

screen.dipToScreenRect(window, rect) Windows

  • window BrowserWindow | null
  • rect Rectangle

Returns Rectangle

Converts a screen DIP rect to a screen physical rect. The DPI scale is performed relative to the display nearest to window. If window is null, scaling will be performed to the display nearest to rect.