问题: 使用inno setup打包我们发布的程序test.exe,在安装结束后,勾选了Launch xxx运行程序,然后出现如下报错:

Unable to execute file:xxx

CreateProcess failed;code 740.

请求的操作需要提升。

在这里插入图片描述

报错原因: 下面是test.exe的2个图标,带盾牌的是具备管理员权限,不带盾牌的为普通程序。

在这里插入图片描述
在这里插入图片描述

  • 打包普通程序时,安装结束不会报错;
  • 打包带管理员权限程序时,安装结束才会报错。

个人猜测可能是因为在执行安装包时,安装包不带管理员权限,所以在安装结束后去启动不带管理员权限的test.exe,可以正常执行。

但是,如果去执行带管理员权限的test.exe,就会有权限问题。

解决思路: 所以,我们需要将安装包也具备管理员权限,让安装包以管理员权限运行。

具体实施步骤如下:

让inno setup生成的安装包带管理员权限

1、下载Resource Hacker

下载地址:http://www.angusj.com/resourcehacker/

在这里插入图片描述

2、修改SetupLdr.e32文件

右键管理员权限运行ResourceHacker.exe,选择File->Open,找到Inno Setup安装目录下的SetupLdr.e32文件。

在这里插入图片描述

将”asInvoker”改为”requireAdministrator”

在这里插入图片描述

修改后,先选择Action->Modify,然后再File->Save。如下:

在这里插入图片描述

3、重新编译打包脚本

使用inno setup重新编译,生成的安装包,图标会带盾牌。如下:

在这里插入图片描述

 


转自:https://blog.csdn.net/zyhse/article/details/108169479