Skip to main content

화면 정보 다루기

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

프로세스: 메인

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

screen은 EventEmitter다.

참고: 렌더러 또는 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와 가장 가까운 디스플레이를 기준으로 스케일링이 진행된다.