public InstalledApp(string packageName, string classId, string displayName, string description, string vendor, string exeHost, PackageInfo info) { PackageName = SafeNullString(packageName); ClassId = SafeNullString(classId); DisplayName = SafeNullString(displayName); Description = SafeNullString(description); if (Description != null) { DescriptionShort = Description.Replace('\n', ' '); DescriptionShort = DescriptionShort.Replace("\r", ""); if (DescriptionShort.Length > 100) { DescriptionShort = DescriptionShort.Substring(0, 100) + " ... (description truncated)"; } } Vendor = SafeNullString(vendor); ExeHost = SafeNullString(exeHost); _info = info; }
public PackageInfo Read() { PackageInfo info = new PackageInfo(); using (var cuKey = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Default)) { string[] userModelIdParts = AppUserModelId.Split('!'); if (userModelIdParts.Length == 2) { String keyName = String.Format( @"Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\{0}\SplashScreen\{1}", userModelIdParts[0], AppUserModelId); using (var packageKey = cuKey.OpenSubKey(keyName)) { if (packageKey != null) { info.BackgroundColorString = packageKey.GetValue("BackgroundColor") as string; info.IconFilename = packageKey.GetValue("Image") as string; if ((info.IconFilename != null) && (info.IconFilename.StartsWith("@"))) { info.IconFilename = Interop.SHLoadIndirectString(info.IconFilename); if (!String.IsNullOrEmpty(info.IconFilename)) { BitmapImage iconBitmapImage = new BitmapImage(); iconBitmapImage.BeginInit(); iconBitmapImage.UriSource = new Uri(info.IconFilename); iconBitmapImage.EndInit(); info.IconImage = iconBitmapImage; } } } } } } return info; }