Ejemplo n.º 1
0
        public RegistryKeyEx OpenSubKey(string subkey, RegistryViewEx view = RegistryViewEx.Default)
        {
            if (view == RegistryViewEx.Registry64 && !Is64BitOperatingSystem)
            {
                return(null);
            }

            Win32Registry.RegSAM samView = 0;

            if (view == RegistryViewEx.Registry32 && IntPtr.Size == 8) // Laisser défault, si on tourne pas en x64
            {
                samView = Win32Registry.RegSAM.WOW64_32Key;
            }
            else if (view == RegistryViewEx.Registry64)
            {
                samView = Win32Registry.RegSAM.WOW64_64Key;
            }

            uint hKey = 0;

            uint err = Win32Registry.RegOpenKeyEx(unchecked ((uint)_hKey), subkey, 0, Win32Registry.RegSAM.Read | Win32Registry.RegSAM.EnumerateSubKeys | samView, out hKey);

            if (err != 0)
            {
                return(null);
            }

            return(new RegistryKeyEx(hKey));
        }
Ejemplo n.º 2
0
        public static object GetRegistryValue(string keyName, string valueName, RegistryViewEx view = RegistryViewEx.Default)
        {
            if (view == RegistryViewEx.Registry64 && !Is64BitOperatingSystem)
            {
                return(null);
            }

            string str;

            RegistryKeyEx key2 = GetBaseKeyFromKeyName(keyName, out str).OpenSubKey(str, view);

            if (key2 == null)
            {
                return(null);
            }

            object obj2;

            try
            {
                obj2 = key2.GetValue(valueName);
            }
            finally
            {
                key2.Close();
            }

            if (obj2 == null)
            {
                return(null);
            }

            return(obj2);
        }
Ejemplo n.º 3
0
        public static bool SetValue(string keyName, string valueName, object value, RegistryViewEx view = RegistryViewEx.Default)
        {
            string str;

            RegistryKeyEx key2 = GetBaseKeyFromKeyName(keyName, out str).OpenWritableSubKey(str, view);

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

            bool ret = false;

            try
            {
                ret = key2.SetValue(valueName, value);
            }
            finally
            {
                key2.Close();
            }

            return(ret);
        }
Ejemplo n.º 4
0
        public static object GetRegistryValue(RegistryKeyEx hive, string keyName, string valueName, RegistryViewEx view = RegistryViewEx.Default)
        {
            if (view == RegistryViewEx.Registry64 && !Is64BitOperatingSystem)
            {
                return(null);
            }

            RegistryKeyEx key2 = hive.OpenSubKey(keyName, view);

            if (key2 == null)
            {
                return(null);
            }

            object obj2;

            try
            {
                obj2 = key2.GetValue(valueName);
            }
            finally
            {
                key2.Close();
            }

            if (obj2 == null)
            {
                return(null);
            }

            return(obj2);
        }