Как выйти из приложения, используя аргументы командной строки внутри Задачи - PullRequest
0 голосов
/ 22 сентября 2019

Я использую электрон 5.0.0, и я пытаюсь использовать Windows JumpList и категорию «Задачи» для выхода из моего электронного приложения.

    {
        program: process.execPath,
        arguments: '--new-window',
        iconPath: process.execPath,
        iconIndex: 0,
        title: 'New Window',
        description: 'Create a new window'
    }
])

Я пытаюсь изменить пример кода с веб-сайта электронов, и мне нужно изменить аргументы

"arguments String - Аргументы командной строки при выполнении программы."

Я знаю, что в Windows есть аргументы, подобные --new-window

Так что мой вопрос: есть ли в Windows что-то, что выйдет из приложения, или мне нужно сделать собственный аргумент, если да, то как мнепродолжайте делать это

Я хочу, чтобы он имел ту же функциональность Skype, см. изображение enter image description here

РЕДАКТИРОВАТЬ:

Я пытался использовать второйсобытие экземпляра, но оно не вызывается, когда пользователь нажимает на задачу

app.setUserTasks([
    {
        program: process.execPath,
        arguments: '--force-quit',
        iconPath: process.execPath,
        iconIndex: 0,
        title: 'Force Quit App',
        description: 'This will close the app instead of minimizing it.'
    }
])
app.on('second-instance', (e, argv)=>{
    console.log("secinst" + argv)
    if(argv === '--force-quit'){
        win.destroy();
    }

})

1 Ответ

1 голос
/ 23 сентября 2019

Если вы задаете задачи следующим образом:

app.setUserTasks([
    {
        program: process.execPath,
        arguments: '--force-quit',
        iconPath: process.execPath,
        iconIndex: 0,
        title: 'Force Quit App',
        description: 'This will close the app instead of minimizing it.'
    }
])

При нажатии запускается новый экземпляр вашего приложения с аргументом командной строки --force-quit.Вы должны обработать этот аргумент.

Ваш вариант использования имеет смысл, только если вы разрешаете запускать единственный экземпляр вашего приложения.Вам нужно получить argv из события second-instance.

const { app } = require('electron')
let myWindow = null

const gotTheLock = app.requestSingleInstanceLock()

if (!gotTheLock) {
  app.quit()
} else {
  app.on('second-instance', (event, argv, workingDirectory) => {
    // Someone tried to run a second instance
    const forceQuit = argv.indexOf("--force-quit") > -1;
    if (forceQuit) app.quit()
  })

  // Create myWindow, load the rest of the app, etc...
  app.on('ready', () => {
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...