它可以通过外部源向app(电子)发送信号吗?
Atom通过send line命令添加新项目,例如
atom . -a
我找不到任何例子,甚至在Atom的源代码中也找不到。
更新 是原子启动期间的命令行参数,是一个运行的atom实例。
答案 0 :(得分:1)
这与使用process.env
解析NodeJS的命令行参数没什么不同。问题has been answered before,所以我在这里不再详述。
首先,我假设您将可能正在运行的实例的数量限制为单个实例 - 否则您必须找出要与之通信的程序实例(可能通过添加进程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;
}