Einzelnen Beitrag anzeigen

Erdbär
(Gast)

n/a Beiträge
 
#7

AW: System Restore Point erstellen, code geht nicht unter Win10

  Alt 24. Jun 2016, 15:08
Die Erinnerung verblasst immer mehr, aber InnoSetup kann RestorePoints erstellen:

Delphi-Quellcode:
[Code]
 //Code to create a restore point on XP and later
const
 // RestorePointTypes
 APPLICATION_INSTALL = 0;
 APPLICATION_UNINSTALL = 1;
 DEVICE_DRIVER_INSTALL = 10;
 MODIFY_SETTINGS = 12;
 CANCELLED_OPERATION = 13;

 // EventTypes
 BEGIN_SYSTEM_CHANGE = 100;
 END_SYSTEM_CHANGE = 101;
 BEGIN_NESTED_SYSTEM_CHANGE = 102;
 END_NESTED_SYSTEM_CHANGE = 103;

function createRestorePoint(RestoreName : String; RestorePointType,
EventType : Integer): boolean;
var
  ScriptControl,
  sr: Variant;
begin
  ScriptControl := CreateOleObject('ScriptControl');
  ScriptControl.Language := 'VBScript';
  sr :=
ScriptControl.Eval('getobject("winmgmts:\\.\root\default:Systemrestore")');
  Result := (sr.CreateRestorePoint(RestoreName, RestorePointType, EventType)
= 0);
end;

procedure AskRestorePoint();
var
  s:String;
begin
s:='Es wird dringend empfohlen, einen Systemwiederherstellungspunkt zu erstellen, ';
s:=s+'was die Installation allerdings um einige Sekunden verzögert.'+#13#10#13#10;
s:=s+'Möchten Sie das?';

if GetWindowsVersion >= $05010000 then
  begin
if msgbox(s,mbconfirmation, mb_yesno) = idyes then
    begin
if createRestorePoint('Installation von Meinem tollen Programm hier und heute',
APPLICATION_INSTALL,
BEGIN_SYSTEM_CHANGE) then
end;
end;
end;
Den InnoCode habe ich vermutlich aus diversen Foren (Inno/SO) heruntergeladen und angepasst, ein paar END;s sind vermutlich zu viel

Gelegentlich schaue/schlage ich bei Jordan Russell einfach mal nach

full stop / period
  Mit Zitat antworten Zitat