public static bool CreateKey(RegRoot root, string keyName) { try { using (var key = root.GetKey().OpenSubKey(keyName, true)) { if (key != null) { return(true); } } using (var key = root.GetKey().CreateSubKey(keyName, true)) { if (key == null) { return(false); } return(true); } } catch { return(false); } }
public static object?ReadValue(RegRoot root, string keyName, string valueName, object?defaultValue = null) { try { using (var key = root.GetKey().OpenSubKey(keyName, false)) { if (key == null) { return(defaultValue); } object?value = key.GetValue(valueName); if (value == null) { return(defaultValue); } return(value); } } catch { return(defaultValue); } }
public static bool DeleteKey(RegRoot root, string keyName) { try { root.GetKey().DeleteSubKey(keyName, true); return(true); } catch { return(false); } }
public static string[]? EnumKey(RegRoot root, string keyName) { try { using (var key = root.GetKey().OpenSubKey(keyName, false)) { return(key !.GetSubKeyNames()); } } catch { return(null); } }
public static RegistryValueKind GetValueType(RegRoot root, string keyName, string valueName) { try { using (var key = root.GetKey().OpenSubKey(keyName, false)) { if (key == null) { return(RegistryValueKind.Unknown); } return(key.GetValueKind(valueName)); } } catch { return(RegistryValueKind.Unknown); } }
public static bool DeleteValue(RegRoot root, string keyName, string valueName) { try { using (var key = root.GetKey().OpenSubKey(keyName, true)) { if (key == null) { return(false); } key.DeleteValue(valueName); return(true); } } catch { return(false); } }
public static bool WriteValue(RegRoot root, string keyName, string valueName, RegistryValueKind type, object data) { try { CreateKey(root, keyName); using (var key = root.GetKey().OpenSubKey(keyName, true)) { if (key == null) { return(false); } key.SetValue(valueName, data, type); return(true); } } catch { return(false); } }