簡體   English   中英

在跳轉列表中為任務設置圖標(Windows)

[英]Set icon for Task in Jump List (Windows)

我正在嘗試為我的Electron應用程序在跳轉列表的“任務”部分中設置一個圖標。 我已經成功在任務欄中設置了一個圖標。 但是我也想在跳轉列表的“任務”部分中設置我的圖標。 我怎樣才能做到這一點?

我已經嘗試使用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.ico位於app.asar

我知道了 圖標已在任務管理器,任務欄和應用程序中更改,我使用了本主題

我確保.exe和我的img位於同一文件夾中。 我的所有圖標現在都已更改,除了.exe本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM