electron 电子应用程序应运行作为一个后台进程在windows启动后

nwwlzxa7  于 2023-06-27  发布在  Electron
关注(0)|答案(1)|浏览(202)

app.setLoginItemSettings的openAsHidden属性仅对MAC有效。那么,像Slack这样的电子构建应用程序是如何隐藏启动的,并且只显示在Windows的系统托盘中?他们使用哪种方法?
有没有一种方法可以确定应用程序是由系统启动还是由用户打开的,这样我就可以使用window.hide()和window.show()相应地与dom-ready事件。
我尝试了以下方法来实现它:

app.on("ready", async () => {
  app.setLoginItemSettings({
    openAtLogin: true,
    openAsHidden: true,
    path: exeName,
    args: [
      "--processStart",
      `"${exeName}"`,
      "--process-start-args",
      `"--hidden"`
    ]
  });
})
vlju58qv

vlju58qv1#

此检查工作:

var isLaunchedOnStartup = process.argv.indexOf("--hidden") !== -1;

app.ready内部

if (isLaunchedOnStartup === true) {
  createWindow();
  mainWindow?.hide();
} else {
  createWindow();
  mainWindow?.show();
}

默认情况下,BrowserWindow应该是隐藏的:

mainWindow = new BrowserWindow({show: false});

相关问题