public static bool SetRegistryValue <T>(RegistryKey registryKey, string subkeyName, string valueName, T value, RegistryValueKind valueKind) { RegistryKey registrySubkey = RegistryHelper.OpenSubkey(registryKey, subkeyName, true); if (registrySubkey == null) { if ((object)value == null) { return(true); } if (RegistryHelper.RegistryExceptionWrapper((Action)(() => registrySubkey = registryKey.CreateSubKey(subkeyName))) != null) { return(false); } } if (registrySubkey == null) { return(false); } try { return(((object)value != null ? RegistryHelper.RegistryExceptionWrapper((Action)(() => registrySubkey.SetValue(valueName, (object)(T)value, valueKind))) : RegistryHelper.RegistryExceptionWrapper((Action)(() => registrySubkey.DeleteValue(valueName, false)))) == null); } finally { registrySubkey.Close(); } }
public static IEnumerable <T> RetrieveAllRegistrySubkeyValues <T>(RegistryKey registryKey, string subkeyName) { List <T> list = new List <T>(); RegistryKey registryKey1 = RegistryHelper.OpenSubkey(registryKey, subkeyName, false); if (registryKey1 != null) { using (registryKey1) { foreach (RegistryKey registryKey2 in RegistryHelper.GetSubkeys(registryKey1)) { RegistryKey subSubkey = registryKey2; using (subSubkey) { string[] registryValueNames = (string[])null; if (RegistryHelper.RegistryExceptionWrapper((Action)(() => registryValueNames = subSubkey.GetValueNames())) == null) { foreach (string valueName in registryValueNames) { object source = RegistryHelper.RetrieveRegistryValue <object>(subSubkey, valueName); if (source != null) { T obj = TypeHelper.ConvertType <T>(source); list.Add(obj); } } } } } } } return((IEnumerable <T>)list); }
public static T RetrieveRegistryValue <T>(RegistryKey registryKey, string subkeyName, string valueName) { RegistryKey registryKey1 = RegistryHelper.OpenSubkey(registryKey, subkeyName, false); if (registryKey1 == null) { return(default(T)); } using (registryKey1) return(RegistryHelper.RetrieveRegistryValue <T>(registryKey1, valueName)); }
public static IEnumerable <string> GetSubkeyNames(RegistryKey registryKey, string subkeyName) { RegistryKey registryKey1 = RegistryHelper.OpenSubkey(registryKey, subkeyName, false); if (registryKey1 == null) { return(Enumerable.Empty <string>()); } using (registryKey1) return(RegistryHelper.GetSubkeyNames(registryKey1)); }
public static IEnumerable <RegistryKey> GetSubkeys(RegistryKey registryKey) { foreach (string subkeyName in RegistryHelper.GetSubkeyNames(registryKey)) { RegistryKey subkey = RegistryHelper.OpenSubkey(registryKey, subkeyName, false); if (subkey != null) { yield return(subkey); } } }
public static bool AclRegistryKeyForAllApplicationPackages(RegistryKey key, string subkey) { RegistryKey registryKey = RegistryHelper.OpenSubkey(key, subkey, true); if (registryKey != null) { RegistrySecurity accessControl = registryKey.GetAccessControl(); accessControl.AddAccessRule(new RegistryAccessRule((IdentityReference)AccessHelper.AllApplicationPackagesSecurityIdentifier, RegistryRights.ExecuteKey, AccessControlType.Allow)); try { registryKey.SetAccessControl(accessControl); } catch (UnauthorizedAccessException ex) { return(false); } catch (ObjectDisposedException ex) { return(false); } } return(true); }