【问题标题】:Electron app not launching at windows startupWindows 启动时电子应用程序未启动
【发布时间】:2021-09-22 22:30:03
【问题描述】:

我正在使用电子app.setLoginItemSettings(settings) 使我的应用程序在登录时自动启动。这就是我的实现方式:

const executable_path = process.execPath;
const exeName = path.basename(process.execPath);

...

const createWindow = () => {
...

ipcMain.on('close-me', (evt, arg) => {
        var boot = settings.get("startatboot");
        if (boot) {
            app.setLoginItemSettings({
                openAtLogin: true,
                path: executable_path,
                name: exeName,
                args: [
                    '--processStart', `"${exeName}"`,
                    '--process-start-args'
                ]
            })
        } else {
            app.setLoginItemSettings({
                openAtLogin: false,
                openAsHidden: false
            });
        }
        app.quit()
    });
...
};

这会导致寄存器内出现以下内容 (Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)

Test Autorun.exename

C:\Program Files\Test Autorun\Test Autorun.exe --processStart "Test Autorun.exe" --process-start-argsdata

现在在我的 package.json 文件中,我定义了以下内容:

{
    "name": "apptest",
    "productName": "Test Autorun",
    "version": "1.0.0",
    "description": "Test Autorun",
    "main": "src/index.js",
    "scripts": {
        "start": "electron-forge start",
        "package": "electron-forge package",
        "make": "electron-forge make",
        "publish": "electron-forge publish",
        "lint": "echo \"No linting configured\"",
        "build-installer": "electron-builder"
    },
    "build": {
        "appId": "apptest",
...

现在我的问题是应用程序没有在启动时运行,我不知道为什么会发生这种情况,我尝试更改很多值以最终得到这个寄存器内容。之前的所有尝试都在windows startup settings 中显示为不同的程序。

我必须在寄存器中填写我认为正确的数据,但我缺少一些东西,但我不知道它是什么。任何帮助都会大有帮助,谢谢。

编辑:

当我正常启动应用程序时,它总是要求用户允许使用unknown publisher 的应用程序对设备进行更改。我不知道这是否是应用程序在启动时未运行的原因,或者应用程序是否会运行并显示相同的消息等待用户批准。

EDIT2:

它在HKEY_CURRENT_USER而不是HKEY_LOCAL_MACHINE中添加寄存器

【问题讨论】:

    标签: electron registry


    【解决方案1】:

    正如我所怀疑的,它与unknown publisher 弹出窗口有关;因此,当我使用下面显示的以下命令行代码编辑与UAC 相关的注册表项时,应用程序在启动时启动。

    %windir%\System32\reg.exe ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
    

    Source.

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      相关资源
      最近更新 更多