using Microsoft.Win32; try { //Open subkey RegistryKey r = Registry.CurrentUser.OpenSubKey(@"Software\MyApp",true); object oMyAppVersionValue = null; //If subkey or name/value registry key pair does not exists if (r == null || (r != null && r.GetValue("Version", null) == null)) { if (r == null) { //Create subkey r = Registry.CurrentUser.CreateSubKey(@"Software\MyApp"); } //Create name/value registry key pair r.SetValue("Version", "1.0.0", RegistryValueKind.String); //Read value for "Version" oMyAppVersionValue = r.GetValue("Version", null); } else { //If subkey and name/value registry key pair exists //Read value for "Version" oMyAppVersionValue = r.GetValue("Version", null); } if (oMyAppVersionValue != null && oMyAppVersionValue is String) { //Show the value MessageBox.Show((String)oMyAppVersionValue, "MyApp Version"); } //Close the key and flush changes. r.Close(); //Delete HKEY_CURRENT_USER\Software\MyApp (including subkeys) Registry.CurrentUser.DeleteSubKeyTree(@"Software\MyApp"); } catch (Exception E) { MessageBox.Show(E.Message); }