4. screen
2017-03-21 本文已影响45人
Shmily落墨
原文:https://github.com/electron/electron/blob/master/docs/api/screen.md
译者:Lin
检索关于屏幕大小、显示器、光标位置等信息。
你不可以在app模块分发ready事件之前引用或使用这个模块。
screen是一个EventEmitter。
注意:在渲染器或开发工具中,window.screen是一个被存储着的DOM属性,所以写let {screen} = require('electron')是无效的。
创建一个充满整个屏幕的窗口的例子:
const electron = require('electron')
const {app, BrowserWindow} = electron
let win
app.on('ready', () => {
const {width, height} = electron.screen.getPrimaryDisplay().workAreaSize
win = new BrowserWindow({width, height})
win.loadURL('https://github.com')
})
在外接显示器中创建一个窗口的例子:
const electron = require('electron')
const {app, BrowserWindow} = require('electron')
let win
app.on('ready', () => {
let displays = electron.screen.getAllDisplays()
let 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'
返回值为:
-
eventEvent类型 -
newDisplayDisplay类型
当newDisplay已经被添加的时候分发这个事件。
事件: 'display-removed'
返回值为:
-
eventEvent类型 -
oldDisplayDisplay类型
当oldDisplay已经被移除的时候分发这个事件。
事件: 'display-metrics-changed'
返回值为:
-
eventEvent类型 -
displayDisplay类型 -
changedMetricsString[]类型
当在一个display钟一个或多个度量改变的时候这个事件被分发。changedMetrics是一个描述变化的字符串组成的数组。可能的改变有bounds、workArea、scaleFactor和rotation。
方法
screen模块有以下方法:
screen.getCursorScreenPoint()
返回值为Object类型:
-
xInteger类型 -
yInteger类型
鼠标指针的当前绝对位置。
screen.getPrimaryDisplay()
返回值为Display类型 - 主显示器。
screen.getAllDisplays()
返回值为Display[]类型 - 目前可用的所有显示器组成的数组。
screen.getDisplayNearestPoint(point)
-
pointObject类型-
xInteger类型 -
yInteger类型
-
返回值为Display类型 - 最接近指定点的显示器。
screen.getDisplayMatching(rect)
-
rectRectangle类型
返回值为Display - 最靠近指定位置范围的显示器。