📜  ElectronJS 中的 Windows 任务栏操作(1)

📅  最后修改于: 2023-12-03 15:30:36.601000             🧑  作者: Mango

ElectronJS 中的 Windows 任务栏操作

ElectronJS 是一个基于 Chromium 和 Node.js 的桌面应用程序开发框架,可以用它来创建跨平台的桌面应用程序。在 ElectronJS 中,可以使用一些 API 来对任务栏进行操作。

通过任务栏中的菜单操作应用程序

ElectronJS 中的 Menu API 可以用来创建任务栏上的菜单,它可以通过 BrowserWindow 的 setMenu 方法来设置应用程序的菜单。当用户点击任务栏图标时,菜单将显示在任务栏上。

const { app, BrowserWindow, Menu } = require('electron')

let mainWindow

function createWindow () {

  mainWindow = new BrowserWindow({
    width: 800,
    height: 600
  })

  // 创建菜单
  const menu = Menu.buildFromTemplate([
    {
      label: '菜单项 1',
      click() {
        console.log('你单击了菜单项 1')
      }
    },
    {
      label: '菜单项 2',
      submenu: [
        {
          label: '子菜单项 1'
        },
        {
          label: '子菜单项 2'
        }
      ]
    }
  ])

  // 设置菜单
  mainWindow.setMenu(menu)

  mainWindow.loadFile('index.html')

  mainWindow.on('closed', function () {
    mainWindow = null
  })
}

app.on('ready', createWindow)
改变任务栏图标

ElectronJS 中的 Tray API 可以用来操作任务栏图标。可以通过 Tray 类的实例来设置图标和 tooltip。

const { app, BrowserWindow, Tray } = require('electron')
const path = require('path')

let mainWindow

function createWindow () {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600
  })

  mainWindow.loadFile('index.html')

  mainWindow.on('closed', function () {
    mainWindow = null
  })
}

// 当应用程序准备就绪时创建窗口
app.on('ready', () => {
  createWindow()

  // 创建一个 Tray 实例
  const tray = new Tray(path.join(__dirname, 'trayIcon.png'))

  // 设置 tooltip
  tray.setToolTip('这是一个 Electron 应用程序')

  // 点击任务栏图标时显示和隐藏窗口
  tray.on('click', () => {
    if (mainWindow.isVisible()) {
      mainWindow.hide()
    } else {
      mainWindow.show()
    }
  })
})
在任务栏中显示进度条

ElectronJS 中的 Taskbar API 可以用来在任务栏中显示进度条。可以通过 setProgressBar 方法来设置应用程序的进度条。

const { app, BrowserWindow } = require('electron')

let mainWindow

function createWindow () {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600
  })

  mainWindow.loadFile('index.html')

  mainWindow.on('closed', function () {
    mainWindow = null
  })
}

// 当应用程序准备就绪时创建窗口
app.on('ready', () => {
  createWindow()
  
  // 设置进度条
  mainWindow.setProgressBar(0.5)

  // 模拟进度更新
  setInterval(() => {
    if (mainWindow.getProgressBar() < 1) {
      mainWindow.setProgressBar(mainWindow.getProgressBar() + 0.1)
    }
  }, 1000)
})

以上是 ElectronJS 中的一些与任务栏操作相关的 API,开发者可以根据自己的需要在应用程序中使用它们。