2

我正在尝试从我的电子应用程序动态安装 Windows 服务。
为此,我正在使用节点模块“node-windows”。

这看起来像这样:

service = new Service({
    name: 'Watcher',
    description: 'Watcher',
    script: 'Watcher.js',
    env: {
        name: "SettingsPath",
        value: storage.getDataPath()
    }
});

service.on('install',function(){
    service.start();
});

service.install();

这在我的开发机器上运行良好。
该应用程序请求创建服务的权限并顺利安装。

我的问题
如果我将应用程序编译为 exe,应用程序不会向我请求权限并打印错误

Permission Denied. Requires administrative privileges.

该应用程序当时成功创建了服务 exe,并且不再执行任何操作。

好的,所以我以管理员权限启动了该应用程序以测试此行为。
很好,该应用程序没有显示任何错误,创建服务 exe并且 ahhhhhh安装了服务NOT

提问
为什么app在编译的时候不再请求权限?
为什么编译应用时没有安装服务?

如果您需要任何其他信息,请给我写评论。感谢您的宝贵时间。

4

1 回答 1

0

node-windows 中 elevate.cmd 的路径对于电子应用程序不正确。
我在这里记录了麻烦的方式

发现使用 node-windows 包还有一些问题:

  • 不能使用电子 asar 文件中的脚本(排除文件或禁用 asar)
  • 生成的服务配置的可执行路径错误(它是打包的应用程序可执行文件,但必须是 node.exe 或等效的可执行文件)
  • 如果安装了 node.js,服务将仅在目标系统上运行,或者您提供等效的
于 2020-06-17T21:02:34.767 回答