AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Microsoft VSS (Volumenschattenkopien)

Ein Thema von AScomp · begonnen am 14. Mär 2019 · letzter Beitrag vom 30. Mär 2020
 
AScomp

Registriert seit: 26. Okt 2002
Ort: Stuttgart
28 Beiträge
 
Delphi XE Professional
 
#1

Microsoft VSS (Volumenschattenkopien)

  Alt 14. Mär 2019, 19:09
Hallo zusammen,

in "Rathlevs Rummelkiste" findet sich u.a. der Quellcode zur Erstellung von Schattenkopien (VSS) mit Delphi:

http://www.rathlev-home.de/tools/progtools.html

Code:
function CreateSnapshot(): Boolean;
var
  VssThread: TVssThread;
  sDeviceName: String;
begin
     result := false;

     try
        try
           VssThread := CreateVssThread('C:\', true);
           with VssThread do begin
                LogFilename := 'VssLog.txt';
                WriteLog:=true;
                //OnStatusMessage:=ShowVssStatus;
                Resume;
                WriteLineToLog('Creating a Volume Shadow Copy: '+DateTimeToStr(Now));
                repeat
                      Sleep(10);
                      Application.ProcessMessages;
                until Done;
                if Success then begin
                   SaveBackupComponentsDocument('VssBackupDoc.xml');
                   sDeviceName := ShadowDeviceName;
                end else begin
                   WriteLineToLog(sLineBreak+'Snapshot creation failed');
                   FreeAndNil(VssThread);
                   exit;
                end;
           end;
        except
           exit;
        end;

        result := true;

     finally
        if assigned(VssThread) then begin
           try
              VssThread.DeleteShadowCopy;
           finally
              FreeAndNil(VssThread);
           end;
        end;
     end;
end;
Ich habe den Quellcode unter Delphi 10 auch problemlos zum Laufen gebracht. Nicht so aber unter Delphi XE. Das Problem ist, dass die Funktion InitializeForBackup einen Fehler wirft:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EOleSysError mit der Meldung 'TVolumeShadowCopy.Initialize:VssBackupComponents. InitializeForBackup (VSS: an unexpected error was encountered)' aufgetreten.
---------------------------

Das liegt wohl daran, dass ich unter Delphi XE eine 32 Bit-Anwendung erstelle und versuche, von einem 64 Bit-System einen Snapshot zu erstellen.

Ist das generell nicht möglich oder habe ich anderswo einen Fehler? Ich müsste doch eigentlich auch aus einer 32 Bit-Anwendung heraus einen Snapshot erstellen können!

Vielen Dank!
Viele Grüße,

Andy Ströbel

Geändert von AScomp (14. Mär 2019 um 19:18 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz