Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#1

Virenscanner killt App

  Alt Gestern, 15:44
Hallo Zusammen,

wir haben gerade ein Problem mit einem eigenen Programm, dass immer mal wieder bei einer bestimmten Procedure vom VirenScanner gekillt wird. In dieser Procedure werden vorab von dem Benutzer xml- Files und dazugehörige ZIP-Archive in einem Ordner gespeichert. Die Procedure führt folgende Schritte aus:
1. Entpacken des ZIP-Archivs an einen bestimmten Ort
2. Löschen des ZIP-Archivs
3. Öffnen des xml-Files und Änderung von zwei Werten
4. Speichern des geänderten xml-Files an einem anderen Ort
4. Löschen des ursprünglichen xml-Files

So sehen die Proceduren aus:

ZIP-File entpacken:
Delphi-Quellcode:
function TLogic.ExctractZIP(ZipPfad, ExtractPfad: string): boolean;
var ZFile: TZipFile;
begin
   Try
      ZFile:= TZipFile.Create;
      Try
         ZFile.Open(ZipPfad, zmRead);
         ZFile.ExtractAll(ExtractPfad);
         Result:= true;
      Finally
         ZFile.Free;
      End;
   Except
      On E: Exception do begin
         MessageDlg('Die Datei ' + ZipPfad + ' konnte nicht entpackt werden. Message: ' + E.Message + ' Bitte manuell eingreifen und den Administrator informieren.', mtError, [mbOK], 0);
         Result:= false;
      end;
   End;
end;
xml-File verändern und speichern
Delphi-Quellcode:
function TLogic.XMLEdit(xmlPfad: string; TargetPfad: string): Boolean;
var WmDKntn: IXMLNode;
      XMLDcmnt: IXMLDocument;
      NwVlDateien, NwVlWF_Name, NwFlNm: string;
begin
   Try
      if TargetPfad[Length(TargetPfad)] <> '\then begin
         TargetPfad:= TargetPfad + '\';
      end;
      XMLDcmnt:= LoadXMLDocument(xmlPfad);
      NwFlNm:= ChangeFileExt(ExtractFileName(xmlPfad), '.xml');
      WmDKntn:= XMLDcmnt.DocumentElement;
      NwVlDateien:= StringReplace(WmDKntn.ChildNodes.FindNode('Dateien').ChildNodes.FindNode('Dateiname').NodeValue, '.zip','.pdf',[rfIgnoreCase, rfReplaceAll]);
      NwVlWF_Name:= StringReplace(WmDKntn.ChildNodes.FindNode('WF_Name').ChildNodes.FindNode('WF_Name').NodeValue, '.zip','.pdf',[rfIgnoreCase, rfReplaceAll]);
      WmDKntn.ChildNodes.FindNode('Dateien').ChildNodes.FindNode('Dateiname').NodeValue:= NwVlDateien;
      WmDKntn.ChildNodes.FindNode('WF_Name').ChildNodes.FindNode('WF_Name').NodeValue:= NwVlWF_Name;
      XMLDcmnt.SaveToFile(TargetPfad + ChangeFileExt(NwVlDateien, '.xml'));
      Result:= true;
   Except
      On E: Exception do begin
         MessageDlg('Die Datei ' + xmlPfad + ' konnte nicht editiert werden. Message: ' + E.Message + ' Bitte manuell eingreifen und den Administrator informieren.', mtError, [mbOK], 0);
         Result:= false;
      end;
   End;
end;
Ursprungsdatei löschen
DeleteFile(FList[I]); Hat jemand eine Idee, was ich tun muss, dass der Virenscanner die Procedure akzeptiert?

Oftmals läuft das Programm problemlos durch, aber manchmal schnappt der Virenscanner zu.

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat