Einzelnen Beitrag anzeigen

LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#39

AW: Volume Shadow Copy Service

  Alt 29. Jan 2018, 18:17
Hier ein Beispiel, wie man die VSS-Routinen in ein eigenes Programm einbinden kann:
Code:
...
    procedure ShowVssStatus (const AStatus : string);
    begin
      ...
      end;
...
    VssThread:=CreateVssThread(Drive,true);
    with VssThread do begin
      LogFilename:=TempDir+'VssLog.txt';
      WriteLog:=true;
      OnStatusMessage:=ShowVssStatus;
      Resume;
      WriteLineToLog('Creating a Volume Shadow Copy: '+DateTimeToStr(Now));
      repeat
        Sleep(1);
        Application.ProcessMessages;
        until Done;
      if Success then begin
        SaveBackupComponentsDocument(TempDir+'VssBackupDoc.xml');
        SourceDrv:=ShadowDeviceName;
        end
      else begin
        WriteLineToLog(sLineBreak+'Snapshot creation failed');
        FreeAndNil(VssThread);
        SourceDrv:=Drive;
        end;
      end;
...
// Backup or similar action
...
  if assigned(VssThread) then begin
    try
      VssThread.DeleteShadowCopy;
    finally
      FreeAndNil(VssThread);
      end;
    end;
...
Im Anhang gibt es außerdem eine aktualisierte Version des Programms.

Zitat:
Creating shadow set {{02A915B5-D34E-4420-A566-FB8D1DFF32CE}} ...
Add volumes to snapshot set ...
- Adding volume [??] to the shadow set...
ERROR : COM call "TVolumeShadowCopy.AddToSnapshotSet:VssBackupCompo nents.AddToSnapshotSet" failed.
- Returned HRESULT = $80070057
- Error text: Falscher Parameter
ERROR : TVolumeShadowCopy.AddToSnapshotSet:VssBackupCompon ents.AddToSnapshotSet (Falscher Parameter)

Snapshot creation failed
Warum funktioniert das nicht?
C reicht als Drive nicht. Muss C:\ sein. Funktioniert jetzt.

Eine Frage zur Funktion noch. Ich habe nur Delphi Starter. Wenn ich eine 32 Bit-Anwendung mit dem VSS erstelle, kann ich das auch auf einem 64 Bit Windows benutzen oder muss ich dafür erst Delphi Pro haben?

Geändert von LTE5 (29. Jan 2018 um 19:25 Uhr)
  Mit Zitat antworten Zitat