Перейти к основному содержанию

screen

Предоставляет информацию о размере экрана, дисплеях, позиции курсора.

Process: Main

Этот модуль нельзя использовать до тех пор, пока событие ready в app не будет готово к использованию.

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:

// 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')
})

Другой пример создания окна на внешнем дисплее:

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] Screen coordinates used by this module are Point structures. There are two kinds of coordinates available to the process:

  • Physical screen points are raw hardware pixels on a display.
  • Device-independent pixel (DIP) points are virtualized screen points scaled based on the DPI (dots per inch) of the display.

События

Объект screen имеет следующие события:

Событие: 'display-added'

Возвращает:

  • Событие типа event
  • newDisplay Display

Возникает при добавлении newDisplay.

Событие: 'display-removed'

Возвращает:

  • Событие типа event
  • oldDisplay Display

Возникает при удалении oldDisplay.

Событие: 'display-metrics-changed'

Возвращает:

  • Событие типа event
  • display Display
  • changedMetrics string[]

Возникает при изменении одной или нескольких метрик в display. changedMetrics является массивом строк, описывающих изменения. Possible changes are bounds, workArea, scaleFactor and rotation.

Методы

Модуль screen имеет следующие методы:

screen.getCursorScreenPoint()

Returns Point

Текущее абсолютное положение указателя мыши.

[!NOTE] The return value is a DIP point, not a screen physical point.

screen.getPrimaryDisplay()

Returns Display - The primary display.

screen.getAllDisplays()

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

screen.getDisplayNearestPoint(point)

Returns Display - The display nearest the specified point.

screen.getDisplayMatching(rect)

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

screen.screenToDipPoint(point) Windows Linux

Returns Point

Преобразует физическую точку экрана в точку DIP экрана. Масштаб DPI выполняется относительно отображения, содержащего физическую точку.

Not currently supported on Wayland - if used there it will return the point passed in with no changes.

screen.dipToScreenPoint(point) Windows Linux

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.

Not currently supported on Wayland.

screen.screenToDipRect(window, rect) Windows

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

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.