gpt4 book ai didi

icons - 在跳转列表中为任务设置图标(Windows)

转载 作者:行者123 更新时间:2023-12-03 12:28:31 34 4
gpt4 key购买 nike

我正在尝试为我的Electron应用程序在Jump List的“任务”部分中设置一个图标。我已经成功在任务栏中设置了一个图标。但我也想在跳转列表的“任务”部分中设置我的图标。我怎样才能做到这一点?

我已经尝试使用app.setUserTask()方法并尝试在JSON文件中设置图标。任务栏中的图标及其自身的图标正在工作。我也尝试使用.ico和.png。

说明和标题有效,所以我想我在执行错误的操作或类似操作。 ico和png图像与我的main.js(用于Electron)位于同一目录中。

app.setUserTasks([
{
program: process.execPath,
arguments: '--new-window',
iconPath: path.join(__dirname,"icon.ico").execPath,
iconIndex: 1,
title: 'myApp',
description: 'myApp'
}
])

最佳答案

首先,看起来您在iconPath中混淆了两件事。根据Electron docs,您可以使用process.execPath来引用应用程序可执行文件或使用任何其他绝对路径。由于path.join返回一个字符串,因此它没有execPath属性。其次,我将iconIndex更改为0。

在Windows 7和Electron 4.1.4上进行了以下测试:

PNG文件似乎根本不起作用-您需要将ICO文件用于跳转列表。此外,无法从asar中获取图标。这意味着您需要直接在文件系统中使用ICO,并且需要提供指向它的绝对路径。

完整的代码示例:

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

let my_path

my_path = "C:\\icon.png" // doesn't work
my_path = "C:\\icon.ico" // works
my_path = process.execPath // works (uses application icon)
my_path = path.join(__dirname, "icon.png") // doesn't work, translates to C:\path\to\app\resources\app.asar\icon.png
my_path = path.join(__dirname, "icon.ico") // doesn't work, translates to C:\path\to\app\resources\app.asar\icon.ico
my_path = path.join(app.getAppPath(), "icon.ico") // doesn't work, translates to C:\path\to\app\resources\app.asar\icon.ico
my_path = path.join(__dirname, "..", "..", "icon.ico") // works if icon.ico is in the same directory
// as the exe "packaged" by electron-packager, assuming icon.ico is copied in


if (os.platform() == "win32") {
app.setUserTasks([{
program: process.execPath,
arguments: '--new-window',
iconPath: my_path,
iconIndex: 0,
title: 'My App',
description: 'Description of myApp'
}])
}

let mainWindow

app.on('ready', () => {
mainWindow = new BrowserWindow()

mainWindow.on('closed', () => {
mainWindow = null
app.quit()
})
})

在这里, doesn't work表示Windows显示默认图标。我确保 icon.pngicon.icoapp.asar中。

关于icons - 在跳转列表中为任务设置图标(Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55734616/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com