internal static ValueKey Get(byte[] bytes, string path, string key, string val) { NamedKey hiveroot = RegistryHelper.GetRootKey(bytes, path); NamedKey nk = hiveroot; if (key != null) { foreach (string k in key.Split('\\')) { foreach (NamedKey n in nk.GetSubKeys(bytes)) { if (n.Name.ToUpper() == k.ToUpper()) { nk = n; } } } } ValueKey[] values = nk.GetValues(bytes); foreach (ValueKey v in values) { if (v.Name.ToUpper() == val.ToUpper()) { return(v); } } return(null); }
internal static NamedKey[] GetInstances(byte[] bytes, string path, string key) { NamedKey hiveroot = RegistryHelper.GetRootKey(bytes, path); NamedKey nk = hiveroot; if (key != null) { foreach (string k in key.Split('\\')) { NamedKey startingkey = nk; foreach (NamedKey n in nk.GetSubKeys(bytes)) { if (n.Name.ToUpper() == k.ToUpper()) { nk = n; } } if (nk == startingkey) { throw new Exception(string.Format("Cannot find key '{0}' in the '{1}' hive because it does not exist.", key, path)); } } if (nk == hiveroot) { throw new Exception(string.Format("Cannot find key '{0}' in the '{1}' hive because it does not exist.", key, path)); } } return(nk.GetSubKeys(bytes)); }
public static NamedKey[] GetInstancesRecurse(string path) { byte[] bytes = RegistryHelper.GetHiveBytes(path); NamedKey hiveroot = RegistryHelper.GetRootKey(path); return(GetInstances(bytes, hiveroot, true)); }
internal static ValueKey[] GetInstances(byte[] bytes, string path, string key) { NamedKey hiveroot = RegistryHelper.GetRootKey(bytes, path); NamedKey nk = hiveroot; if (key != null) { foreach (string k in key.Split('\\')) { foreach (NamedKey n in nk.GetSubKeys(bytes)) { if (n.Name.ToUpper() == k.ToUpper()) { nk = n; } } } } return(nk.GetValues(bytes)); }
public static ValueKey Get(string path, string key, string val) { byte[] bytes = RegistryHelper.GetHiveBytes(path); NamedKey hiveroot = RegistryHelper.GetRootKey(bytes, path); NamedKey nk = hiveroot; if (key != null) { foreach (string k in key.Split('\\')) { foreach (NamedKey n in nk.GetSubKeys(bytes)) { if (n.Name.ToUpper() == k.ToUpper()) { nk = n; } } } if (nk == hiveroot) { throw new Exception(string.Format("Cannot find key '{0}' in the '{1}' hive because it does not exist.", key, path)); } } ValueKey[] values = nk.GetValues(bytes); foreach (ValueKey v in values) { if (v.Name.ToUpper() == val.ToUpper()) { return(v); } } throw new Exception(string.Format("Cannot find value '{0}' as a value of '{1}' in the '{2}' hive because it does not exist.", val, key, path)); }
internal static NamedKey[] GetInstances(byte[] bytes, string path) { NamedKey hiveroot = RegistryHelper.GetRootKey(bytes, path); return(hiveroot.GetSubKeys()); }