ZeroInstall.Publish.Capture.RegUtils.GetValueNames C# (CSharp) Method

GetValueNames() private method

private GetValueNames ( [ root, [ key ) : string[]
root [
key [
return string[]
        public static string[] GetValueNames([NotNull] RegistryKey root, [NotNull] string key)
        {
            #region Sanity checks
            if (root == null) throw new ArgumentNullException(nameof(root));
            if (string.IsNullOrEmpty(key)) throw new ArgumentNullException(nameof(key));
            #endregion

            using (var contextMenuExtendedKey = root.OpenSubKey(key))
                return contextMenuExtendedKey?.GetValueNames() ?? new string[0];
        }

Usage Example

Beispiel #1
0
        /// <summary>
        /// Retrieves a list of file associations and programmatic identifiers the registry.
        /// </summary>
        private static (ComparableTuple <string>[] fileAssocs, string[] progIDs) GetFileAssocData()
        {
            var fileAssocsList = new List <ComparableTuple <string> >();
            var progIDsList    = new List <string>();

            foreach (string keyName in Registry.ClassesRoot.GetSubKeyNames())
            {
                if (keyName.StartsWith("."))
                {
                    using var assocKey = Registry.ClassesRoot.OpenSubKey(keyName);
                    // Get the main ProgID
                    string assocValue = assocKey?.GetValue("")?.ToString();
                    if (string.IsNullOrEmpty(assocValue))
                    {
                        continue;
                    }
                    fileAssocsList.Add(new ComparableTuple <string>(keyName, assocValue));

                    // Get additional ProgIDs
                    fileAssocsList.AddRange(RegUtils.GetValueNames(assocKey, FileType.RegSubKeyOpenWith).Select(progID => new ComparableTuple <string>(keyName, progID)));
                }
                else
                {
                    progIDsList.Add(keyName);
                }
            }

            return(fileAssocsList.ToArray(), progIDsList.ToArray());
        }
All Usage Examples Of ZeroInstall.Publish.Capture.RegUtils::GetValueNames