它可以通过外部源向app(电子)发送信号吗?

时间:2016-11-14 22:53:29

标签: electron

它可以通过外部源向app(电子)发送信号吗?

Atom通过send line命令添加新项目,例如

atom . -a

我找不到任何例子,甚至在Atom的源代码中也找不到。

更新 是原子启动期间的命令行参数,是一个运行的atom实例。

1 个答案:

答案 0 :(得分:1)

如何解析Electron中的命令行参数?

这与使用process.env解析NodeJS的命令行参数没什么不同。问题has been answered before,所以我在这里不再详述。

如何通过命令行开关与正在运行的Electron实例进行交互

首先,我假设您将可能正在运行的实例的数量限制为单个实例 - 否则您必须找出要与之通信的程序实例(可能通过添加进程ID)到你的命令行参数。)

让我们的代码。对于你的main.js:

var shouldQuit = app.makeSingleInstance(function (commandLine, workingDirectory) {
    if (mainWindow) {
        if (mainWindow.isMinimized()) mainWindow.restore()
        mainWindow.focus()
    }
});

尝试启动第二个实例时会调用此代码段,而是将第一个实例置于焦点。这可以很容易地适用于将commandLine中保存的commandLine参数传递给原始实例。

此外,您还希望阻止第二个实例实际打开并退出:

if (shouldQuit) {
    app.quit();
    return;
}