Пример #1
0
        private static InstalledProgram getInstalledProgramFromKey(RegistryKey key)
        {
            InstalledProgram program = new InstalledProgram();

            program.DisplayName    = key.GetValue("DisplayName") as string;
            program.DisplayVersion = key.GetValue("DisplayVersion") as string;

            program.EstimatedSize = key.GetValue("EstimatedSize", null) as int?;

            string installDateString = key.GetValue("InstallDate") as string;

            DateTime?installDate = null;

            if (installDateString != null)
            {
                DateTime dt;
                if (DateTime.TryParseExact(installDateString, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out dt))
                {
                    installDate = dt;
                }
            }

            program.Language = key.GetValue("Language") as int?;

            program.Publisher = key.GetValue("Publisher") as string;

            int?systemComponentUint = key.GetValue("SystemComponent", 0) as int?;

            program.SystemComponent = systemComponentUint == null || systemComponentUint == 0 ? false : true;

            return(program);
        }
Пример #2
0
        private static List <InstalledProgram> getInstalledProgramsFromKey(string keyName)
        {
            List <InstalledProgram> programs = new List <InstalledProgram>();

            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(keyName))
            {
                foreach (string subkeyName in key.GetSubKeyNames())
                {
                    using (RegistryKey subkey = key.OpenSubKey(subkeyName))
                    {
                        InstalledProgram program = getInstalledProgramFromKey(subkey);

                        programs.Add(program);
                    }
                }
            }

            return(programs);
        }
Пример #3
0
        /// <summary>
        /// Prints the program to string builder.
        /// </summary>
        /// <param name="sb">The string builder.</param>
        /// <param name="program">The program.</param>
        /// <returns>Returns true if function appended anything to string builder</returns>
        private static bool printProgramToStringBuilder(StringBuilder sb, InstalledProgram program)
        {
            if (program.DisplayName == null && program.DisplayVersion == null)
            {
                return(false);
            }

            sb.AppendLine($"\t\t{program.DisplayName} {program.DisplayVersion}");

            if (program.InstallDate != null || program.EstimatedSize != null)
            {
                sb.Append("\t\t");

                if (program.InstallDate != null)
                {
                    sb.Append($"Installed on {program.InstallDate?.ToShortDateString()}");
                }

                if (program.EstimatedSize != null)
                {
                    if (program.InstallDate != null)
                    {
                        sb.Append(", ");
                    }

                    sb.Append($" Est. Size: {program.EstimatedSize}KB");
                }

                sb.AppendLine();
            }

            if (program.Publisher != null)
            {
                sb.AppendLine($"\t\tPublisher: {program.Publisher}");
            }

            return(true);
        }