• InstallShield安装包在Win7下权限问题的解决方案


    众所周知,win7下的权限问题很让人头疼,最近在用InstallShield给AliProbe打包的时候,同样在win7下遇到了问题。主要的限制是:在安装目录下不能创建文件以及执行任何的写操作。这个问题给程序的正确执行以及后期的更新都带来了不小的困难,为了解决这个限制,尝试了下面几种方案。

            1.更换写文件的目录

            方法:将AliProbe需要写的文件都放在系统盘 用户的“Local Settings /Application Data”目录下。 这是一种常用的方法,软件的配置信息都存放在这个目录,没有权限的问题。

            缺点:此方法只是避开了软件安装目录的权限问题,遇到软件更新等需要安装目录写权限的操作,还是没办法。

            2.尝试向用户索取更高的权限

            方法:在编译程序的时候(VS 2008),配置mainfest文件的requestedPrivileges项为“requestedExecutionLevel level=”requireAdministrator””,这条语句是说软件只能运行在管理员权限下。有了管理员权限,操作当然不会受限了。

            缺点:运行AliProbe时,会弹出一个对话框,大意是说:“运行AliProbe需要管理员权限”,选择了同意才能继续运行。这种方式的用户体验比较差,而且用户会担心AliProbe运行在管理员权限下的安全性问题。

            3.降低安装目录的权限

            鉴于前两种方法的局限性,尝试新的解决方案。因为在win7下,安装软件都是在管理员权限下执行的,所以安装目录默认是管理员权限,如果可以在安装时设置安装目录的权限,权限问题就会迎刃而解。

            方法:InstallShield在打包的时候为我们提供了设置安装目录和文件权限的方法。在Application Data的Files and Folders子项下的ProgramFilesFolder右键properties如图:

    点Permissions:

    在Names下右键New

    选择everyone改为任何人都可以操作即可

  • 相关阅读:
    实验二 顺序结构程序设计
    Cracking the Coding Interview(1)
    zigzag数组,螺旋数组
    程序员面试宝典之输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146
    static成员函数、成员变量
    快捷键
    多态的总结
    单实例设计模式及C++实现
    快速排序代码
    对象初始化
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318216.html
Copyright © 2020-2023  润新知