精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
服务方向
联系方式
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究。点名“简易百科”和“闲暇巴”盗用锐英源原创内容。
随着Windows安全机制的加强,对于系统目录c:\windows\system32的控制越来越严格,有管理员权限的软件可以拷贝文件到C:\windows\system32目录,但使用CopyFile时,如果目标文件已经存在,则拷贝不了,拷贝不了使用GetLastError时,获取的错误是5,说没有权限,但客户的环境和要求还必须要实现功能,所以就想办法。
CopyFile的第三个参数在FALSE时,如果目标文件存在,则返回假,表示失败。比如:
BOOL bRet = CopyFile(sSrc, sDest, FALSE);
先是想着删除使用DeleteFile,还是不行,心情悲惨。
最后想了个办法,解决了此问题。这个办法也可以解决非C:\windows\system32目录环境,非常好理解。
搜索引擎上搜索到的文章很多都是提权使用管理员权限来处理,但是这是明显处理不了的,我这个办法肯定可以,需要解决问题请联系锐英源软件,有兴趣看左侧的联系方式。
这个问题是制作一个小众软件的安装包时遇到的,虽然锐英源软件也擅长AdvancedInstall制作软件安装包,但是这个安装包也比较特殊,比较有意思。锐英源非常擅长处理一些架构和细节问题,欢迎合作。