我的代码是用 Delphi 7 编写的,但我认为它并没有起到特别的作用。
我尝试用 WriteFile 覆盖文件的内容。除非编写“.dll”文件并且防病毒处于活动状态,否则它可以正常工作。
- 打开文件的句柄仍然可以。
- 写入被阻止:WriteFile 函数不返回!
防病毒似乎可以防止覆盖该 dll。但是,最糟糕的是我必须重新启动 PC,因为我的应用程序被阻止、任务管理器被阻止、Windows 资源管理器被阻止等等。
我怎样才能防止这种情况?
有任何想法吗 ?
除了其他人所说的如何解决防病毒问题之外,在您的代码中,您还可以使用重叠 I/O 来设置超时,WriteFile()
以确保您的代码在此问题再次出现时不会死锁。如果重叠操作超时,您可以使用 取消它CancelIo()
,然后将问题报告给用户。
如果您将数字签名添加到您的可执行文件中,则触发防病毒软件的可能性较小。很多delphi程序被杀毒软件误杀,D7最差。
不确定您要写入 dll 的内容。防病毒软件不喜欢 PE 之外的额外数据。
如果您只需要更新一个dll,请尝试重命名旧dll,并编写一个新文件,然后删除旧的。