// empty string in 'valueName' means "default" value stored in key public static StatusCode SetValue(string keyName, string valueName, object value, RegistryValueKind valueType = RegistryValueKind.Unknown) { Logger.CallStart(keyName, valueName, value, Enum.GetName(typeof(RegistryValueKind), valueType)); keyName = keyName.Replace("HKCU", "HKEY_CURRENT_USER") .Replace("HKLM", "HKEY_LOCAL_MACHINE") .Replace("HKCR", "HKEY_CLASSES_ROOT") .Replace("HKU", "HKEY_USERS") .Replace("HKCC", "HKEY_CURRENT_CONFIG") .Replace("HKPD", "HKEY_PERFORMANCE_DATA"); try { W32Reg.SetValue(keyName, valueName, value, valueType); Logger.CallSucceeded(); return(StatusCode.Success); } catch (Exception e) { Logger.LogException(e); return(StatusCode.Failure); } }