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);
- 除以上情况外还会存在部分用户在非系统盘也没有写得权限,这种情况让用户自己手动用管理员模式启动软件