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