// Source code accompanied with the "Working with Registry in C#" article/tutorial // Author: Barzan "Tony" Antal using System; using Microsoft.Win32; namespace registry { class Program { static void Main(string[] args) { // beginning of first example RegistryKey regkey = Registry.CurrentUser; // create our object regkey = regkey.OpenSubKey("Software\\Tutorial"); // open our subkey [read-only] if (regkey == null) // error handling { Console.WriteLine("Couldn't open the desired subkey."); return; } string[] valnames = regkey.GetValueNames(); // retrieve the value names int i = 0; foreach (string s in valnames) // for each value name retrieve its data { string val = (string)regkey.GetValue(valnames[i++]); Console.WriteLine(s + " contains " + val); // print them out } Console.WriteLine("\t"); regkey.Close(); // close our object // end of first example // beginning of second example regkey = Registry.CurrentUser; // create our object regkey = regkey.CreateSubKey("Software\\Tutorial\\NewSubKey"); // create and open new subkey regkey.SetValue("TestValueName", "Our Value"); // create new value regkey.SetValue("AnotherTestValue", "Second Value"); // create new value valnames = regkey.GetValueNames(); // retrieve the value names i = 0; foreach (string s in valnames) // for each value name retrieve its data { string val = (string)regkey.GetValue(valnames[i++]); Console.WriteLine(s + " contains " + val); // print them out } Console.WriteLine("\t"); regkey.Close(); // close our object // end of second example // beginning of third example regkey = Registry.CurrentUser; // create our object regkey = regkey.OpenSubKey("Software\\Tutorial", true); // open our subkey [writable=true] if (regkey == null) // error handling { Console.WriteLine("Couldn't open the desired subkey."); return; } regkey.SetValue("DS", "Edited Dev Shed"); // we modify the DS existing value regkey.Flush(); // we flush our object valnames = regkey.GetValueNames(); // retrieve the value names i = 0; foreach (string s in valnames) // for each value name retrieve its data { string val = (string)regkey.GetValue(valnames[i++]); Console.WriteLine(s + " contains " + val); // print them out } Console.WriteLine("\t"); regkey.Close(); // close our object // end of third example } } }