private static UninstallerType GetUninstallerType(RegistryKey uninstallerKey) { // Detect MSI installer based on registry entry (the proper way) if ((int)uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameWindowsInstaller, 0) != 0) { return(UninstallerType.Msiexec); } // Detect InnoSetup if (uninstallerKey.GetValueNames().Any(x => x.Contains("Inno Setup:"))) { return(UninstallerType.InnoSetup); } // Detect Steam if (uninstallerKey.GetKeyName().StartsWith("Steam App ", StringComparison.Ordinal)) { return(UninstallerType.Steam); } var uninstallString = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameUninstallString) as string; return(string.IsNullOrEmpty(uninstallString) ? UninstallerType.Unknown : UninstallerTypeAdder.GetUninstallerType(uninstallString)); }
private static Guid GetGuid(RegistryKey uninstallerKey) { // Look for a GUID registry entry var tempGuidString = uninstallerKey.GetStringSafe(RegistryNameBundleProviderKey); if (GuidTools.GuidTryParse(tempGuidString, out var resultGuid)) { return(resultGuid); } if (GuidTools.TryExtractGuid(uninstallerKey.GetKeyName(), out resultGuid)) { return(resultGuid); } string uninstallString = GetUninstallString(uninstallerKey); // Look for a valid GUID in the path return(GuidTools.TryExtractGuid(uninstallString, out resultGuid) ? resultGuid : Guid.Empty); }
private static ApplicationUninstallerEntry GetBasicInformation(RegistryKey uninstallerKey) { return(new ApplicationUninstallerEntry { RegistryPath = uninstallerKey.Name, RegistryKeyName = uninstallerKey.GetKeyName(), Comment = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameComment) as string, RawDisplayName = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameDisplayName) as string, DisplayVersion = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameDisplayVersion) as string, ParentKeyName = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameParentKeyName) as string, Publisher = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNamePublisher) as string, UninstallString = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameUninstallString) as string, QuietUninstallString = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameQuietUninstallString) as string, ModifyPath = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameModifyPath) as string, InstallLocation = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameInstallLocation) as string, InstallSource = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameInstallSource) as string, SystemComponent = (int)uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameSystemComponent, 0) != 0, DisplayIcon = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameDisplayIcon) as string }); }
private static ApplicationUninstallerEntry GetBasicInformation(RegistryKey uninstallerKey) { return(new ApplicationUninstallerEntry { RegistryPath = uninstallerKey.Name, RegistryKeyName = uninstallerKey.GetKeyName(), Comment = uninstallerKey.GetStringSafe(RegistryNameComment), RawDisplayName = uninstallerKey.GetStringSafe(RegistryNameDisplayName), DisplayVersion = ApplicationEntryTools.CleanupDisplayVersion(uninstallerKey.GetStringSafe(RegistryNameDisplayVersion)), ParentKeyName = uninstallerKey.GetStringSafe(RegistryNameParentKeyName), Publisher = uninstallerKey.GetStringSafe(RegistryNamePublisher), UninstallString = GetUninstallString(uninstallerKey), QuietUninstallString = GetQuietUninstallString(uninstallerKey), ModifyPath = uninstallerKey.GetStringSafe(RegistryNameModifyPath), InstallLocation = uninstallerKey.GetStringSafe(RegistryNameInstallLocation), InstallSource = uninstallerKey.GetStringSafe(RegistryNameInstallSource), SystemComponent = (int)uninstallerKey.GetValue(RegistryNameSystemComponent, 0) != 0, DisplayIcon = uninstallerKey.GetStringSafe(RegistryNameDisplayIcon) }); }
private static Guid GetGuid(RegistryKey uninstallerKey) { // Look for a GUID registry entry var tempGuidString = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameBundleProviderKey) as string; Guid resultGuid; if (GuidTools.GuidTryParse(tempGuidString, out resultGuid)) { return(resultGuid); } if (GuidTools.TryExtractGuid(uninstallerKey.GetKeyName(), out resultGuid)) { return(resultGuid); } var uninstallString = uninstallerKey.GetValue(ApplicationUninstallerEntry.RegistryNameUninstallString) as string; // Look for a valid GUID in the path return(GuidTools.TryExtractGuid(uninstallString, out resultGuid) ? resultGuid : Guid.Empty); }