メインコンテンツへ飛ぶ

screen

画面サイズ、ディスプレイ、カーソルの位置などについての情報を取得します。

Process: Main

app モジュールの ready イベントが発生するまでは、このモジュールは使用できません。

screenEventEmitter です。

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

以下は画面全体を埋めるウインドウを作成する例です。

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

戻り値:

newDisplay が追加されたときに発生します。

イベント: 'display-removed'

戻り値:

oldDisplay が削除されたときに発生します。

イベント: 'display-metrics-changed'

戻り値:

  • event 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.