Exemplo n.º 1
0
        // Calls the supplied delegate on each of the children of keyBase.
        private static EnableState IterateSubKeys(RegistryKey keyBase, string subKey, IterateHandler handler, bool localMachine)
        {
            RegistryKey key;

            string[]    subKeyNames;
            EnableState state;

            key = keyBase.OpenSubKey(subKey, false);

            if (key == null)
            {
                return(EnableState.Error);
            }

            subKeyNames = key.GetSubKeyNames();
            state       = EnableState.Error;

            foreach (string name in subKeyNames)
            {
                switch (handler(key, name, localMachine))
                {
                case EnableState.Error:
                    break;

                case EnableState.None:
                    if (localMachine)     // For lm, want to return here right away.
                    {
                        return(EnableState.None);
                    }

                    // For current user, remember that we found no Enable value.
                    if (state == EnableState.Error)
                    {
                        state = EnableState.None;
                    }
                    break;

                case EnableState.Disabled:
                    state = EnableState.Disabled;
                    break;

                case EnableState.Enabled:
                    return(EnableState.Enabled);
                }
            }

            return(state);
        }
Exemplo n.º 2
0
        // Calls the supplied delegate on each of the children of keyBase.
        private static EnableState IterateSubKeys(RegistryKey keyBase, string subKey, IterateHandler handler, bool localMachine)
        {
            RegistryKey key;
            string[] subKeyNames;
            EnableState state;

            key = keyBase.OpenSubKey(subKey, false);

            if (key == null)
                return EnableState.Error;

            subKeyNames = key.GetSubKeyNames();
            state = EnableState.Error;

            foreach (string name in subKeyNames)
            {
                switch (handler(key, name, localMachine))
                {
                    case EnableState.Error:
                        break;
                    case EnableState.None:
                        if (localMachine) // For lm, want to return here right away.
                            return EnableState.None;

                        // For current user, remember that we found no Enable value.
                        if (state == EnableState.Error)
                        {
                            state = EnableState.None;
                        }
                        break;
                    case EnableState.Disabled:
                        state = EnableState.Disabled;
                        break;
                    case EnableState.Enabled:
                        return EnableState.Enabled;
                }
            }

            return state;
        }