화면 정보 다루기
화면 크기, 디스플레이, 커서 위치 등의 정보를 가져올 수 있다.
프로세스: 메인
이 모듈은 app
모듈의 ready
이벤트가 발생하기 전에는 사용할 수 없다.
screen
은 EventEmitter다.
참고: 렌더러 또는 DevTools에서 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')
}
})
이벤트
screen
모듈은 다음과 같은 이벤트를 발생시킨다:
이벤트: 'display-added'
반환값:
event
EventnewDisplay
Display
newDisplay
가 추가되었을 때 발생한다.
이벤트: 'display-removed'
반환값:
event
EventoldDisplay
Display
oldDisplay
가 제거되었을 때 발생한다.
이벤트: 'display-metrics-changed'
반환값:
event
Eventdisplay
DisplaychangedMetrics
string[]
display
에서 하나 이상의 메트릭이 변경될 때 발생한다. changedMetrics
는 변경 사항을 설명하는 문자열 배열이다. 가능한 변경 사항은 bounds
, workArea
, scaleFactor
, rotation
이다.
메서드
screen
모듈은 다음과 같은 메서드를 제공한다:
screen.getCursorScreenPoint()
Point를 반환한다.
마우스 포인터의 현재 절대 위치를 나타낸다.
참고: 반환 값은 화면 물리적 좌표가 아닌 DIP(Device Independent Pixel) 좌표이다.
screen.getPrimaryDisplay()
Display 타입의 객체를 반환한다. 이 함수는 기본 디스플레이 정보를 제공한다.
screen.getAllDisplays()
현재 사용 가능한 디스플레이 배열을 반환한다. 반환 타입은 Display[]이다.
screen.getDisplayNearestPoint(point)
point
Point
Display를 반환한다. 지정한 포인트와 가장 가까운 디스플레이를 찾는다.
screen.getDisplayMatching(rect)
rect
Rectangle
Display를 반환 - 제공된 경계와 가장 많이 겹치는 디스플레이를 반환한다.
screen.screenToDipPoint(point)
Windows
point
Point
반환값: Point
화면의 물리적 좌표를 DIP(Density Independent Pixel) 좌표로 변환한다. DPI 스케일링은 물리적 좌표가 위치한 디스플레이를 기준으로 수행된다.
screen.dipToScreenPoint(point)
Windows
point
Point
Point를 반환한다.
화면 DIP(Density Independent Pixel) 포인트를 실제 화면의 물리적 포인트로 변환한다. DPI 스케일은 DIP 포인트가 위치한 디스플레이를 기준으로 수행된다.
screen.screenToDipRect(window, rect)
Windows
window
BrowserWindow | nullrect
Rectangle
Rectangle을 반환한다.
화면의 물리적 사각형(rect)을 화면 DIP 사각형으로 변환한다. DPI 스케일링은 window
와 가장 가까운 디스플레이를 기준으로 수행된다. window
가 null인 경우, rect
와 가장 가까운 디스플레이를 기준으로 스케일링이 이루어진다.
screen.dipToScreenRect(window, rect)
Windows
window
BrowserWindow | nullrect
Rectangle
Rectangle을 반환한다.
화면 DIP(Density Independent Pixel) 사각형을 물리적 화면 사각형으로 변환한다. DPI 스케일링은 window
와 가장 가까운 디스플레이를 기준으로 수행된다. window
가 null인 경우, rect
와 가장 가까운 디스플레이를 기준으로 스케일링이 진행된다.