Writes a Registry value to the Registry. : Registry « Development Class « C# / C Sharp






Writes a Registry value to the Registry.

        
//-----------------------------------------------------------------------
// <copyright file="Utility.cs" company="ParanoidMike">
//     Copyright (c) ParanoidMike. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------

namespace ParanoidMike
{
    using System;
    using System.Diagnostics;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    using Microsoft.Win32;

    /// <summary>
    /// Reusable functions for many uses.
    /// </summary>
    public static class Utility
    {

        #region Variables

        /// <summary>
        /// Variable for the HKCU hive, to be used with functions that use the RegistryKey class.
        /// </summary>
        private static RegistryKey hkcu = Registry.CurrentUser;

        /// <summary>
        /// Variable for the HKLM hive, to be used with functions that use the RegistryKey class.
        /// </summary>
        private static RegistryKey hklm = Registry.LocalMachine;

        /// <summary>
        /// Variable for identifying the major version of the Operating System.
        /// </summary>
        private static int osVersion = -1; // contains os major version number

        #endregion
        /// <summary>
        /// Writes a Registry value to the Registry.
        /// </summary>
        /// <param name="userHive">
        /// Specifies whether to write to the HKCU hive:
        /// - if True, writes to HKCU
        /// - if False, writes to HKLM
        /// </param>
        /// <param name="subKey">
        /// The relative path (within the specified hive) to the Registry Key where the value is found.
        /// </param>
        /// <param name="valueName">
        /// The Registry value whose data is written.
        /// </param>
        /// <param name="valueData">
        /// The data to be written to the specified Registry value.
        /// </param>
        public static void SetRegistryValue(
            bool   userHive, 
            string subKey, 
            string valueName, 
            byte[] valueData)
        {
            RegistryKey registrySubKey;

            // Note - don't forget to set writeable = True anytime you're going to write to the Registry.  How embarrassing to miss this for two days!
            if (userHive)
            {
                registrySubKey = hkcu.OpenSubKey(subKey, true);
            }
            else
            {
                registrySubKey = hklm.OpenSubKey(subKey, true);
            }

            registrySubKey.SetValue(
                valueName, 
                valueData, 
                RegistryValueKind.Binary);

            registrySubKey.Close();

            if (userHive)
            {
                hkcu.Close();
            }
            else
            {
                hklm.Close();
            }
        }

    }
}

   
    
    
    
    
    
    
    
  








Related examples in the same category

1.Registry.LocalMachine
2.Write a Text and DWord Value to the Registry
3.Enumerating Registry Keys
4.Retrieve the CPU Type and Speed from the Registry
5.Use GetValue and SetValue to get and save value to Registry
6.Get the Registry key found for CurrentUser
7. Accessing the Registry
8.Open a SubKey in Registry
9.Get Registry value Get Registry value
10.Registry File Association
11.Check Registry to see if it is installed
12.Get/Set User Registry
13.Copy Registry
14.Registry Utils
15.Retrieves any Registry value that uses the REGBINARY data type.
16.Get IIS version