由Kaspersky Antivirus阻止的Delphi程序 需要workarround

前端之家收集整理的这篇文章主要介绍了由Kaspersky Antivirus阻止的Delphi程序 需要workarround前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一段代码,试图在一秒钟内写入磁盘很多文件。然而,它失败wince我已经安装卡巴斯基Anrivirus 2011。
Stream:= TFileStream.Create(sName,fmCreate);

代码完全与卡巴斯基2010年合作,如果我禁用它的扫描仪(它不能完全卸载从内存 – 除非它被卸载)也与卡巴斯基2011。代码也工作如果(卡巴斯基2011运行和)我写到磁盘slooooowly。所以它显然不够快,处理我的磁盘请求。

我得到的错误是EFCreateError(‘不能创建xxx文件blablabla’)。错误随机的。大多数文件都写入磁盘。约10%失败。

我试图得到支持,但是不可能找到一个真正的人在卡巴斯基说话。他们所谓的“支持”实际上是一个FAQ数据库。当然,它谈到如何安装产品和相关的东西。没有关于编程相关的问题。有任何想法吗?

PS:这对整个Delphi社区有影响!如果他们使用KIS 2011作为杀毒软件,我们所有的客户都将无法使用Delphi软件。目前,我建议我的用户禁用他们的防病毒,但我需要一个真正的解决方案。

这将是很好,如果一个人与KIS 2011可以确认的问题。只需创建一个小程序,使用TFileStream将200个小文件写入磁盘。

更新:

>只有当文件不存在并且它被创建(创建而不是覆盖)时,该问题才会出现。
>类似报告:https://forums.embarcadero.com/thread.jspa?threadID=32751&tstart=15
>类似报告:http://forum.kaspersky.com/index.php?showtopic=120561
>我想到的一个可能的解决方案是检测KIS是否正在运行,如果是的话,在每次写入磁盘后放一个延迟。或者在leat,让用户知道可能有问题。任何人都知道如何检测服务是否正在运行?
>我添加了一个延迟650ms(每个文件创建后),该bug仍然存在)。所以不是关于你写入磁盘有多快,而是你写了多少文件
>刚卸载KIS 2011.问题不再出现。
>刚刚重新安装好的旧KIS 2010.错误仍然存​​在,但它很少出现(大约每300个文件,而不是大约30在KIS 2011)。
>问题在第二台计算机上确认。
>新闻:崩溃出现在TFileStream.Create中,但它可能是由前面调用函数引起的:TestWriteAccess。如果我禁用此功能,TFileStream.Create不再失败。嗯,这不会改变太多。无论哪一行代码生成错误,程序仍然失败(随机)在卡巴斯基运行时将文件写入磁盘。
>仍然在等待卡巴斯基的一个真正的人的回应…
>从卡巴斯基支持(我发送电子邮件支持在几个国家)收到更多的自动响应。所有指向常见问题数据库
>我将我的状态从卡巴斯基的粉丝(和客户)改为卡巴斯基的仇恨,因为我终于得到卡巴斯基支持的一个真实人的答案:我引用了“是什么是只有大量的僵尸的回报?”Met vriendelijke groeten,Kaspersky Lab BV Papendorpseweg 77 -79“。卡巴斯基可能确实是一个海盗公司。他们不想回答电子邮件,因为他们知道他们的产品太疯狂,不能修复。

要测试代码,请尝试在循环中使用代码,以创建1000个文件。程序创建一堆文件(随机数),然后它失败在StreamFile:= TFileStream.Create。
更新:问题可以通过在创建每个文件后输入一个小的延迟来修复。

2013更新

从今天下午开始(更新后)KIS与Delphi冲突。
每次我编译一个项目KIS峰值到100%的cpu利用率。我将不得不卸载它。

Delphi 7,Win 7(32),KIS 2011

解决方法

不是解决你的问题的答案,但你应该告知卡巴斯基,也许他们不知道有一个与Delphi库相关的病毒签名。

如果你的程序不是太复杂,你可能想试试拉撒路/ FPC。它不如Delphi好,但我已经使用它几年了,并在Windows / MacOS / Linux有很好的结果。

原文链接:https://www.f2er.com/delphi/103615.html

猜你在找的Delphi相关文章