解决360等杀毒软件阻止文件替换的问题!

       测试反馈说程序升级的时候主进程的exe总替换不掉,起初以为是升级的时候没有进程没有退出,于是在很多地方添加了检测杀死进程的代码,结果问题依旧,后来才发现是360阻止了exe文件的覆盖,奇葩的是报错说替换会引起系统问题的错误。

      还有一个费解的问题是360好像很有针对性,修改,删除这个exe都不会报错,但是替换就会阻止;

闲话少叙。说下发现:

      开始的时候用的API是

MoveFile(LPCTSTR lpExistingFileName,LPCTSTR lpNewFileName) ;

            int __cdecl rename(_In_z_ const char * _OldFilename, _In_z_ const char * _NewFilename);

      结果报错之后阻止了函数的执行;

      替换成

BOOL CopyFile(  LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists);

         虽然报错但是没有阻止这个API的执行;

猜你喜欢

转载自blog.csdn.net/u012778714/article/details/64439227