如何将参数值传递给正在运行的Electron程序?

时间:2017-08-29 10:55:19

标签: node.js electron

我想将参数值传递给正在运行的Electron程序,但是失败了。请告诉我该怎么做。

我缺少什么?

// package.json
{
    "name": "electron-quick-start",
    "version": "1.0.0",
    "description": "A minimal Electron application",
    "main": "main.js"
    ...
}

以下是主要的处理文件。

// main.js
const electron = require('electron')
const app = electron.app
const console = require('console');
app.console = new console.Console(process.stdout, process.stderr);

let mainWindow

/* Single Instance Check */
var iShouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) {
    if (mainWindow) {
        if (mainWindow.isMinimized()) mainWindow.restore();
        mainWindow.show();
        mainWindow.focus();
    }
    return true;
});
if(iShouldQuit){app.quit();return;}

// Argument value output.
console.log( process.argv )

在命令提示符处执行上述代码会产生以下结果:

CMD> npm start ARG1 ARG2 --enable-logging
[ '{PROJECT_PATH}\\electron.exe',
  '.',
  'ARG1',
  'ARG2' ]

新命令提示符内容:

CMD> npm start ARG3 ARG4 --enable-logging
// "There is no message."

在第二次运行时,不会出现所需的结果。

我想让你知道该怎么做。

**我想要的结果是:**

新命令提示符内容:

// While the program is already running ...
CMD> npm start ARG5 ARG6 --enable-logging
[ '{PROJECT_PATH}\\electron.exe',
  '.',
  'ARG5',
  'ARG6' ]

1 个答案:

答案 0 :(得分:0)

我解决了这个问题!

'makeSingleInstance'的第一个参数值是正确的!

我必须更好地查看手册!

// main.js
/* Single Instance Check */
var iShouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) {

    // Here was the answer I was looking for!
    console.log( commandLine )

    if (mainWindow) {
        if (mainWindow.isMinimized()) mainWindow.restore();
        mainWindow.show();
        mainWindow.focus();
    }
    return true;
});
if(iShouldQuit){app.quit();return;}