我的代码是用Delphi 7编写的,但我认为它不起作用。
我尝试使用WriteFile覆盖文件的内容。 除了编写“.dll”文件并且防病毒处于活动状态时,它才能正常工作。
防病毒软件似乎阻止了该dll的覆盖。 但是,最糟糕的是我必须重新启动PC,因为我的应用程序被阻止,任务管理器被阻止,Windows资源管理器被阻止等等。
我该如何防止这种情况?
有什么想法吗?
答案 0 :(得分:3)
根据其他人对如何解决AntiVirus问题的说法,在您的代码中,您还可以使用重叠I / O在WriteFile()
上设置超时,以确保您的代码不会再出现死锁再次抬起丑陋的脑袋。如果重叠操作超时,您可以使用CancelIo()
取消,然后将问题报告给用户。
答案 1 :(得分:0)
如果将数字签名添加到可执行文件中,则触发防病毒的可能性就会降低。很多delphi程序被反病毒软件误用,D7最差。
不确定您要写入dll的内容。反病毒不喜欢PE之外的额外数据。
如果您只需要更新dll,请尝试重命名旧dll,然后写一个新文件,之后删除旧文件。