Exemple #1
0
        public bool IsAutoStartEnabled(RegistryHKey registryHKey, string keyName, string assemblyLocation)
        {
            if (!HasSetting(registryHKey, AutoStartLocation, keyName))
            {
                return(false);
            }

            var result = GetSetting <string>(registryHKey, AutoStartLocation, keyName, null);

            return(string.Compare(result, assemblyLocation, StringComparison.InvariantCultureIgnoreCase) == 0);
        }
Exemple #2
0
        public void SetAutoStart(RegistryHKey registryHKey, string keyName, string assemblyLocation)
        {
            if (!assemblyLocation.ToLower().EndsWith(".exe"))
            {
                throw new InvalidOperationException(string.Format("The assembly {0} is not an executable (does not end with .exe), {1}.", keyName, assemblyLocation));
            }
            if (!System.IO.File.Exists(assemblyLocation))
            {
                throw new InvalidOperationException(string.Format("The assembly {0} does not exist at location {1}.", keyName, assemblyLocation));
            }

            SetSetting(registryHKey, AutoStartLocation, keyName, assemblyLocation);
        }
Exemple #3
0
        public void RemoveSetting(RegistryHKey registryHKey, string path, string keyName)
        {
            var key = GetKey(registryHKey, path);

            if (key == null)
            {
                throw new InvalidOperationException(string.Format("Cannot get key for registry path {0}.", path));
            }

            if (HasSetting(registryHKey, AutoStartLocation, keyName))
            {
                key.DeleteValue(keyName);
            }
        }
Exemple #4
0
        public bool HasSetting(RegistryHKey registryHKey, string path, string keyName)
        {
            var key = GetKey(registryHKey, path);

            if (key == null)
            {
                return(false);
            }

            var value = (string)key.GetValue(keyName);

            if (value == null)
            {
                return(false);
            }

            return(true);
        }
Exemple #5
0
        public T GetSetting <T>(RegistryHKey registryHKey, string path, string keyName, T defaultValue)
        {
            var key = GetKey(registryHKey, path);

            if (key == null)
            {
                throw new InvalidOperationException(string.Format("Cannot get key for registry path {0}.", path));
            }

            var value = key.GetValue(keyName);

            if (value == null)
            {
                return(defaultValue);
            }

            return(ConvertValue <T>(value.ToString()));
        }
Exemple #6
0
        private static Microsoft.Win32.RegistryKey GetKey(RegistryHKey environment, string path)
        {
            Microsoft.Win32.RegistryKey key;
            switch (environment)
            {
            case RegistryHKey.CurrentUser:
                key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(path);
                break;

            case RegistryHKey.LocalMachine:
                key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(path);
                break;

            default:
                throw new InvalidOperationException(string.Format("Unknown environment {0}.", environment));
            }

            return(key);
        }
Exemple #7
0
        public void SetSetting <T>(RegistryHKey registryHKey, string path, string keyName, T value)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path", string.Format("Path cannot be null when saving to registry."));
            }
            if (keyName == null)
            {
                throw new ArgumentNullException("keyName", string.Format("KeyName cannot be null when saving to registry path '{0}'.", path));
            }

            var key = GetKey(registryHKey, path);

            if (key == null)
            {
                throw new InvalidOperationException(string.Format("Cannot get key for registry path {0}.", path));
            }

            key.SetValue(keyName, value);
        }
Exemple #8
0
        public Dictionary <string, T> GetSettings <T>(RegistryHKey registryHKey, string path)
        {
            var key = GetKey(registryHKey, path);

            if (key == null)
            {
                throw new InvalidOperationException(string.Format("Cannot get key for registry path {0}.", path));
            }

            var values = key.GetValueNames();

            var dict = new Dictionary <string, T>();

            foreach (var value in values)
            {
                var data = key.GetValue(value);

                dict.Add(ConvertValue <string>(value), ConvertValue <T>(data.ToString()));
            }

            return(dict);
        }
Exemple #9
0
 public void RemoveAutoStart(RegistryHKey registryHKey, string keyName)
 {
     RemoveSetting(registryHKey, AutoStartLocation, keyName);
 }