Skip to main content

화면 정보 다루기

화면 크기, 디스플레이, 커서 위치 등의 정보를 가져올 수 있다.

프로세스: 메인

이 모듈은 app 모듈의 ready 이벤트가 발생하기 전에는 사용할 수 없다.

screenEventEmitter다.

참고: 렌더러 또는 DevTools에서 window.screen은 예약된 DOM 속성이므로 let { screen } = require('electron')과 같은 코드는 동작하지 않는다.

전체 화면을 채우는 윈도우를 생성하는 예제:

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

이벤트

screen 모듈은 다음과 같은 이벤트를 발생시킨다:

이벤트: 'display-added'

반환값:

newDisplay가 추가되었을 때 발생한다.

이벤트: 'display-removed'

반환값:

oldDisplay가 제거되었을 때 발생한다.

이벤트: 'display-metrics-changed'

반환값:

  • event Event
  • display Display
  • changedMetrics string[]

display에서 하나 이상의 메트릭이 변경될 때 발생한다. changedMetrics는 변경 사항을 설명하는 문자열 배열이다. 가능한 변경 사항은 bounds, workArea, scaleFactor, rotation이다.

메서드

screen 모듈은 다음과 같은 메서드를 제공한다:

screen.getCursorScreenPoint()

Point를 반환한다.

마우스 포인터의 현재 절대 위치를 나타낸다.

참고: 반환 값은 화면 물리적 좌표가 아닌 DIP(Device Independent Pixel) 좌표이다.

screen.getPrimaryDisplay()

Display 타입의 객체를 반환한다. 이 함수는 기본 디스플레이 정보를 제공한다.

screen.getAllDisplays()

현재 사용 가능한 디스플레이 배열을 반환한다. 반환 타입은 Display[]이다.

screen.getDisplayNearestPoint(point)

Display를 반환한다. 지정한 포인트와 가장 가까운 디스플레이를 찾는다.

screen.getDisplayMatching(rect)

Display를 반환 - 제공된 경계와 가장 많이 겹치는 디스플레이를 반환한다.

screen.screenToDipPoint(point) Windows

반환값: Point

화면의 물리적 좌표를 DIP(Density Independent Pixel) 좌표로 변환한다. DPI 스케일링은 물리적 좌표가 위치한 디스플레이를 기준으로 수행된다.

screen.dipToScreenPoint(point) Windows

Point를 반환한다.

화면 DIP(Density Independent Pixel) 포인트를 실제 화면의 물리적 포인트로 변환한다. DPI 스케일은 DIP 포인트가 위치한 디스플레이를 기준으로 수행된다.

screen.screenToDipRect(window, rect) Windows

Rectangle을 반환한다.

화면의 물리적 사각형(rect)을 화면 DIP 사각형으로 변환한다. DPI 스케일링은 window와 가장 가까운 디스플레이를 기준으로 수행된다. window가 null인 경우, rect와 가장 가까운 디스플레이를 기준으로 스케일링이 이루어진다.

screen.dipToScreenRect(window, rect) Windows

Rectangle을 반환한다.

화면 DIP(Density Independent Pixel) 사각형을 물리적 화면 사각형으로 변환한다. DPI 스케일링은 window와 가장 가까운 디스플레이를 기준으로 수행된다. window가 null인 경우, rect와 가장 가까운 디스플레이를 기준으로 스케일링이 진행된다.