public static object GetRegistryValue(string keyName, string valueName, RegistryViewEx view = RegistryViewEx.Default) { if (view == RegistryViewEx.Registry64 && !Is64BitOperatingSystem) { return(null); } string str; RegistryKeyEx key2 = GetBaseKeyFromKeyName(keyName, out str).OpenSubKey(str, view); if (key2 == null) { return(null); } object obj2; try { obj2 = key2.GetValue(valueName); } finally { key2.Close(); } if (obj2 == null) { return(null); } return(obj2); }
public static object GetRegistryValue(RegistryKeyEx hive, string keyName, string valueName, RegistryViewEx view = RegistryViewEx.Default) { if (view == RegistryViewEx.Registry64 && !Is64BitOperatingSystem) { return(null); } RegistryKeyEx key2 = hive.OpenSubKey(keyName, view); if (key2 == null) { return(null); } object obj2; try { obj2 = key2.GetValue(valueName); } finally { key2.Close(); } if (obj2 == null) { return(null); } return(obj2); }
private static RegistryKeyEx GetBaseKeyFromKeyName(string keyName, out string subKeyName) { string str; if (keyName == null) { throw new ArgumentNullException("keyName"); } int index = keyName.IndexOf('\\'); if (index != -1) { str = keyName.Substring(0, index).ToUpper(CultureInfo.InvariantCulture); } else { str = keyName.ToUpper(CultureInfo.InvariantCulture); } RegistryKeyEx currentUser = null; switch (str) { case "HKEY_CURRENT_USER": currentUser = CurrentUser; break; case "HKEY_LOCAL_MACHINE": currentUser = LocalMachine; break; case "HKEY_CLASSES_ROOT": currentUser = ClassesRoot; break; case "HKEY_USERS": currentUser = Users; break; default: throw new ArgumentException("Invalid keyName"); } if ((index == -1) || (index == keyName.Length)) { subKeyName = string.Empty; return(currentUser); } subKeyName = keyName.Substring(index + 1, (keyName.Length - index) - 1); return(currentUser); }
public static bool SetValue(string keyName, string valueName, object value, RegistryViewEx view = RegistryViewEx.Default) { string str; RegistryKeyEx key2 = GetBaseKeyFromKeyName(keyName, out str).OpenWritableSubKey(str, view); if (key2 == null) { return(false); } bool ret = false; try { ret = key2.SetValue(valueName, value); } finally { key2.Close(); } return(ret); }