【程序打包工具 Inno Setup】CreateProcess 失败:代码 740(Inno Setup打包的程序提升为管理员权限)
原文参考 https://www.cnblogs.com/SnailProgramer/p/4243666.html
http://blog.csdn.net/x356982611/article/details/50386824/
1、问题描述
Inno Setup打包的程序在Win7 64位系统上安装,安装步骤最后一步若选中运行程序,会跳出一个错误提示框。
这是因为64位win7系统运行程序时需要管理员权限,而打包的文件并没有这个权限就试图直接运行。解决方案:为安装包添加管理员权限。
2、添加管理员权限
(1) 在.iss文件的[Setup]节点添加 PrivilegesRequired=admin
(2) 进入安装目录,找到文件SetupLdr.e32,这是一个二进制配置文件,需要用ResourceHacker.exe这个工具修改
找到<requestedExecutionLevel level="asInvoker" uiAccess="false"/></requestedPrivileges>,
修改为<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/></requestedPrivileges>
(3) 修改资源后别忘了编译一下,然后保存修改后的文件,并替换原来的SetupLdr.e32文件
3、删除管理员权限
(1) 在[Setup]节点添加 PrivilegesRequired=none 或者 PrivilegesRequired=lowest
(2) 在[Setup]节点修改 DefaultDirName(安装路径)的值,默认可能是DefaultDirName={pf}\{#MyAppName},
不要带{pf}, {win}, {sys}这些变量值,比如设置成DefaultDirName={localappdata}\{#MyAppName}