10

使用 Electron 获取应用和用户系统信息

此系列文章的应用示例已发布于 GitHub: electron-api-demos-Zh_CN. 可以 Clone 或下载后运行查看. 欢迎 Star .

使用几个 Node.js 和 Electron 模块, 您可以收集有关用户系统, 应用程序或屏幕的信息.

相关文档的链接位于下面的示例中.

获取应用信息

支持: Win, macOS, Linux | 进程: Both

主进程的 app 模块可用于获取应用程序在用户计算机上的位置.

在这个示例中, 要从渲染器进程获取信息, 我们使用 ipc 模块向主进程发送一条消息, 来请求应用程序的路径.

查看更多 应用模块文档.

渲染器进程

const ipc = require('electron').ipcRenderer

const appInfoBtn = document.getElementById('app-info')

appInfoBtn.addEventListener('click', function () {
  ipc.send('get-app-path')
})

ipc.on('got-app-path', function (event, path) {
  const message = `当前应用程序位于: ${path}`
  document.getElementById('got-app-info').innerHTML = message
})

主进程

const app = require('electron').app
const ipc = require('electron').ipcMain

ipc.on('get-app-path', function (event) {
  event.sender.send('got-app-path', app.getAppPath())
})

获取版本信息

支持: Win, macOS, Linux | 进程: Both

process 模块内置在 Node.js 中(因此您可以在主进程和渲染器进程中使用此模块), 而在 Electron 应用程序中, 此对象还有一些更有用的属性.

下面的示例将获取应用程序正在使用的 Electron 版本.

查看更多 进程文档.

渲染器进程

const versionInfoBtn = document.getElementById('version-info')

const electronVersion = process.versions.electron

versionInfoBtn.addEventListener('click', function () {
  const message = `当前应用正在使用的 Electron 版本: ${electronVersion}`
  document.getElementById('got-version-info').innerHTML = message
})

高级技巧

查找 Chromium, Node.js 和 V8 的版本.

Electron 还在 process.versions 对象中包括 Chromium, Node.js 和 V8 的版本. 您可以通过在 Electron 应用中打开开发人员工具并键入 process.versions 来快速查看.

// 返回正在使用的 Chromium 版本
process.versions.chrome
// 返回正在使用的 V8 版本
process.versions.v8
// 返回正在使用的 Node 版本
process.versions.node

获取系统信息

支持: Win, macOS, Linux | 进程: Both

Node.js 的 os 模块提供了有关用户操作系统的有效信息. 它内置在 Node.js 中, 可以在主进程和渲染器进程中使用.

在下面的示例中, 我们通过模块返回主目录的位置.

在浏览器中查看 完整 os 文档

渲染器进程

const os = require('os')
const homeDir = os.homedir()

const sysInfoBtn = document.getElementById('sys-info')

sysInfoBtn.addEventListener('click', function () {
  const message = `当前系统主目录是: ${homeDir}`
  document.getElementById('got-sys-info').innerHTML = message
})

获取屏幕信息

支持: Win, macOS, Linux | 进程: Both

Electron 的 screen 模块可以获取有关屏幕大小, 显示, 光标位置等信息. 在下面的示例中, 我们将获取所使用的显示器的尺寸.

在浏览器中查看 完整 screen 文档

渲染器进程

const electronScreen = require('electron').screen

const screenInfoBtn = document.getElementById('screen-info')
const size = electronScreen.getPrimaryDisplay().size

screenInfoBtn.addEventListener('click', function () {
  const message = `当前屏幕是: ${size.width}px x ${size.height}px`
  document.getElementById('got-screen-info').innerHTML = message
})

高级技巧

尺寸差异.

示例中的 .size 方法返回屏幕的原始尺寸, 但由于系统菜单栏, 这可能不是您的应用程序的实际可用空间.

要获取可用屏幕空间的大小, 请使用 .workAreaSize 方法. 而使用 .workArea 方法将返回坐标以及可用屏幕空间的尺寸.

如果这边文章对您有帮助, 感谢 下方点赞 或 Star GitHub: electron-api-demos-Zh_CN 支持, 谢谢.


DemoPark
1.1k 声望177 粉丝

Just Full Stack Developer