【Eelectron-vue】构建桌面应用(21)- Inno Setup CreateProcess failed;code 740 请求的操作需要提升

在前面的文章中提到过,我是用的是一款名叫Inno Setup的打包安装工具,可以打包成windows安装文件。

在项目收尾的时候,发现使用Inno Setup打包成安装文件后,双击安装文件,执行安装,在最后一步的时候,如果你勾选了Launch 某应用的时候会出现需要提升程序执行权限的问题,如下:
在这里插入图片描述
在网上查了一下,其中微软官网提到需要提升程序的操作权限即需要用管理员权限启动才没有问题,连接查看这里
在这里插入图片描述
然而,我并不想每次用户启动程序的时候都需要右键程序,然后选择管理员权限执行,所以这种官方的这种方式不是我想要的。

在无意间做了这么个尝试,安装之后选择Launch 应用的时候会出现这个错误,当我把错误关闭掉后,然后在双击执行应用,发现并没有这个错误,那么说明这并不是windows的问题,而我程序也并未牵扯到需要提升权限的操作。那么只有一种可能,那就应该是我的打包软件的问题,即Inno Setup的问题。

于是在网上搜索怎么给Inno Setup安装的软件提供启动时的管理员权限

发现网上还是有不少教程的,来看一下具体怎么操作。

首先你需要下载一个可以查看二进制文件的工具,因为我们需要去编辑Inno Setup中的二进制文件,所以需要下载Resource HackerTM连接

下载之后打开Resource HackerTM,然后打开Inno Setup的安装目录,找到SetupLdr.e32文件,打开。

如果你忘了软件的具体的安装目录,可以右键该软件,查看属性,就可以看到具体的安装目录:
在这里插入图片描述

因为Resource HackerTM 默认打开的是.res.exe.dll等格式的文件,所以第一次打开的时候,是看不到SetupLdr.e32文件的,所以你需要切换成所有格式的文件。

点击File->Open,选择Inno Setup的安装目录
在这里插入图片描述

如下,这样就能看到SetupLdr.e32这个文件了,然后选择打开。
在这里插入图片描述
打开后,找到requestedExecutionLevel,并将其修改为管理员权限
在这里插入图片描述

<requestedExecutionLevel level="asInvoker"  uiAccess="false"/>
// 改为
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

最后,点击编辑,并保存
在这里插入图片描述
最后,你可以使用Inno Setup再次进行应用的打包,打包之后安装勾选Launch 应用,就不会再出现这个错误了。

还有一个问题待研究,为了安全考虑,一般安装的程序不会让它去获取管理员权限,否则你的计算机可能处于危险状态。

Inno Setup既然可配置管理员权限,那么是不是也可以取消程序第一次Launch的时候,不需要管理员权限就能执行呢?研究之后,下片文章再讲。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值