private void BackupDeleteScheme(Group backupGroup, CursorScheme scheme) { if (backupGroup == null) { return; } RegistryOperation deleteSchemeOp = new RegistryOperation(backupGroup); deleteSchemeOp.RegKey = @"HKEY_CURRENT_USER\Control Panel\Cursors\Schemes"; deleteSchemeOp.RegName = scheme.SchemeName; deleteSchemeOp.RegValue = "###ANOLISREMOVE####"; deleteSchemeOp.RegKind = RegistryValueKind.String; backupGroup.Operations.Add(deleteSchemeOp); foreach (CursorEntry entry in scheme.Cursors) { if (File.Exists(entry.CursorFilename)) { FileOperation op = new FileOperation(backupGroup, entry.CursorFilename); backupGroup.Operations.Add(op); } } }
public CursorSchemeOperation(Group parent, XmlElement element) : base(parent, element) { _schemes = new List <CursorScheme>(); CursorScheme scheme = new CursorScheme(parent.Package.RootDirectory, element); _schemes.Add(scheme); }
private void Backup(Group backupGroup) { if (backupGroup == null) { return; } // save the current scheme config RegistryKey currentCursorsKey = Registry.CurrentUser.OpenSubKey(@"Control Panel\Cursors", false); CursorScheme currentScheme = new CursorScheme(currentCursorsKey); CursorSchemeOperation op = new CursorSchemeOperation(backupGroup); op._schemes.Add(currentScheme); backupGroup.Operations.Add(op); }
public override void Execute() { Backup(Package.ExecutionInfo.BackupGroup); for (int i = 0; i < _schemes.Count; i++) { CursorScheme scheme = _schemes[i]; scheme.Install(); scheme.Register(); BackupDeleteScheme(Package.ExecutionInfo.BackupGroup, scheme); if (i == _schemes.Count - 1) { scheme.MakeActive(); } } }