win7及以上系统存在用户权限得问题,权限分为管理员与当前用户,假设当前用户为lilei,在当前用户未获得管理员权限得情况下,那么在系统盘目录下,只拥有在C:\Users\lilei\目录下得读写权限,其他目录只拥有读的权限,目前客户得机器大部分都是这种情况;
当用户创建了一个网络磁盘链接时,会出现如下情况
- a.exe使用asInvoker编译,双击运行后,调用QFileDialog可以访问网络磁盘;若是选中exe右键使用管理员启动,无法访问网络磁盘;
- a.exe使用requireAdministrator编译,双击运行后,无法访问网络磁盘
当用户需要一个exe调用启动另一个exe(如成果质检),会出现如下情况
- a.exe与b.exe都使用asInvoker编译,或都使用requireAdministrator编译,可以正常通过a.exe启动b.exe;
- a.exe使用requireAdministrator编译,b.exe使用asInvoker编译,可以正常通过a.exe启动b.exe;
- a.exe使用asInvoker编译,b.exe使用requireAdministrator编译,双击a.exe启动后,无法通过a.exe启动b.exe;但是选中a.exe右键使用管理员启动,可以正常通过a.exe启动b.exe;
计划做如下修改
- 所有的exe都按照asInvoker编译;
- 要求在制作安装包得时候将默认安装包设置为%AppData%(即C:\Users\lilei\AppData\Roaming)而非C:\Program Files (x86);
- 除以上情况外还会存在部分用户在非系统盘也没有写得权限,这种情况让用户自己手动用管理员模式启动软件
本文探讨了在Windows 7及以上系统中,普通用户与管理员权限的区别,特别是在网络磁盘访问和程序相互调用时遇到的问题。当程序以不同权限模式编译时,对网络磁盘的访问及程序启动行为会产生变化。解决方案包括:所有exe按asInvoker编译,安装包默认位置改为%AppData%,并针对无写权限用户提供管理员启动选项。

被折叠的 条评论
为什么被折叠?



