Bloom.InstallerSupport.EnsureRegistryValue C# (CSharp) Method

EnsureRegistryValue() static private method

static private EnsureRegistryValue ( string keyName, string value, string name = "" ) : void
keyName string
value string
name string
return void
        internal static void EnsureRegistryValue(string keyName, string value, string name="")
        {
            RegistryKey root = HiveToMakeRegistryKeysIn;

            var key = root.CreateSubKey(keyName); // may also open an existing key with write permission
            try
            {
                if (key != null)
                {
                    var current = (key.GetValue(name) as string);
                    if (current != null && current.ToLowerInvariant() == value)
                        return; // already set as wanted
                }
                key.SetValue(name, value);

            }
            catch (UnauthorizedAccessException ex)
            {
                // If for some reason we aren't allowed to do it, just don't.
                Logger.WriteEvent("Unable to set registry entry {0}:{1} to {2}: {3}", keyName, name, value, ex.Message);
            }
        }