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