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); }
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); }
/// <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); }