screen
画面サイズ、ディスプレイ、カーソルの位置などについての情報を取得します。
プロセス: メイン
app モジュールの ready イベントが発生するまでは、このモジュールは使用できません。
screen は EventEmitter です。
[!NOTE] レンダラー / 開発者向けツールでは、
window.screenは予約済みの DOM プロパティなので、let { screen } = require('electron')と書くことはできません。
以下は画面全体を埋めるウインドウを作成する例です。
- main.js
// 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] このモジュールで使用される画面の座標は、
Point構造体です。 この処理で使用できる座標は以下の 2 種類です。
- 物理画面ポイント。ディスプレイ上の生のハードウェアピクセルです。
- デバイス非依存ピクセル (DIP) ポイント。ディスプレイの DPI (ドット毎インチ) に基づいてスケールされた仮想画面ポイントです。
イベント
screen モジュールには以下のイベントがあります。
イベント: 'display-added'
戻り値:
eventEventnewDisplayDisplay
newDisplay が追加されたときに発生します。
イベント: 'display-removed'
戻り値:
eventEventoldDisplayDisplay
oldDisplay が削除されたときに発生します。
イベント: 'display-metrics-changed'
戻り値:
eventEventdisplayDisplaychangedMetricsstring[]
display 内の一つ以上の寸法が変化したときに発生します。 changedMetrics は、変化を示す文字列の配列です。 取りうる変化は bounds、workArea、scaleFactor、rotation です。
メソッド
screen モジュールには以下のメソッドがあります。
screen.getCursorScreenPoint()
戻り値 Point
マウスポインタの現在の絶対位置。
[!NOTE] 戻り値は DIP ポイント単位です。画面の物理ポイント単位ではありません。
screen.getPrimaryDisplay()
戻り値 Display - プライマリディスプレイ。
screen.getAllDisplays()
戻り値 Display[] - 現在利用可能なディスプレイの配列。
screen.getDisplayNearestPoint(point)
pointPoint
戻り値 Display - 指定した点に最も近い display。
screen.getDisplayMatching(rect)
rectRectangle
戻り値 Display - 指定された領域に最も交わるディスプレイ。
screen.screenToDipPoint(point) Windows Linux
pointPoint
戻り値 Point
スクリーン上の物理的な点をスクリーン上の DIP な点に変換します。 DPI スケールは、物理的な点のあるディスプレイに対して相対的なものになります。
Wayland では現在サポートされていません。Wayland で使用すると、渡された点をそのまま返されます。
screen.dipToScreenPoint(point) Windows Linux
pointPoint
戻り値 Point
スクリーン上の DIP な点をスクリーン上の物理的な点に変換します。 DPI スケールは、その DIP の点を含むディスプレイに対して相対的なものになります。
Wayland では現在サポートされていません。
screen.screenToDipRect(window, rect) Windows
windowBrowserWindow | nullrectRectangle
戻り値 Rectangle
スクリーンの物理矩形をスクリーンの DIP 矩形に変換します。 DPI スケールは window に近いディスプレイで相対的に計算されます。 window が null の場合、スケールは rect に近いディスプレイで相対的に計算されます。
screen.dipToScreenRect(window, rect) Windows
windowBrowserWindow | nullrectRectangle
戻り値 Rectangle
スクリーンの DIP 矩形をスクリーンの物理矩形に変換します。 DPI スケールは window に近いディスプレイで相対的に計算されます。 window が null の場合、スケールは rect に近いディスプレイで相対的に計算されます。