用户权限限制导致的功能错误

本文探讨了在Windows 7及以上系统中,普通用户与管理员权限的区别,特别是在网络磁盘访问和程序相互调用时遇到的问题。当程序以不同权限模式编译时,对网络磁盘的访问及程序启动行为会产生变化。解决方案包括:所有exe按asInvoker编译,安装包默认位置改为%AppData%,并针对无写权限用户提供管理员启动选项。

win7及以上系统存在用户权限得问题,权限分为管理员与当前用户,假设当前用户为lilei,在当前用户未获得管理员权限得情况下,那么在系统盘目录下,只拥有在C:\Users\lilei\目录下得读写权限,其他目录只拥有读的权限,目前客户得机器大部分都是这种情况;

当用户创建了一个网络磁盘链接时,会出现如下情况

  1. a.exe使用asInvoker编译,双击运行后,调用QFileDialog可以访问网络磁盘;若是选中exe右键使用管理员启动,无法访问网络磁盘;
  2. a.exe使用requireAdministrator编译,双击运行后,无法访问网络磁盘

当用户需要一个exe调用启动另一个exe(如成果质检),会出现如下情况

  1. a.exe与b.exe都使用asInvoker编译,或都使用requireAdministrator编译,可以正常通过a.exe启动b.exe;
  2. a.exe使用requireAdministrator编译,b.exe使用asInvoker编译,可以正常通过a.exe启动b.exe;
  3. a.exe使用asInvoker编译,b.exe使用requireAdministrator编译,双击a.exe启动后,无法通过a.exe启动b.exe;但是选中a.exe右键使用管理员启动,可以正常通过a.exe启动b.exe;

计划做如下修改

  1. 所有的exe都按照asInvoker编译;
  2. 要求在制作安装包得时候将默认安装包设置为%AppData%(即C:\Users\lilei\AppData\Roaming)而非C:\Program Files (x86);
  3. 除以上情况外还会存在部分用户在非系统盘也没有写得权限,这种情况让用户自己手动用管理员模式启动软件
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值