コード例 #1
0
        private static RegistryKey AbreSubChave(enuChaveRegistro Chave, string SubChave)
        {
            RegistryKey RegChave = null;

            switch (Chave)
            {
            case enuChaveRegistro.ClassesRoot:
                RegChave = Registry.ClassesRoot.OpenSubKey(SubChave, true);
                break;

            case enuChaveRegistro.CurrentUser:
                RegChave = Registry.CurrentUser.OpenSubKey(SubChave, true);
                break;

            case enuChaveRegistro.LocalMachine:
                RegChave = Registry.LocalMachine.OpenSubKey(SubChave, true);
                break;

            case enuChaveRegistro.Users:
                RegChave = Registry.Users.OpenSubKey(SubChave, true);
                break;

            case enuChaveRegistro.CurrentConfig:
                RegChave = Registry.CurrentConfig.OpenSubKey(SubChave, true);
                break;
            }
            return(RegChave);
        }
コード例 #2
0
        public static Hashtable RegBusca(enuChaveRegistro Chave, string SubChave, string NomeCampo)
        {
            RegistryKey RegChave = AbreSubChave(Chave, SubChave);

            Hashtable Retorno = new Hashtable();

            Retorno.Add(NomeCampo, RegChave.GetValue(NomeCampo));
            return(Retorno);
        }
コード例 #3
0
        private static RegistryKey CriaSubChave(enuChaveRegistro Chave, string SubChave)
        {
            RegistryKey RegChave = null;

            string             UsuarioLogado    = Environment.UserDomainName + "\\" + Environment.UserName;
            RegistrySecurity   SegurancaUsuario = new RegistrySecurity();
            RegistryAccessRule RegraUsuario     = new RegistryAccessRule(UsuarioLogado, RegistryRights.FullControl, AccessControlType.Allow);

            SegurancaUsuario.AddAccessRule(RegraUsuario);

            string[] Chaves         = SubChave.Split(new Char[] { '\\' });
            string   SubChaveConcat = "";

            foreach (string SubChaveItem in Chaves)
            {
                if (SubChaveConcat.Length == 0)
                {
                    SubChaveConcat = SubChaveConcat + SubChaveItem;
                }
                else
                {
                    SubChaveConcat = SubChaveConcat + "\\" + SubChaveItem;
                }
                RegChave = AbreSubChave(Chave, SubChaveConcat);
                if (RegChave == null)
                {
                    switch (Chave)
                    {
                    case enuChaveRegistro.ClassesRoot:
                        RegChave = Registry.ClassesRoot.CreateSubKey(SubChaveConcat, RegistryKeyPermissionCheck.ReadWriteSubTree, SegurancaUsuario);
                        break;

                    case enuChaveRegistro.CurrentUser:
                        RegChave = Registry.CurrentUser.CreateSubKey(SubChaveConcat, RegistryKeyPermissionCheck.ReadWriteSubTree, SegurancaUsuario);
                        break;

                    case enuChaveRegistro.LocalMachine:
                        RegChave = Registry.LocalMachine.CreateSubKey(SubChaveConcat, RegistryKeyPermissionCheck.ReadWriteSubTree, SegurancaUsuario);
                        break;

                    case enuChaveRegistro.Users:
                        RegChave = Registry.Users.CreateSubKey(SubChaveConcat, RegistryKeyPermissionCheck.ReadWriteSubTree, SegurancaUsuario);
                        break;

                    case enuChaveRegistro.CurrentConfig:
                        RegChave = Registry.CurrentConfig.CreateSubKey(SubChaveConcat, RegistryKeyPermissionCheck.ReadWriteSubTree, SegurancaUsuario);
                        break;
                    }
                }
                RegChave.SetAccessControl(SegurancaUsuario);
            }
            return(RegChave);
        }
コード例 #4
0
        public static void RegSalva(enuChaveRegistro Chave, string SubChave, Hashtable Valores)
        {
            RegistryKey RegChave = AbreSubChave(Chave, SubChave);

            if (RegChave == null)
            {
                RegChave = CriaSubChave(Chave, SubChave);
            }

            foreach (string HashKey in Valores.Keys)
            {
                RegChave.SetValue(HashKey, Valores[HashKey]);
            }
        }
コード例 #5
0
        public static Hashtable RegBusca(enuChaveRegistro Chave, string SubChave)
        {
            RegistryKey RegChave = AbreSubChave(Chave, SubChave);

            Hashtable Retorno = new Hashtable();

            if (RegChave != null)
            {
                string[] NomeCampos = RegChave.GetValueNames();
                foreach (string Nome in NomeCampos)
                {
                    Retorno.Add(Nome, RegChave.GetValue(Nome));
                }
                RegChave.Close();
            }
            return(Retorno);
        }