private RegistryKey GetRegistryKeyWithRecursiveSearch(RegistryKey startPoint, RegistryModel registry) { RegistryKey value = null; try { if (startPoint.ContainsKey(registry.RegistryName)) { return(startPoint); } else { foreach (string subKey in startPoint.GetSubKeyNames()) { value = GetRegistryKeyWithRecursiveSearch(startPoint.OpenSubKey(subKey, _writable), registry); if (value != null) { break; } } } } catch { return(null); } return(value); }
public void GetRegistryKeyByRecursivity2() { RegistryFinder finder = new RegistryFinder(); RegistryModel registry = new RegistryModel { RegistryName = "LogPixels" }; RegistryKey value = finder.GetRegistryKeyFor(registry); Assert.IsTrue(value.ContainsKey(registry.RegistryName)); }
public void GetStraightKeyHiveLoad() { RegistryFinder finder = new RegistryFinder(); RegistryModel registry = new RegistryModel { SubKeySeparatedByBackSlashes = "Control Panel\\Desktop", RegistryName = "LogPixels" }; RegistryKey value = finder.GetRegistryKeyFor(registry, RegistryHive.CurrentUser); Assert.IsTrue(value.ContainsKey(registry.RegistryName)); }
public void GetRegistryKeyByRecursivity() { RegistryFinder finder = new RegistryFinder(); RegistryModel registry = new RegistryModel { SubKeySeparatedByBackSlashes = "Control Panel\\Desktop", RegistryName = "LogPixels" }; RegistryKey value = finder.GetRegistryKeyFor(registry); Assert.IsTrue(value.ContainsKey(registry.RegistryName)); }
private RegistryKey GetStraightRegistryKey(RegistryKey startPoint, RegistryModel registry) { try { string[] subKeys = registry.SubKeySeparatedByBackSlashes.Split('\\'); bool navigatedAllSubKeys = true; foreach (string subKey in subKeys) { if (startPoint.Name == subKey) { continue; } var tempSubKey = startPoint.OpenSubKey(subKey, _writable); bool isKeyNotFolder = tempSubKey == null && startPoint.ContainsKey(subKey); if (tempSubKey == null) { registry.LastRealSubKey = startPoint; navigatedAllSubKeys = false; } if (!isKeyNotFolder) { startPoint = tempSubKey; } } if (navigatedAllSubKeys) { registry.LastRealSubKey = startPoint; } return(startPoint); } catch { return(null); } }