程序安装目录的权限问题

一般情况下,默认的安装目录会是C:\Program Files或C:\Program Files (x86),用户没有修改UAC的话,我们的程序安装到这两个目录下后,对自己目录的文件进行添加/删除等操作是需要权限的,有时候这点很烦人,尤其是我们需要在自己目录写入一些配置的时候。
常用做法是把程序的数据、配置这些需要修改的内容,放到 %userprofile%下去,这里没有权限要求。
解决了这类问题,还是有另一类问题没能解决,就是有时需要对程序进行一些小修复,比如某个文件进行一下升级等等,这个时候就需要动到安装目录了。
弹出权限要求的框是可以解决这种问题,但是有没有更好一些,不打扰用户的做法呢?

其实我们可以在程序即将安装完成时,由安装包把我们的安装目录进行一些权限的修改,让普通用户权限也能对这个目录进行文件添加/删除等操作,这样后续我们程序的修复处理就会方便很多,做升级也会更容易一些。

以NSIS制作的安装包为例,只需要引入 AccessControl这个插件 ,然后在你的安装代码中,在安装目录的文件已经全部创建和释放完毕后,调用下面的函数设置下安装目录的权限即可:
AccessControl::GrantOnFile "$INSTDIR" "(AU)" "FullAccess"
这里的AU表示Authenticated Users用户组

最后我们安装之后,打开安装目录的属性看看,是不是如下所示:


安装目录属性

自己试试往这个目录增加/删除文件,已经不会弹出权限提示框了!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,846评论 0 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,633评论 9 467
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,242评论 2 33
  • 今天做了几组力量练习,汗嗒嗒滴,平时可没这么多汗的。这可能跟天气有关,最近天气很奇怪,中秋已经过了这么久,没有凉嗖...
    柳枝冉冉阅读 799评论 0 0