IT分享网

搜索
热搜: 活动 交友 discuz
查看: 1150|回复: 0

Inno Setup打包的程序提升为管理员权限

[复制链接]
发表于 2016-10-10 16:29:57 | 显示全部楼层 |阅读模式
Inno Setup打包的程序在Win7 64位系统上安装,安装步骤最后一步若选中运行程序,会跳出一个错误提示框。
11.jpg
               
这是因为64位win7系统运行程序时需要管理员权限,而打包的文件并没有这个权限就试图直接运行。

解决的办法网上有很多,但都说的不具体。如http://www.cnblogs.com/walker-lc/articles/3470679.html

添加管理员权限

1、在[Setup]节点添加 PrivilegesRequired=admin

2、进入安装目录,找到文件SetupLdr.e32,这是一个二进制配置文件,需要用到ResHacker.exe这个工具修改

   找到<requestedExecutionLevel level="asInvoker" uiAccess="false"/></requestedPrivileges>,

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

删除管理员权限

1、在[Setup]节点添加 PrivilegesRequired=none 或者 PrivilegesRequired=lowest

2、在[Setup]节点修改 DefaultDirName(安装路径)的值,默认可能是DefaultDirName={pf}\{#MyAppName},

  不要带{pf}, {win}, {sys}这些变量值,比如设置成DefaultDirName={localappdata}\{#MyAppName}

因为说的比较笼统,所以网上还是不断有人问同样的问题。这里将以上添加管理员权限的过程细化一下。

1.找到Inno Setup的安装路径,如D:\Program Files\Inno Setup 5,找到SetupLdr.e32文件

2.下载一个eXeScope.exe并打开SetupLdr.e32文件,如图:
22.jpg

3.重新打包软件,安装完后即可以管理员权限运行,且桌面快捷方式效果为:
33.jpg
               
图片是丑了点,不过重点在于黑框中的小盾牌,表示提升权限成功了。


C#程序用Inno Setup打包,以管理员身份运行的处理方法

一、C#项目端的处理

目标:快捷方式有带盾的标识



在源码的Properties目录中找到 app.manifest,将其中level="asInvoker" 改成 level="requireAdministrator"。

如果没有app.manifest文件可以打开项目属性,找到安全性项,勾上启用 ClickOnce 安全设置,这时会生成app.manifest文件,然后再把勾去掉。

重新编译,程序图标就会出现小盾牌,以后会自动以管理员身份运行。



二、Inno Setup端的处理



1、[Setup]段增加

PrivilegesRequired=admin

2、找到INNO安装目录下的SetupLdr.e32文件,将文件的

<security><requestedExecutionLevel level="asInvoker" uiAccess="false"/></requestedPrivileges></security>

改为

<security><requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"><requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges></security>

这样所有被编译出的安装程序在Windows Vista/7/8/10 下启动时就会自动提示需要管理员权限。

注:用ResHacker来修改SetupLdr.e32
已改好的文件.zip (, 已有0积分)    提示:开通VIP会员可免积分下载,非VIP会员需充值积分下载本资源!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2019-10-19 07:30 , Processed in 0.374990 second(s), 37 queries .

  

QQ|Archiver|手机版|小黑屋|IT分享网 ( 苏ICP备15049123号-2 )  

GMT+8, 2019-10-19 07:30 , Processed in 0.374990 second(s), 37 queries .

Powered by Discuz! X3.2 Designed by 999test.cn

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表