Example #1
0
 /// <summary>
 /// Delete registry value or key. If key is specified, it is deleted recursively.
 /// </summary>
 /// <param name="keyAndValue">Key or value name (key ends with \ or /)</param>
 public static void RegistryDelete(string keyAndValue)
 {
     using (RegW64Helper rn = new RegW64Helper(keyAndValue))
     {
         try
         {
             if (string.IsNullOrEmpty(rn.ValueName))
             {
                 rn.DeleteTree();
             }
             else
             {
                 using (var rk = rn.Open(true))
                 {
                     if (rk != null)
                     {
                         rk.DeleteValue(rn.ValueName);
                     }
                 }
             }
         }
         catch (ArgumentException)
         {
         }
         catch (FileNotFoundException)
         {
         }
     }
 }
Example #2
0
        /// List all subkeys of a specific key
        public static string[] RegistryGetSubkeyNames(string keyAndValue)
        {
            if (keyAndValue == null)
            {
                throw new ArgumentNullException("keyAndValue");
            }
            var s = keyAndValue.Trim();

            if (s.Length > 0 && (s[s.Length - 1] != '\\' && s[s.Length - 1] != '/'))
            {
                s += "\\";
            }

            using (RegW64Helper rn = new RegW64Helper(s))
            {
                using (var rk = rn.Open(false))
                {
                    if (rk == null)
                    {
                        return(null);
                    }

                    return(rk.GetSubKeyNames());
                }
            }
        }
Example #3
0
 /// Get registry value, or return default value with support for 32 and 64 bit registries
 public static object RegistryGet(string keyAndValue, object def, RegistryValueOptions options)
 {
     if (keyAndValue == null) throw new ArgumentNullException("keyAndValue");
     using (RegW64Helper rn = new RegW64Helper(keyAndValue))
     {
         using (var rk = rn.Open(false))
         {
             if (rk == null)
                 return def;
             return rk.GetValue(rn.ValueName, def, options);
         }
     }
 }
Example #4
0
 /// Get registry value, or return default value with support for 32 and 64 bit registries
 public static object RegistryGet(string keyAndValue, object def, RegistryValueOptions options)
 {
     if (keyAndValue == null)
     {
         throw new ArgumentNullException("keyAndValue");
     }
     using (RegW64Helper rn = new RegW64Helper(keyAndValue))
     {
         using (var rk = rn.Open(false))
         {
             if (rk == null)
             {
                 return(def);
             }
             return(rk.GetValue(rn.ValueName, def, options));
         }
     }
 }
Example #5
0
 /// <summary>
 /// Delete registry value or key. If key is specified, it is deleted recursively.
 /// </summary>
 /// <param name="keyAndValue">Key or value name (key ends with \ or /)</param>
 public static void RegistryDelete(string keyAndValue)
 {
     using (RegW64Helper rn = new RegW64Helper(keyAndValue))
     {
         try
         {
             if (string.IsNullOrEmpty(rn.ValueName))
                 rn.DeleteTree();
             else
                 using (var rk = rn.Open(true))
                 {
                     if (rk != null)
                         rk.DeleteValue(rn.ValueName);
                 }
         }
         catch (ArgumentException)
         {
         }
         catch (FileNotFoundException)
         {
         }
     }
 }
Example #6
0
        /// <summary>
        /// Set registry value, creating the key if neccesary. With support for 32 and 64 bit registries
        /// </summary>
        /// <param name="keyAndValue">Key name in format [\\machineName]RootKey[:32|:64]\subkey\value</param>
        /// <param name="value">Value to set</param>
        /// <param name="kind">Registry value kind</param>
        /// <returns>previous value, or null if didn't exist</returns>
        public static object RegistrySet(string keyAndValue, object value, Microsoft.Win32.RegistryValueKind kind)
        {
            if (keyAndValue == null)
            {
                throw new ArgumentNullException("keyAndValue");
            }
            object ret = RegistryGet(keyAndValue, null);

            using (RegW64Helper rn = new RegW64Helper(keyAndValue))
            {
                using (var rk = rn.Create(RegistryKeyPermissionCheck.Default))
                {
                    if (value == null)
                    {
                        rk.DeleteValue(rn.ValueName, false);
                    }
                    else
                    {
                        rk.SetValue(rn.ValueName, value, kind);
                    }
                }
            }
            return(ret);
        }
Example #7
0
        /// List all subkeys of a specific key
        public static string[] RegistryGetSubkeyNames(string keyAndValue)
        {
            if (keyAndValue == null) throw new ArgumentNullException("keyAndValue");
            var s = keyAndValue.Trim();
            if (s.Length > 0 && (s[s.Length - 1] != '\\' && s[s.Length - 1] != '/'))
                s += "\\";

            using (RegW64Helper rn = new RegW64Helper(s))
            {
                using (var rk = rn.Open(false))
                {
                    if (rk == null)
                        return null;

                    return rk.GetSubKeyNames();
                }
            }
        }
Example #8
0
        /// <summary>
        /// Set registry value, creating the key if neccesary. With support for 32 and 64 bit registries
        /// </summary>
        /// <param name="keyAndValue">Key name in format [\\machineName]RootKey[:32|:64]\subkey\value</param>
        /// <param name="value">Value to set</param>
        /// <param name="kind">Registry value kind</param>
        /// <returns>previous value, or null if didn't exist</returns>
        public static object RegistrySet(string keyAndValue, object value, Microsoft.Win32.RegistryValueKind kind)
        {
            if (keyAndValue == null) throw new ArgumentNullException("keyAndValue");
            object ret = RegistryGet(keyAndValue, null);
            using (RegW64Helper rn = new RegW64Helper(keyAndValue))
            {
                using (var rk=rn.Create(RegistryKeyPermissionCheck.Default))
                {
                    if (value == null)
                        rk.DeleteValue(rn.ValueName,false);
                    else
                        rk.SetValue(rn.ValueName,value,kind);
                }

            }
            return ret;
        }