示例#1
0
        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);
                }
            }
        }
示例#2
0
        public CursorSchemeOperation(Group parent, XmlElement element) :  base(parent, element)
        {
            _schemes = new List <CursorScheme>();

            CursorScheme scheme = new CursorScheme(parent.Package.RootDirectory, element);

            _schemes.Add(scheme);
        }
示例#3
0
        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);
        }
示例#4
0
        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();
                }
            }
        }